feat(workflow): orchestrate resumable dataflow handoffs

This commit is contained in:
2026-07-30 03:11:56 +02:00
parent a1654e70cf
commit a6e0e89829
18 changed files with 3938 additions and 27 deletions
+63 -1
View File
@@ -243,6 +243,12 @@ WORKFLOW_NODE_TYPES = (
input_ports=(DefinitionPort(id="input", label="Input"),),
output_ports=(
DefinitionPort(id="success", label="Success", required=False),
DefinitionPort(id="warning", label="Warning", required=False),
DefinitionPort(
id="review_required",
label="Review required",
required=False,
),
DefinitionPort(id="failure", label="Failure", required=False),
),
config_fields=(
@@ -294,6 +300,12 @@ WORKFLOW_NODE_TYPES = (
input_ports=(DefinitionPort(id="input", label="Input"),),
output_ports=(
DefinitionPort(id="success", label="Success", required=False),
DefinitionPort(id="warning", label="Warning", required=False),
DefinitionPort(
id="review_required",
label="Review required",
required=False,
),
DefinitionPort(id="failure", label="Failure", required=False),
),
config_fields=(
@@ -303,9 +315,59 @@ WORKFLOW_NODE_TYPES = (
kind="dataflow",
required=True,
),
DefinitionConfigField(
id="revision",
label="Pinned revision",
kind="number",
required=True,
),
DefinitionConfigField(
id="environment",
label="Environment",
kind="select",
required=True,
options=(
("development", "Development"),
("staging", "Staging"),
("production", "Production"),
),
),
DefinitionConfigField(
id="row_limit",
label="Output row limit",
kind="number",
required=True,
),
DefinitionConfigField(
id="publication_target_ref",
label="Publication datasource",
kind="text",
description=(
"Optional stable Datasource target for materialized "
"output."
),
),
DefinitionConfigField(
id="warning_policy",
label="Warnings",
kind="select",
required=True,
options=(
("review", "Require review"),
("continue", "Continue"),
),
),
DefinitionConfigField(id="input_mapping", label="Input mapping", kind="mapping"),
),
default_config={"pipeline_ref": "", "input_mapping": {}},
default_config={
"pipeline_ref": "",
"revision": 1,
"environment": "development",
"row_limit": 500,
"publication_target_ref": "",
"warning_policy": "review",
"input_mapping": {},
},
),
DefinitionNodeType(
type="workflow.end.completed",