Skip to content

Designer API

The designer backend (Hono on Node 22) exposes its API at https://designer.<root>/api/*. No auth required for the API itself — Pipebase’s threat model assumes the designer is on a private network or behind your own SSO layer.

MethodPathBodyBehaviour
GET/api/flowsReturns FlowSummary[]
POST/api/flows{name?}Generates uuid7 + writes a deployable seed YAML. Returns full FlowDocument, 201.
GET/api/flows/:idReturns FlowDocument
PUT/api/flows/:id{name?, yaml, layout}Atomic disk write, mutates index entry
DELETE/api/flows/:idRemoves index + <id>/. 204.
POST/api/flows/:id/deployPush YAML to runtime via PUT /_api/flows/:id. Stamps lastDeployedAt.
POST/api/flows/:id/undeployRemove from runtime; keep on designer disk
POST/api/flows/:id/promote{targetRuntimeId}Promote via the upstream promotesTo chain
GET/api/flows/:id/deploymentsPer-runtime deployment matrix (in-sync / stale / not-deployed / unreachable)
GET/api/flows/_deploymentsBulk version of the above for every flow
GET/api/flows/:id/params{params: {k:v,...}}
PUT/api/flows/:id/params{params: {k:v,...}}Replace; validates each pair
POST/api/flows/:id/test{method?, path, headers?, body?}Forwards an HTTP request to the runtime
GET/api/flows/:id/runs?limit=NRun history from runtime’s in-memory ring buffer
MethodPathBodyBehaviour
GET/api/runtimesList RuntimeSummary[]
POST/api/runtimesCreateRuntimeBodyConnect an existing external runtime
POST/api/runtimes/managedProvisionRuntimeBodyProvision a new container via Docker daemon
GET/api/runtimes/:idFull record (no token)
PUT/api/runtimes/:idUpdateRuntimeBodySparse update; supports promotesTo
DELETE/api/runtimes/:idRemove (cascade-tears-down container if managed)
GET/api/runtimes/:id/healthLive RuntimeHealth from /_api/health
GET/api/runtimes/:id/containerDocker container state (managed runtimes only)
POST/api/runtimes/:id/startStart the container
POST/api/runtimes/:id/stopStop
POST/api/runtimes/:id/restartRestart
MethodPathBodyBehaviour
POST/api/oauth/tokenclient_credentials grantIssue a Bearer JWT
GET/api/oauth-clientsList clients
POST/api/oauth-clientsCreateOAuthClientBodyCreate client (returns plaintext secret once)
PUT/api/oauth-clients/:idUpdateOAuthClientBodyUpdate
DELETE/api/oauth-clients/:idRemove
GET/api/rolesList roles
POST/api/rolesCreateRoleBodyCreate
PUT/api/roles/:idUpdateRoleBodyUpdate
DELETE/api/roles/:idRemove
MethodPathBehaviour
GET/POST/PUT/DELETE/api/value-mappings(/...)Key→value lookup tables
POST/api/value-mappings/:id/deployPush to runtime
GET/POST/PUT/DELETE/api/message-mappings(/...)JSON↔XML mapping documents
POST/api/message-mappings/:id/deployCompile to XSLT, push
MethodPathBehaviour
GET/api/messagesCross-runtime message log fan-out
GET/api/messages/statsAggregated counts + buckets
GET/api/trace/streamSSE — live trace events
GET/api/logs/streamSSE — live log events

This table is a snapshot. The actual route table lives in designer/packages/backend/src/routes/*.ts — see the GitHub source.