60 lines
3.3 KiB
Markdown
60 lines
3.3 KiB
Markdown
# govoplan-workflow
|
|
|
|
<!-- govoplan-repository-type:start -->
|
|
**Repository type:** module (platform).
|
|
<!-- govoplan-repository-type:end -->
|
|
|
|
`govoplan-workflow` currently owns process orchestration and its editor for
|
|
GovOPlaN. The accepted target separates the headless runtime into
|
|
`govoplan-workflow-engine`, while this module remains the optional authoring and
|
|
inspection interface.
|
|
|
|
The module should execute configurable state machines and command handoffs
|
|
between modules without importing their implementations. It coordinates cases,
|
|
tasks, forms, files, templates, mail, appointments, payments, and records
|
|
through capabilities, events, commands, and DTOs.
|
|
|
|
Workflow exposes a workflow-specific node library, a full definition editor,
|
|
validation APIs, tenant-isolated definitions, and immutable graph revisions.
|
|
Activation pins the exact revision that future instances will execute. It uses
|
|
Core's domain-neutral definition graph contract, but applies Workflow
|
|
constraints: exactly one trigger, at least one outcome, governed configuration
|
|
fields, connected nodes, and permitted loops for correction and retry paths.
|
|
Dataflow uses the same graph contract with its own acyclic transformation
|
|
library.
|
|
|
|
The executable runtime persists revision-pinned instances, append-only
|
|
transition evidence, resumable human handoffs, retries, cancellation, and
|
|
stable external output references. Dataflow nodes enqueue work through
|
|
Dataflow's lifecycle capability; Workflow never imports Dataflow internals.
|
|
Core's periodic worker reconciles linked runs after re-resolving the stored
|
|
automation principal, while the operator surface exposes progress, review
|
|
actions, evidence references, and direct navigation to Dataflow results.
|
|
|
|
Definitions can be complete flows or non-runnable templates at system,
|
|
tenant, group, or user scope. Policy resolves whether a definition can be
|
|
viewed, edited, started, reused, derived, or automated and returns the ordered
|
|
source path shown in the editor. Derivation copies an immutable graph revision
|
|
and records its hash, node-library version, source scope, actor, Policy
|
|
decision, and effective ancestor limits.
|
|
|
|
BPMN 2.0 is Workflow's canonical graph language. The existing native graph
|
|
editor models BPMN events, activities, gateways, data, collaborations, and
|
|
artifacts directly; there is no separate modeler or browser-side BPMN library.
|
|
XML import projects BPMN semantics and DI geometry into that graph, while XML
|
|
export renders a deterministic interchange document from the graph. Immutable
|
|
revisions pin both representations and the native profile version. Unsupported
|
|
runtime semantics remain editable and portable, but activation fails closed.
|
|
|
|
The start-node library distinguishes explicit user, API, scheduled, event, and
|
|
parent-workflow starts. Manual starts and Dataflow/human handoffs are
|
|
operational. The other trigger and generic capability nodes remain explicit
|
|
definition contracts until their event/schedule dispatchers and versioned
|
|
operation providers are implemented.
|
|
|
|
See [docs/CONCEPT.md](docs/CONCEPT.md) for the complete module concept.
|
|
See [docs/BPMN_INTEROPERABILITY.md](docs/BPMN_INTEROPERABILITY.md) for the
|
|
notation, conformance, and adapter boundary.
|
|
See [docs/ENGINE_EDITOR_SPLIT.md](docs/ENGINE_EDITOR_SPLIT.md) for the accepted
|
|
runtime/editor extraction and module-owned workflow baseline model.
|