Skip to content
SurfaceDocs
FRGet started
DocsModel reference

flowComposition

Properties, variants, types and bounds for flowComposition.

This reference describes the full structure of flowComposition. Paths include nested objects, list items and conditional branches. A branch selected by kind, contract or mode only admits its own properties.

Structure and values

Field Options / expected values Description
contract "FlowComposition@1" Required. Exact discriminant of this contract variant. Match the literal value shown.
rootWorkNodeKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
stateSurfaceDefinitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of the relevant definition type; each reference must exist in the Model and respect declared scope.
subflowLinkTypePath string; min length 1; max length 600; null Required. Declared relation type with sources, targets and direction compatible with this traversal.
entryStepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
inputs Array<closed object>; max length 50 Required. Named, typed inputs needed by the composition or operation.
inputs[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
inputs[].type "text" | "number" | "boolean" | "surface-reference" | "result-reference" Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
inputs[].provenance "caller" | "canonical" | "derived" Required. Source or result origin with verifiable references.
inputs[].minimum integer; ≥ 0; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
inputs[].maximum integer; ≥ 1; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
contexts Array<closed object>; max length 30 Required. Defines contexts for this object. Observe the type, variants and bounds in the Options column.
contexts[].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
contexts[].source closed object OR closed object OR closed object Required. Defines source for this object. Observe the type, variants and bounds in the Options column.
contexts[].source.[kind=input].kind "input" Required. Selects the variant and the properties admitted in this branch.
contexts[].source.[kind=input].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
contexts[].source.[kind=step].kind "step" Required. Selects the variant and the properties admitted in this branch.
contexts[].source.[kind=step].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
contexts[].source.[kind=collection-item].kind "collection-item" Required. Selects the variant and the properties admitted in this branch.
contexts[].source.[kind=collection-item].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
outputs Array<closed object>; max length 50 Required. Outputs exposed by the composition using declared names.
outputs[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
outputs[].type "text" | "number" | "boolean" | "surface-reference" | "result-reference" Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
outputs[].provenance "caller" | "canonical" | "derived" Required. Source or result origin with verifiable references.
outputs[].minimum integer; ≥ 0; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
outputs[].maximum integer; ≥ 1; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
outputs[].source closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object Required. Defines source for this object. Observe the type, variants and bounds in the Options column.
outputs[].source.[kind=input].kind "input" Required. Selects the variant and the properties admitted in this branch.
outputs[].source.[kind=input].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
outputs[].source.[kind=input-node-id].kind "input-node-id" Required. Selects the variant and the properties admitted in this branch.
outputs[].source.[kind=input-node-id].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
outputs[].source.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
outputs[].source.[kind=field].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
outputs[].source.[kind=field].fieldKey string; min length 1; max length 120 Required. Key of a Field declared on the referenced Surface definition.
outputs[].source.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
outputs[].source.[kind=literal].value string; max length 4000 OR number OR true | false OR null Required. Effective value interpreted according to the enclosing type and discriminant.
outputs[].source.[kind=collection-item].kind "collection-item" Required. Selects the variant and the properties admitted in this branch.
outputs[].source.[kind=collection-node-id].kind "collection-node-id" Required. Selects the variant and the properties admitted in this branch.
outputs[].source.[kind=iteration-number].kind "iteration-number" Required. Selects the variant and the properties admitted in this branch.
outputs[].source.[kind=step-output].kind "step-output" Required. Selects the variant and the properties admitted in this branch.
outputs[].source.[kind=step-output].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
outputs[].source.[kind=step-output].outputKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
outputs[].reduction "first" | "ordered-list" | "distinct-list" Required. Defines reduction for this object. Observe the type, variants and bounds in the Options column.
steps Array<closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object>; min length 1; max length 200 Required. Composition steps in their declared organization.
steps[].[kind=task].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=task].kind "task" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].workNodeKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=task].actionKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Reference to a declared Action; rendering does not execute it.
steps[].[kind=task].inputs Record<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u, closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object> Required. Named, typed inputs needed by the composition or operation.
steps[].[kind=task].inputs{key}.[kind=input].kind "input" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].inputs{key}.[kind=input].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=task].inputs{key}.[kind=input-node-id].kind "input-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].inputs{key}.[kind=input-node-id].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=task].inputs{key}.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].inputs{key}.[kind=field].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
steps[].[kind=task].inputs{key}.[kind=field].fieldKey string; min length 1; max length 120 Required. Key of a Field declared on the referenced Surface definition.
steps[].[kind=task].inputs{key}.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].inputs{key}.[kind=literal].value string; max length 4000 OR number OR true | false OR null Required. Effective value interpreted according to the enclosing type and discriminant.
steps[].[kind=task].inputs{key}.[kind=collection-item].kind "collection-item" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].inputs{key}.[kind=collection-node-id].kind "collection-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].inputs{key}.[kind=iteration-number].kind "iteration-number" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].inputs{key}.[kind=step-output].kind "step-output" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=task].inputs{key}.[kind=step-output].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=task].inputs{key}.[kind=step-output].outputKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=task].outputs Array<closed object>; max length 20 Required. Outputs exposed by the composition using declared names.
steps[].[kind=task].outputs[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=task].outputs[].type "text" | "number" | "boolean" | "surface-reference" | "result-reference" Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=task].outputs[].provenance "caller" | "canonical" | "derived" Required. Source or result origin with verifiable references.
steps[].[kind=task].outputs[].minimum integer; ≥ 0; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=task].outputs[].maximum integer; ≥ 1; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=task].outputs[].result "reference" | "summary" | "outputs" | "decisions" | "nextSteps" | "blockers" Required. Defines result for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=task].reservedCostUnits integer; ≥ 0; ≤ 1000000 Required. Defines reserved Cost Units for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=task].maximumAttempts integer; ≥ 1; ≤ 10 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=sequence].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=sequence].kind "sequence" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=sequence].steps Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; min length 1; max length 100 Required. Composition steps in their declared organization.
steps[].[kind=choice].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=choice].kind "choice" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=choice].mode "exclusive" | "multiple" Required. Defines mode for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].branches Array<closed object>; min length 1; max length 100 Required. Defines branches for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].branches[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=choice].branches[].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=choice].branches[].ruleKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=choice].minimum integer; ≥ 1; ≤ 100 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=choice].maximum integer; ≥ 1; ≤ 100 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=choice].selection "all-eligible" | "explicit" Required. Defines selection for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].confirmation "required" | "not-required" Required. Requires or configures intent review before execution; does not replace permissions.
steps[].[kind=choice].freshness "captured" | "require-current" Required. Defines freshness for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].join closed object OR closed object Required. Defines join for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].join.[mode=all].mode "all" Required. Defines mode for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].join.[mode=all].remaining "wait" Required. Defines remaining for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].join.[mode=quorum].mode "quorum" Required. Defines mode for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].join.[mode=quorum].successes integer; ≥ 1; ≤ 1000 Required. Defines successes for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=choice].join.[mode=quorum].remaining "wait" | "request-cancel" Required. Defines remaining for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=parallel].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=parallel].kind "parallel" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=parallel].branches Array<closed object>; min length 1; max length 100 Required. Defines branches for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=parallel].branches[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=parallel].branches[].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=parallel].maximumConcurrency integer; ≥ 1; ≤ 100 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=parallel].join closed object OR closed object Required. Defines join for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=parallel].join.[mode=all].mode "all" Required. Defines mode for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=parallel].join.[mode=all].remaining "wait" Required. Defines remaining for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=parallel].join.[mode=quorum].mode "quorum" Required. Defines mode for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=parallel].join.[mode=quorum].successes integer; ≥ 1; ≤ 1000 Required. Defines successes for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=parallel].join.[mode=quorum].remaining "wait" | "request-cancel" Required. Defines remaining for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=subflow].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=subflow].kind "subflow" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].blueprintKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=subflow].inputs Record<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u, closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object> Required. Named, typed inputs needed by the composition or operation.
steps[].[kind=subflow].inputs{key}.[kind=input].kind "input" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].inputs{key}.[kind=input].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=subflow].inputs{key}.[kind=input-node-id].kind "input-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].inputs{key}.[kind=input-node-id].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=subflow].inputs{key}.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].inputs{key}.[kind=field].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
steps[].[kind=subflow].inputs{key}.[kind=field].fieldKey string; min length 1; max length 120 Required. Key of a Field declared on the referenced Surface definition.
steps[].[kind=subflow].inputs{key}.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].inputs{key}.[kind=literal].value string; max length 4000 OR number OR true | false OR null Required. Effective value interpreted according to the enclosing type and discriminant.
steps[].[kind=subflow].inputs{key}.[kind=collection-item].kind "collection-item" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].inputs{key}.[kind=collection-node-id].kind "collection-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].inputs{key}.[kind=iteration-number].kind "iteration-number" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].inputs{key}.[kind=step-output].kind "step-output" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=subflow].inputs{key}.[kind=step-output].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=subflow].inputs{key}.[kind=step-output].outputKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=collection].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=collection].kind "collection" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].queryKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Reference to a declared Query; scope and authorization remain enforced by the data engine.
steps[].[kind=collection].parameters Record<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u, closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object> Required. Named operation or Query parameters and their associated values.
steps[].[kind=collection].parameters{key}.[kind=input].kind "input" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].parameters{key}.[kind=input].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=collection].parameters{key}.[kind=input-node-id].kind "input-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].parameters{key}.[kind=input-node-id].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=collection].parameters{key}.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].parameters{key}.[kind=field].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
steps[].[kind=collection].parameters{key}.[kind=field].fieldKey string; min length 1; max length 120 Required. Key of a Field declared on the referenced Surface definition.
steps[].[kind=collection].parameters{key}.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].parameters{key}.[kind=literal].value string; max length 4000 OR number OR true | false OR null Required. Effective value interpreted according to the enclosing type and discriminant.
steps[].[kind=collection].parameters{key}.[kind=collection-item].kind "collection-item" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].parameters{key}.[kind=collection-node-id].kind "collection-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].parameters{key}.[kind=iteration-number].kind "iteration-number" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].parameters{key}.[kind=step-output].kind "step-output" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=collection].parameters{key}.[kind=step-output].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=collection].parameters{key}.[kind=step-output].outputKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=collection].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=collection].maximumItems integer; ≥ 1; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=collection].maximumPages integer; ≥ 1; ≤ 100 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=collection].maximumOutputBytes integer; ≥ 1024; ≤ 16000000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=collection].maximumConcurrency integer; ≥ 1; ≤ 100 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=collection].freshness "captured" | "require-current" Required. Defines freshness for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=collection].join closed object OR closed object Required. Defines join for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=collection].join.[mode=all].mode "all" Required. Defines mode for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=collection].join.[mode=all].remaining "wait" Required. Defines remaining for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=collection].join.[mode=quorum].mode "quorum" Required. Defines mode for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=collection].join.[mode=quorum].successes integer; ≥ 1; ≤ 1000 Required. Defines successes for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=collection].join.[mode=quorum].remaining "wait" | "request-cancel" Required. Defines remaining for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=iterate].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=iterate].kind "iterate" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=iterate].stopRuleKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=iterate].maximumIterations integer; ≥ 1; ≤ 100 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=iterate].inputs Record<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u, closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object> Required. Named, typed inputs needed by the composition or operation.
steps[].[kind=iterate].inputs{key}.[kind=input].kind "input" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].inputs{key}.[kind=input].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=iterate].inputs{key}.[kind=input-node-id].kind "input-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].inputs{key}.[kind=input-node-id].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=iterate].inputs{key}.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].inputs{key}.[kind=field].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
steps[].[kind=iterate].inputs{key}.[kind=field].fieldKey string; min length 1; max length 120 Required. Key of a Field declared on the referenced Surface definition.
steps[].[kind=iterate].inputs{key}.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].inputs{key}.[kind=literal].value string; max length 4000 OR number OR true | false OR null Required. Effective value interpreted according to the enclosing type and discriminant.
steps[].[kind=iterate].inputs{key}.[kind=collection-item].kind "collection-item" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].inputs{key}.[kind=collection-node-id].kind "collection-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].inputs{key}.[kind=iteration-number].kind "iteration-number" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].inputs{key}.[kind=step-output].kind "step-output" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=iterate].inputs{key}.[kind=step-output].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=iterate].inputs{key}.[kind=step-output].outputKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=wait].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=wait].kind "wait" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs Array<closed object OR closed object>; max length 50 Required. Named, typed inputs needed by the composition or operation.
steps[].[kind=wait].inputs[].[variant 1].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=wait].inputs[].[variant 1].type "text" | "number" | "boolean" Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=wait].inputs[].[variant 1].provenance "caller" Required. Source or result origin with verifiable references.
steps[].[kind=wait].inputs[].[variant 1].minimum integer; ≥ 0; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=wait].inputs[].[variant 1].maximum integer; ≥ 1; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=wait].inputs[].[variant 2].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=wait].inputs[].[variant 2].type "surface-reference" | "result-reference" Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=wait].inputs[].[variant 2].provenance "canonical" Required. Source or result origin with verifiable references.
steps[].[kind=wait].inputs[].[variant 2].minimum integer; ≥ 0; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=wait].inputs[].[variant 2].maximum integer; ≥ 1; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
steps[].[kind=wait].inputs[].[variant 2].selector closed object Required. Defines selector for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=wait].inputs[].[variant 2].selector.contract "SurfaceFlowReferenceSelector@1" Required. Exact discriminant of this contract variant. Match the literal value shown.
steps[].[kind=wait].inputs[].[variant 2].selector.queryKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Reference to a declared Query; scope and authorization remain enforced by the data engine.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters Record<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u OR string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u, closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object> Required. Named operation or Query parameters and their associated values.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=input].kind "input" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=input].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=input-node-id].kind "input-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=input-node-id].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=field].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=field].fieldKey string; min length 1; max length 120 Required. Key of a Field declared on the referenced Surface definition.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=literal].value string; max length 4000 OR number OR true | false OR null Required. Effective value interpreted according to the enclosing type and discriminant.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=collection-item].kind "collection-item" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=collection-node-id].kind "collection-node-id" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=iteration-number].kind "iteration-number" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=step-output].kind "step-output" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=step-output].stepKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=wait].inputs[].[variant 2].selector.parameters{key}.[kind=step-output].outputKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=wait].arrival "active-only" Required. Defines arrival for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=wait].ordering "first-committed" Required. Defines ordering for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=wait].eventKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
steps[].[kind=wait].recipient "initiator" Required. Defines recipient for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=wait].timeoutMilliseconds integer; ≥ 1; ≤ 2592000000 Required. Defines timeout Milliseconds for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=wait].onExpiration "fail" | "cancel" Required. Defines on Expiration for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=delay].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
steps[].[kind=delay].kind "delay" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=delay].resume closed object OR closed object Required. Defines resume for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=delay].resume.[kind=duration].kind "duration" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=delay].resume.[kind=duration].milliseconds integer; ≥ 1; ≤ 2592000000 Required. Defines milliseconds for this object. Observe the type, variants and bounds in the Options column.
steps[].[kind=delay].resume.[kind=instant].kind "instant" Required. Selects the variant and the properties admitted in this branch.
steps[].[kind=delay].resume.[kind=instant].at integer; ≥ 0; ≤ 8640000000000000 Required. Defines at for this object. Observe the type, variants and bounds in the Options column.
budgets closed object Required. Defines budgets for this object. Observe the type, variants and bounds in the Options column.
budgets.maximumDepth integer; ≥ 1; ≤ 8 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
budgets.maximumOccurrences integer; ≥ 1; ≤ 1000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
budgets.maximumConcurrency integer; ≥ 1; ≤ 100 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
budgets.maximumIterations integer; ≥ 1; ≤ 100 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
budgets.maximumDurationMilliseconds integer; ≥ 1; ≤ 2592000000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
budgets.maximumCostUnits integer; ≥ 0; ≤ 1000000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.
budgets.maximumStateBytes integer; ≥ 1024; ≤ 2000000 Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema.

Reading the contract

A path ending in [] describes each list item; {key} describes each dictionary value. The ↻ marker refers to the same recursive expression. Closed objects reject additional properties. Semantic validation denotes an additional check: matching a type does not make a reference, permission or transition valid. References must resolve in the Model and the current user context.

An older variant cannot accept properties belonging to a newer variant. The compiler checks the version and consistency of the complete Model.

Structural example

This fragment passes the schema for this section. Its business references must be defined in the enclosing Model.

{
  "contract": "FlowComposition@1",
  "rootWorkNodeKey": "work",
  "stateSurfaceDefinitionPath": "workspace/workshop/surface/work/surface/flow-state",
  "subflowLinkTypePath": null,
  "entryStepKey": "flow-entry",
  "inputs": [],
  "contexts": [],
  "outputs": [
    {
      "key": "result",
      "type": "result-reference",
      "provenance": "canonical",
      "minimum": 1,
      "maximum": 1,
      "source": {
        "kind": "step-output",
        "stepKey": "verify",
        "outputKey": "result"
      },
      "reduction": "first"
    }
  ],
  "steps": [
    {
      "key": "flow-entry",
      "kind": "sequence",
      "steps": [
        "frame",
        "explore",
        "compare",
        "consolidate",
        "verify"
      ]
    },
    {
      "key": "frame",
      "kind": "task",
      "workNodeKey": "frame",
      "actionKey": "execute-work-stage",
      "inputs": {},
      "outputs": [
        {
          "key": "result",
          "type": "result-reference",
          "provenance": "canonical",
          "minimum": 1,
          "maximum": 1,
          "result": "reference"
        },
        {
          "key": "summary",
          "type": "text",
          "provenance": "derived",
          "minimum": 1,
          "maximum": 1,
          "result": "summary"
        }
      ],
      "reservedCostUnits": 0,
      "maximumAttempts": 3
    },
    {
      "key": "explore",
      "kind": "task",
      "workNodeKey": "explore",
      "actionKey": "execute-work-stage",
      "inputs": {},
      "outputs": [
        {
          "key": "result",
          "type": "result-reference",
          "provenance": "canonical",
          "minimum": 1,
          "maximum": 1,
          "result": "reference"
        },
        {
          "key": "summary",
          "type": "text",
          "provenance": "derived",
          "minimum": 1,
          "maximum": 1,
          "result": "summary"
        }
      ],
      "reservedCostUnits": 0,
      "maximumAttempts": 3
    },
    {
      "key": "compare",
      "kind": "task",
      "workNodeKey": "compare",
      "actionKey": "execute-work-stage",
      "inputs": {},
      "outputs": [
        {
          "key": "result",
          "type": "result-reference",
          "provenance": "canonical",
          "minimum": 1,
          "maximum": 1,
          "result": "reference"
        },
        {
          "key": "summary",
          "type": "text",
          "provenance": "derived",
          "minimum": 1,
          "maximum": 1,
          "result": "summary"
        }
      ],
      "reservedCostUnits": 0,
      "maximumAttempts": 3
    },
    {
      "key": "consolidate",
      "kind": "task",
      "workNodeKey": "consolidate",
      "actionKey": "execute-work-stage",
      "inputs": {},
      "outputs": [
        {
          "key": "result",
          "type": "result-reference",
          "provenance": "canonical",
          "minimum": 1,
          "maximum": 1,
          "result": "reference"
        },
        {
          "key": "summary",
          "type": "text",
          "provenance": "derived",
          "minimum": 1,
          "maximum": 1,
          "result": "summary"
        }
      ],
      "reservedCostUnits": 0,
      "maximumAttempts": 3
    },
    {
      "key": "verify",
      "kind": "task",
      "workNodeKey": "verify",
      "actionKey": "execute-work-stage",
      "inputs": {},
      "outputs": [
        {
          "key": "result",
          "type": "result-reference",
          "provenance": "canonical",
          "minimum": 1,
          "maximum": 1,
          "result": "reference"
        },
        {
          "key": "summary",
          "type": "text",
          "provenance": "derived",
          "minimum": 1,
          "maximum": 1,
          "result": "summary"
        }
      ],
      "reservedCostUnits": 0,
      "maximumAttempts": 3
    }
  ],
  "budgets": {
    "maximumDepth": 8,
    "maximumOccurrences": 100,
    "maximumConcurrency": 1,
    "maximumIterations": 1,
    "maximumDurationMilliseconds": 2592000000,
    "maximumCostUnits": 0,
    "maximumStateBytes": 1000000
  }
}

Complete Model index · Build a Model

Applied examples : Prepare a quote

The Flow declares Client and Need inputs, an executable step and a bounded budget.

Configuration

Contract object flowComposition. Properties and accepted values.

{
  "contract": "FlowComposition@1",
  "rootWorkNodeKey": "prepare-quote",
  "stateSurfaceDefinitionPath": "workspace/work/surface/preparation",
  "subflowLinkTypePath": null,
  "entryStepKey": "prepare",
  "inputs": [
    {
      "key": "client",
      "type": "surface-reference",
      "provenance": "caller",
      "minimum": 1,
      "maximum": 1
    },
    {
      "key": "need",
      "type": "text",
      "provenance": "caller",
      "minimum": 1,
      "maximum": 1
    }
  ],
  "contexts": [],
  "outputs": [],
  "steps": [
    {
      "key": "prepare",
      "kind": "task",
      "workNodeKey": "prepare",
      "actionKey": "prepare",
      "inputs": {},
      "outputs": [
        {
          "key": "proposal",
          "type": "result-reference",
          "provenance": "canonical",
          "minimum": 1,
          "maximum": 1,
          "result": "reference"
        }
      ],
      "reservedCostUnits": 1,
      "maximumAttempts": 1
    }
  ],
  "budgets": {
    "maximumDepth": 2,
    "maximumOccurrences": 20,
    "maximumConcurrency": 2,
    "maximumIterations": 3,
    "maximumDurationMilliseconds": 86400000,
    "maximumCostUnits": 100,
    "maximumStateBytes": 32000
  }
}

Variation and connection

Fragment placed in flowBlueprints[].composition.inputs. Properties and accepted values.

[
  {
    "key": "client",
    "type": "surface-reference",
    "provenance": "caller",
    "minimum": 1,
    "maximum": 1
  },
  {
    "key": "need",
    "type": "text",
    "provenance": "caller",
    "minimum": 1,
    "maximum": 1
  }
]

UI layout example

The illustrative layout below places this configuration in the Clients/Quotes app. Insert each fragment at the stated location, with Field, Query and Action references matching the Model declarations.

  1. Qualify need
  2. Prepare proposal
  3. Wait for decision
  4. Retain result
ILLUSTRATIVE LAYOUTClients / Quotes app
SurfaceClients / North StudioExample
flowCompositionflowComposition
Clients
MODEL CONTEXTNorth StudioDeclarative configuration
rootWorkNodeKey
prepare-quote
stateSurfaceDefinitionPath
workspace/work/surface/preparation
subflowLinkTypePath
null
entryStepKey
prepare
inputs
2 items

Values above follow the configuration fragment; references resolve in the complete Model.

Search for a concept, field or action.Esc