JSON Schema
A .pipo file is YAML with a published JSON Schema. Each connector's with: block is a conditional schema chosen by via, to, tap, transform, agent and check, so completion and validation follow the connector you pick.
- Download: pipo.schema.json, generated from the same code as
pipo schema. - From the CLI:
pipo schema > pipo.schema.json. - In any editor with the YAML language server, put this line at the top of a
.pipofile:
# yaml-language-server: $schema=https://raw.githubusercontent.com/ramigb/pipo/main/schema/pipo.schema.json
The VS Code extension attaches the schema to .pipo files by itself; see Editor support. The schema checks structure only. pipo check adds the rules a schema can't express (references, the graph, expressions, compatibility); see Diagnostics.
Top-level keys#
| Key | Type | Required | Meaning |
|---|---|---|---|
pipo | 1 | yes | Spec version; always 1. |
name | string | yes | The pipeline's name, unique per Pipo home: lower-case letters, digits and -. |
description | string | Free text describing the pipeline. | |
fn | string | Path to a TypeScript or JavaScript module whose exports are available as fn.<name>. | |
secrets | map | Named secret references (op://… or env:…), used in with: blocks as ${secrets.<name>}. | |
lifetime | object | When the pipeline ends: ttl, max_packets, until, on_end, drain_timeout. | |
concurrency | integer | Packets processed in parallel; default 4, and 1 gives FIFO order. | |
buffer | object | max: accepted-but-unprocessed packets kept while paused or busy; beyond it inputs push back (http answers 503). | |
errors | object | The default error policy (retry, backoff, delay, max_delay, then, message) for every step. | |
input | object | The pipeline's one input; shorthand for inputs: with one input named input. | |
inputs | map | Several inputs, as a map of input name → input (at most 16). | |
nodes | map | The graph's steps, as a map of node id → node. | |
output | object | yes | Where packets are written and verified; exactly one per pipeline. |
delivered | object | Delivery verification and stall detection; default check: ack. | |
agent | object | What agents may do with this pipeline: control, actions, edit, redact, on_stall, verify. | |
agent_budget | object | Cost caps for agent nodes: per_day (USD), per_packet (tokens), reset_at, warn_at. | |
retention | object | How long journal data is kept: data, trail, rejected, dlq. |
Exactly one of input and inputs is required (P060).