Get Rail
Read a Spec composed pipeline rail: the ordered stages (source, registry, extraction, resolution, validation, assembly, delivery) plus their per-stage config.
The rail is the ordered list of pipeline stages composed onto a Spec (a user_schema). It is what POST /v1/pipelines compiles and runs, so it is the prerequisite for running a Spec from the API without the UI. This endpoint returns the rail as it is stored. It reads back as an empty array until a rail has been set.
Each stage carries a type plus optional name, sub, and a per-stage json config. The compiler maps registry to transfer, schema to extraction, resolve to resolution (one phase per active policy), valid to a positional validation checkpoint, and assembly to a post-run compose. The source, deliver, reconcile, sanitize, and triage types are composition markers in the rail order.
/v1/schemas/{id}/railResponse
Returns { "rail": [...] }, where each element is a stage object. The array reflects the stored composition order. An empty array means no rail has been set yet, in which case the Spec cannot be run until you set one.
Response fields
Response
{
"rail": [
{ "type": "schema", "name": "Extraction" },
{
"type": "resolve",
"name": "Resolution",
"json": { "policy_ids": ["b2c3d4e5-f6a7-8901-bcde-f23456789012"] }
},
{
"type": "valid",
"name": "Totals checkpoint",
"json": {
"stage_ids": ["f1e2d3c4-b5a6-7890-abcd-ef1234567890"],
"target_phases": ["resolve"]
}
}
]
}Errors
Error responses