From f8ec0f841ff73e5f8d86a869b86a55c257a08da4 Mon Sep 17 00:00:00 2001 From: SamMayWork Date: Thu, 1 May 2025 10:25:51 +0100 Subject: [PATCH 1/5] fix: openapi fix Signed-off-by: SamMayWork --- pkg/ffapi/openapi3.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/ffapi/openapi3.go b/pkg/ffapi/openapi3.go index 7f873508..76f85dcd 100644 --- a/pkg/ffapi/openapi3.go +++ b/pkg/ffapi/openapi3.go @@ -201,7 +201,7 @@ func (sg *SwaggerGen) addCustomType(t reflect.Type, schema *openapi3.Schema) { case "FFBigInt": schema.Type = &openapi3.Types{openapi3.TypeString} case "JSONAny": - schema.Type = &openapi3.Types{openapi3.TypeString} + schema.Type = nil } } From 4db4b843cceb820b24b46df43b0467dedc2def07 Mon Sep 17 00:00:00 2001 From: Enrique Lacal Date: Thu, 1 May 2025 13:48:29 +0100 Subject: [PATCH 2/5] Change JSONAny schema type in openapi to an object Signed-off-by: Enrique Lacal --- pkg/ffapi/openapi3.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/ffapi/openapi3.go b/pkg/ffapi/openapi3.go index 76f85dcd..204ef182 100644 --- a/pkg/ffapi/openapi3.go +++ b/pkg/ffapi/openapi3.go @@ -201,7 +201,7 @@ func (sg *SwaggerGen) addCustomType(t reflect.Type, schema *openapi3.Schema) { case "FFBigInt": schema.Type = &openapi3.Types{openapi3.TypeString} case "JSONAny": - schema.Type = nil + schema.Type = &openapi3.Types{openapi3.TypeObject} } } From 5dd3c9acad390b3e97bf07bd87df5c200eca2573 Mon Sep 17 00:00:00 2001 From: Enrique Lacal Date: Thu, 1 May 2025 15:58:10 +0100 Subject: [PATCH 3/5] Add AdditionalProperties to JSONAny schema type openapi Signed-off-by: Enrique Lacal --- pkg/ffapi/openapi3.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/ffapi/openapi3.go b/pkg/ffapi/openapi3.go index 204ef182..ad2d9d10 100644 --- a/pkg/ffapi/openapi3.go +++ b/pkg/ffapi/openapi3.go @@ -202,6 +202,8 @@ func (sg *SwaggerGen) addCustomType(t reflect.Type, schema *openapi3.Schema) { schema.Type = &openapi3.Types{openapi3.TypeString} case "JSONAny": schema.Type = &openapi3.Types{openapi3.TypeObject} + True := true + schema.AdditionalProperties = openapi3.AdditionalProperties{Has: &True} } } From 0b7ec7938074c2cd25b6199daae135bbc0009b3e Mon Sep 17 00:00:00 2001 From: Andrew Richardson Date: Thu, 1 May 2025 11:08:41 -0400 Subject: [PATCH 4/5] openapi: always mark requestBody as required Signed-off-by: Andrew Richardson --- pkg/ffapi/openapi3.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/ffapi/openapi3.go b/pkg/ffapi/openapi3.go index ad2d9d10..e992ce0f 100644 --- a/pkg/ffapi/openapi3.go +++ b/pkg/ffapi/openapi3.go @@ -128,7 +128,8 @@ func (sg *SwaggerGen) getPathItem(doc *openapi3.T, path string) *openapi3.PathIt func (sg *SwaggerGen) initInput(op *openapi3.Operation) { op.RequestBody = &openapi3.RequestBodyRef{ Value: &openapi3.RequestBody{ - Content: openapi3.Content{}, + Required: true, + Content: openapi3.Content{}, }, } } From 4ef131e425d6bf3d4f147fb155eab6a9bea50fd6 Mon Sep 17 00:00:00 2001 From: Andrew Richardson Date: Thu, 1 May 2025 11:41:53 -0400 Subject: [PATCH 5/5] openapi: all array elements should be non-nullable There is never a case where we allow nulls to be mixed into an array. Signed-off-by: Andrew Richardson --- pkg/ffapi/openapi3.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/ffapi/openapi3.go b/pkg/ffapi/openapi3.go index e992ce0f..2a95fcbb 100644 --- a/pkg/ffapi/openapi3.go +++ b/pkg/ffapi/openapi3.go @@ -206,6 +206,10 @@ func (sg *SwaggerGen) addCustomType(t reflect.Type, schema *openapi3.Schema) { True := true schema.AdditionalProperties = openapi3.AdditionalProperties{Has: &True} } + + if schema.Items != nil && schema.Items.Value != nil { + schema.Items.Value.Nullable = false + } } func (sg *SwaggerGen) addInput(ctx context.Context, doc *openapi3.T, route *Route, op *openapi3.Operation) {