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.
Top-level document
Section titled “Top-level document”| Field | Required | Type | Description |
|---|---|---|---|
id | yes | string | |
title | no | string | |
description | no | string | |
tags | no | array | |
type | yes | messaging, webhook, timer, websocket, pubsub | |
start | no | string | |
parameters | no | object | |
entrypoints | no | object | Optional entrypoints keyed by name (e.g., default, telegram, http:/path). |
nodes | yes | object |
Node shape
Section titled “Node shape”Each key under nodes is a node id. Component operation keys use the schema pattern ^[a-zA-Z][\w.-]*\.[\w.-]+$.
| Field | Type | Description |
|---|---|---|
routing | array | |
output | object | Optional output mapping configuration. |
telemetry | object | |
pack_alias | string | |
operation | string |
Routing
Section titled “Routing”| Field | Type | Description |
|---|---|---|
to | string | |
out | boolean | |
status | string | |
reply | boolean |
Generated JSON Schema
Section titled “Generated JSON Schema”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 } } } }}Related commands
Section titled “Related commands”gtc wizard --schemaprints wizard schemas for coding agents and automation.greentic-flow doctorvalidates flow files and pack flow definitions.greentic-flow component-schemainspects component operation schemas for flow authoring.