Skip to main content

Distribution Channels

Every project has three fixed distribution channels that represent deployment environments. Publishing a template to a channel makes it available in that environment.

Channels

ChannelEnum valuePurpose
DEV0Local development and early integration testing
STAGING1Pre-production validation with real infrastructure
PROD2Live production traffic

Publishing to PROD is what triggers the template's status to change to Production.

Channel state

Each channel tracks:

FieldDescription
channelDEV, STAGING, or PROD
activeTemplateIdThe template currently published to this channel (null if unpublished)
channelHandleInternal publication identifier
publishedByUser who performed the last publish action
publishedAtTimestamp of the last publish action

API endpoints

MethodPathRole requiredDescription
GET/api/Projects/{projectId}/distribution-channelsViewer+List all three channels with their current state
POST/api/Projects/{projectId}/distribution-channels/{channel}/publishProjectManager+Publish a template to a channel
POST/api/Projects/{projectId}/distribution-channels/{channel}/unpublishProjectManager+Remove the active template from a channel

{channel} must be DEV, STAGING, or PROD.

Publishing a template

POST /api/Projects/{projectId}/distribution-channels/PROD/publish
Authorization: Bearer {token}

{
"templateId": "template-uuid"
}

The template must be in Testing status to be published. Publishing to PROD automatically moves the previously Production template to Previous.

Unpublishing a channel

POST /api/Projects/{projectId}/distribution-channels/STAGING/unpublish
Authorization: Bearer {token}

Removes the active template from the channel. The template's status is not affected — it remains whatever it was.

Archiving a project automatically unpublishes all three channels.

Upload template → Publish to DEV → Test
→ Publish to STAGING → Validate
→ Publish to PROD → Live

Channels are independent — you can publish different template versions to DEV and STAGING simultaneously for parallel testing.