pipo. docs

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 .pipo file:
# 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#

KeyTypeRequiredMeaning
pipo1yesSpec version; always 1.
namestringyesThe pipeline's name, unique per Pipo home: lower-case letters, digits and -.
descriptionstringFree text describing the pipeline.
fnstringPath to a TypeScript or JavaScript module whose exports are available as fn.<name>.
secretsmapNamed secret references (op://… or env:…), used in with: blocks as ${secrets.<name>}.
lifetimeobjectWhen the pipeline ends: ttl, max_packets, until, on_end, drain_timeout.
concurrencyintegerPackets processed in parallel; default 4, and 1 gives FIFO order.
bufferobjectmax: accepted-but-unprocessed packets kept while paused or busy; beyond it inputs push back (http answers 503).
errorsobjectThe default error policy (retry, backoff, delay, max_delay, then, message) for every step.
inputobjectThe pipeline's one input; shorthand for inputs: with one input named input.
inputsmapSeveral inputs, as a map of input name → input (at most 16).
nodesmapThe graph's steps, as a map of node id → node.
outputobjectyesWhere packets are written and verified; exactly one per pipeline.
deliveredobjectDelivery verification and stall detection; default check: ack.
agentobjectWhat agents may do with this pipeline: control, actions, edit, redact, on_stall, verify.
agent_budgetobjectCost caps for agent nodes: per_day (USD), per_packet (tokens), reset_at, warn_at.
retentionobjectHow long journal data is kept: data, trail, rejected, dlq.

Exactly one of input and inputs is required (P060).