Pipeline builder configs still include
nixpacks for existing pipelines, but it is deprecated. Use railpack for new build:image and build:static steps.Legend
PipelineConfig
Pipeline configuration - the top-level schemaPipelineTrigger[]
Webhook triggers that automatically start pipeline runs on events like git pushSee: PipelineTrigger
PipelineInputDefinition[]
User-configurable inputs that can vary per run — environment name, image tag, feature flags, etcSee: PipelineInputDefinition
VariantDefinition[]
required
Deployment variants such as production, staging, or dev — each variant can lock specific input valuesSee: VariantDefinition
Step[]
required
Ordered list of steps to execute — steps run sequentially unless wrapped in a parallel blockSee: Step(minItems:1)
Triggers
Webhook triggers that automatically start pipeline runs on events like git pushPipelineTrigger
Pipeline trigger definition. Discriminated by thetype field so each webhook type can enforce
provider-specific event values.Discriminated union. The type field selects which schema applies.GenericPipelineTrigger
Pipeline trigger for generic webhooks.string
required
Unique identifier for this trigger
boolean
default:"true"
Whether this trigger is active. Disabled triggers are not registered.
Default: true
string
required
Git repository in owner/repo or host/owner/repo format(templateable)
TriggerFilter
Filters to narrow which events trigger the pipelineSee: TriggerFilter
ConcurrencyConfig
Concurrency configuration for runs started by this trigger.
An explicit key shares its configured concurrency scope with steps and blocks.
Without a key, each trigger variant receives its own auto-generated scope.See: ConcurrencyConfig
map<string,TriggerRunVariantConfig>
required
Maps variant IDs to run configuration — keys must match declared variant IDs.
At least one variant must be specified.See: TriggerRunVariantConfig
enum
required
Webhook type for generic webhook triggers.Allowed values:
webhookGithubPipelineTrigger
Pipeline trigger for GitHub webhooks.string
required
Unique identifier for this trigger
boolean
default:"true"
Whether this trigger is active. Disabled triggers are not registered.
Default: true
string
required
Git repository in owner/repo or host/owner/repo format(templateable)
TriggerFilter
Filters to narrow which events trigger the pipelineSee: TriggerFilter
ConcurrencyConfig
Concurrency configuration for runs started by this trigger.
An explicit key shares its configured concurrency scope with steps and blocks.
Without a key, each trigger variant receives its own auto-generated scope.See: ConcurrencyConfig
map<string,TriggerRunVariantConfig>
required
Maps variant IDs to run configuration — keys must match declared variant IDs.
At least one variant must be specified.See: TriggerRunVariantConfig
enum
required
Webhook type — determines which events are supported.Allowed values:
webhook:githubenum
required
Webhook event type to listen for.Allowed values:
push | pull_request | pull_request_review | pull_request_review_comment | pull_request_review_thread | release | deploymentGitlabPipelineTrigger
Pipeline trigger for GitLab webhooks.string
required
Unique identifier for this trigger
boolean
default:"true"
Whether this trigger is active. Disabled triggers are not registered.
Default: true
string
required
Git repository in owner/repo or host/owner/repo format(templateable)
TriggerFilter
Filters to narrow which events trigger the pipelineSee: TriggerFilter
ConcurrencyConfig
Concurrency configuration for runs started by this trigger.
An explicit key shares its configured concurrency scope with steps and blocks.
Without a key, each trigger variant receives its own auto-generated scope.See: ConcurrencyConfig
map<string,TriggerRunVariantConfig>
required
Maps variant IDs to run configuration — keys must match declared variant IDs.
At least one variant must be specified.See: TriggerRunVariantConfig
enum
required
Webhook type — determines which events are supported.Allowed values:
webhook:gitlabenum
required
Webhook event type to listen for.Allowed values:
push | merge_request | tag_pushSchedulePipelineTrigger
Pipeline trigger that starts runs on a cron schedule.string
required
Unique identifier for this trigger
boolean
default:"true"
Whether this trigger is active. Disabled triggers are not registered.
Default: true
enum
required
Trigger type for cron schedule triggers.Allowed values:
schedulestring
required
Cron expression defining when the pipeline runs (UTC unless timezone is set).
The five fields are: minute, hour, day of month, month, and day of week.
Supports standard 5-field cron plus
@hourly, @daily, @midnight,
@weekly, @monthly, @yearly, @annually, and @every <duration>
(e.g. @every 30m).string
IANA timezone for evaluating the cron expression. Defaults to UTC.
ConcurrencyConfig
Concurrency configuration for runs started by this trigger.
An explicit key shares its configured concurrency scope with steps and blocks.
Without a key, each trigger variant receives its own auto-generated scope.See: ConcurrencyConfig
map<string,TriggerRunVariantConfig>
required
Maps variant IDs to run configuration — keys must match declared variant IDs.
At least one variant must be specified.See: TriggerRunVariantConfig
ConcurrencyConfig
Concurrency configuration for controlling parallel executionstring
Unique identifier for the concurrency scope
Triggers, steps, and blocks with the same key share a concurrency limit
By default, the same key in different pipelines does not conflict
Default: auto-generated unique key for the configured trigger, step, or block(minLen:1)
enum
default:"pipeline"
Where the concurrency key is shared
Organization-scoped concurrency requires an explicit key
Default: “pipeline”Allowed values:
pipeline | organizationinteger
default:"0"
Maximum concurrent executions allowed (0 means unlimited, 1 means sequential)
Default: 0 (unlimited)(format:int32,min:0)
enum
default:"queue"
Behavior when the concurrency limit is reached
Default: “queue”Allowed values:
queue | cancel-in-progress | skipinteger
Maximum queue size when behavior is “queue”
Only applies when behavior is “queue”
Unset means unlimited queue depth
0 disables queueing when behavior is “queue”(format:int32,min:0)
enum
default:"oldest"
Which items to discard when queue overflows
Only applies when behavior is “queue” and queue_size > 0
Default: “oldest”Allowed values:
oldest | newestTriggerFilter
Trigger filter configurationstring | null
Only trigger when this branch is pushed(templateable)
string | null
Only trigger when a tag matching this pattern is pushed(templateable)
string | string[]
Only trigger for specific webhook actions.
Ignored when the event payload does not include an action field.(templateable)
string[] | null
Only trigger when files in these paths are changed(templateable)
PayloadCondition[]
Filter by webhook payload fields using dot-notation paths.
All conditions must match.See: PayloadCondition
TriggerRepo
Git repository identifier used by webhook triggers.Type: stringTriggerRunVariantConfig
Per-variant run configuration for a trigger.string | null
Description for the pipeline run created by this trigger variant(templateable)
map<string,any | null>
Input overrides for this variant run(templateable)
GithubWebhookEvent
GitHub webhook events that can trigger a pipelineAllowed values:pushpull_requestpull_request_reviewpull_request_review_commentpull_request_review_threadreleasedeployment
GitlabWebhookEvent
GitLab webhook events that can trigger a pipelineAllowed values:pushmerge_requesttag_push
ConcurrencyBehavior
Behavior when the concurrency limit is reachedAllowed values:queuecancel-in-progressskip
ConcurrencyScope
Scope used to share a concurrency limitAllowed values:pipelineorganization
QueueOverflowDiscard
Queue overflow discard strategyAllowed values:oldestnewest
PayloadCondition
Condition to check against a webhook payload field. Operators are evaluated in order and the first configured operator wins.string
required
Dot-notation path to the payload field
string | null
Exact string match(templateable)
string | null
Substring match(templateable)
string | null
Glob pattern match(templateable)
string[] | null
Value must be one of these strings(templateable)
PayloadConditionMatcher
Negated payload field matcher. The condition fails when this matcher is true.See: PayloadConditionMatcher
PayloadConditionMatcher
Payload field matcher used by positive conditions and negated conditions.string | null
Exact string match(templateable)
string | null
Substring match(templateable)
string | null
Glob pattern match(templateable)
string[] | null
Value must be one of these strings(templateable)
Inputs
User-configurable inputs that can vary per run — environment name, image tag, feature flags, etcPipelineInputDefinition
Union of all pipeline input definitions, discriminated bytype.Discriminated union. The type field selects which schema applies.PipelineBooleanInputDefinition
Boolean pipeline input definitionstring
required
Unique identifier for this input — used in << pipeline.input.key >> templates(minLen:1)
enum
required
Input type — determines the field widget and validation rulesAllowed values:
booleanboolean
default:"true"
Whether this input must be provided when running the pipeline
string
Human-readable description shown in the UI when running the pipeline
boolean
Default value used when no value is provided at runtime
PipelineNumberInputDefinition
Number pipeline input definitionstring
required
Unique identifier for this input — used in << pipeline.input.key >> templates(minLen:1)
enum
required
Input type — determines the field widget and validation rulesAllowed values:
numberboolean
default:"true"
Whether this input must be provided when running the pipeline
string
Human-readable description shown in the UI when running the pipeline
integer
Default value used when no value is provided at runtime(format:int32)
Module.NumberValueItem[]
Dropdown options restricting allowed valuesSee: Module.NumberValueItem
integer
Minimum allowed value (inclusive)(format:int32)
integer
Maximum allowed value (inclusive)(format:int32)
PipelineObjectInputDefinition
Object pipeline input definitionstring
required
Unique identifier for this input — used in << pipeline.input.key >> templates(minLen:1)
enum
required
Input type — determines the field widget and validation rulesAllowed values:
objectboolean
default:"true"
Whether this input must be provided when running the pipeline
string
Human-readable description shown in the UI when running the pipeline
any
Default value used when no value is provided at runtime
PipelineStringArrayInputDefinition
String array pipeline input definitionstring
required
Unique identifier for this input — used in << pipeline.input.key >> templates(minLen:1)
enum
required
Input type — determines the field widget and validation rulesAllowed values:
string_arrayboolean
default:"true"
Whether this input must be provided when running the pipeline
string
Human-readable description shown in the UI when running the pipeline
string[]
Default value used when no value is provided at runtime
Module.ValidationPattern[]
Regex patterns each array element must matchSee: Module.ValidationPattern
PipelineStringInputDefinition
String pipeline input definitionstring
required
Unique identifier for this input — used in << pipeline.input.key >> templates(minLen:1)
enum
required
Input type — determines the field widget and validation rulesAllowed values:
stringboolean
default:"true"
Whether this input must be provided when running the pipeline
string
Human-readable description shown in the UI when running the pipeline
string
Default value used when no value is provided at runtime
Module.StringValueItem[]
Dropdown options restricting allowed valuesSee: Module.StringValueItem
Module.ValidationPattern[]
Regex patterns the value must matchSee: Module.ValidationPattern
PipelineTextInputDefinition
Text pipeline input definitionstring
required
Unique identifier for this input — used in << pipeline.input.key >> templates(minLen:1)
enum
required
Input type — determines the field widget and validation rulesAllowed values:
textboolean
default:"true"
Whether this input must be provided when running the pipeline
string
Human-readable description shown in the UI when running the pipeline
string
Default value used when no value is provided at runtime
Module.ValidationPattern[]
Regex patterns the value must matchSee: Module.ValidationPattern
Module.NumberValueItem
A selectable option with a numeric value. Used in number input validation.values arrays.string
Text shown in the dropdown — defaults to value if omitted
string
Extra detail shown alongside the option
string
Groups options under a shared heading in the dropdown
integer
required
Actual number sent to Terraform when this option is selected(format:int32)
Module.ShowWhen
Only show this option when another field has a specific valueSee: Module.ShowWhen
Module.ValidationPattern
A regex pattern with an error message for validationstring
required
JavaScript regex the input must match
string
required
Error shown to the user when validation fails
Module.StringValueItem
A selectable option with a string value. Used in string input validation.values arrays.string
Text shown in the dropdown — defaults to value if omitted
string
Extra detail shown alongside the option
string
Groups options under a shared heading in the dropdown
string
required
Actual value sent to Terraform when this option is selected
Module.ShowWhen
Only show this option when another field has a specific valueSee: Module.ShowWhen
Module.ShowWhen
Conditional visibility mapping; array source values support contains and contains-all matching. Keys are property names, values are the expected values or conditions. The property is shown only when all conditions are met.Type: map<string,Module.ShowWhenCondition>Module.ShowWhenCondition
A show_when condition.One of: string | integer | boolean | string | integer | boolean[], Module.ShowWhenNotCondition.Module.ShowWhenComparableValue
Value or values to compare against in a show_when condition; arrays mean membership for scalar sources and contains-all for array sources. When the source value is scalar, an array condition matches any listed value. When the source value is an array, a scalar condition matches if the array contains that value. When the source value is an array, an array condition matches if the array contains all listed values.One of: string | integer | boolean, string | integer | boolean[].Module.ShowWhenNotCondition
Negated show_when condition.string | integer | boolean | string | integer | boolean[]
required
Show the property only when the source value does not match this condition.
Module.ShowWhenValue
Value that can be used in a show_when condition. Supports string, number, or boolean values for comparison.One of: string, integer, boolean.Variants
Deployment variants such as production, staging, or dev — each variant can lock specific input valuesVariantDefinition
Variant definitionstring
required
Unique identifier for this variant, referenced by triggers(minLen:1)
string
required
Display name shown in the UI(minLen:1)
map<string,any | null>
Hard-coded input values for this variant — keys must match declared inputs, cannot be overridden by triggers
Steps
Ordered list of steps to execute — steps run sequentially unless wrapped in a parallel blockStep
Step - can be action, parallel, or group. This is the main recursive type for pipeline steps.One of: ActionStep, ParallelStep, GroupStep.ActionStep
Union of all action step types. Discriminated by thetype field on each step model.
Generates oneOf + discriminator in OpenAPI, which hey-api converts to z.discriminatedUnion().
Some step schemas, such as BuildLambdaCiStep, are generated as standalone
types but intentionally excluded here until they are public pipeline steps.Discriminated union. The type field selects which schema applies.GroupStep
Group step - contains nested stepsstring
required
Human-readable group label shown in pipeline UI
ConcurrencyConfig
Concurrency configuration for executions within this groupSee: ConcurrencyConfig
ParallelStep
Parallel step - executes children concurrentlyParallelChild[]
required
See: ParallelChild(minItems:1)
ConcurrencyConfig
Concurrency configuration for executions within this parallel blockSee: ConcurrencyConfig
enum
default:"cancel-all"
How to handle failures while branches in this parallel block are running
Default: “cancel-all”Allowed values:
cancel-all | finish-running | finish-allApprovalStep
Approval action step — pauses pipeline execution until a user explicitly approves. If timeout is omitted, the step waits indefinitely.string
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
approvalBuildImageCiStep
Build image CI action stepstring
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
build:imageImageBuildConfig
required
Builder configuration — dockerfile, nixpacks, or railpack settings for image buildsSee: ImageBuildConfig(templateable)
EnvironmentVariablesValue
Environment variables available during the build — plain strings or AWS secret referencesSee: EnvironmentVariablesValue(templateable)
boolean | null
Enable verbose build output for debugging build issues
Accepts either a boolean literal or a full template token(templateable)
EcrDestination[]
required
ECR destinations where the built Docker image will be pushedSee: EcrDestination(minItems:1; templateable)
StepInfrastructure
required
Execution environment configuration — required because image builds run on provisioned computeSee: StepInfrastructure(templateable)
BuildStaticCiStep
Build static CI action stepstring
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
build:staticStaticBuildConfig
required
Builder configuration — dockerfile, nixpacks, or railpack settingsSee: StaticBuildConfig(templateable)
EnvironmentVariablesValue
Environment variables available during the build — plain strings or AWS secret referencesSee: EnvironmentVariablesValue(templateable)
boolean | null
Enable verbose build output for debugging build issues
Accepts either a boolean literal or a full template token(templateable)
S3Destination[]
required
S3 destinations where the built static assets will be uploadedSee: S3Destination(minItems:1; templateable)
StepInfrastructure
required
Execution environment configuration — required because static builds run on provisioned computeSee: StepInfrastructure(templateable)
BuildStep
General-purpose build action step — triggers a build based on the module’s build config.string
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
string
required
Module instance reference — accepts the module instance row ID (e.g.
mi_…),
environmentGivenId.moduleGivenId, or
projectGivenId.environmentGivenId.moduleGivenId.(minLen:1; templateable)string | null
Human-readable description of this deployment.
Defaults to the pipeline run description if omitted.(templateable)
enum
required
Allowed values:
buildmap<string,any | null>
User-defined build parameters passed through to the module build manager.
These values are available to module build templates via
<< build.input.<key> >>.(templateable)CustomCommandCiStep
Custom command CI action stepstring
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
SetupAction[] | null
Setup actions to install tools before the commands run, in order, before any command.
Each entry installs a tool via the Flightcontrol actions registry (ravionhq/actions).See: SetupAction(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
customstring[]
required
Shell commands to execute in order(minItems:1; templateable)
EnvironmentVariablesValue
Environment variables available during command executionSee: EnvironmentVariablesValue(templateable)
string[]
Names of the string outputs this step publishes, readable by later steps as
<< steps.<id>.output.<name> >>. Commands publish values by appending
“name=value” lines to the file at $RAVION_OUTPUT; values for names that are
not declared here are ignored.(minItems:1)
StepInfrastructure
required
Execution environment configuration — required because custom commands run on provisioned computeSee: StepInfrastructure(templateable)
DeployStep
General-purpose deploy action step — triggers a deployment based on the module’s deployment config.string
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
string
required
Module instance reference — accepts the module instance row ID (e.g.
mi_…),
environmentGivenId.moduleGivenId, or
projectGivenId.environmentGivenId.moduleGivenId.(minLen:1; templateable)string | null
Human-readable description of this deployment.
Defaults to the pipeline run description if omitted.(templateable)
enum
required
Allowed values:
deploymap<string,any | null>
User-defined deploy parameters passed through to the deploy manager.
These values are available to module deployment templates via
<< deploy.input.<key> >>.(templateable)RollbackStep
Rollback action step — reverts a module to a specific previous deployment.string
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
rollbackstring
required
Deployment ID to rollback to(minLen:1; templateable)
SleepStep
Sleep action step — pauses pipeline execution for testing and debuggingstring
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
sleepinteger
required
Sleep duration in milliseconds(format:int64; templateable)
TerraformApplyCiStep
Terraform apply CI action stepstring
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
terraform:applyGitSource
EnvironmentVariablesValue
Environment variables available during execution — plain strings or AWS secret referencesSee: EnvironmentVariablesValue(templateable)
enum
required
IaC tool implementation used to execute this stepAllowed values:
opentofu | terraform(templateable)string
required
Terraform/OpenTofu version to execute(minLen:1; templateable)
string | null
Stack ID used for terraform resource/execution tracking
Automatically set when triggered from a stack(templateable)
string
required
S3 URI of the plan file to apply — typically from a preceding plan step output (e.g. s3://bucket/path/to/plan.tfplan)(templateable)
StepInfrastructure
required
Execution environment configuration — required because Terraform apply runs on provisioned computeSee: StepInfrastructure(templateable)
TerraformPlanCiStep
Terraform plan CI action stepstring
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
terraform:planGitSource
EnvironmentVariablesValue
Environment variables available during execution — plain strings or AWS secret referencesSee: EnvironmentVariablesValue(templateable)
enum
required
IaC tool implementation used to execute this stepAllowed values:
opentofu | terraform(templateable)string
required
Terraform/OpenTofu version to execute(minLen:1; templateable)
string | null
Stack ID used for terraform resource/execution tracking
Automatically set when triggered from a stack(templateable)
TerraformVariablesValue
Terraform input variables written to a .auto.tfvars.json file during plan creation — supports all HCL types and AWS secret referencesSee: TerraformVariablesValue(templateable)
string[] | null
Terraform tfvars file paths passed to terraform plan as -var-file flags, in the configured order.
Paths are relative to this step’s Terraform source base path.(templateable)
string | null
S3 directory URI to upload the plan file to — overrides the default convention-based path (e.g. s3://bucket/terraform-plans/run-123)(templateable)
enum
default:"apply"
Type of plan to generate — “apply” (default) creates/updates resources, “destroy” tears them downAllowed values:
apply | destroy(templateable)StepInfrastructure
required
Execution environment configuration — required because Terraform plan runs on provisioned computeSee: StepInfrastructure(templateable)
TriggerPipelineStep
Trigger pipeline action stepstring
required
Unique step identifier, used for referencing in logs and dependencies(minLen:1)
string
Human-readable step name shown in the pipeline UI
integer | null
Maximum execution time in seconds before the step is killed(format:int32,min:1; templateable)
boolean | null
Condition that must evaluate to true for this step to run
Accepts either a boolean literal or a full template token that resolves to a boolean(templateable)
ConcurrencyConfig
Concurrency configuration for controlling step execution across variantsSee: ConcurrencyConfig
enum
required
Allowed values:
trigger:pipelinestring
required
ID of the pipeline to trigger(minLen:1; templateable)
string | null
Specific pipeline version to trigger — defaults to the latest version if omitted(templateable)
string
required
Description to use for the triggered pipeline run(minLen:1; templateable)
map<string,any | null>
Input values to pass to the triggered pipeline as key-value pairs(templateable)
map<string,TriggerRunVariantConfig> | null
Per-variant run overrides — keys are variant IDs, values include description and optional input overridesSee: TriggerRunVariantConfig(templateable)
ParallelChild
Parallel child - can be action or group (no nested parallel allowed)One of: ActionStep, GroupStep.ParallelFailStrategy
Strategy for handling failures within a parallel blockAllowed values:cancel-allfinish-runningfinish-all
EcrDestination
ECR destination for image buildsstring
required
Unique destination identifier within the build step(templateable)
enum
required
ECR destination typeAllowed values:
ecr(templateable)string
required
ECR repository ARN(templateable)
string[] | null
Docker image tags to apply in ECR after the build finishes(templateable)
EnvironmentVariablesValue
Environment variable map value.Supports either:- a literal map of environment variables, or
- a full template block like << pipeline.input.env_variables >> that resolves to such a map.
GitSource
Git source configuration for fetching codeenum
required
Source type identifierAllowed values:
git(templateable)string
required
Full repository URL including host(templateable)
string
required
Branch to check out(minLen:1; templateable)
string | null
Git ref to check out — branch, commit SHA, tag, or other ref. Overrides branch HEAD if set.(templateable)
string | null
default:"."
Base path within the repository to use as the working root(templateable)
ImageBuildConfig
Image build configuration — discriminated by build methodDiscriminated union. Thetype field selects which schema applies.StepInfrastructure
Step infrastructure configurationNote: Additional validation via CEL:- exactly one target mode is required: execution_environment_id, or aws_account_id plus region
- instance_size as array only valid when type == “ec2-spot”
string | null
ID or given ID of a pre-configured execution environment(templateable)
string | null
AWS account reference for automatic network selection.Accepts either the Ravion AWS account database ID (e.g.
awsact_123) or the user-provided givenId configured on the AWS
account. The resolver normalizes the value to the DB id before any
downstream use; the givenId form is an input alias only and is never
persisted as the canonical reference.(templateable)string | null
AWS region for automatic network selection(templateable)
enum
required
Instance type — “ec2” for on-demand or “ec2-spot” for cheaper spot instancesAllowed values:
ec2 | ec2-spot(templateable)string | string[]
required
Instance size — a single size like “large” or an array like [“large”, “xlarge”] for spot fallback(templateable)
string | null
AMI ID for the runner instance(templateable)
AwsPermissions
IAM permissions for the runner role — “attach” to add policies or “replace” to override step defaultsSee: AwsPermissions(templateable)
StorageConfig
S3Destination
S3 destination for build artifactsstring
required
Unique destination identifier within the build step(minLen:1; templateable)
enum
required
S3 destination typeAllowed values:
s3(templateable)string
required
S3 bucket name where built assets will be uploaded(templateable)
string | null
S3 directory override for the uploaded build output.
When omitted, the build step generates a flat directory from the step ID,
commit short SHA, and pipeline run ID.(templateable)
string
required
AWS region for the destination S3 bucket(templateable)
StaticBuildConfig
Static build configuration — discriminated by build methodDiscriminated union. Thetype field selects which schema applies.SetupAction
A setup action that installs a tool before the step’s commands run. Resolved against the Flightcontrol actions registry (ravionhq/actions).string
required
Action reference to install a tool before running commands.
Shorthand (“go”, “make”) resolves to
ravionhq/actions/<name>@main,
or a full ref like ravionhq/actions/go@v1.(minLen:1; templateable)map<string,string> | null
Inputs passed to the action, keyed by the action’s declared input names.(templateable)
StepOutputName
Name of an output a step publishes. Must be usable both as a shell variable name and as a << steps.<id>.output.<name> >> field.Type: stringTerraformTool
Supported IaC tool for terraform:* CI stepsAllowed values:opentofuterraform
TerraformPlanType
Type of Terraform plan to generateAllowed values:applydestroy
TerraformVariableFilePath
Terraform/OpenTofu tfvars file path relative to the step source base pathType: stringTerraformVariablesValue
Terraform variable map value.Supports either:- a literal map of terraform variables, or
- a full template block like << pipeline.input.terraform_variables >> that resolves to such a map.
EnvironmentVariable
Environment variable — can be a plain string, Parameter Store reference, or Secrets Manager referenceOne of: string | null, ParameterStoreEnvVar, SecretsManagerEnvVar.GitRepoUrl
Full git repository URL including host.Type: stringDisabledBuildConfig
Disabled build configuration. Valid only for module-driven builds.enum
required
Build method — disables module build executionAllowed values:
disabled(templateable)ImageDockerfileBuildConfig
Dockerfile configuration for image buildsenum
required
Build method — use a custom DockerfileAllowed values:
dockerfile(templateable)string | null
default:"Dockerfile"
Path to Dockerfile relative to source.base_path(minLen:1; templateable)
string | null
default:"."
Docker build context path relative to source.base_path(templateable)
boolean | null
Whether to inject environment variables as Docker build args
Accepts either a boolean literal or a full template token(templateable)
CacheFromConfig
ImageNixpacksBuildConfig
Nixpacks configuration for image buildsenum
required
Build method — use Nixpacks auto-detectionAllowed values:
nixpacks(templateable)string | null
Nixpacks version to use(templateable)
string | null
Directory to run the Nixpacks build from, relative to the repository root(templateable)
string | null
Path to the Nixpacks configuration file relative to the repository root(templateable)
string[] | null
Additional Nix packages to install(templateable)
string[] | null
Additional apt packages to install(templateable)
string[] | null
Additional Nix libraries to install(templateable)
string | null
Custom install command(templateable)
string | null
Custom build command(templateable)
string | null
Application start command(templateable)
CacheFromConfig
ImageRailpackBuildConfig
Railpack configuration for image buildsenum
required
Build method — use Railpack auto-detectionAllowed values:
railpack(templateable)string | null
Railpack version to use(templateable)
string | null
Custom install command(templateable)
string | null
Custom build command(templateable)
string | null
Application start command(templateable)
CacheFromConfig
AwsPermissions
IAM policies configuration for runner roles Used by EC2-backed steps to specify additional permissionsOne of: AwsPermissionsAttach, AwsPermissionsReplace.InfrastructureType
Execution environment typeAllowed values:ec2ec2-spot
InstanceSize
Instance size can be a single string or array of stringsOne of: string, string[].StorageConfig
Root volume storage configurationenum
Volume typeAllowed values:
gp3 | gp2 | io2 | io1(templateable)integer | null
Volume size in GiB(format:int32; templateable)
integer | null
Provisioned IOPS(format:int32; templateable)
integer | null
Provisioned throughput in MiB/s(format:int32; templateable)
StaticDockerfileBuildConfig
Dockerfile configuration for static buildsenum
required
Build method — use a custom DockerfileAllowed values:
dockerfile(templateable)string | null
default:"Dockerfile"
Path to Dockerfile relative to source.base_path(minLen:1; templateable)
string | null
default:"."
Docker build context path relative to source.base_path(templateable)
boolean | null
Whether to inject environment variables as Docker build args
Accepts either a boolean literal or a full template token(templateable)
string
required
Directory inside the built image containing the static assets to upload
This path is resolved relative to source.base_path(minLen:1; templateable)
StaticNixpacksBuildConfig
Nixpacks configuration for static buildsenum
required
Build method — use Nixpacks auto-detectionAllowed values:
nixpacks(templateable)string | null
Nixpacks version to use(templateable)
string | null
Directory to run the Nixpacks build from, relative to the repository root(templateable)
string | null
Path to the Nixpacks configuration file relative to the repository root(templateable)
string[] | null
Additional Nix packages to install(templateable)
string[] | null
Additional apt packages to install(templateable)
string[] | null
Additional Nix libraries to install(templateable)
string | null
Custom install command(templateable)
string | null
Custom build command(templateable)
string
required
Directory inside the built image containing the static assets to upload
This path is resolved relative to source.base_path(minLen:1; templateable)
StaticRailpackBuildConfig
Railpack configuration for static buildsenum
required
Build method — use Railpack auto-detectionAllowed values:
railpack(templateable)string | null
Railpack version to use(templateable)
string | null
Custom install command(templateable)
string | null
Custom build command(templateable)
string
required
Directory inside the built image containing the static assets to upload
This path is resolved relative to source.base_path(minLen:1; templateable)
TerraformVariable
Terraform variable — can be any JSON value (string, number, boolean, null, array, object), a Parameter Store reference, or a Secrets Manager referenceOne of: ParameterStoreEnvVar, SecretsManagerEnvVar, any | null.ParameterStoreEnvVar
Environment variable from AWS Parameter StoreParameterStoreReferenceValue
required
SecretsManagerEnvVar
Environment variable from AWS Secrets ManagerSecretsManagerReferenceValue
required
CacheFromConfig
Configuration for Docker layer cache source from ECRstring | null
Specific image digest to use for cache(templateable)
string | null
Specific image tag to use for cache(templateable)
AwsPermissionsAttach
IAM policies to attach alongside step default policiesstring[]
required
AWS managed policy ARNs to attach alongside step default policies(templateable)
AwsPermissionsReplace
IAM policies to replace step default policies entirelystring[]
required
AWS managed policy ARNs to use instead of step default policies(templateable)
EbsVolumeType
EBS volume type for the runner root volumeAllowed values:gp3gp2io2io1
ParameterStoreReferenceValue
Parameter Store reference — shorthand string or object with optional version metadataOne of: string, ParameterStoreReference.SecretsManagerReferenceValue
Secrets Manager reference — shorthand string or object with optional JSON key/version metadataOne of: string, SecretsManagerReference.ParameterStoreReference
Parameter Store reference with optional version metadatastring
required
Parameter Store parameter name or path(templateable)
string | null
Parameter version number — defaults to latest if omitted(templateable)
SecretsManagerReference
Secrets Manager reference with optional JSON key and version metadatastring
required
Secret name or ARN in Secrets Manager(templateable)
string | null
JSON key to extract from a JSON-structured secret(templateable)
string | null
Secret version ID or stage — defaults to latest if omitted(templateable)
Rollback
Steps to execute if the pipeline fails — runs in order after a failure is detectedUses the same types as Steps.Template expressions
Fields marked templateable accept<< expression >> template tokens.-
Block mode preserves the resolved type:
-
Interpolation mode always produces a string:
+, -, *, /, %, >, <, >=, <=, ==, !=, &&, ||, !.Ternary: << condition ? trueVal : falseVal >>. Default fallback: << input.x || "fallback" >>.Access: array[0], map["key"], map.key. Functions: len(), upper(), lower().Available namespaces: pipeline.input.*, pipeline.run.{id,description}, pipeline.variant.{id,name}, steps.{id}.{output,input}.*, step.input.*, trigger.payload.{branch,commit,ref,repository,event,tag}.