POST /revisions/:id/data/command (Command: create_execution)
Request Body
workflow takes one of three shapes at a glance: {definition} for the session’s own revision,
{blob, revision, definition} for a blob named by id, in whatever organization it belongs to, or
{org, blob, revision, definition} fully qualified — see
The workflow reference for the full grammar.
Response
execution carries workflow, definition and snapshot, which a create response always sets to "created" —
see Get Execution for the full shape.
It also carries session_id — the session’s id, whichever of id or alias target.session named it by.
The snapshot is taken after the access checks and before the record is written; if the copy fails, the request
fails and no execution exists. See The execution snapshot.
Limits are fixed at creation. An execution’s limits come from the session’s blob, wherever its definition
lives. create_execution resolves workflow.processor_runs_per_execution, workflow.execution_seconds,
workflow.code_run_seconds, workflow.code_imports and workflow.session_objects_per_session once, and the
execution keeps those values until it ends — see Limits during a run. A
schedule’s fire is checked the same way, and a fire that a limit refuses is recorded as refused.
Execution identity. An execution must trace to a user: the request needs an identified caller, or the call
returns 403. Interactive callers (JWT or API key) and scheduled invocations (via create_schedule) always
carry one; the guard fails closed if that identity is ever missing.
Errors
Example
target.session names the session by its alias, nightly-runs; the execution’s session_id is the id that alias
resolved to.
