Skip to content
Structly Docs
한국어

Catalog guides

Workflow

On this page

What a Workflow records#

FieldContent
workflow_key·nameUnique Key and name. Required
handleWeb address name. Required; separate from the Key and unique among the Workflows of the same Organization (see address names)
summary·descriptionOne-line summary and description
inputsJSON Schema of the Workflow input
stepsOrdered Steps. Required
outputsWorkflow outputs
sourceOptional Arazzo source

Each Step requires a step_key and a target to call. target points to an Endpoint or another Workflow by ID.

{"kind": "endpoint", "endpoint_id": "63Tu9F67JiI"}
{"kind": "workflow", "workflow_id": "0KUMIYz7u1m"}

A Step passes values with parameters and request_body, and records conditions, retries, and jumps with success_criteria, on_success, and on_failure.

Web UI#

In Workflows → 새 Workflow (New Workflow), add Steps and select Workflow 등록 (Register Workflow). To record an Arazzo source, choose a Repository spec document in 출처 스펙 문서 기록 (Record source spec document).

stly#

{
  "workflow_key": "check-order",
  "handle": "check-order",
  "name": "Check order",
  "summary": "Look up an order and check whether it is paid",
  "inputs": {"type": "object", "required": ["order_id"], "properties": {"order_id": {"type": "string"}}},
  "steps": [
    {"step_key": "get-order", "description": "Get order details",
     "target": {"kind": "endpoint", "endpoint_id": "63Tu9F67JiI"},
     "parameters": [{"name": "order_id", "in": "path", "value": {"kind": "expression", "text": "$inputs.order_id"}}],
     "success_criteria": [{"condition": "$statusCode == 200"}]}
  ]
}
stly workflows validate --operation create --input workflow.json
stly workflows create --input workflow.json

Pass values as one of literal (a fixed value), expression (for example, $inputs.order_id), or selector (JSONPath and so on). Check the full input format with stly schema workflows create.

Reference lookups#

stly endpoints workflows <endpoint-id>
stly workflows referrers <workflow-id>

endpoints workflows returns the Workflows that call an Endpoint, and workflows referrers returns the other Workflows whose Steps call this Workflow.

Delete#

A Workflow called by another Workflow's Step cannot be deleted (HTTP 409 WORKFLOW_IN_USE). Check the calling Workflows with stly workflows referrers.