Skip to content
Proud to collaborate with Microsoft for Startups

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 ​

PropertyValue
Workflow typeLinear
LibraryApp-deployments
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
rollout_uuiduuidYes——
organization_uuiduuidYes——

Output Schema ​

FieldTypeRequiredDefaultDescription
rollout_uuiduuidNo——
organization_uuiduuidNo——
release_uuiduuidNo——
deployment_target_uuiduuidNo——
canary_percentagesjsonNo——
current_stage_indexintegerNo——
bake_secondsintegerNo——
targeting_modestringNo——
targeting_rulesjsonNo——
canary_audience_descriptionstringNo——
candidate_slot_namestringNo——
staging_distribution_refstringNo——
staging_distribution_domainstringNo——
origin_pathstringNo——
current_traffic_percentintegerNo——
continuous_deployment_policy_refstringNo——
health_statusstringNo——
health_decisionstringNo——
health_checksjsonNo——
health_wait_retry_countintegerNo——
health_retry_after_secondsintegerNo——
health_resume_actionstringNo——
approval_resume_actionstringNo——
health_decision_actionstringNo——
approval_requiredbooleanNo——
slot_namestringNo——
copied_countintegerNo——
deleted_countintegerNo——
invalidation_refstringNo——
completed_atstringNo——
aborted_atstringNo——
failed_atstringNo——
failed_at_statestringNo——
provider_wait_reasonstringNo——
provider_wait_operationstringNo——
provider_wait_resource_refstringNo——
provider_wait_retry_countintegerNo——
provider_wait_scheduled_atstringNo——
scheduled_next_actionstringNo——
bake_scheduled_atstringNo——
health_wait_scheduled_atstringNo——
operator_pause_reasonstringNo——
operator_pause_requested_atstringNo——
failure_reasonstringNo——
failure_typestringNo——
failed_actionstringNo——
failed_stepstringNo——
failed_layerstringNo——
errorstringNo——
error_typestringNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
initiatedYesNo—prepareCanary rollout request accepted
approval_waitingNoNo——Manual approval required before progressing
bakingNoNo——Observe canary traffic during bake window
health_checkingNoNo——Evaluate canary health gate decision
preparingNoNo—prepare_candidatePrepare candidate slot and canary plan
promotingNoNo—completePromote canary release to full traffic
shiftingNoNo—shift_stageApply canary traffic percentage to candidate slot
abortedNoYesNo—Canary rollout aborted
completedNoYesYes—Canary rollout completed successfully
failedNoYesNo—Canary rollout failed

State Diagram ​

Transitions ​

FromActionToDescription
initiatedpreparepreparingInitialize canary rollout context
preparingprepare_candidateshiftingCandidate slot prepared for canary
shiftingshift_stagebakingTraffic shifted to canary stage
bakingshift_stageshiftingHandle stale shift transition while baking
bakingadvance_stagehealth_checkingBake window finished for intermediate stage
bakingretry_shift_stageshiftingRetry canary traffic shift after provider wait
bakingadvance_promotehealth_checkingBake window finished for final canary stage
health_checkinghealth_advance_stageshiftingHealth gate approved progression to next canary stage
health_checkinghealth_advance_promotepromotingHealth gate approved full promotion
health_checkinghealth_waitbakingHealth gate requires additional bake/observation
health_checkingapproval_waitapproval_waitingHealth/approval policy requires operator confirmation
approval_waitingapprove_stageshiftingOperator approved progression to next stage
approval_waitingapprove_promotepromotingOperator approved final promotion
approval_waitingreject_approvalabortedOperator rejected rollout progression
health_checkinghealth_abortabortedHealth gate requested rollback/abort
promotingpromotepromotingCompatibility promote action before completion
promotingcompletecompletedFinalize successful canary rollout
* (any state)abortabortedAbort workflow
* (any state)failfailedMark 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"
  }
}