Skip to content

The compiled, typed launch-parameter schema for one selected pipeline (ADR-0043 §4) — the on-selection describe. Resolves `ref` to a concrete commit (echoed back), reads the named pipeline there, and **fully compiles** it (reusing the shared [`prefetch_libs_and_compile`] — this is where the lib-prefetch cost is justified), returning `interface.inputs` as typed [`ParamSpec`](scarab_pipeline::ParamSpec)s. The response is a pure function of the compiled IR — the same path dispatch rides, no parallel parser — so a compile error surfaces as a structured 4xx (never a 500), identical to dispatch. Read capability.

GET
/v1/repos/{org}/{repo}/pipelines/{name}/interface
curl --request GET \
--url https://example.com/v1/repos/example/example/pipelines/example/interface
org
required
string

Repo owner

repo
required
string

Repo name

name
required
string

Pipeline name (bare, e.g. deploy)

ref
string

Ref to read the config at (default HEAD)

The compiled typed parameter schema

Media typeapplication/json

GET /v1/repos/{org}/{repo}/pipelines/{name}/interface?ref= body: the compiled, typed launch-parameter schema for ONE selected pipeline (ADR-0043 §4). A pure function of the compiled IR — the same compile path dispatch rides — so the form and the run validate against byte-identical specs.

object
api
required

This pipeline opts into api dispatch (on: api).

boolean
inputs
required

The declared typed launch parameters (name, type, required, default, options, validate, description) — the compiled interface.inputs.

Array<object>
object
manual
required

This pipeline opts into manual dispatch (on: manual).

boolean
sha
required

The ref resolved to a concrete commit — the interface reflects this exact commit; a subsequent dispatch should pin to it.

string
Examplegenerated
{
"api": true,
"inputs": [
{}
],
"manual": true,
"sha": "example"
}

The pipeline failed to compile (structured diagnostic)

No pipeline by that name at the ref