journeys / iac-f63ed22f4e50Markdown ↓

Journey definition reference

Generated from the JSON Schema this platform validates against. It is the same document served by iacSchemaDocument, so it cannot disagree with what the server enforces. Fields with no description are undocumented in the schema itself.

A guided, data-defined process (spec schema 2). Mirrors the reference Swift runner in cococo/Gateway/Journeys/. See docs/journeys/specification.md.

Top level

Component shapes

AgentHint

Field Type Required Description
canSuggest boolean — Form steps only: enable one-shot whole-form value proposal where the runner has an agent.
context string yes Prose handed to the assistant for step-aware help. {{ $. }} templating applies.

AgentPayload

Field Type Required Description
goal string yes Goal handed to the assistant ({{ $. }} templating applies).
manualFallback InfoPayload — Rendered as an info step on runners without agent capability. Absent ⇒ the journey is unsupported there (spec §2.2/§5.6).

CaptureRule

Field Type Required Description
key string yes
path string yes Dot-path into the response data; the leaf is written to state preserving its JSON type.

ChoiceOption

Field Type Required Description
detail string —
label string yes
value string yes

Condition

Spec §4. Exactly one operator per object — one of {eq, neq, lt, lte, gt, gte, exists} on a leaf, or a composite {all, any, not}. path is a $. expression; eq/neq compare with strict semantic equality (no coercion); ordering operators are defined only for number↔number or string↔string pairs and yield false for any other combination.

Set exactly one of: path + eq, or path + neq, or path + lt, or path + lte, or path + gt, or path + gte, or path + exists, or all, or any, or not.

ExecutePayload

Field Type Required Description
capture array of CaptureRule — Load-bearing: a missing path fails the step.
description string yes User-facing; shown on the run button.
document string yes GraphQL document; exactly one root operation field, aliased result.
mutating boolean — Require the platform confirm-it's-you gate before running.
reveal array of RevealRule —
variables Variables — Structured GraphQL variables (spec §6). Each string leaf is either a whole-value $. reference or a literal that may interpolate {{ $. }} placeholders; non-string leaves are typed literals. Leaf-level $. well-formedness is enforced by the runner/server, not by this schema.

FetchPayload

Read-only 'load one object' step (spec §5.3c). Never mutates — no confirm-it's-you gate.

Field Type Required Description
capture array of CaptureRule yes state[key] <- value at a dot-path into the response data (whole objects included). Load-bearing: a missing path fails the step.
description string yes Shown while loading.
document string yes GraphQL query document; the root selection SHOULD alias to result.
variables Variables — Structured GraphQL variables (spec §6). Each string leaf is either a whole-value $. reference or a literal that may interpolate {{ $. }} placeholders; non-string leaves are typed literals. Leaf-level $. well-formedness is enforced by the runner/server, not by this schema.

Field

Field Type Required Description
condition Condition — Spec §4. Exactly one operator per object — one of {eq, neq, lt, lte, gt, gte, exists} on a leaf, or a composite {all, any, not}. path is a $. expression; eq/neq compare with strict semantic equality (no coercion); ordering operators are defined only for number↔number or string↔string pairs and yield false for any other combination.
defaultValue string — Written to state when the step first shows.
help string — Short inline explanation under the field.
key string yes
kind text | multiline | number | toggle | choice | date | resourcePicker yes
label string yes
options array of ChoiceOption — choice kind only.
placeholder string —
required boolean —
resourceType customer | order | job | workcenter — resourcePicker kind only.
validation FieldValidation —

FieldValidation

Field Type Required Description
max number — Numeric upper bound (number kind).
min number — Numeric lower bound (number kind).
pattern string — Whole-value regular expression (text/multiline). Empty values pass — required handles presence.

FormPayload

Field Type Required Description
fields array of Field yes

InfoPayload

Field Type Required Description
body string yes Markdown-lite prose. {{ $. }} templating applies.
checklist array of string —

Input

Field Type Required Description
key string yes Read-only launch-context key, addressed as $.inputs[key].
kind text | resource yes
label string yes
required boolean —
resourceType customer | order | job | workcenter — Required when kind == resource.

Journey

Field Type Required Description
estimatedMinutes integer yes
icon device | network | customer | order | job | note | wrench | check | flag | generic yes Icon vocabulary token (spec §2.3). Unknown tokens render the generic icon.
id string yes Stable, kebab-case, unique per instance. Resume state and analytics key on it; on collision a server definition overrides a bundled default (spec §8).
inputs array of Input —
invariants array of object — Spec §6.4. Authored assertions that must hold on every reachable state. assert reuses the shared condition dialect.
knowledgeCaptureTemplate string — Optional prose template ({{ $.state.x }}) offered as an editable shop note on completion (spec §9).
requiredDomains array of string yes Offered only if the user's effective permissions grant ANY listed domain. [] = everyone.
schemaVersion integer yes This document describes schema 2. A runner hides any journey whose schemaVersion exceeds what it supports (spec §2.2).
steps array of Step yes At least one; the last reachable step should be done.
summary string yes
title string yes

Journey.invariants[]

Field Type Required Description
assert Condition yes Spec §4. Exactly one operator per object — one of {eq, neq, lt, lte, gt, gte, exists} on a leaf, or a composite {all, any, not}. path is a $. expression; eq/neq compare with strict semantic equality (no coercion); ordering operators are defined only for number↔number or string↔string pairs and yield false for any other combination.
description string —
id string yes Stable, author-facing identifier.

QueryPickPayload

Read-only 'run a query, pick a result' step (spec §5.3a). Never mutates — no confirm-it's-you gate.

Field Type Required Description
capture array of CaptureRule yes state[key] <- value at a dot-path WITHIN the chosen result object.
description string yes User-facing prose shown above the result list.
document string yes GraphQL query document.
labelPath string yes Dot-path, relative to each result object, to its display label.
listPath string yes Dot-path into the response data to the array of result objects.
sublabelPath string — Optional dot-path (relative to each result) to a secondary line.
variables Variables — Structured GraphQL variables (spec §6). Each string leaf is either a whole-value $. reference or a literal that may interpolate {{ $. }} placeholders; non-string leaves are typed literals. Leaf-level $. well-formedness is enforced by the runner/server, not by this schema.

RevealRule

Field Type Required Description
copyable boolean —
key string yes
label string yes
monospaced boolean —

SchemaFormPayload

Hosts a platform draft-07 JSON Schema form (spec §5.2b). Never mutates — no confirm-it's-you gate.

Field Type Required Description
outputKey string — When set, the whole form output is written as one object to $.state[outputKey]; otherwise each top-level property writes $.state[property].
schema object yes An inline draft-07 JSON Schema object, or a $. expression string resolving to a schema captured into state at runtime.

Step

Field Type Required Description
agent AgentPayload —
condition Condition — Spec §4. Exactly one operator per object — one of {eq, neq, lt, lte, gt, gte, exists} on a leaf, or a composite {all, any, not}. path is a $. expression; eq/neq compare with strict semantic equality (no coercion); ordering operators are defined only for number↔number or string↔string pairs and yield false for any other combination.
execute ExecutePayload —
fetch FetchPayload — Read-only 'load one object' step (spec §5.3c). Never mutates — no confirm-it's-you gate.
form FormPayload —
hint AgentHint —
id string yes Unique within the journey; resume targets it.
info InfoPayload —
kind info | form | schemaForm | fetch | queryPick | execute | waitFor | agent | done yes
queryPick QueryPickPayload — Read-only 'run a query, pick a result' step (spec §5.3a). Never mutates — no confirm-it's-you gate.
schemaForm SchemaFormPayload — Hosts a platform draft-07 JSON Schema form (spec §5.2b). Never mutates — no confirm-it's-you gate.
title string yes
waitFor WaitPayload —

Variables

Structured GraphQL variables (spec §6). Each string leaf is either a whole-value $. reference or a literal that may interpolate {{ $. }} placeholders; non-string leaves are typed literals. Leaf-level $. well-formedness is enforced by the runner/server, not by this schema.

WaitPayload

Field Type Required Description
description string yes
document string yes
equals any yes Typed JSON literal the polled value must equal.
intervalSeconds number —
path string yes Dot-path into data whose value must equal equals.
timeoutSeconds number —
variables Variables — Structured GraphQL variables (spec §6). Each string leaf is either a whole-value $. reference or a literal that may interpolate {{ $. }} placeholders; non-string leaves are typed literals. Leaf-level $. well-formedness is enforced by the runner/server, not by this schema.

Published platform manual · revision b54891d29122