Skip to content
Proud to collaborate with Microsoft for Startups

control.poll.until ​

Poll a read-only probe workflow until a predicate on its output holds (or stop/deadline)

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-control
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
workflow_typestringYes—Read-only probe workflow type to run each tick
inputjsonNo—Probe input, passed verbatim on every tick (default {})
result_pathstringYes—Dotted path into the probe's terminal state_data (e.g. 'green' or 'status.phase')
equalsjsonNo—Value the resolved path must equal to satisfy the wait (default true)
stop_when_truthystringNo—Optional dotted path; when it resolves truthy the wait aborts as FAILED (e.g. 'failed_checks' — red CI should stop the wait, not ride the deadline)
interval_secondsintegerNo—Seconds between ticks (default 60, clamped 5..3600)
deadline_secondsintegerNo—Overall budget before the wait fails as timed out (default 3600, capped 86400)

Output Schema ​

FieldTypeRequiredDefaultDescription
workflow_typestringYes—Read-only probe workflow type to run each tick
inputjsonNo—Probe input, passed verbatim on every tick (default {})
result_pathstringYes—Dotted path into the probe's terminal state_data (e.g. 'green' or 'status.phase')
equalsjsonNo—Value the resolved path must equal to satisfy the wait (default true)
stop_when_truthystringNo—Optional dotted path; when it resolves truthy the wait aborts as FAILED (e.g. 'failed_checks' — red CI should stop the wait, not ride the deadline)
interval_secondsintegerNo—Seconds between ticks (default 60, clamped 5..3600)
deadline_secondsintegerNo—Overall budget before the wait fails as timed out (default 3600, capped 86400)
satisfiedbooleanNo—True once the predicate held on the most recent tick
attemptsintegerNo—Probe runs performed so far
waited_secondsintegerNo—Elapsed seconds since the first tick
observedjsonNo—Value resolved at result_path on the most recent successful probe
started_at_epochintegerNo—Unix time of the first tick
last_checked_at_epochintegerNo—Unix time of the most recent tick
last_probe_workflow_idstringNo—Workflow id of the most recent probe run
last_probe_errorstringNo—Error from the most recent probe run, when it failed
pending_probe_workflow_idstringNo—Probe started by the previous tick and not yet read. Absent means no probe is in flight, which is what arms a fresh one on the next tick.
failure_reasonstringNo——
failure_typestringNo——
failed_actionstringNo——
failed_at_statestringNo——
failed_stepstringNo——
failed_layerstringNo——
errorstringNo——
error_typestringNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—poll—
waitingNoNo———
completedNoYesYes——
failedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
pendingpollwaiting—
waitingpollwaiting—
waitingcompletecompleted—
* (any state)failfailed—

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "control.poll.until",
  "initial_data": {
    "workflow_type": "value",
    "result_path": "value"
  }
}