From 41cc6d5eb03ea2db1320734cc671ec8d47ee485a Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 10 Oct 2024 11:38:57 +0200 Subject: [PATCH 1/6] Schema format validation inconsistencies Fixes #1017 Signed-off-by: Matthias --- schema/workflow.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/schema/workflow.yaml b/schema/workflow.yaml index 7162014e..6fc7d173 100644 --- a/schema/workflow.yaml +++ b/schema/workflow.yaml @@ -1144,6 +1144,17 @@ $defs: title: ErrorDetails description: A human-readable explanation specific to this occurrence of the error. required: [ type, status ] + uriTemplate: + title: UriTemplate + anyOf: + - title: LiteralUriTemplate + type: string + format: uri-template + pattern: "^http(s?)://.*" + - title: LiteralUri + type: string + format: uri + pattern: "^http(s?)://.*" endpoint: title: Endpoint description: Represents an endpoint. From cb3cb6bebba0cde2daa035faf5a6d84edbe257ea Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 10 Oct 2024 11:45:53 +0200 Subject: [PATCH 2/6] fix: use uriTemplate type Signed-off-by: Matthias --- schema/workflow.yaml | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/schema/workflow.yaml b/schema/workflow.yaml index 6fc7d173..892aa0d5 100644 --- a/schema/workflow.yaml +++ b/schema/workflow.yaml @@ -979,8 +979,7 @@ $defs: description: Inline configuration of the OAuth2 authentication policy. properties: authority: - type: string - format: uri-template + $ref: '#/$defs/uriTemplate' title: OAuth2AutenthicationDataAuthority description: The URI that references the OAuth2 authority to use. grant: @@ -1114,11 +1113,10 @@ $defs: description: A URI reference that identifies the error type. oneOf: - title: LiteralErrorType + $ref: '#/$defs/uriTemplate' description: The literal error type. - type: string - format: uri-template - - $ref: '#/$defs/runtimeExpression' - title: ExpressionErrorType + - title: ExpressionErrorType + $ref: '#/$defs/runtimeExpression' description: An expression based error type. status: type: integer @@ -1160,9 +1158,7 @@ $defs: description: Represents an endpoint. oneOf: - $ref: '#/$defs/runtimeExpression' - - title: LiteralEndpoint - type: string - format: uri-template + - $ref: '#/$defs/uriTemplate' - title: EndpointConfiguration type: object unevaluatedProperties: false @@ -1173,10 +1169,9 @@ $defs: oneOf: - title: LiteralEndpointURI description: The literal endpoint's URI. - type: string - format: uri-template - - $ref: '#/$defs/runtimeExpression' - title: ExpressionEndpointURI + $ref: '#/$defs/uriTemplate' + - title: ExpressionEndpointURI + $ref: '#/$defs/runtimeExpression' description: An expression based endpoint's URI. authentication: $ref: '#/$defs/referenceableAuthenticationPolicy' @@ -1196,9 +1191,7 @@ $defs: title: EventSource description: Identifies the context in which an event happened. oneOf: - - title: LiteralSource - type: string - format: uri-template + - $ref: '#/$defs/uriTemplate' - $ref: '#/$defs/runtimeExpression' type: type: string @@ -1225,11 +1218,10 @@ $defs: description: The schema describing the event format. oneOf: - title: LiteralDataSchema + $ref: '#/$defs/uriTemplate' description: The literal event data schema. - type: string - format: uri-template - - $ref: '#/$defs/runtimeExpression' - title: ExpressionDataSchema + - title: ExpressionDataSchema + $ref: '#/$defs/runtimeExpression' description: An expression based event data schema. additionalProperties: true eventConsumptionStrategy: From f3333c7007f2544cdbb480deda9bd9b389012cc6 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 10 Oct 2024 11:55:07 +0200 Subject: [PATCH 3/6] fix: remove file:// from grpc examples Signed-off-by: Matthias --- dsl-reference.md | 2 +- examples/call-grpc.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dsl-reference.md b/dsl-reference.md index ce78bcfc..f0665ea6 100644 --- a/dsl-reference.md +++ b/dsl-reference.md @@ -358,7 +358,7 @@ do: call: grpc with: proto: - endpoint: file://app/greet.proto + endpoint: https://greeter.com/greet.proto service: name: GreeterApi.Greeter host: localhost diff --git a/examples/call-grpc.yaml b/examples/call-grpc.yaml index 9c3dde83..e4360f86 100644 --- a/examples/call-grpc.yaml +++ b/examples/call-grpc.yaml @@ -8,7 +8,7 @@ do: call: grpc with: proto: - endpoint: file://app/greet.proto + endpoint: https://greeter.com/greet.proto service: name: GreeterApi.Greeter host: localhost From b88bbf2de6c4f6c01068854e827a40022c01a03c Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 10 Oct 2024 12:00:51 +0200 Subject: [PATCH 4/6] fix: use relative paths for schema ref Signed-off-by: Matthias --- examples/call-http-query-parameters.yaml | 2 +- examples/star-wars-homeworld.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/call-http-query-parameters.yaml b/examples/call-http-query-parameters.yaml index 6f34c67e..f17d3043 100644 --- a/examples/call-http-query-parameters.yaml +++ b/examples/call-http-query-parameters.yaml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=https://serverlessworkflow.io/schemas/1.0.0-alpha2/workflow.yaml +# yaml-language-server: $schema=../schema/workflow.yaml document: dsl: 1.0.0-alpha2 namespace: examples diff --git a/examples/star-wars-homeworld.yaml b/examples/star-wars-homeworld.yaml index c443feb0..103f1838 100644 --- a/examples/star-wars-homeworld.yaml +++ b/examples/star-wars-homeworld.yaml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=https://serverlessworkflow.io/schemas/1.0.0-alpha2/workflow.yaml +# yaml-language-server: $schema=../schema/workflow.yaml document: dsl: 1.0.0-alpha2 namespace: examples From dd2b255929a35e23eb618885395c5559774a2192 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 11 Oct 2024 12:01:49 +0200 Subject: [PATCH 5/6] Revert "fix: remove file:// from grpc examples" This reverts commit cdb771353235009c97d0ed43003520cbbcf51297. Signed-off-by: Matthias --- dsl-reference.md | 2 +- examples/call-grpc.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dsl-reference.md b/dsl-reference.md index f0665ea6..ce78bcfc 100644 --- a/dsl-reference.md +++ b/dsl-reference.md @@ -358,7 +358,7 @@ do: call: grpc with: proto: - endpoint: https://greeter.com/greet.proto + endpoint: file://app/greet.proto service: name: GreeterApi.Greeter host: localhost diff --git a/examples/call-grpc.yaml b/examples/call-grpc.yaml index e4360f86..9c3dde83 100644 --- a/examples/call-grpc.yaml +++ b/examples/call-grpc.yaml @@ -8,7 +8,7 @@ do: call: grpc with: proto: - endpoint: https://greeter.com/greet.proto + endpoint: file://app/greet.proto service: name: GreeterApi.Greeter host: localhost From 28d821b31f22b1cbb5654fe52915941ae6b89fad Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 11 Oct 2024 12:06:28 +0200 Subject: [PATCH 6/6] fix: allow any uri scheme Signed-off-by: Matthias --- schema/workflow.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schema/workflow.yaml b/schema/workflow.yaml index 892aa0d5..66d89ce6 100644 --- a/schema/workflow.yaml +++ b/schema/workflow.yaml @@ -1148,11 +1148,11 @@ $defs: - title: LiteralUriTemplate type: string format: uri-template - pattern: "^http(s?)://.*" + pattern: "^[A-Za-z][A-Za-z0-9+\\-.]*://.*" - title: LiteralUri type: string format: uri - pattern: "^http(s?)://.*" + pattern: "^[A-Za-z][A-Za-z0-9+\\-.]*://.*" endpoint: title: Endpoint description: Represents an endpoint.