Skip to content

WebSocket: an interactive debug shell into a **running** step's Pod (the debug surface). Gated behind `Administer` — exec is the most privileged surface. Only a running step has a live Pod (they are `restartPolicy: Never` and gone once done), so a terminal/pending step is refused. Bridges the Pod's TTY to the socket: client text/binary → shell stdin, shell output → client. Disabled (404) unless an attacher is wired (k8s executor only).

GET
/v1/runs/{id}/steps/{step}/attach
curl --request GET \
--url https://example.com/v1/runs/example/steps/example/attach
id
required
string

Run id

step
required
string

Step id

WebSocket upgrade — interactive TTY into the running step’s Pod

Step is not running (no live Pod)

No such run/step, or attach disabled