Skip to main content

Workflow automation

Sellable product

This capability is granted by an API key scoped to the `` product (product face). See the product reference below.

DAG workflow automation as a shared capability. CRUD workflow DEFINITIONS (a DAG of typed steps: transform / http-call / tool / condition / delay / sub-workflow); RUN a workflow (async in-process DAG execution — the ready frontier runs in parallel, with per-step retries + timeout) and poll its per-step status; VALIDATE a DAG (cycles + dangling deps). Deliberate scope: in-process asyncio execution with durable run-state — NOT distributed durable-execution (Temporal's remit). Transform steps run a bounded, safe op vocabulary — never eval/exec of caller data.

  • Group: Comms & workflow
  • Contract: contracts/workflow-automation/v1/openapi.yaml
  • Public base: https://api.vagarylabs.com (the consolidated API gateway — one host, per-brand sibling api.<zone>)
  • Auth: a product API key (vgk_…) issued from the console — Authorization: Bearer vgk_…
  • Product face (customer-keyed):
    • https://api.vagarylabs.com/product/v1/workflows

Endpoints

MethodPathSummary
POST/v1/workflowsCreate (or upsert) a workflow definition
GET/v1/workflowsList an org's workflow definitions
GET/v1/workflows/&#123;workflow_id&#125;Fetch a stored workflow definition (org-scoped)
PATCH/v1/workflows/&#123;workflow_id&#125;Update a workflow definition (bumps version)
POST/v1/workflows/&#123;workflow_id&#125;/validateValidate a DAG (cycles + dangling deps)
POST/v1/workflows/&#123;workflow_id&#125;/runRun a workflow (async DAG execution)
GET/v1/runs/&#123;run_id&#125;Fetch a run + its per-step results (org-scoped)
GET/healthLiveness + store/config posture
GET/metricsPrometheus exposition (fleet observability SDK — fail-open)

Schemas

Step

A single DAG step. type selects the behaviour; depends_on lists the upstream steps this step waits on; condition (optional) names a condition step that GATES this one (skipped if it is falsy); params is type-specific; retries/retry_backoff_seconds/timeout_seconds govern per-step resilience.

FieldTypeDescription
namestringunique step name within the workflow
typestring
depends_onarrayupstream step names this step waits on (must all succeed)
conditionstringname of a condition step that gates this step (skip if falsy)
paramsobjecttype-specific parameters (op/url/action/seconds/definition/…)
retriesintegermax retry attempts on failure (exponential backoff)
retry_backoff_secondsnumberbase backoff between retries (seconds)
timeout_secondsnumberper-step timeout (seconds); defaults to the service default

Definition

a workflow DAG definition (a set of typed steps)

FieldTypeDescription
namestringoptional human name for the workflow
stepsarraythe DAG's steps (must form an acyclic graph with no dangling dependencies)

WorkflowRequest

FieldTypeDescription
organization_idstringproduct-tier end-customer tenant (I6)
workflow_idstringoptional explicit id (generated when omitted)
namestring
definitionobject

WorkflowPatch

FieldTypeDescription
organization_idstringproduct-tier end-customer tenant (I6)
namestring
definitionobject

Workflow

FieldTypeDescription
workflow_idstring
nameobject
definitionobject
versioninteger
created_atnumber
updated_atnumber

WorkflowSummary

FieldTypeDescription
workflow_idstring
nameobject
versioninteger
created_atnumber
updated_atnumber

RunRequest

FieldTypeDescription
organization_idstringproduct-tier end-customer tenant (I6)
inputsobjectrun inputs threaded to every step's context

ValidateRequest

FieldTypeDescription
organization_idstringproduct-tier end-customer tenant (I6); needed only when validating a stored workflow
definitionobject

Generated by scripts/gen-capability-docs.py from contracts/workflow-automation/v1/openapi.yaml — the contract IS the source of truth; edit the contract, not this page.