Invoke external systems or containerized workloads through a unified runner surface.
Control json
JSON
A ✓ marks a field that accepts a context variable such as {{ VARIABLE }}.
Execution
| Field |
Type |
Required |
Description |
container |
Container |
|
Container runner configuration (required when runner=container). |
General
| Field |
Type |
Required |
Description |
description |
string |
|
Describe this step. |
condition |
lua-expression (string) |
|
Lua condition that must evaluate to true to execute this action. Examples: 2 * count() |
runner |
Runner |
|
Execution target that should handle this call. Allowed values: http, container |
Observability
| Field |
Type |
Required |
Description |
telemetry |
map (string) |
|
Additional telemetry tags that should be attached to metrics and logs. |
Reliability
| Field |
Type |
Required |
Description |
timeout |
duration (string) |
|
Timeout for the overall call (e.g. “15s”). Defaults to the runner-specific timeout if omitted. |
retry |
Retry |
|
Retry policy applied around the call execution. |
idempotency-key |
string |
|
Optional idempotency key for this call. Runtime event and variable expansions use ${...}. |
concurrency |
Concurrency |
|
Concurrency guard settings for this action. |
Request
| Field |
Type |
Required |
Description |
http |
Http |
|
HTTP runner configuration (required when runner=http). |
Response
| Field |
Type |
Required |
Description |
response |
Response |
|
Response handling configuration. |
| Field |
Type |
Required |
Description |
input-path |
string |
✅ |
Path where the input event will be written. |
output-path |
string |
✅ |
Path to read the output payload from. |
| Field |
Type |
Required |
Description |
cpu |
string |
|
CPU limit (e.g. “500m” or “1”). |
memory |
string |
|
Memory limit (e.g. “512Mi”). |
| Field |
Type |
Required |
Description |
r-type |
string |
✅ |
Mount type (tmpfs, volume, bind, etc.). |
target |
string |
✅ |
Mount target path inside the container. |
source |
string |
|
Optional source for the mount. |
read-only |
boolean (bool) |
|
Whether the mount should be read-only. |
| Field |
Type |
Required |
Description |
rootless |
boolean (bool) |
|
Run container without root privileges if supported. |
seccomp-profile |
string |
|
Name of the seccomp profile to apply. |
allow-net |
boolean (bool) |
|
Allow outbound network access. |
drop-capabilities |
string[] |
|
Additional Linux capabilities to drop. |
allow-image-digests |
string[] |
|
Restrict execution to images whose digests are on this allowlist. |
policy-name |
string |
|
Optional name for the policy to aid in auditing. |
| Field |
Type |
Required |
Description |
image |
string |
✅ |
OCI image reference (should include a digest). |
command |
string[] |
|
Optional command override for the container. |
args |
string[] |
|
Arguments to pass to the container command. |
io |
Io |
|
Input/output mode for the container. Allowed values: stdio, artifact |
env |
map (string) |
|
Environment variables to inject. |
resources |
Resources |
|
Resource limits for the container. |
mounts |
Mounts[] |
|
Mount definitions available to the container. |
security |
Security |
|
Security policy for the container execution. |
timeout |
string |
|
Timeout applied to the container execution (defaults to action timeout if omitted). |
| Field |
Type |
Required |
Description |
strategy |
Strategy |
|
Backoff strategy to use (default exponential). Allowed values: exponential, linear, fixed |
base |
string |
|
Base delay before retrying (e.g. “200ms”). |
max |
string |
|
Maximum delay between retries. |
jitter ✓ |
boolean (bool) |
|
Whether to add jitter to retry delays. Default: false |
| Field |
Type |
Required |
Description |
max-attempts |
number (integer) |
|
Maximum attempts before giving up. Examples: 42, 1.2e-10 |
forever ✓ |
boolean (bool) |
|
Retry indefinitely until cancelled. Default: false |
backoff |
Backoff |
|
Backoff strategy configuration. |
| Field |
Type |
Required |
Description |
max-in-flight |
number (integer) |
|
Maximum number of in-flight calls allowed at once. Examples: 42, 1.2e-10 |
queue-depth |
number (integer) |
|
Maximum queue depth before rejecting new work. Examples: 42, 1.2e-10 |
| Field |
Type |
Required |
Description |
error-rate-window |
string |
✅ |
Sliding window duration (e.g. “30s”). |
open-after-errors |
number (integer) |
✅ |
Number of consecutive failures before opening the breaker. Examples: 42, 1.2e-10 |
half-open-after |
string |
✅ |
Cooldown period before attempting half-open requests. |
| Field |
Type |
Required |
Description |
method |
Method |
|
HTTP method to use for the request. Allowed values: get, post, put, patch, delete, options, head |
url |
url (string) |
✅ |
URL to invoke. Runtime event and variable expansions use ${...}. Examples: https://example.com/path |
headers |
map (string) |
|
Headers to send with the request. Runtime event and secret-variable expansions use ${...}. |
query |
map (string) |
|
Query parameters to include. Runtime event and variable expansions use ${...}. |
body |
multiline-text (string) |
|
Request body payload. Runtime event and variable expansions use ${...}. |
timeout |
duration (string) |
|
Timeout for the HTTP request (defaults to action timeout if omitted). |
expected-status |
number[] (integer) |
|
HTTP status codes that should be treated as success (defaults to 200..=299). Examples: 42, 1.2e-10 |
retry-on-status |
number[] (integer) |
|
HTTP status codes that should trigger a retry when encountered. Examples: 42, 1.2e-10 |
redact-headers |
map (bool) |
|
Additional headers that should be redacted from logs/telemetry. |
circuit-breaker |
Circuit Breaker |
|
Circuit breaker settings for the HTTP runner. |
| Field |
Type |
Required |
Description |
payload |
Payload |
|
Whether the response is a single JSON object or an array of JSON objects. Allowed values: object, array |
response-field |
field (string) |
|
Optional top-level event field that receives the validated response while preserving the original event. Array responses remain arrays, including an empty array. When omitted, legacy materialization applies. Examples: data_field |
max-size-bytes |
number (integer) |
|
Maximum response size in bytes (fail if exceeded). Examples: 42, 1.2e-10 |
| Variable |
Value |
ENV_VAR |
value |
Value format: templated-text.
Value format: templated-text.
| Header |
Value |
Header-Name |
value |
Value format: templated-text.
| Parameter |
Value |
param |
value |
Value format: templated-text.
| Header |
Redact |
Header-Name |
true |
| Value |
Aliases |
Name |
Description |
http |
|
http |
|
container |
|
container |
|
| Value |
Aliases |
Name |
Description |
exponential |
|
exponential |
|
linear |
|
linear |
|
fixed |
|
fixed |
|
| Value |
Aliases |
Name |
Description |
get |
|
get |
|
post |
|
post |
|
put |
|
put |
|
patch |
|
patch |
|
delete |
|
delete |
|
options |
|
options |
|
head |
|
head |
|
| Value |
Aliases |
Name |
Description |
object |
|
object |
|
array |
|
array |
|