External I/O reference
These processors reach outside the server: HTTP, processes, SQL and files. Each belongs to an optional build module (see the plugin overview). Options that accept${...} say so. Never put a secret in config: write decrypted:<key>; the server reads it from the environment variable YUKTA_SECRET_<KEY>.
HTTP_REQUEST
Module http-request. Performs one HTTP request per message.
- Output ports:
default, orsuccessandfailurewithrouteByStatus. - Payload:
{status, success, headers, body};bodyis parsed when the response is JSON. Metadata gainsstatus. - Default node timeout:
timeoutplus 5 seconds. - Egress: the URL is checked against
yukta.egress.allowed-hosts,yukta.egress.by-workflow.<id>andyukta.egress.by-session.<id>. - Errors:
url is mandatory;timeout must be positive, got: <n>;routeByStatus requires failureMode: CONTINUE;HTTP request failed with status <n>: <body>.
PROCESS_EXECUTOR
Module process-executor. Runs an external process per message.
outputFormat payloads:
- Output ports:
default, orsuccessandfailurewithrouteByExitCode. - Metadata:
exitCode(-1on timeout).reportsaddsfailures(at most 50 of{kind, file, line, rule, message, test?}) andtotalFailurestoSTRUCTUREDandJSONpayloads. Output past the caps is discarded andoutputTruncatedis set. - Default node timeout:
timeoutplus the larger of 5 seconds and a tenth oftimeout. - Server settings: execution is off until
yukta.process.allowed-commandslists executables oryukta.process.allow-anyistrue(defaultfalse). Whileallowed-commandsis set,useShellis refused, the executable must be listed and environment names such asPATHorLD_*needyukta.process.allowed-env.yukta.process.working-dir-rootconfinesworkingDir. See Configuration. - Variable safety:
${metadata.<key>}refuses keys containingPASSWORD,SECRETorKEY. WithuseShell, an element that uses${...}becomes one quoted word. - Errors:
command is mandatory;timeout must be positive, got: <n>;routeByExitCode requires failureMode: CONTINUE;Process timed out after <n>s;Process execution is off: set yukta.process.allowed-commands (or yukta.process.allow-any=true to run any executable);Command '<name>' is not in yukta.process.allowed-commands.
SQL_QUERY
Module sql-query. Runs a parameterized statement over JDBC per message. The JDBC driver must be on the classpath. The node is blocking.
- Output ports:
default; pluserrorwithfailureMode: CONTINUE. - Payload:
{rows, count}for a query;{updated}for an update.
FILE_READ
Module file-io. Reads a UTF-8 text file from a sandbox directory. The node is blocking.
- Output ports:
default; pluserrorwithfailureMode: CONTINUE. - Payload:
{path, content}. - Server setting:
yukta.files.allowed-rootconfinesbaseDir; abaseDiror path that reaches outside it through a symbolic link is refused. - Errors:
file larger than maxBytes (<n>): <file>;baseDir <dir> is outside the operator's root (yukta.files.allowed-root).
FILE_WRITE
Module file-io. Writes or appends text to a file in a sandbox directory and passes the message through. The node is blocking.
- Output ports:
default; pluserrorwithfailureMode: CONTINUE. - Errors:
no content in payload.<field>; the sandbox errors ofFILE_READ.
AGENT_SESSION
Module process-executor. Runs an AI agent harness, such as Claude Code, on a prompt and reports how it ended. Restricted: enable it with yukta.plugins.enabled=AGENT_SESSION and allow the harness executable (yukta.process.allowed-commands=claude). The process starts through the process executor, so its limits apply, and cancelling the run kills it.
- Output ports:
success,failure(the agent or harness failed, or timed out),incomplete(stopped early, for example out of turns). - Payload:
{status, reason, text, sessionId, turn, exitCode}. - Run log: the agent’s text and the tools it uses appear as
agentlines while it works.