key:<name>, a supervisor id or the UI user).
Prerequisites: add -H "X-API-Key: $YUKTA_API_KEY" to every curl if your server has keys. Before a command runs, supervisors may refuse it; a refusal answers 403 and is logged.
Steps
1
Create a run that lasts long enough
Save as
steer.json. The wait node holds each message for 45 seconds, then go shapes it:steer.json
2
Pause and resume
Pausing stops the run, or one node, from taking new messages; the message in hand finishes. All time limits freeze while paused.
3
Step, or stop at a breakpoint
Step mode holds a node’s input so you see one message at a time: enable it, call Resume the node to continue past a breakpoint. The call is in the control API.
step once per message, disable it to return to normal flow. A breakpoint holds a node before the first message whose payload, a path such as payload.order.id, or a metadata.key equals a given text.4
Skip a node
Skipping a processor passes messages through it without calling its plugin, from the next message on; a message already inside finishes. Other node kinds reject it. A second call unskips.
5
Stop the way you mean to
POST /api/executions/{id}/nodes/{node}/stop.6
Restart, or retry a node
429.Verify it worked
controlState PAUSED in its progress, and its wait node does not finish while paused: the 45 seconds do not elapse until you resume. The CLI has the node commands (yukta-cli workflow node pause|resume|stop|skip|retry|breakpoint|step) and workflow executions stop|restart; MCP has control_workflow and control_node.
Who can do what
A node that waits for a person is answered through an input request rather than a control command (Ask for approval).
Variations
- Let a supervisor own it. Assign a supervisor decides who may send which command.
- Change the queue. Scheduler limits and a queued run’s priority can change while the server runs (Tune capacity and limits).
Run the server in the console or in the background
yukta shows itself three ways, picked in this order: --plain, then --mode=console|plain|daemon, then YUKTA_MODE.
In the console,
q stops the server, l shows full-screen logs, r the longer run list, f cycles the log level filter and ? helps. Set NO_COLOR for plain text.
$YUKTA_HOME, else $XDG_STATE_HOME/yukta, else ~/.local/state/yukta (yukta.pid and yukta.log, not rotated). Use systemd or the container image on servers; do not run yukta start inside either (Deploy). The daemon commands are for Linux and macOS.
Related
- Runs for the life of a run and its statuses.
- Control API and Status values for every call and value.
- Supervisors for who reviews commands.