deploy.rollout-static-canary ​
Shift a small percentage of traffic to a staging distribution before full promotion
Shift a small percentage of traffic to a staging distribution before full promotion.
Overview ​
| Property | Value |
|---|---|
| Workflow type | Linear |
| Library | App-deployments |
| Version | 1.0 |
Input Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
rollout_uuid | uuid | Yes | — | — |
organization_uuid | uuid | Yes | — | — |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
rollout_uuid | uuid | No | — | — |
organization_uuid | uuid | No | — | — |
release_uuid | uuid | No | — | — |
deployment_target_uuid | uuid | No | — | — |
canary_percentages | json | No | — | — |
current_stage_index | integer | No | — | — |
bake_seconds | integer | No | — | — |
targeting_mode | string | No | — | — |
targeting_rules | json | No | — | — |
canary_audience_description | string | No | — | — |
candidate_slot_name | string | No | — | — |
staging_distribution_ref | string | No | — | — |
staging_distribution_domain | string | No | — | — |
origin_path | string | No | — | — |
current_traffic_percent | integer | No | — | — |
continuous_deployment_policy_ref | string | No | — | — |
health_status | string | No | — | — |
health_decision | string | No | — | — |
health_checks | json | No | — | — |
health_wait_retry_count | integer | No | — | — |
health_retry_after_seconds | integer | No | — | — |
health_resume_action | string | No | — | — |
approval_resume_action | string | No | — | — |
health_decision_action | string | No | — | — |
approval_required | boolean | No | — | — |
slot_name | string | No | — | — |
copied_count | integer | No | — | — |
deleted_count | integer | No | — | — |
invalidation_ref | string | No | — | — |
completed_at | string | No | — | — |
aborted_at | string | No | — | — |
failed_at | string | No | — | — |
failed_at_state | string | No | — | — |
provider_wait_reason | string | No | — | — |
provider_wait_operation | string | No | — | — |
provider_wait_resource_ref | string | No | — | — |
provider_wait_retry_count | integer | No | — | — |
provider_wait_scheduled_at | string | No | — | — |
scheduled_next_action | string | No | — | — |
bake_scheduled_at | string | No | — | — |
health_wait_scheduled_at | string | No | — | — |
operator_pause_reason | string | No | — | — |
operator_pause_requested_at | string | No | — | — |
failure_reason | string | No | — | — |
failure_type | string | No | — | — |
failed_action | string | No | — | — |
failed_step | string | No | — | — |
failed_layer | string | No | — | — |
error | string | No | — | — |
error_type | string | No | — | — |
States ​
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
initiated | Yes | No | — | prepare | Canary rollout request accepted |
approval_waiting | No | No | — | — | Manual approval required before progressing |
baking | No | No | — | — | Observe canary traffic during bake window |
health_checking | No | No | — | — | Evaluate canary health gate decision |
preparing | No | No | — | prepare_candidate | Prepare candidate slot and canary plan |
promoting | No | No | — | complete | Promote canary release to full traffic |
shifting | No | No | — | shift_stage | Apply canary traffic percentage to candidate slot |
aborted | No | Yes | No | — | Canary rollout aborted |
completed | No | Yes | Yes | — | Canary rollout completed successfully |
failed | No | Yes | No | — | Canary rollout failed |
State Diagram ​
Transitions ​
| From | Action | To | Description |
|---|---|---|---|
initiated | prepare | preparing | Initialize canary rollout context |
preparing | prepare_candidate | shifting | Candidate slot prepared for canary |
shifting | shift_stage | baking | Traffic shifted to canary stage |
baking | shift_stage | shifting | Handle stale shift transition while baking |
baking | advance_stage | health_checking | Bake window finished for intermediate stage |
baking | retry_shift_stage | shifting | Retry canary traffic shift after provider wait |
baking | advance_promote | health_checking | Bake window finished for final canary stage |
health_checking | health_advance_stage | shifting | Health gate approved progression to next canary stage |
health_checking | health_advance_promote | promoting | Health gate approved full promotion |
health_checking | health_wait | baking | Health gate requires additional bake/observation |
health_checking | approval_wait | approval_waiting | Health/approval policy requires operator confirmation |
approval_waiting | approve_stage | shifting | Operator approved progression to next stage |
approval_waiting | approve_promote | promoting | Operator approved final promotion |
approval_waiting | reject_approval | aborted | Operator rejected rollout progression |
health_checking | health_abort | aborted | Health gate requested rollback/abort |
promoting | promote | promoting | Compatibility promote action before completion |
promoting | complete | completed | Finalize successful canary rollout |
* (any state) | abort | aborted | Abort workflow |
* (any state) | fail | failed | Mark workflow as failed |
API Usage ​
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "deploy.rollout-static-canary",
"initial_data": {
"rollout_uuid": "value",
"organization_uuid": "value"
}
}