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 union. Thetype 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.
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.See: ConcurrencyConfig
map<string,TriggerRunVariantConfig>
required
Maps variant IDs to run configuration — keys must match declared variant IDs.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.
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.See: ConcurrencyConfig
map<string,TriggerRunVariantConfig>
required
Maps variant IDs to run configuration — keys must match declared variant IDs.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.
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.See: ConcurrencyConfig
map<string,TriggerRunVariantConfig>
required
Maps variant IDs to run configuration — keys must match declared variant IDs.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.
enum
required
Trigger type for cron schedule triggers.Allowed values:
schedulestring
required
Cron expression defining when the pipeline runs (UTC unless timezone is set).
string
IANA timezone for evaluating the cron expression. Defaults to UTC.
ConcurrencyConfig
Concurrency configuration for runs started by this trigger.See: ConcurrencyConfig
map<string,TriggerRunVariantConfig>
required
Maps variant IDs to run configuration — keys must match declared variant IDs.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 pip…(minLen:1)
enum
default:"pipeline"
Where the concurrency key is shared Organization-scoped concurrency requires an explicit keyAllowed values:
pipeline | organizationinteger
default:"0"
Maximum concurrent executions allowed (0 means unlimited, 1 means sequential)(format:int32,min:0)
enum
default:"queue"
Behavior when the concurrency limit is reachedAllowed 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 > 0Allowed 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.(templateable)
string[] | null
Only trigger when files in these paths are changed(templateable)
PayloadCondition[]
Filter by webhook payload fields using dot-notation paths.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.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.string
Text shown in the dropdown
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.string
Text shown in the dropdown
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.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.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.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.One of: ActionStep, ParallelStep, GroupStep.ActionStep
Union of all action step types.Discriminated union. Thetype 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 runningAllowed 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.modul…(minLen:1; templateable)string | null
Human-readable description of this deployment.(templateable)
enum
required
Allowed values:
buildmap<string,any | null>
User-defined build parameters passed through to the module build manager.(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.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)
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.modul…(minLen:1; templateable)string | null
Human-readable description of this deployment.(templateable)
enum
required
Allowed values:
deploymap<string,any | null>
User-defined deploy parameters passed through to the deploy manager.(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.(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(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.One of: map<string,EnvironmentVariable>, string.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 configurationstring | null
ID or given ID of a pre-configured execution environment(templateable)
string | null
AWS account reference for automatic network selection.(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.(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.string
required
Action reference to install a tool before running commands.(minLen:1; templateable)
map<string,string> | null
Inputs passed to the action, keyed by the action’s declared input names.(templateable)
TerraformTool
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.One of: map<string,TerraformVariable>, string.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(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(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}.