Skip to content

Flow YAML Schema

{/* AUTO-GENERATED by scripts/sync-reference-schemas.mjs - do not edit by hand. */}

Source schema: ../greentic-flow/docs/schemas/ygtc.flow.schema.json

Schema id: https://raw.githubusercontent.com/greenticai/greentic-flow/refs/heads/master/schemas/ygtc.flow.schema.json

Greentic flow files are YAML documents validated against this JSON Schema. The current schema describes self-describing flow nodes and supports messaging, webhook, timer, websocket, and pubsub flow types.

FieldRequiredTypeDescription
idyesstring
titlenostring
descriptionnostring
tagsnoarray
typeyesmessaging, webhook, timer, websocket, pubsub
startnostring
parametersnoobject
entrypointsnoobjectOptional entrypoints keyed by name (e.g., default, telegram, http:/path).
nodesyesobject

Each key under nodes is a node id. Component operation keys use the schema pattern ^[a-zA-Z][\w.-]*\.[\w.-]+$.

FieldTypeDescription
routingarray
outputobjectOptional output mapping configuration.
telemetryobject
pack_aliasstring
operationstring
FieldTypeDescription
tostring
outboolean
statusstring
replyboolean
Full schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/greenticai/greentic-flow/refs/heads/master/schemas/ygtc.flow.schema.json",
"title": "Greentic YGTC Flow (self-describing nodes)",
"type": "object",
"required": [
"id",
"type",
"nodes"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"type": "string",
"enum": [
"messaging",
"webhook",
"timer",
"websocket",
"pubsub"
]
},
"start": {
"type": "string"
},
"parameters": {
"type": "object",
"additionalProperties": true
},
"entrypoints": {
"type": "object",
"additionalProperties": true,
"description": "Optional entrypoints keyed by name (e.g., default, telegram, http:/path)."
},
"nodes": {
"type": "object",
"minProperties": 1,
"additionalProperties": false,
"patternProperties": {
"^[a-zA-Z_][\\w-]*$": {
"type": "object",
"description": "A node must have exactly one component key like messaging.telegram.sendMessage (namespace.adapter.operation) plus optional routing.",
"minProperties": 1,
"maxProperties": 6,
"properties": {
"routing": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"to": {
"type": "string"
},
"out": {
"type": "boolean"
},
"status": {
"type": "string"
},
"reply": {
"type": "boolean"
}
}
}
},
"output": {
"type": "object",
"additionalProperties": true,
"description": "Optional output mapping configuration."
},
"telemetry": {
"type": "object",
"additionalProperties": false,
"properties": {
"span_name": {
"type": "string"
},
"attributes": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"sampling": {
"type": "string"
}
}
},
"pack_alias": {
"type": "string"
},
"operation": {
"type": "string"
}
},
"patternProperties": {
"^[a-zA-Z][\\w.-]*\\.[\\w.-]+$": {
"type": "object",
"description": "Opaque component payload – validated by the component itself. Adapter-backed components should follow the <namespace>.<adapter>.<operation> shape.",
"additionalProperties": true
}
},
"additionalProperties": false
}
}
}
}
}
  • gtc wizard --schema prints wizard schemas for coding agents and automation.
  • greentic-flow doctor validates flow files and pack flow definitions.
  • greentic-flow component-schema inspects component operation schemas for flow authoring.