An infrastructure with 87 certificates across all environments needs automated lifecycle management. The system must inventory all certificates, identify the 5 that are expiring within the renewal window, renew them, and distribute the renewed certificates to 12 endpoints.
cm_inventory ──> cm_assess_expiry ──> cm_renew ──> cm_distribute
Workflow certificate_management_workflow accepts scope and renewalWindow. Times out after 1200 seconds.
InventoryWorker (cm_inventory) -- scans all environments and reports "87 certificates found". Returns inventoryId = "INVENTORY-1354".
AssessExpiryWorker (cm_assess_expiry) -- evaluates expiry dates and reports "5 certificates expiring within renewal window". Returns assess_expiry = true.
RenewWorker (cm_renew) -- renews the expiring certificates. Reports "5 certificates renewed successfully". Returns renew = true.
DistributeWorker (cm_distribute) -- distributes renewed certificates. Reports "Renewed certificates distributed to 12 endpoints". Returns distribute = true.
The workflow produces inventoryResult, distributeResult as output parameters, capturing the result of each pipeline stage for downstream consumers and observability.
This example contains 4 worker implementations in src/main/java/*/workers/, the workflow definition in src/main/resources/workflow.json, and integration tests in src/test/. The workflow certificate_management_workflow defines 4 tasks with input parameters scope, renewalWindow and a timeout of 1200 seconds.
Schema version 2, workflow version 1. Owner: examples@orkes.io.
2 tests verify the end-to-end certificate lifecycle from inventory through distribution.
See RUNNING.md for setup and execution instructions.