Migrate Dataflow interface patterns
This commit is contained in:
@@ -181,6 +181,113 @@ DOCUMENTATION = (
|
||||
"Output publication uses forward recovery and blocks blind retry "
|
||||
"when provider acknowledgement is uncertain."
|
||||
),
|
||||
"help_contexts": [
|
||||
"dataflow.page",
|
||||
"dataflow.library",
|
||||
"dataflow.graph",
|
||||
"dataflow.sql",
|
||||
"dataflow.inspector",
|
||||
"dataflow.results",
|
||||
"dataflow.state.read-only",
|
||||
],
|
||||
},
|
||||
),
|
||||
DocumentationTopic(
|
||||
id="dataflow.reference.nodes-and-expressions",
|
||||
title="Dataflow nodes and expressions",
|
||||
summary="Typed node inputs, expressions, schema propagation, and bounded intermediate previews.",
|
||||
body=(
|
||||
"Every graph node declares typed inputs, configuration, output schema, and validation rules. "
|
||||
"Source nodes pin inline content or governed Datasource references; combine, filter, transform, "
|
||||
"quality, reconciliation, reusable-subflow, and output nodes remain explicit in the canonical graph. "
|
||||
"Expressions use the typed Dataflow expression language and never execute arbitrary host or database "
|
||||
"code. Selecting a node may request a bounded intermediate preview; preview rows are transient, "
|
||||
"privacy-filtered for the actor, and are not retained as run output. SQL editing compiles into the same "
|
||||
"canonical graph, so unsupported statements are diagnostics rather than pass-through SQL."
|
||||
),
|
||||
layer="available",
|
||||
documentation_types=("admin", "user"),
|
||||
audience=("operator", "module_admin", "power_user", "data_steward"),
|
||||
order=76,
|
||||
related_modules=("datasources", "connectors", "policy", "audit"),
|
||||
metadata={
|
||||
"help_contexts": [
|
||||
"dataflow.field.node-name",
|
||||
"dataflow.field.source",
|
||||
"dataflow.field.expression",
|
||||
"dataflow.field.schema",
|
||||
"dataflow.action.preview-node",
|
||||
],
|
||||
},
|
||||
),
|
||||
DocumentationTopic(
|
||||
id="dataflow.reference.fields-and-consequences",
|
||||
title="Dataflow fields and lifecycle consequences",
|
||||
summary="Definition scope, revision, reuse, automation, execution, publication, promotion, and deletion semantics.",
|
||||
body=(
|
||||
"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 "
|
||||
"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. "
|
||||
"Deletion prevents future use while retained run, deployment, lineage, audit, and recovery evidence "
|
||||
"continues under its retention policy."
|
||||
),
|
||||
layer="available",
|
||||
documentation_types=("admin", "user"),
|
||||
audience=("operator", "module_admin", "power_user", "product_owner"),
|
||||
order=77,
|
||||
related_modules=("datasources", "workflow_engine", "notifications", "policy", "audit"),
|
||||
metadata={
|
||||
"help_contexts": [
|
||||
"dataflow.field.scope",
|
||||
"dataflow.field.definition-kind",
|
||||
"dataflow.action.save",
|
||||
"dataflow.action.derive",
|
||||
"dataflow.action.trigger",
|
||||
"dataflow.action.delete",
|
||||
],
|
||||
"consequence_classes": {
|
||||
"save_revision": "Appends an immutable pipeline definition revision.",
|
||||
"derive_copy": "Creates a separately governed copy pinned to the source revision and hash.",
|
||||
"configure_trigger": "Creates or changes an automation command with revision and authorization evidence.",
|
||||
"delete_pipeline": "Prevents future use while retained evidence remains governed.",
|
||||
},
|
||||
},
|
||||
),
|
||||
DocumentationTopic(
|
||||
id="dataflow.execution-and-recovery",
|
||||
title="Dataflow execution, publication, and recovery",
|
||||
summary="Pinned runs, environment promotion, output publication, cancellation, reconciliation, and retained evidence.",
|
||||
body=(
|
||||
"Every run is pinned to an immutable revision and idempotency key. The queue records actor, authority, "
|
||||
"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 "
|
||||
"states whether work stopped, completed, failed, or requires operator reconciliation."
|
||||
),
|
||||
layer="available",
|
||||
documentation_types=("admin", "user"),
|
||||
audience=("operator", "module_admin", "power_user", "security_admin"),
|
||||
order=78,
|
||||
related_modules=("datasources", "notifications", "policy", "audit", "ops"),
|
||||
metadata={
|
||||
"help_contexts": [
|
||||
"dataflow.runs",
|
||||
"dataflow.action.queue-run",
|
||||
"dataflow.action.publish",
|
||||
"dataflow.action.promote-staging",
|
||||
"dataflow.action.promote-production",
|
||||
"dataflow.state.recovery-attention",
|
||||
],
|
||||
"consequence_classes": {
|
||||
"queue_run": "Creates a durable asynchronous command and authorization evidence.",
|
||||
"publish_output": "Creates or updates a governed Datasource and appends a materialization.",
|
||||
"promote_revision": "Makes an immutable revision eligible in a higher execution environment.",
|
||||
"cancel_run": "Requests cancellation; already acknowledged external effects may remain.",
|
||||
},
|
||||
},
|
||||
),
|
||||
)
|
||||
@@ -374,6 +481,69 @@ manifest = ModuleManifest(
|
||||
),
|
||||
),
|
||||
view_surfaces=(
|
||||
ViewSurface(
|
||||
id="dataflow.page",
|
||||
module_id=MODULE_ID,
|
||||
kind="route",
|
||||
label="Dataflow",
|
||||
order=72,
|
||||
),
|
||||
ViewSurface(
|
||||
id="dataflow.library",
|
||||
module_id=MODULE_ID,
|
||||
kind="section",
|
||||
label="Pipeline library",
|
||||
parent_id="dataflow.page",
|
||||
order=10,
|
||||
),
|
||||
ViewSurface(
|
||||
id="dataflow.graph",
|
||||
module_id=MODULE_ID,
|
||||
kind="section",
|
||||
label="Graph editor",
|
||||
parent_id="dataflow.page",
|
||||
order=20,
|
||||
),
|
||||
ViewSurface(
|
||||
id="dataflow.sql",
|
||||
module_id=MODULE_ID,
|
||||
kind="section",
|
||||
label="Constrained SQL editor",
|
||||
parent_id="dataflow.page",
|
||||
order=30,
|
||||
),
|
||||
ViewSurface(
|
||||
id="dataflow.inspector",
|
||||
module_id=MODULE_ID,
|
||||
kind="section",
|
||||
label="Node inspector",
|
||||
parent_id="dataflow.page",
|
||||
order=40,
|
||||
),
|
||||
ViewSurface(
|
||||
id="dataflow.results",
|
||||
module_id=MODULE_ID,
|
||||
kind="section",
|
||||
label="Preview and diagnostics",
|
||||
parent_id="dataflow.page",
|
||||
order=50,
|
||||
),
|
||||
ViewSurface(
|
||||
id="dataflow.triggers",
|
||||
module_id=MODULE_ID,
|
||||
kind="action",
|
||||
label="Automation triggers",
|
||||
parent_id="dataflow.page",
|
||||
order=60,
|
||||
),
|
||||
ViewSurface(
|
||||
id="dataflow.runs",
|
||||
module_id=MODULE_ID,
|
||||
kind="action",
|
||||
label="Runs and deployments",
|
||||
parent_id="dataflow.page",
|
||||
order=70,
|
||||
),
|
||||
ViewSurface(
|
||||
id="dataflow.widget.pipelines",
|
||||
module_id=MODULE_ID,
|
||||
|
||||
Reference in New Issue
Block a user