From 9f12194f7430846275b2537d82d41f9f1dee8b7e Mon Sep 17 00:00:00 2001 From: Ricardo Zanini Date: Thu, 12 Nov 2026 10:56:39 -0500 Subject: [PATCH 1/3] Update license header owner to The Open Workflow Specification Authors Follow the project rename: update existing copyright headers and the addlicense target in the Makefile. Signed-off-by: Ricardo Zanini --- .ci/validation/src/ctk.test.ts | 2 +- .ci/validation/src/dsl.test.ts | 2 +- .ci/validation/src/examples.test.ts | 2 +- .ci/validation/src/index.ts | 2 +- .ci/validation/src/invalid.test.ts | 2 +- .ci/validation/src/uri-pattern.test.ts | 2 +- .github/labeler.yml | 2 +- .github/workflows/labeler.yml | 2 +- .github/workflows/schema-check.yaml | 2 +- .github/workflows/stale.yml | 2 +- Makefile | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.ci/validation/src/ctk.test.ts b/.ci/validation/src/ctk.test.ts index 364567de..70a10fd4 100644 --- a/.ci/validation/src/ctk.test.ts +++ b/.ci/validation/src/ctk.test.ts @@ -1,5 +1,5 @@ /* - * Copyright 2023-Present The Serverless Workflow Specification Authors + * Copyright 2023-Present The Open Workflow Specification Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/.ci/validation/src/dsl.test.ts b/.ci/validation/src/dsl.test.ts index dd01702f..04bee6ae 100644 --- a/.ci/validation/src/dsl.test.ts +++ b/.ci/validation/src/dsl.test.ts @@ -1,5 +1,5 @@ /* - * Copyright 2023-Present The Serverless Workflow Specification Authors + * Copyright 2023-Present The Open Workflow Specification Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/.ci/validation/src/examples.test.ts b/.ci/validation/src/examples.test.ts index 0133c22f..0be2f32a 100644 --- a/.ci/validation/src/examples.test.ts +++ b/.ci/validation/src/examples.test.ts @@ -1,5 +1,5 @@ /* - * Copyright 2023-Present The Serverless Workflow Specification Authors + * Copyright 2023-Present The Open Workflow Specification Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/.ci/validation/src/index.ts b/.ci/validation/src/index.ts index 2f443503..1406489a 100644 --- a/.ci/validation/src/index.ts +++ b/.ci/validation/src/index.ts @@ -1,5 +1,5 @@ /* - * Copyright 2023-Present The Serverless Workflow Specification Authors + * Copyright 2023-Present The Open Workflow Specification Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/.ci/validation/src/invalid.test.ts b/.ci/validation/src/invalid.test.ts index 73929454..5253065a 100644 --- a/.ci/validation/src/invalid.test.ts +++ b/.ci/validation/src/invalid.test.ts @@ -1,5 +1,5 @@ /* - * Copyright 2023-Present The Serverless Workflow Specification Authors + * Copyright 2023-Present The Open Workflow Specification Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/.ci/validation/src/uri-pattern.test.ts b/.ci/validation/src/uri-pattern.test.ts index 843e002b..d7e7a5e5 100644 --- a/.ci/validation/src/uri-pattern.test.ts +++ b/.ci/validation/src/uri-pattern.test.ts @@ -1,5 +1,5 @@ /* - * Copyright 2023-Present The Serverless Workflow Specification Authors + * Copyright 2023-Present The Open Workflow Specification Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/.github/labeler.yml b/.github/labeler.yml index 831cb403..27c38849 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,4 +1,4 @@ -# Copyright 2020 The Serverless Workflow Specification Authors +# Copyright 2020 The Open Workflow Specification Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 981b1911..d75bffb1 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -1,4 +1,4 @@ -# Copyright 2020 The Serverless Workflow Specification Authors +# Copyright 2020 The Open Workflow Specification Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.github/workflows/schema-check.yaml b/.github/workflows/schema-check.yaml index bd2e6f83..33ca4455 100644 --- a/.github/workflows/schema-check.yaml +++ b/.github/workflows/schema-check.yaml @@ -1,4 +1,4 @@ -# Copyright 2023 The Serverless Workflow Specification Authors +# Copyright 2023 The Open Workflow Specification Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 2337a4af..7355430f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,4 +1,4 @@ -# Copyright 2020 The Serverless Workflow Specification Authors +# Copyright 2020 The Open Workflow Specification Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/Makefile b/Makefile index 0bdfc734..4396c748 100644 --- a/Makefile +++ b/Makefile @@ -2,4 +2,4 @@ # requires go installed in your system: https://golang.org/doc/install addheaders: @which addlicense > /dev/null || go get -u github.com/google/addlicense - @addlicense -c "The Serverless Workflow Specification Authors" -l apache . \ No newline at end of file + @addlicense -c "The Open Workflow Specification Authors" -l apache . \ No newline at end of file From 1168ecd52c35dd2e23e31bddbc718a198a0bfeaa Mon Sep 17 00:00:00 2001 From: Ricardo Zanini Date: Thu, 12 Nov 2026 10:56:39 -0500 Subject: [PATCH 2/3] Prepare 1.1.0: bump DSL and schema version, finish rename leftovers - Set schema $id, the validator schema id and every dsl: value to 1.1.0 - Replace remaining io.serverlessworkflow and serverlessworkflow.io references in examples with the open-workflow-specification equivalents - Point the cataloged function example to the open-workflow-specification catalog Signed-off-by: Ricardo Zanini --- .ci/validation/src/index.ts | 2 +- .../invalid/extra-property-in-call.yaml | 2 +- .../invalid/listen-any-until-any-until.yaml | 2 +- .../invalid/two-tasks-in-one-item.yaml | 2 +- ctk/features/branch.feature | 2 +- ctk/features/call.feature | 12 +-- ctk/features/data-flow.feature | 6 +- ctk/features/do.feature | 2 +- ctk/features/emit.feature | 2 +- ctk/features/expression.feature | 10 +-- ctk/features/flow.feature | 4 +- ctk/features/for.feature | 2 +- ctk/features/raise.feature | 2 +- ctk/features/set.feature | 2 +- ctk/features/switch.feature | 6 +- ctk/features/try.feature | 4 +- dsl-reference.md | 80 +++++++++---------- dsl.md | 6 +- examples/accumulate-room-readings.yaml | 2 +- .../authentication-bearer-uri-format.yaml | 2 +- examples/authentication-bearer.yaml | 2 +- examples/authentication-oauth2-secret.yaml | 2 +- examples/authentication-oauth2.yaml | 2 +- examples/authentication-oidc-secret.yaml | 2 +- examples/authentication-oidc.yaml | 2 +- examples/authentication-reusable.yaml | 2 +- examples/call-asyncapi-publish.yaml | 2 +- ...all-asyncapi-subscribe-consume-amount.yaml | 2 +- ...api-subscribe-consume-forever-foreach.yaml | 4 +- ...call-asyncapi-subscribe-consume-until.yaml | 2 +- ...call-asyncapi-subscribe-consume-while.yaml | 2 +- examples/call-custom-function-cataloged.yaml | 4 +- examples/call-custom-function-inline.yaml | 2 +- examples/call-grpc.yaml | 2 +- ...http-endpoint-interpolation-shorthand.yaml | 2 +- .../call-http-endpoint-interpolation.yaml | 2 +- examples/call-http-output-headers.yaml | 2 +- .../call-http-query-headers-expressions.yaml | 2 +- examples/call-http-query-parameters.yaml | 2 +- examples/call-http-redirect.yaml | 2 +- examples/call-mcp.yaml | 2 +- examples/call-openapi-redirect.yaml | 2 +- examples/call-openapi.yaml | 2 +- examples/conditional-task.yaml | 2 +- examples/do-multiple.yaml | 2 +- examples/do-single.yaml | 2 +- examples/emit.yaml | 2 +- examples/for-inline-array.yaml | 2 +- examples/for-inline-primitive-array.yaml | 2 +- examples/for.yaml | 2 +- examples/fork.yaml | 2 +- examples/listen-to-all read-envelope.yaml | 2 +- examples/listen-to-all.yaml | 2 +- examples/listen-to-any-filter.yaml | 2 +- examples/listen-to-any-forever-foreach.yaml | 2 +- examples/listen-to-any-until-condition.yaml | 2 +- examples/listen-to-any-until-consumed.yaml | 2 +- examples/listen-to-any.yaml | 2 +- examples/listen-to-one.yaml | 2 +- examples/mock-service-extension.yaml | 2 +- examples/raise-inline.yaml | 4 +- examples/raise-reusable.yaml | 4 +- examples/run-container-cleanup-always.yaml | 2 +- .../run-container-cleanup-eventually.yaml | 2 +- .../run-container-stdin-and-arguments.yaml | 2 +- examples/run-container-with-name.yaml | 2 +- examples/run-container-with-pull-policy.yaml | 2 +- examples/run-container.yaml | 2 +- examples/run-return-all.yaml | 2 +- examples/run-return-code.yaml | 2 +- examples/run-return-none.yaml | 2 +- examples/run-return-stderr.yaml | 2 +- examples/run-script-with-arguments.yaml | 2 +- .../run-script-with-stdin-and-arguments.yaml | 2 +- examples/run-shell-external-script.yaml | 2 +- examples/run-shell-stdin-and-arguments.yaml | 2 +- examples/run-subflow.yaml | 2 +- examples/schedule-cron.yaml | 2 +- examples/schedule-event-driven.yaml | 2 +- examples/set-expression.yaml | 4 +- examples/set.yaml | 4 +- examples/star-wars-homeworld.yaml | 2 +- examples/switch-then-string.yaml | 2 +- examples/try-catch-retry-inline.yaml | 2 +- examples/try-catch-retry-reusable.yaml | 2 +- examples/try-catch-then-directive.yaml | 2 +- examples/try-catch-then.yaml | 2 +- examples/try-catch.yaml | 2 +- examples/wait-duration-inline.yaml | 2 +- examples/wait-duration-iso8601.yaml | 2 +- schema/workflow.yaml | 2 +- use-cases/automated-data-backup/README.md | 2 +- .../managing-ev-charging-stations/README.md | 2 +- use-cases/managing-github-issues/README.md | 2 +- .../README.md | 2 +- 95 files changed, 157 insertions(+), 157 deletions(-) diff --git a/.ci/validation/src/index.ts b/.ci/validation/src/index.ts index 1406489a..90d6520c 100644 --- a/.ci/validation/src/index.ts +++ b/.ci/validation/src/index.ts @@ -24,7 +24,7 @@ export module SWSchemaValidator { const ajv = new Ajv({ strict: false, allowUnionTypes: true }); addFormats(ajv); - const workflowSchemaId = "https://open-workflow-specification.org/schemas/1.0.4/workflow.yaml"; + const workflowSchemaId = "https://open-workflow-specification.org/schemas/1.1.0/workflow.yaml"; const schemaPath = "../../../schema"; export const defaultEncoding = "utf-8"; diff --git a/.ci/validation/test/fixtures/invalid/extra-property-in-call.yaml b/.ci/validation/test/fixtures/invalid/extra-property-in-call.yaml index 850fe90f..45e1ebfc 100644 --- a/.ci/validation/test/fixtures/invalid/extra-property-in-call.yaml +++ b/.ci/validation/test/fixtures/invalid/extra-property-in-call.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: examples name: two-tasks-in-one-item version: '0.1.0' diff --git a/.ci/validation/test/fixtures/invalid/listen-any-until-any-until.yaml b/.ci/validation/test/fixtures/invalid/listen-any-until-any-until.yaml index 6f662947..1b9704f0 100644 --- a/.ci/validation/test/fixtures/invalid/listen-any-until-any-until.yaml +++ b/.ci/validation/test/fixtures/invalid/listen-any-until-any-until.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: test name: listen-to-any version: '0.1.0' diff --git a/.ci/validation/test/fixtures/invalid/two-tasks-in-one-item.yaml b/.ci/validation/test/fixtures/invalid/two-tasks-in-one-item.yaml index c94b94f4..7c16688f 100644 --- a/.ci/validation/test/fixtures/invalid/two-tasks-in-one-item.yaml +++ b/.ci/validation/test/fixtures/invalid/two-tasks-in-one-item.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: examples name: two-tasks-in-one-item version: '0.1.0' diff --git a/ctk/features/branch.feature b/ctk/features/branch.feature index 6b6a543a..1a1b9f8a 100644 --- a/ctk/features/branch.feature +++ b/ctk/features/branch.feature @@ -8,7 +8,7 @@ Feature: Composite Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: fork version: '1.0.0' diff --git a/ctk/features/call.feature b/ctk/features/call.feature index 5e9cbb8a..3cfa9fa1 100644 --- a/ctk/features/call.feature +++ b/ctk/features/call.feature @@ -11,7 +11,7 @@ Feature: Call Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: http-call-with-content-output version: '1.0.0' @@ -40,7 +40,7 @@ Feature: Call Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: http-call-with-response-output version: '1.0.0' @@ -68,7 +68,7 @@ Feature: Call Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: http-call-response-filtering version: '1.0.0' @@ -110,7 +110,7 @@ Feature: Call Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: http-call-with-basic-auth version: '1.0.0' @@ -140,7 +140,7 @@ Feature: Call Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: openapi-call-with-content-output version: '1.0.0' @@ -169,7 +169,7 @@ Feature: Call Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: openapi-call-with-response-output version: '1.0.0' diff --git a/ctk/features/data-flow.feature b/ctk/features/data-flow.feature index 44ddaa6c..0ebbafab 100644 --- a/ctk/features/data-flow.feature +++ b/ctk/features/data-flow.feature @@ -8,7 +8,7 @@ Feature: Data Flow Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: output-filtering version: '1.0.0' @@ -36,7 +36,7 @@ Feature: Data Flow Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: output-filtering version: '1.0.0' @@ -65,7 +65,7 @@ Feature: Data Flow Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: non-object-output version: '1.0.0' diff --git a/ctk/features/do.feature b/ctk/features/do.feature index 56ec4078..8dc631e4 100644 --- a/ctk/features/do.feature +++ b/ctk/features/do.feature @@ -8,7 +8,7 @@ Feature: Composite Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: do version: '1.0.0' diff --git a/ctk/features/emit.feature b/ctk/features/emit.feature index 591f72fd..61d3cbdb 100644 --- a/ctk/features/emit.feature +++ b/ctk/features/emit.feature @@ -8,7 +8,7 @@ Feature: Emit Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: emit version: '1.0.0' diff --git a/ctk/features/expression.feature b/ctk/features/expression.feature index dbf87d3a..aab25aa6 100644 --- a/ctk/features/expression.feature +++ b/ctk/features/expression.feature @@ -8,7 +8,7 @@ Feature: Runtime Expressions Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: expression-single-value version: '1.0.0' @@ -32,7 +32,7 @@ Feature: Runtime Expressions Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: expression-multiple-values version: '1.0.0' @@ -56,7 +56,7 @@ Feature: Runtime Expressions Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: expression-no-value version: '1.0.0' @@ -80,7 +80,7 @@ Feature: Runtime Expressions Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: expression-null-value version: '1.0.0' @@ -105,7 +105,7 @@ Feature: Runtime Expressions Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: expression-error-after-value version: '1.0.0' diff --git a/ctk/features/flow.feature b/ctk/features/flow.feature index d39a83c2..2c0513d3 100644 --- a/ctk/features/flow.feature +++ b/ctk/features/flow.feature @@ -7,7 +7,7 @@ Feature: Flow Directive Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: implicit-sequence version: '1.0.0' @@ -35,7 +35,7 @@ Feature: Flow Directive Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: explicit-sequence version: '1.0.0' diff --git a/ctk/features/for.feature b/ctk/features/for.feature index 94ee464b..530aaecd 100644 --- a/ctk/features/for.feature +++ b/ctk/features/for.feature @@ -10,7 +10,7 @@ Feature: For Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: for version: '1.0.0' diff --git a/ctk/features/raise.feature b/ctk/features/raise.feature index 871783df..d7df5cd7 100644 --- a/ctk/features/raise.feature +++ b/ctk/features/raise.feature @@ -7,7 +7,7 @@ Feature: Raise Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: raise-custom-error version: '1.0.0' diff --git a/ctk/features/set.feature b/ctk/features/set.feature index 08950d89..6bd935fe 100644 --- a/ctk/features/set.feature +++ b/ctk/features/set.feature @@ -8,7 +8,7 @@ Feature: Set Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: set version: '1.0.0' diff --git a/ctk/features/switch.feature b/ctk/features/switch.feature index ead8b7bd..dbf692ff 100644 --- a/ctk/features/switch.feature +++ b/ctk/features/switch.feature @@ -7,7 +7,7 @@ Feature: Switch Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: switch-match version: '1.0.0' @@ -52,7 +52,7 @@ Feature: Switch Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: switch-default-implicit version: '1.0.0' @@ -95,7 +95,7 @@ Feature: Switch Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: switch-default-implicit version: '1.0.0' diff --git a/ctk/features/try.feature b/ctk/features/try.feature index 41df8006..30e9db26 100644 --- a/ctk/features/try.feature +++ b/ctk/features/try.feature @@ -11,7 +11,7 @@ Feature: Try Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: try-catch-404 version: '1.0.0' @@ -55,7 +55,7 @@ Feature: Try Task Given a workflow with definition: """yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: try-catch-503 version: '1.0.0' diff --git a/dsl-reference.md b/dsl-reference.md index 74a8a9b5..46cf3fc2 100644 --- a/dsl-reference.md +++ b/dsl-reference.md @@ -163,7 +163,7 @@ Configures a workflow's runtime expression evaluation. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: order-pet version: '0.1.0' @@ -304,7 +304,7 @@ Enables the execution of a specified function within a workflow, allowing seamle ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: call-example version: '0.1.0' @@ -348,7 +348,7 @@ The [AsyncAPI Call](#asyncapi-call) enables workflows to interact with external ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: asyncapi-example version: '0.1.0' @@ -404,7 +404,7 @@ The [gRPC Call](#grpc-call) enables communication with external systems via the ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: grpc-example version: '0.1.0' @@ -444,7 +444,7 @@ The [HTTP Call](#http-call) enables workflows to interact with external services *Basic HTTP GET call:* ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: http-example version: '0.1.0' @@ -459,7 +459,7 @@ do: *Accessing HTTP response headers and content:* ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: http-response-example version: '0.1.0' @@ -496,7 +496,7 @@ The [OpenAPI Call](#openapi-call) enables workflows to interact with external se ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: openapi-example version: '0.1.0' @@ -535,7 +535,7 @@ The [A2A Call](#a2a-call) enables workflows to interact with AI agents described ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: a2a-example version: '0.1.0' @@ -579,7 +579,7 @@ The [MCP Call](#mcp-call) enables workflows to interact with [Model Context Prot ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: mcp-example version: '0.1.0' @@ -617,7 +617,7 @@ Serves as a fundamental building block within workflows, enabling the sequential ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: do-example version: '0.1.0' @@ -682,7 +682,7 @@ Allows workflows to publish events to event brokers or messaging systems, facili ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: emit-example version: '0.1.0' @@ -720,7 +720,7 @@ Allows workflows to iterate over a collection of items, executing a defined set ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: for-example version: '0.1.0' @@ -757,7 +757,7 @@ Allows workflows to execute multiple subtasks concurrently, enabling parallel pr ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: fork-example version: '0.1.0' @@ -810,7 +810,7 @@ Provides a mechanism for workflows to await and react to external events, enabli ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-example version: '0.1.0' @@ -841,7 +841,7 @@ Intentionally triggers and propagates errors. By employing the "Raise" task, wor ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: raise-example version: '0.1.0' @@ -908,7 +908,7 @@ Provides the capability to execute external [containers](#container-process), [s ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-example version: '0.1.0' @@ -963,7 +963,7 @@ Enables the execution of external processes encapsulated within a containerized ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container-example version: '0.1.0' @@ -1022,7 +1022,7 @@ Enables the execution of custom scripts or code within a workflow, empowering wo ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: run-script-with-arguments version: 1.0.0 @@ -1061,7 +1061,7 @@ Enables the execution of shell commands within a workflow, enabling workflows to ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-shell-example version: '0.1.0' @@ -1102,7 +1102,7 @@ Enables the invocation and execution of nested workflows within a parent workflo ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-workflow-example version: '0.1.0' @@ -1131,7 +1131,7 @@ A task used to set data. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: default name: set-example version: '0.1.0' @@ -1159,7 +1159,7 @@ Enables conditional branching within workflows, allowing them to dynamically sel ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: switch-example version: '0.1.0' @@ -1243,7 +1243,7 @@ Serves as a mechanism within workflows to handle errors gracefully, potentially ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: try-example version: '0.1.0' @@ -1301,7 +1301,7 @@ Allows workflows to pause or delay their execution for a specified period of tim ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: wait-example version: '0.1.0' @@ -1744,7 +1744,7 @@ Defines the mechanism used to authenticate users and workflows attempting to acc ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: authentication-example version: '0.1.0' @@ -1781,7 +1781,7 @@ Defines the fundamentals of a 'basic' authentication. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: basic-authentication-example version: '0.1.0' @@ -1816,7 +1816,7 @@ Defines the fundamentals of a 'bearer' authentication ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: bearer-authentication-example version: '0.1.0' @@ -1847,7 +1847,7 @@ Defines the fundamentals of a 'digest' authentication. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: digest-authentication-example version: '0.1.0' @@ -1898,7 +1898,7 @@ Defines the fundamentals of an 'oauth2' authentication. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: oauth2-authentication-example version: '0.1.0' @@ -1960,7 +1960,7 @@ Defines the fundamentals of an 'oidc' authentication. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: oidc-authentication-example version: '0.1.0' @@ -2000,7 +2000,7 @@ For more information about catalogs, refer to the [Open Workflow DSL document](h ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: catalog-example version: '0.1.0' @@ -2040,7 +2040,7 @@ Extensions enable the execution of tasks prior to those they extend, offering th *Perform logging before and after any non-extension task is run:* ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: logging-extension-example version: '0.1.0' @@ -2075,7 +2075,7 @@ do: *Intercept HTTP calls to 'https://mocked.service.com' and mock its response:* ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: intercept-extension-example version: '0.1.0' @@ -2392,7 +2392,7 @@ Defines a workflow or task timeout. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: default name: timeout-example version: '0.1.0' @@ -2541,7 +2541,7 @@ Describes the result of a process. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container-example version: '0.1.0' @@ -2595,7 +2595,7 @@ Configures the target server of an AsyncAPI operation. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: asyncapi-example version: '0.1.0' @@ -2633,7 +2633,7 @@ Configures an AsyncAPI message to publish. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: asyncapi-example version: '0.1.0' @@ -2698,7 +2698,7 @@ Configures a subscription to an AsyncAPI operation. ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: asyncapi-example version: '0.1.0' @@ -2735,7 +2735,7 @@ Configures the lifetime of an AsyncAPI subscription ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: asyncapi-example version: '0.1.0' @@ -2773,7 +2773,7 @@ Configures the iteration over each item (event or message) consumed by a subscri ```yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: asyncapi-example version: '0.1.0' diff --git a/dsl.md b/dsl.md index eed0f6ed..8031d150 100644 --- a/dsl.md +++ b/dsl.md @@ -586,7 +586,7 @@ This format ensures that the function, its version, and the catalog it belongs t *Calling a custom function defined within a catalog:* ```yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: test name: catalog-example version: '0.1.0' @@ -688,7 +688,7 @@ The following example demonstrates how to use the `validateEmailAddress` custom ```yaml # workflow.yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: customFunctionWorkflow version: '0.1.0' @@ -756,7 +756,7 @@ See the [DSL reference](dsl-reference.md#extension) for more details about exten *Sample logging extension:* ```yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: test name: sample-workflow version: '0.1.0' diff --git a/examples/accumulate-room-readings.yaml b/examples/accumulate-room-readings.yaml index 9e1ac8fe..cf2c1b33 100644 --- a/examples/accumulate-room-readings.yaml +++ b/examples/accumulate-room-readings.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: accumulate-room-readings version: '0.1.0' diff --git a/examples/authentication-bearer-uri-format.yaml b/examples/authentication-bearer-uri-format.yaml index 3bcdf7ef..f54397a0 100644 --- a/examples/authentication-bearer-uri-format.yaml +++ b/examples/authentication-bearer-uri-format.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: bearer-auth version: '0.1.0' diff --git a/examples/authentication-bearer.yaml b/examples/authentication-bearer.yaml index 5117cd73..8147ef8b 100644 --- a/examples/authentication-bearer.yaml +++ b/examples/authentication-bearer.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: bearer-auth-uri-format version: '0.1.0' diff --git a/examples/authentication-oauth2-secret.yaml b/examples/authentication-oauth2-secret.yaml index ed738deb..fe5890df 100644 --- a/examples/authentication-oauth2-secret.yaml +++ b/examples/authentication-oauth2-secret.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: oauth2-authentication version: '1.0.0' diff --git a/examples/authentication-oauth2.yaml b/examples/authentication-oauth2.yaml index e96e5480..6ee0f219 100644 --- a/examples/authentication-oauth2.yaml +++ b/examples/authentication-oauth2.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: oauth2-authentication version: '0.1.0' diff --git a/examples/authentication-oidc-secret.yaml b/examples/authentication-oidc-secret.yaml index 1b2b693e..19c9af61 100644 --- a/examples/authentication-oidc-secret.yaml +++ b/examples/authentication-oidc-secret.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: oidc-authentication version: '1.0.0' diff --git a/examples/authentication-oidc.yaml b/examples/authentication-oidc.yaml index 1305930d..35ca6f6f 100644 --- a/examples/authentication-oidc.yaml +++ b/examples/authentication-oidc.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: oidc-authentication version: '0.1.0' diff --git a/examples/authentication-reusable.yaml b/examples/authentication-reusable.yaml index 7077a933..5cfb7a77 100644 --- a/examples/authentication-reusable.yaml +++ b/examples/authentication-reusable.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: bearer-auth version: '0.1.0' diff --git a/examples/call-asyncapi-publish.yaml b/examples/call-asyncapi-publish.yaml index e509849e..28b4158e 100644 --- a/examples/call-asyncapi-publish.yaml +++ b/examples/call-asyncapi-publish.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: bearer-auth version: '0.1.0' diff --git a/examples/call-asyncapi-subscribe-consume-amount.yaml b/examples/call-asyncapi-subscribe-consume-amount.yaml index 6205c3ca..00a2f55d 100644 --- a/examples/call-asyncapi-subscribe-consume-amount.yaml +++ b/examples/call-asyncapi-subscribe-consume-amount.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: bearer-auth version: '0.1.0' diff --git a/examples/call-asyncapi-subscribe-consume-forever-foreach.yaml b/examples/call-asyncapi-subscribe-consume-forever-foreach.yaml index e2291846..4681d08c 100644 --- a/examples/call-asyncapi-subscribe-consume-forever-foreach.yaml +++ b/examples/call-asyncapi-subscribe-consume-forever-foreach.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: bearer-auth version: '0.1.0' @@ -22,7 +22,7 @@ do: event: with: source: https://open-workflow-specification.org/samples - type: io.serverlessworkflow.samples.asyncapi.message.consumed.v1 + type: org.open-workflow-specification.samples.asyncapi.message.consumed.v1 data: message: '${ $message }' diff --git a/examples/call-asyncapi-subscribe-consume-until.yaml b/examples/call-asyncapi-subscribe-consume-until.yaml index 8ad71589..5a0ea804 100644 --- a/examples/call-asyncapi-subscribe-consume-until.yaml +++ b/examples/call-asyncapi-subscribe-consume-until.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: bearer-auth version: '0.1.0' diff --git a/examples/call-asyncapi-subscribe-consume-while.yaml b/examples/call-asyncapi-subscribe-consume-while.yaml index fc709ae2..619846f7 100644 --- a/examples/call-asyncapi-subscribe-consume-while.yaml +++ b/examples/call-asyncapi-subscribe-consume-while.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: bearer-auth version: '0.1.0' diff --git a/examples/call-custom-function-cataloged.yaml b/examples/call-custom-function-cataloged.yaml index 6dd38a5f..c3ee2870 100644 --- a/examples/call-custom-function-cataloged.yaml +++ b/examples/call-custom-function-cataloged.yaml @@ -1,11 +1,11 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: samples name: call-custom-function-cataloged version: '0.1.0' do: - log: - call: https://raw.githubusercontent.com/serverlessworkflow/catalog/main/functions/log/1.0.0/function.yaml + call: https://raw.githubusercontent.com/open-workflow-specification/catalog/main/functions/log/1.0.0/function.yaml with: message: Hello, world! level: information diff --git a/examples/call-custom-function-inline.yaml b/examples/call-custom-function-inline.yaml index 4fc18897..539fb06f 100644 --- a/examples/call-custom-function-inline.yaml +++ b/examples/call-custom-function-inline.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: samples name: call-custom-function-inline version: '0.1.0' diff --git a/examples/call-grpc.yaml b/examples/call-grpc.yaml index f22cc000..9e76c707 100644 --- a/examples/call-grpc.yaml +++ b/examples/call-grpc.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: grpc-example version: '0.1.0' diff --git a/examples/call-http-endpoint-interpolation-shorthand.yaml b/examples/call-http-endpoint-interpolation-shorthand.yaml index 116aa0e8..695ff842 100644 --- a/examples/call-http-endpoint-interpolation-shorthand.yaml +++ b/examples/call-http-endpoint-interpolation-shorthand.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: call-http-shorthand-endpoint version: '0.1.0' diff --git a/examples/call-http-endpoint-interpolation.yaml b/examples/call-http-endpoint-interpolation.yaml index 36cf3ce2..c9e7c0a0 100644 --- a/examples/call-http-endpoint-interpolation.yaml +++ b/examples/call-http-endpoint-interpolation.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: call-http-shorthand-endpoint version: '0.1.0' diff --git a/examples/call-http-output-headers.yaml b/examples/call-http-output-headers.yaml index 8965cf3f..aa244557 100644 --- a/examples/call-http-output-headers.yaml +++ b/examples/call-http-output-headers.yaml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../schema/workflow.yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: http-output-headers version: '1.0.0' diff --git a/examples/call-http-query-headers-expressions.yaml b/examples/call-http-query-headers-expressions.yaml index 2acba791..568f9b5f 100644 --- a/examples/call-http-query-headers-expressions.yaml +++ b/examples/call-http-query-headers-expressions.yaml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../schema/workflow.yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: http-query-headers-expressions version: '1.0.0' diff --git a/examples/call-http-query-parameters.yaml b/examples/call-http-query-parameters.yaml index 71061ab0..76a96c1c 100644 --- a/examples/call-http-query-parameters.yaml +++ b/examples/call-http-query-parameters.yaml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../schema/workflow.yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: http-query-params version: '1.0.0' diff --git a/examples/call-http-redirect.yaml b/examples/call-http-redirect.yaml index 15cf2d92..404dbb9e 100644 --- a/examples/call-http-redirect.yaml +++ b/examples/call-http-redirect.yaml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../schema/workflow.yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: http-query-params version: '1.0.0' diff --git a/examples/call-mcp.yaml b/examples/call-mcp.yaml index 61650801..6942db11 100644 --- a/examples/call-mcp.yaml +++ b/examples/call-mcp.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: mcp-example version: '0.1.0' diff --git a/examples/call-openapi-redirect.yaml b/examples/call-openapi-redirect.yaml index 7550e74d..fc435ebb 100644 --- a/examples/call-openapi-redirect.yaml +++ b/examples/call-openapi-redirect.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: openapi-example version: '0.1.0' diff --git a/examples/call-openapi.yaml b/examples/call-openapi.yaml index 940ce057..08bfcd2c 100644 --- a/examples/call-openapi.yaml +++ b/examples/call-openapi.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: openapi-example version: '0.1.0' diff --git a/examples/conditional-task.yaml b/examples/conditional-task.yaml index 8c976f7a..63649f9d 100644 --- a/examples/conditional-task.yaml +++ b/examples/conditional-task.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: default name: conditional-task version: '0.1.0' diff --git a/examples/do-multiple.yaml b/examples/do-multiple.yaml index 305c21ea..88c07ef0 100644 --- a/examples/do-multiple.yaml +++ b/examples/do-multiple.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: call-http-shorthand-endpoint version: '0.1.0' diff --git a/examples/do-single.yaml b/examples/do-single.yaml index 116aa0e8..695ff842 100644 --- a/examples/do-single.yaml +++ b/examples/do-single.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: call-http-shorthand-endpoint version: '0.1.0' diff --git a/examples/emit.yaml b/examples/emit.yaml index a875e860..c88f2a62 100644 --- a/examples/emit.yaml +++ b/examples/emit.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: emit version: '0.1.0' diff --git a/examples/for-inline-array.yaml b/examples/for-inline-array.yaml index a160e157..302fe121 100644 --- a/examples/for-inline-array.yaml +++ b/examples/for-inline-array.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: for-inline-array-example version: '0.1.0' diff --git a/examples/for-inline-primitive-array.yaml b/examples/for-inline-primitive-array.yaml index 7d3191ab..83119123 100644 --- a/examples/for-inline-primitive-array.yaml +++ b/examples/for-inline-primitive-array.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: for-inline-primitive-array-example version: '0.1.0' diff --git a/examples/for.yaml b/examples/for.yaml index 0c463fb0..0f9b957e 100644 --- a/examples/for.yaml +++ b/examples/for.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: for-example version: '0.1.0' diff --git a/examples/fork.yaml b/examples/fork.yaml index 9e200470..241a91fc 100644 --- a/examples/fork.yaml +++ b/examples/fork.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: fork-example version: '0.1.0' diff --git a/examples/listen-to-all read-envelope.yaml b/examples/listen-to-all read-envelope.yaml index 573c902f..7d14349e 100644 --- a/examples/listen-to-all read-envelope.yaml +++ b/examples/listen-to-all read-envelope.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-to-all-read-envelope version: '0.1.0' diff --git a/examples/listen-to-all.yaml b/examples/listen-to-all.yaml index e3036eea..76bd51e4 100644 --- a/examples/listen-to-all.yaml +++ b/examples/listen-to-all.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-to-all version: '0.1.0' diff --git a/examples/listen-to-any-filter.yaml b/examples/listen-to-any-filter.yaml index 981f6737..8b8dff71 100644 --- a/examples/listen-to-any-filter.yaml +++ b/examples/listen-to-any-filter.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-to-any-filter version: '0.1.0' diff --git a/examples/listen-to-any-forever-foreach.yaml b/examples/listen-to-any-forever-foreach.yaml index dab1410f..814286cd 100644 --- a/examples/listen-to-any-forever-foreach.yaml +++ b/examples/listen-to-any-forever-foreach.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-to-any-while-foreach version: '0.1.0' diff --git a/examples/listen-to-any-until-condition.yaml b/examples/listen-to-any-until-condition.yaml index 72ee82c9..ac8dad11 100644 --- a/examples/listen-to-any-until-condition.yaml +++ b/examples/listen-to-any-until-condition.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-to-any version: '0.1.0' diff --git a/examples/listen-to-any-until-consumed.yaml b/examples/listen-to-any-until-consumed.yaml index f406fb88..75cadc5e 100644 --- a/examples/listen-to-any-until-consumed.yaml +++ b/examples/listen-to-any-until-consumed.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-to-any version: '0.1.0' diff --git a/examples/listen-to-any.yaml b/examples/listen-to-any.yaml index d3162242..3309c3b1 100644 --- a/examples/listen-to-any.yaml +++ b/examples/listen-to-any.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-to-any version: '0.1.0' diff --git a/examples/listen-to-one.yaml b/examples/listen-to-one.yaml index bec2db1c..0a955d7b 100644 --- a/examples/listen-to-one.yaml +++ b/examples/listen-to-one.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: listen-to-one version: '0.1.0' diff --git a/examples/mock-service-extension.yaml b/examples/mock-service-extension.yaml index 72cc1949..a15a8aaf 100644 --- a/examples/mock-service-extension.yaml +++ b/examples/mock-service-extension.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: sample-workflow version: 0.1.0 diff --git a/examples/raise-inline.yaml b/examples/raise-inline.yaml index e3255f7f..9907a31d 100644 --- a/examples/raise-inline.yaml +++ b/examples/raise-inline.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: raise-not-implemented version: '0.1.0' @@ -7,7 +7,7 @@ do: - notImplemented: raise: error: - type: https://serverlessworkflow.io/errors/not-implemented + type: https://open-workflow-specification.org/errors/not-implemented status: 500 title: Not Implemented detail: ${ "The workflow '\( $workflow.definition.document.name ):\( $workflow.definition.document.version )' is a work in progress and cannot be run yet" } \ No newline at end of file diff --git a/examples/raise-reusable.yaml b/examples/raise-reusable.yaml index 391cca21..d27f5fc2 100644 --- a/examples/raise-reusable.yaml +++ b/examples/raise-reusable.yaml @@ -1,12 +1,12 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: raise-not-implemented version: '0.1.0' use: errors: notImplemented: - type: https://serverlessworkflow.io/errors/not-implemented + type: https://open-workflow-specification.org/errors/not-implemented status: 500 title: Not Implemented detail: ${ "The workflow '\( $workflow.definition.document.name ):\( $workflow.definition.document.version )' is a work in progress and cannot be run yet" } diff --git a/examples/run-container-cleanup-always.yaml b/examples/run-container-cleanup-always.yaml index 6b1d3b6d..a0416c06 100644 --- a/examples/run-container-cleanup-always.yaml +++ b/examples/run-container-cleanup-always.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container version: '0.1.0' diff --git a/examples/run-container-cleanup-eventually.yaml b/examples/run-container-cleanup-eventually.yaml index 1ad7abe0..00770110 100644 --- a/examples/run-container-cleanup-eventually.yaml +++ b/examples/run-container-cleanup-eventually.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container version: '0.1.0' diff --git a/examples/run-container-stdin-and-arguments.yaml b/examples/run-container-stdin-and-arguments.yaml index 5f33afd1..d6a15b95 100644 --- a/examples/run-container-stdin-and-arguments.yaml +++ b/examples/run-container-stdin-and-arguments.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container-stdin-and-arguments version: '0.1.0' diff --git a/examples/run-container-with-name.yaml b/examples/run-container-with-name.yaml index 7982bd1c..2fe00613 100644 --- a/examples/run-container-with-name.yaml +++ b/examples/run-container-with-name.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container-with-name version: '0.1.0' diff --git a/examples/run-container-with-pull-policy.yaml b/examples/run-container-with-pull-policy.yaml index 5ff30288..5ba205a1 100644 --- a/examples/run-container-with-pull-policy.yaml +++ b/examples/run-container-with-pull-policy.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container-with-pull-policy version: '0.1.0' diff --git a/examples/run-container.yaml b/examples/run-container.yaml index 39a14159..055985de 100644 --- a/examples/run-container.yaml +++ b/examples/run-container.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container version: '0.1.0' diff --git a/examples/run-return-all.yaml b/examples/run-return-all.yaml index 0608667e..4827925d 100644 --- a/examples/run-return-all.yaml +++ b/examples/run-return-all.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container version: '0.1.0' diff --git a/examples/run-return-code.yaml b/examples/run-return-code.yaml index d829bb4f..1230d0a9 100644 --- a/examples/run-return-code.yaml +++ b/examples/run-return-code.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container version: '0.1.0' diff --git a/examples/run-return-none.yaml b/examples/run-return-none.yaml index e7491460..a5fe973c 100644 --- a/examples/run-return-none.yaml +++ b/examples/run-return-none.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container version: '0.1.0' diff --git a/examples/run-return-stderr.yaml b/examples/run-return-stderr.yaml index fd3c2a9d..ffa3528d 100644 --- a/examples/run-return-stderr.yaml +++ b/examples/run-return-stderr.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-container version: '0.1.0' diff --git a/examples/run-script-with-arguments.yaml b/examples/run-script-with-arguments.yaml index 15cd988b..619d5722 100644 --- a/examples/run-script-with-arguments.yaml +++ b/examples/run-script-with-arguments.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: run-script-with-arguments version: 1.0.0 diff --git a/examples/run-script-with-stdin-and-arguments.yaml b/examples/run-script-with-stdin-and-arguments.yaml index 9fd2e72b..7a019a4f 100644 --- a/examples/run-script-with-stdin-and-arguments.yaml +++ b/examples/run-script-with-stdin-and-arguments.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: run-script-with-stdin-and-arguments version: '1.0.0' diff --git a/examples/run-shell-external-script.yaml b/examples/run-shell-external-script.yaml index 62ac2885..dcd9fc7b 100644 --- a/examples/run-shell-external-script.yaml +++ b/examples/run-shell-external-script.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: run-shell-external-script version: 1.0.0 diff --git a/examples/run-shell-stdin-and-arguments.yaml b/examples/run-shell-stdin-and-arguments.yaml index e8e175c2..edd35e56 100644 --- a/examples/run-shell-stdin-and-arguments.yaml +++ b/examples/run-shell-stdin-and-arguments.yaml @@ -1,5 +1,5 @@ document: - dsl: 1.0.3 + dsl: '1.1.0' namespace: examples name: run-shell-with-stdin-and-arguments version: 1.0.0 diff --git a/examples/run-subflow.yaml b/examples/run-subflow.yaml index 5e72806d..e0f02e6b 100644 --- a/examples/run-subflow.yaml +++ b/examples/run-subflow.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: run-subflow version: '0.1.0' diff --git a/examples/schedule-cron.yaml b/examples/schedule-cron.yaml index 59275f63..5c4bad81 100644 --- a/examples/schedule-cron.yaml +++ b/examples/schedule-cron.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: cron-schedule version: '0.1.0' diff --git a/examples/schedule-event-driven.yaml b/examples/schedule-event-driven.yaml index b71ce0d9..909f2b27 100644 --- a/examples/schedule-event-driven.yaml +++ b/examples/schedule-event-driven.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: event-driven-schedule version: '0.1.0' diff --git a/examples/set-expression.yaml b/examples/set-expression.yaml index f0a3b9b0..395449ca 100644 --- a/examples/set-expression.yaml +++ b/examples/set-expression.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: set version: '0.1.0' @@ -7,7 +7,7 @@ schedule: on: one: with: - type: io.serverlessworkflow.samples.events.trigger.v1 + type: org.open-workflow-specification.samples.events.trigger.v1 do: - initialize: set: ${ $workflow.input[0] } \ No newline at end of file diff --git a/examples/set.yaml b/examples/set.yaml index b8ef35db..4c1d27e5 100644 --- a/examples/set.yaml +++ b/examples/set.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: set version: '0.1.0' @@ -7,7 +7,7 @@ schedule: on: one: with: - type: io.serverlessworkflow.samples.events.trigger.v1 + type: org.open-workflow-specification.samples.events.trigger.v1 do: - initialize: set: diff --git a/examples/star-wars-homeworld.yaml b/examples/star-wars-homeworld.yaml index ffde9437..44e7b8d4 100644 --- a/examples/star-wars-homeworld.yaml +++ b/examples/star-wars-homeworld.yaml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../schema/workflow.yaml document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: examples name: star-wars-homeplanet version: '1.0.0' diff --git a/examples/switch-then-string.yaml b/examples/switch-then-string.yaml index 975a8782..e6b69542 100644 --- a/examples/switch-then-string.yaml +++ b/examples/switch-then-string.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: sample-workflow version: 0.1.0 diff --git a/examples/try-catch-retry-inline.yaml b/examples/try-catch-retry-inline.yaml index f6cb8e68..92cb4dee 100644 --- a/examples/try-catch-retry-inline.yaml +++ b/examples/try-catch-retry-inline.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: default name: try-catch-retry version: '0.1.0' diff --git a/examples/try-catch-retry-reusable.yaml b/examples/try-catch-retry-reusable.yaml index 9cebc374..1ee4b5ba 100644 --- a/examples/try-catch-retry-reusable.yaml +++ b/examples/try-catch-retry-reusable.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: default name: try-catch-retry version: '0.1.0' diff --git a/examples/try-catch-then-directive.yaml b/examples/try-catch-then-directive.yaml index 923b3dde..8ccd3771 100644 --- a/examples/try-catch-then-directive.yaml +++ b/examples/try-catch-then-directive.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: try-catch-then-directive version: '0.1.0' diff --git a/examples/try-catch-then.yaml b/examples/try-catch-then.yaml index 0b38510f..a88a8a78 100644 --- a/examples/try-catch-then.yaml +++ b/examples/try-catch-then.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: default name: try-catch version: '0.1.0' diff --git a/examples/try-catch.yaml b/examples/try-catch.yaml index b8213dbb..9183363d 100644 --- a/examples/try-catch.yaml +++ b/examples/try-catch.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: default name: try-catch version: '0.1.0' diff --git a/examples/wait-duration-inline.yaml b/examples/wait-duration-inline.yaml index 4529cbc0..7751f658 100644 --- a/examples/wait-duration-inline.yaml +++ b/examples/wait-duration-inline.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: wait-duration-inline version: '0.1.0' diff --git a/examples/wait-duration-iso8601.yaml b/examples/wait-duration-iso8601.yaml index c4b379fb..7ed4530b 100644 --- a/examples/wait-duration-iso8601.yaml +++ b/examples/wait-duration-iso8601.yaml @@ -1,5 +1,5 @@ document: - dsl: '1.0.4' + dsl: '1.1.0' namespace: test name: wait-duration-8601 version: '0.1.0' diff --git a/schema/workflow.yaml b/schema/workflow.yaml index 8f36b99d..d186a922 100644 --- a/schema/workflow.yaml +++ b/schema/workflow.yaml @@ -1,4 +1,4 @@ -$id: https://open-workflow-specification.org/schemas/1.0.4/workflow.yaml +$id: https://open-workflow-specification.org/schemas/1.1.0/workflow.yaml $schema: https://json-schema.org/draft/2020-12/schema description: Open Workflow DSL - Workflow Schema. type: object diff --git a/use-cases/automated-data-backup/README.md b/use-cases/automated-data-backup/README.md index 4bd47939..d04ea624 100644 --- a/use-cases/automated-data-backup/README.md +++ b/use-cases/automated-data-backup/README.md @@ -54,7 +54,7 @@ The following diagram represents the high-level flow of the workflow: ```yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: sql-export-to-minio version: 0.1.2 diff --git a/use-cases/managing-ev-charging-stations/README.md b/use-cases/managing-ev-charging-stations/README.md index 7936c6b4..c313b234 100644 --- a/use-cases/managing-ev-charging-stations/README.md +++ b/use-cases/managing-ev-charging-stations/README.md @@ -70,7 +70,7 @@ The following diagram represents the high-level flow of the workflow: ```yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: manage-ev-charging-stations version: '0.1.0' diff --git a/use-cases/managing-github-issues/README.md b/use-cases/managing-github-issues/README.md index 2159c17b..316780df 100644 --- a/use-cases/managing-github-issues/README.md +++ b/use-cases/managing-github-issues/README.md @@ -63,7 +63,7 @@ The following diagram represents the high-level flow of the workflow: ```yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: manage-github-issues version: '0.1.0' diff --git a/use-cases/multi-agent-ai-content-generation/README.md b/use-cases/multi-agent-ai-content-generation/README.md index 9c2a5ad9..99904ae2 100644 --- a/use-cases/multi-agent-ai-content-generation/README.md +++ b/use-cases/multi-agent-ai-content-generation/README.md @@ -66,7 +66,7 @@ The following diagram represents the high-level flow of the workflow: ```yaml document: - dsl: '1.0.3' + dsl: '1.1.0' namespace: default name: multi-agent-collaboration-for-ai-content version: '0.1.0' From 0a25908e373c752afdcf2051252f1f3652f6ab51 Mon Sep 17 00:00:00 2001 From: Ricardo Zanini Date: Thu, 12 Nov 2026 10:56:39 -0500 Subject: [PATCH 3/3] Add 1.0.1 to 1.1.0 upgrade guide Lists breaking changes, deprecations, behavioral changes, additions and documentation corrections since v1.0.1, with upgrade checklists. Signed-off-by: Ricardo Zanini --- docs/upgrade-to-1.1.0.md | 185 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 docs/upgrade-to-1.1.0.md diff --git a/docs/upgrade-to-1.1.0.md b/docs/upgrade-to-1.1.0.md new file mode 100644 index 00000000..7d92f896 --- /dev/null +++ b/docs/upgrade-to-1.1.0.md @@ -0,0 +1,185 @@ +# Upgrading from 1.0.1 to 1.1.0 + +This guide lists every change between `v1.0.1` (the last non-pre-release) and `v1.1.0`. The `v1.0.2` and `v1.0.3` tags were pre-releases, so they are folded in here. + +- [Who is affected](#who-is-affected) +- [Breaking changes](#breaking-changes) +- [Deprecations and renames](#deprecations-and-renames) +- [Behavioral changes for runtimes](#behavioral-changes-for-runtimes) +- [Additions](#additions) +- [Documentation corrections](#documentation-corrections) +- [Upgrade checklists](#upgrade-checklists) + +## Who is affected + +| Audience | What to do | +|:---------|:-----------| +| Workflow authors | Review [Breaking changes](#breaking-changes) marked **Author** and the [Deprecations and renames](#deprecations-and-renames). Then set `document.dsl: '1.1.0'` to use new features. Existing `1.0.x` workflows stay valid unless they hit one of those items. | +| Runtime implementers | Review all items marked **Runtime**, plus [Deprecations and renames](#deprecations-and-renames) and [Behavioral changes for runtimes](#behavioral-changes-for-runtimes). | +| SDK / tooling maintainers | Review items marked **Tooling**: the JSON schema file, the schema `$id`, and renamed schema titles. | +| Event consumers | Review the [event type namespace deprecation](#deprecations-and-renames) and the lifecycle event `outputUri` change. | + +## Breaking changes + +| # | Change | Affects | From (1.0.1) | To (1.1.0) | Ref | +|:-:|:-------|:--------|:-------------|:-----------|:----| +| 1 | `run.shell.arguments` type | Author, Runtime, Tooling | `map` (`object`) | `string[]`, passed as `argv` | #1129, #1195 | +| 2 | Lifecycle completed events | Runtime, Event consumers | `output` (map) in `workflow.completed` and `task.completed` | `outputUri` (URI, claim-check pattern) | #1151 | +| 3 | Schema file and `$id` | Tooling | `schema/workflow.json` and `workflow.yaml`, `$id` `https://serverlessworkflow.io/schemas/1.0.1/workflow.{json,yaml}` | YAML only. `schema/workflow.json` is removed. `$id` is `https://open-workflow-specification.org/schemas/1.1.0/workflow.yaml` | #1099, #1127 | +| 4 | `catch.errors.with` filter property | Author, Runtime | `details` | `detail` (matches RFC 7807) | #1161 | +| 5 | Inline OAuth2 authentication | Author | `authority` and `grant` optional | `authority` and `grant` **required** | #1161 | +| 6 | Reserved `call` names | Author | `call` function names that are not `asyncapi`, `grpc`, `http`, `openapi` are custom functions | `a2a` and `mcp` are also reserved and cannot name a custom function | #1101, #1102 | +| 7 | Schema `title` fixes | Tooling | `OAuth2Autenthication*`, `WithGRPCServicePost` | `OAuth2Authentication*`, `WithGRPCServicePort` | #1112, #1115 | +| 8 | URI field validation | Author, Tooling | `uriTemplate` required `scheme://...`. `LiteralUri` used `format: uri` | RFC 3986 URI-references accepted (relative references allowed). `LiteralUri` uses `format: uri-reference`. `LiteralUriTemplate` must contain a `{...}` expression. `LiteralUri` must not contain `{` or `}`. Both reject values that start with `${` | #1166, #1183 | + +### Migration details + +#### 1. `run.shell.arguments` + +```yaml +# 1.0.1 +run: + shell: + command: echo + arguments: + first: Foo + second: Bar + +# 1.1.0 +run: + shell: + command: echo + arguments: + - Foo + - Bar +``` + +`run.script.arguments` is **unchanged** from 1.0.1 and remains a map. It was briefly an array in the `1.0.2` and `1.0.3` pre-releases and was reverted (#1180, #1201). If you followed the pre-releases, switch back to a map. + +#### 2. Lifecycle `outputUri` + +Events larger than 64 KiB are not guaranteed to be delivered, so the output is no longer embedded. Producers publish a URI to the data, and consumers dereference it. + +```yaml +# 1.0.1 +output: + orderId: '0a7f8581-acb9-4133-a378-0460c98ea60c' + status: placed + +# 1.1.0 +outputUri: https://workflow-engine.example.com/workflows/orderPetWorkflow-ix7iryakiem8j/output +``` + +#### 3. Schema distribution + +Point validators at `schema/workflow.yaml`. Update any hard-coded `$id` or `$ref` to the new `$id`. + +#### 5. Inline OAuth2 + +Definitions that relied on the schema being permissive (no `authority` or `grant`) now fail validation. They were never meaningful, since an OAuth2 policy needs both. + +#### 8. URI validation + +Existing absolute URIs remain valid. Review any workflow that depended on a string being rejected for lacking `scheme://`. + +## Deprecations and renames + +These come from the project rename (#1127). They are **not breaking in 1.x**: nothing has to change to keep running on 1.1.0. The old identifiers are deprecated and **will be removed in 2.0.0**. + +| Identifier | Deprecated (1.0.1) | Replacement (1.1.0) | Status in 1.x | Ref | +|:-----------|:-------------------|:--------------------|:--------------|:----| +| Event type namespace | `io.serverlessworkflow.*` | `org.open-workflow-specification.*` | Runtimes **MUST** support both. Removed in 2.0.0 | #1127 | +| Standard error type URI host | `https://serverlessworkflow.io/spec/1.0.0/errors/*` | `https://open-workflow-specification.org/spec/1.0.0/errors/*` | Deprecated. Removed in 2.0.0 | #1127, #1188 | + +> [!NOTE] +> The old event namespace and the old error type host **will be removed in 2.0.0**. Migrate to the new identifiers during 1.x. + +**Event type namespace.** All lifecycle event types move to the new namespace, for example `io.serverlessworkflow.workflow.started.v1` becomes `org.open-workflow-specification.workflow.started.v1`. The specification requires runtimes to support both namespaces throughout 1.x and allows them to drop the old one in 2.0. Producers should emit the new namespace. Consumers should subscribe to both until all producers have upgraded. + +**Error type URIs.** The host changed. The `/spec/1.0.0/` path segment is intentionally unchanged. Runtimes should raise the standard errors with the new host. Workflows that filter on `catch.errors.with.type` should use the new host. The specification does not currently require runtimes to match the old host in 1.x, so check how your runtime handles workflows that still filter on it. Custom, user-defined error types are not affected. + +## Behavioral changes for runtimes + +These do not change the schema but change what a conforming runtime must do. + +| Change | Requirement | Ref | +|:-------|:------------|:----| +| jq output stream mapping | A single emitted value is returned as-is. Multiple values become an array in emission order. No value (`empty`) becomes `null`. An error after emitted values fails the expression. Runtimes must not apply `first(...)` implicitly | #1181 | +| No evaluation of input data | Runtimes **MUST** evaluate only expressions defined in the workflow, and **MUST NOT** evaluate expression syntax found in workflow or task input data | #1162 | +| Event `id` and `source` generation | `emit.event.with` requires only `type`. Runtimes generate `id` (for example a UUID) and `source` (for example from the workflow identity) at emission time. An author-supplied value takes precedence | #1167, #1174 | +| Shell task governance | Runtimes that support `run.shell` **MUST** document the commands and platforms they support, and **SHOULD** apply constraints such as allow-listing or sandboxing. Authors **SHOULD** avoid shell tasks when portability matters | #1194 | +| A2A defaults | For `message/send` and `message/stream`, runtimes default `message.messageId` to a UUID and `message.role` to `user` | #1102 | +| MCP initialization | Runtimes **must** send `initialize` before any other MCP request | #1101 | +| `try.catch.then` | When set, it determines the next transition after the error is caught (and after any `catch.do` tasks), overriding the try task's `then` and the default sequential flow | #1148 | +| Status code and headers | `statusCode` is the numeric status from the HTTP/1.1 status line or the HTTP/2 and HTTP/3 `:status` field. With `output: response`, `.headers`, `.statusCode` and `.content` are available in `output.as` and `export.as` | #1203 | +| CTK | New `expression.feature`. Extended `call.feature` (HTTP response output). `try` and `raise` features use the mandated communication error type | #1181, #1203, #1200 | + +## Additions + +All of these are backward compatible. Use them by setting `document.dsl: '1.1.0'`. + +| Addition | Detail | Ref | +|:---------|:-------|:----| +| `call: mcp` | Calls Model Context Protocol servers (`http` or `stdio` transport, optional `client`) | #1101 | +| `call: a2a` | Calls A2A agents (`agentCard` or `server`) | #1102 | +| `run.container`: `stdin`, `arguments`, `pullPolicy` | `pullPolicy` is `ifNotPresent` (default), `always` or `never` | #1129, #1138 | +| `run.script.stdin` | Runtime expression piped to the script | #1129 | +| `run.shell.stdin`, `run.shell.directory` | Standard input and working directory | #1129, #1191 | +| `schedule.on.read` | `data` (default), `envelope` or `raw`. Requires `schedule.on` | #1177 | +| `evaluate` (`language`, `mode`) | Now part of the schema. Both are optional (`jq` and `strict` by default) | #1160 | +| `for.in` inline array | An array literal in addition to a runtime expression. Any item type | #1163, #1186 | +| `try.catch.then` | Flow directive for the error path | #1148 | +| Duration as a runtime expression | `duration` accepts an expression that evaluates to an ISO 8601 string | #1119 | +| gRPC hosts with dots | `grpc.service.host` accepts `.` | #1111 | +| Event `source` auto-generation | See [Behavioral changes](#behavioral-changes-for-runtimes) | #1174 | + +## Documentation corrections + +The schema already behaved this way in 1.0.1. The reference documentation was wrong and now matches the schema. No action is needed unless your tooling followed the old text. + +| Area | Correction | Ref | +|:-----|:-----------|:----| +| `do` | Documented as required | #1156, #1179 | +| `use.extensions` | `extension[]`, not `map[string, extension]` | #1136, #1161 | +| `extend` values | The nonexistent `extension` value is removed | #1161 | +| `extension.before` / `after` | `task[]`, not a map | #1136 | +| `evaluate.language` / `mode` | Optional, not required | #1160 | +| AsyncAPI call | `channel` and `operation` are optional. Exactly one must be set, paired with `message` or `subscription` | #1161 | +| `run.workflow.namespace` | Documented as required | #1161 | +| Duration properties | Lower-case (`days`, `hours`, `minutes`, `seconds`, `milliseconds`) | #1161 | +| OAuth2 / OIDC `issuers` | `string[]`, not `uri-template[]` | #1161 | +| `retry.delay` | Documented | #1142 | +| Certificate authentication | The section is removed. It was documented but never in the schema | #1160 | +| Task `if` input | Evaluated against the **raw** task input | #1140 | +| Custom function example | `language: js` and `endpoint:` instead of `javascript` and `uri:` | #1136, #1161 | +| Examples and samples | Event type namespace and catalog links updated to the new organization | #1127, #1165 | + +## Upgrade checklists + +### Workflow authors + +- [ ] Convert `run.shell.arguments` from a map to a list. +- [ ] Rename `details` to `detail` in `catch.errors.with`. +- [ ] Add `authority` and `grant` to any inline OAuth2 definition that lacks them. +- [ ] Update filters on standard error `type` URIs to the new host. The old host is removed in 2.0.0. +- [ ] Rename custom functions called `a2a` or `mcp`. +- [ ] Update event `type` values that use `io.serverlessworkflow.*`. The old namespace is removed in 2.0.0. +- [ ] Set `document.dsl: '1.1.0'`. + +### Runtime implementers + +- [ ] Emit lifecycle events with the new namespace and keep accepting the old one through 1.x. The old namespace is removed in 2.0.0. +- [ ] Replace `output` with `outputUri` in the completed lifecycle events. +- [ ] Raise standard errors with the new type URI host. The old host is removed in 2.0.0. +- [ ] Implement the jq output stream mapping. +- [ ] Generate `id` and `source` for `emit` when absent. +- [ ] Accept `run.shell.arguments` as a list. +- [ ] Document supported shell commands and platforms. +- [ ] Re-run the CTK, including the new `expression.feature`. + +### SDK and tooling maintainers + +- [ ] Stop consuming `schema/workflow.json`. Generate from `schema/workflow.yaml`. +- [ ] Update the schema `$id` to `https://open-workflow-specification.org/schemas/1.1.0/workflow.yaml`. +- [ ] Regenerate models: `OAuth2Authentication*` and `WithGRPCServicePort` are renamed, and new types are added for `mcp`, `a2a`, `evaluate`, `schedule.on.read` and `for.in`. +- [ ] Accept `document.dsl` values of `1.0.x` and `1.1.0`.