feat(dataflow): preserve publication review outcomes
Module Package Release / publish-packages (push) Successful in 13s

This commit is contained in:
2026-08-21 17:36:19 +02:00
parent 6767905cbb
commit a86220db27
7 changed files with 84 additions and 11 deletions
+17 -3
View File
@@ -56,7 +56,7 @@ from govoplan_dataflow.backend.dsar_provider import (
MODULE_ID = "dataflow"
MODULE_NAME = "Dataflow"
MODULE_VERSION = "0.1.18"
MODULE_VERSION = "0.1.19"
READ_SCOPE = "dataflow:pipeline:read"
WRITE_SCOPE = "dataflow:pipeline:write"
@@ -262,7 +262,12 @@ DOCUMENTATION = (
"Scope determines ownership and Policy inheritance. Templates can be derived but not run; complete "
"flows may be previewed, revisioned, automated, and executed when effective Policy allows it. Saving "
"appends an immutable revision. A scoped copy pins its source revision and content hash. Triggers pin "
"the revision and authorization grant, then re-evaluate authority for every delivery. Runs create "
"the revision and authorization grant, then re-evaluate authority for every delivery. Allow runs is "
"the definition-level admission boundary and does not grant a caller permission. A one-time run uses "
"the configured tenant-local date and time. The missed-run policy either coalesces elapsed interval "
"occurrences into one latest delivery or skips them; it never silently replays every missed occurrence. "
"The concurrency limit bounds active deliveries for that trigger and does not increase tenant worker "
"capacity. Runs create "
"durable command and recovery evidence. Publishing creates a governed Datasource materialization, and "
"environment promotion changes which immutable revision is eligible for staging or production runs. "
"Recording a reconciliation decision uses optimistic concurrency and appends an immutable revision; "
@@ -285,6 +290,10 @@ DOCUMENTATION = (
"help_contexts": [
"dataflow.field.scope",
"dataflow.field.definition-kind",
"dataflow.field.allow-runs",
"dataflow.field.trigger-run-at",
"dataflow.field.trigger-missed-runs",
"dataflow.field.trigger-concurrency",
"dataflow.action.save",
"dataflow.action.derive",
"dataflow.action.trigger",
@@ -309,7 +318,11 @@ DOCUMENTATION = (
"environment, progress, cancellation, output, and recovery state. Database-only runs commit atomically. "
"Publication to a governed Datasource uses forward recovery: an unknown provider outcome is reconciled "
"before retry so output is not duplicated. Staging and production promotion is explicit and does not "
"rewrite a revision. Cancellation is best effort once external work has started; the final evidence "
"rewrite a revision. Freezing a published state assigns a durable label to the exact immutable output; "
"it does not copy or detach the data from Datasources retention, hold, and access rules. Artifact-backed "
"outputs return the same stable publication, datasource, and materialization references as inline "
"outputs. Datasource warnings and review-required states remain visible to Workflow instead of being "
"collapsed into success. Cancellation is best effort once external work has started; the final evidence "
"states whether work stopped, completed, failed, or requires operator reconciliation. Scheduled, event, "
"and queued execution is partitioned by tenant module entitlement before a run is claimed. Disabling "
"Dataflow stops new admission and leaves accepted runs available for an explicit operator decision."
@@ -325,6 +338,7 @@ DOCUMENTATION = (
"dataflow.runs",
"dataflow.action.queue-run",
"dataflow.action.publish",
"dataflow.field.freeze-publication",
"dataflow.action.promote-staging",
"dataflow.action.promote-production",
"dataflow.state.recovery-attention",