[Feature] Add profile-based BPMN execution adapters and conformance fixtures #10

Closed
opened 2026-07-30 17:34:17 +02:00 by zemion · 2 comments
Owner

Define executable BPMN support as explicit, versioned profiles over Workflow's canonical BPMN graph. Execution adapters extend runtime behavior; they are not alternative graph languages or editors.

Acceptance criteria

  • Execution adapters announce supported BPMN elements, event definitions, conformance class, version, runtime kind, and operational requirements.
  • New revisions pin govoplan.native.bpmn; historical model-only and linear profiles remain read-compatible.
  • Activation fails closed when a definition uses executable semantics not implemented by the selected profile.
  • Native mappings cover only semantics with lifecycle, idempotency, retry, timer, compensation, and resume tests.
  • External-engine adapters register through a module boundary and do not create hard module imports.
  • Conformance fixtures cover gateways, boundary/events, subprocesses, call activities, transactions, compensation, messages/signals, human tasks, collaboration, choreography, and data.
  • Runtime state and audit evidence remain available through the canonical Workflow instance contract.

Depends on #9 and relates to #5.

Define executable BPMN support as explicit, versioned profiles over Workflow's canonical BPMN graph. Execution adapters extend runtime behavior; they are not alternative graph languages or editors. ## Acceptance criteria - Execution adapters announce supported BPMN elements, event definitions, conformance class, version, runtime kind, and operational requirements. - New revisions pin `govoplan.native.bpmn`; historical model-only and linear profiles remain read-compatible. - Activation fails closed when a definition uses executable semantics not implemented by the selected profile. - Native mappings cover only semantics with lifecycle, idempotency, retry, timer, compensation, and resume tests. - External-engine adapters register through a module boundary and do not create hard module imports. - Conformance fixtures cover gateways, boundary/events, subprocesses, call activities, transactions, compensation, messages/signals, human tasks, collaboration, choreography, and data. - Runtime state and audit evidence remain available through the canonical Workflow instance contract. Depends on #9 and relates to #5.
Author
Owner

Codex State: done

Versioned BPMN execution profiles and the external-adapter boundary are complete in the current working tree.

  • Adapters publish stable ID/version, runtime kind, conformance, supported elements/event definitions, and operational requirements through govoplan.workflow.bpmn_adapters entry points.
  • Revisions and UI selections pin the exact adapter version; missing or failed adapters leave XML readable but make activation fail closed.
  • bpmn.interchange@1.0.0 is explicitly model-only. govoplan.native.linear@1.0.0 accepts only one plain executable linear process and maps stable BPMN IDs/DI positions to canonical Workflow state.
  • Gateways, subprocesses, call activities, boundary/events, transactions, compensation, messages/signals, collaboration, and choreography are fixture-covered but rejected by the native profile rather than silently approximated.
  • Native lifecycle tests cover idempotent start/replay, human handoff, resume, completion, and canonical append-only instance events. External engines must materialize the same Workflow instance/audit contract and require no hard module imports.

Verification: Workflow suite 33 tests; Ruff clean; Workflow TypeScript clean; combined production build/bundle budget clean.

Implementation is complete locally and will be included in the next repository push.

## Codex State: done Versioned BPMN execution profiles and the external-adapter boundary are complete in the current working tree. - Adapters publish stable ID/version, runtime kind, conformance, supported elements/event definitions, and operational requirements through `govoplan.workflow.bpmn_adapters` entry points. - Revisions and UI selections pin the exact adapter version; missing or failed adapters leave XML readable but make activation fail closed. - `bpmn.interchange@1.0.0` is explicitly model-only. `govoplan.native.linear@1.0.0` accepts only one plain executable linear process and maps stable BPMN IDs/DI positions to canonical Workflow state. - Gateways, subprocesses, call activities, boundary/events, transactions, compensation, messages/signals, collaboration, and choreography are fixture-covered but rejected by the native profile rather than silently approximated. - Native lifecycle tests cover idempotent start/replay, human handoff, resume, completion, and canonical append-only instance events. External engines must materialize the same Workflow instance/audit contract and require no hard module imports. Verification: Workflow suite 33 tests; Ruff clean; Workflow TypeScript clean; combined production build/bundle budget clean. Implementation is complete locally and will be included in the next repository push.
Author
Owner

Codex State: done

Summary

  • Execution profiles now operate over the canonical native BPMN graph rather than selecting an alternative editor representation.
  • New revisions pin govoplan.native.bpmn; historical model-only and linear adapters remain available for revision compatibility.
  • Valid notation stays editable, while runtime materialization and activation fail closed for unsupported token/lifecycle semantics.

Changed Files

  • src/govoplan_workflow/backend/bpmn_adapters.py
  • src/govoplan_workflow/backend/service.py
  • src/govoplan_workflow/backend/instance_service.py
  • src/govoplan_workflow/backend/validation.py

Verification

  • Workflow backend suite: 47 tests passed
  • Ruff passed
  • Focused platform contract, dependency-boundary, and module-permutation checks passed
## Codex State: done ### Summary - Execution profiles now operate over the canonical native BPMN graph rather than selecting an alternative editor representation. - New revisions pin govoplan.native.bpmn; historical model-only and linear adapters remain available for revision compatibility. - Valid notation stays editable, while runtime materialization and activation fail closed for unsupported token/lifecycle semantics. ### Changed Files - `src/govoplan_workflow/backend/bpmn_adapters.py` - `src/govoplan_workflow/backend/service.py` - `src/govoplan_workflow/backend/instance_service.py` - `src/govoplan_workflow/backend/validation.py` ### Verification - `Workflow backend suite: 47 tests passed` - `Ruff passed` - `Focused platform contract, dependency-boundary, and module-permutation checks passed`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-workflow#10