From e02836fda4fd3c26b0e3fe5ac28ac61bc5817cbe Mon Sep 17 00:00:00 2001 From: Ricardo Zanini Date: Thu, 23 Jul 2026 15:04:02 -0400 Subject: [PATCH 1/4] [Fix #1151] Replace output with outputUri in lifecycle completed events Replace the output map property with an outputUri in both Workflow Completed and Task Completed lifecycle events. This adopts the Claim Check pattern to avoid exceeding CloudEvents 64KB size limits. Signed-off-by: Ricardo Zanini --- dsl-reference.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/dsl-reference.md b/dsl-reference.md index 23156db3..e1da63ff 100644 --- a/dsl-reference.md +++ b/dsl-reference.md @@ -1450,17 +1450,14 @@ The data carried by the cloud event that notifies that a workflow ran to complet |:--|:---:|:---:|:---| | name | `string` | `yes` | The qualified name of the workflow ran to completion. | | completedAt | `dateTime` | `yes` | The date and time at which the workflow ran to completion. | -| output | `map` | `no` | The workflow's output, if any. | +| outputUri | `uri` | `no` | A URI pointing to the workflow's output data, if any. Implementations **should** use this [Claim Check](https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html) approach instead of embedding the output directly, to avoid exceeding [CloudEvents size limits](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#size-limits). | ###### Examples ```yaml name: orderPetWorkflow-ix7iryakiem8j.samples completedAt: '2024-07-26T16:59:57-05:00' -output: - orderId: '0a7f8581-acb9-4133-a378-0460c98ea60c' - petId: xt84hj202q14s - status: placed +outputUri: https://workflow-engine.example.com/workflows/orderPetWorkflow-ix7iryakiem8j/output ``` ##### Workflow Status Changed Event @@ -1641,7 +1638,7 @@ The data carried by the cloud event that notifies that a task ran to completion. | workflow | `string` | `yes` | The qualified name of the workflow the task that ran to completion belongs to. | | task | `uri` | `yes` | A JSON Pointer that references the task that ran to completion. | | completedAt | `dateTime` | `yes` | The date and time at which the task ran to completion. | -| output | `map` | `no` | The task's output, if any. | +| outputUri | `uri` | `no` | A URI pointing to the task's output data, if any. Implementations **should** use this [Claim Check](https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html) approach instead of embedding the output directly, to avoid exceeding [CloudEvents size limits](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#size-limits). | ###### Examples @@ -1649,10 +1646,7 @@ The data carried by the cloud event that notifies that a task ran to completion. workflow: orderPetWorkflow-ix7iryakiem8j.samples task: '/do/1/initialize' completedAt: '2024-07-26T16:59:57-05:00' -output: - orderId: '0a7f8581-acb9-4133-a378-0460c98ea60c' - petId: xt84hj202q14s - status: placed +outputUri: https://workflow-engine.example.com/workflows/orderPetWorkflow-ix7iryakiem8j/tasks/initialize/output ``` ##### Task Status Changed Event From b43f060a38b10f011e3598b1e7bcc2c60bb5878e Mon Sep 17 00:00:00 2001 From: Ricardo Zanini <1538000+ricardozanini@users.noreply.github.com> Date: Thu, 23 Jul 2026 15:30:29 -0400 Subject: [PATCH 2/4] Consider co-pilot's review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- dsl-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dsl-reference.md b/dsl-reference.md index e1da63ff..49c9e743 100644 --- a/dsl-reference.md +++ b/dsl-reference.md @@ -1450,7 +1450,7 @@ The data carried by the cloud event that notifies that a workflow ran to complet |:--|:---:|:---:|:---| | name | `string` | `yes` | The qualified name of the workflow ran to completion. | | completedAt | `dateTime` | `yes` | The date and time at which the workflow ran to completion. | -| outputUri | `uri` | `no` | A URI pointing to the workflow's output data, if any. Implementations **should** use this [Claim Check](https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html) approach instead of embedding the output directly, to avoid exceeding [CloudEvents size limits](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#size-limits). | +| outputUri | `uri` | `no` | A URI pointing to the workflow's output data, if any. This follows the [Claim Check](https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html) pattern to avoid embedding potentially large outputs in the event and exceeding [CloudEvents size limits](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#size-limits). | ###### Examples From ab35e6790a0de3e3306a6726b0cfac4fc6ac622d Mon Sep 17 00:00:00 2001 From: Ricardo Zanini <1538000+ricardozanini@users.noreply.github.com> Date: Thu, 23 Jul 2026 15:34:29 -0400 Subject: [PATCH 3/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- dsl-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dsl-reference.md b/dsl-reference.md index 49c9e743..04a6bb1d 100644 --- a/dsl-reference.md +++ b/dsl-reference.md @@ -1450,7 +1450,7 @@ The data carried by the cloud event that notifies that a workflow ran to complet |:--|:---:|:---:|:---| | name | `string` | `yes` | The qualified name of the workflow ran to completion. | | completedAt | `dateTime` | `yes` | The date and time at which the workflow ran to completion. | -| outputUri | `uri` | `no` | A URI pointing to the workflow's output data, if any. This follows the [Claim Check](https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html) pattern to avoid embedding potentially large outputs in the event and exceeding [CloudEvents size limits](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#size-limits). | +| outputUri | `uri` | `no` | A URI pointing to the workflow's output data, if any. This follows the [Claim Check](https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html) pattern to avoid embedding large payloads in the event; events larger than 64 KiB are not guaranteed to be forwarded by intermediaries per the [CloudEvents size limits](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#size-limits). | ###### Examples From 06ccaeec0b415ec82ddce0a9756924a765bf0cf2 Mon Sep 17 00:00:00 2001 From: Ricardo Zanini <1538000+ricardozanini@users.noreply.github.com> Date: Thu, 23 Jul 2026 15:40:02 -0400 Subject: [PATCH 4/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- dsl-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dsl-reference.md b/dsl-reference.md index edea976f..4bef65cb 100644 --- a/dsl-reference.md +++ b/dsl-reference.md @@ -1638,7 +1638,7 @@ The data carried by the cloud event that notifies that a task ran to completion. | workflow | `string` | `yes` | The qualified name of the workflow the task that ran to completion belongs to. | | task | `uri` | `yes` | A JSON Pointer that references the task that ran to completion. | | completedAt | `dateTime` | `yes` | The date and time at which the task ran to completion. | -| outputUri | `uri` | `no` | A URI pointing to the task's output data, if any. Implementations **should** use this [Claim Check](https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html) approach instead of embedding the output directly, to avoid exceeding [CloudEvents size limits](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#size-limits). | +| outputUri | `uri` | `no` | A URI pointing to the task's output data, if any. This follows the [Claim Check](https://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html) pattern to avoid embedding large payloads in the event; events larger than 64 KiB are not guaranteed to be forwarded by intermediaries per the [CloudEvents size limits](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#size-limits). | ###### Examples