Files
govoplan-workflow/README.md
T

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.