refactor: retain workflow as optional editor
This commit is contained in:
@@ -1,59 +1,32 @@
|
||||
# govoplan-workflow
|
||||
# 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.
|
||||
Optional visual authoring and inspection workspace for GovOPlaN Workflow
|
||||
Engine.
|
||||
|
||||
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.
|
||||
This module owns the Workflow catalogue, native BPMN/graph editor, validation
|
||||
and activation UI, immutable revision inspection, instance controls, and the
|
||||
governed module-standard compare/override/reset experience. The headless
|
||||
`govoplan-workflow-engine` package owns persistence, migrations, API routes,
|
||||
runtime services, and module integration contracts.
|
||||
|
||||
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.
|
||||
For one compatibility release, Python imports below
|
||||
`govoplan_workflow.backend` re-export their corresponding Workflow Engine
|
||||
implementations. New module code must use Core's `workflow.*` capabilities or,
|
||||
for engine implementation code, `govoplan_workflow_engine` directly.
|
||||
|
||||
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.
|
||||
See [the engine/editor split](docs/ENGINE_EDITOR_SPLIT.md) for the durable
|
||||
ownership boundary.
|
||||
See [the module concept](docs/CONCEPT.md) and
|
||||
[BPMN interoperability contract](docs/BPMN_INTEROPERABILITY.md) for the shared
|
||||
model retained by Workflow Engine.
|
||||
|
||||
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.
|
||||
## Checks
|
||||
|
||||
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.
|
||||
```bash
|
||||
/mnt/DATA/git/govoplan/.venv/bin/python -m unittest discover -s tests
|
||||
cd webui && npm run typecheck
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user