This feature is in beta
To use this feature, pass in a header including the
LD-API-Version
key with value set tobeta
. Use this header with each call. To learn more, read Beta resources.Resources that are in beta are still undergoing testing and development. They may change without notice, including becoming backwards incompatible.
Release pipelines standardize the release process for feature flags across a series of phases, where each phase consists of one or more environments. When you add a flag to a release pipeline, you create a "release" to automate that flag's progress through the pipeline.
You can use release pipelines to ensure that you correctly roll out the flag in each environment before moving on to the next. A release can use an immediate or guarded rollout to a designated audience, and can require approvals for selected environments. You can also use release pipelines to view the status of ongoing releases across all flags within a project, enforcing a standardized process and ensuring they are following best practices. To learn more, read Release pipelines.
With the release pipelines API, you can view, create, update, and delete release pipelines.
With the related releases API, you can view and update the active releases for a given flag.
To add a feature flag to an existing release pipeline, use the Update feature flag endpoint.
Get all release pipelines for a project.
LaunchDarkly supports the following fields for filters:
query
is a string that matches against the release pipeline key
, name
, and description
. It is not case sensitive. For example: ?filter=query:examplePipeline
.
env
is a string that matches an environment key. For example: ?filter=env:production
.
Release pipeline collection
Invalid resource identifier
{- "items": [
- {
- "createdAt": "1684262711507",
- "description": "Standard pipeline to roll out to production",
- "key": "standard-pipeline",
- "name": "Standard Pipeline",
- "phases": [
- {
- "id": "1234a56b7c89d012345e678f",
- "audiences": [
- {
- "environment": {
- "_links": { },
- "key": null,
- "name": null,
- "color": null
}, - "name": "Phase 1 - Testing",
- "configuration": {
- "releaseStrategy": null,
- "requireApproval": null,
- "notifyMemberIds": [ ],
- "notifyTeamKeys": [ ],
- "releaseGuardianConfiguration": null
}, - "segmentKeys": [
- "segment-key-123abc"
]
}
], - "name": "Phase 1 - Testing",
- "configuration": {
- "bakeTimeDurationMs": 60000
}
}
], - "tags": [
- "example-tag"
], - "_version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- null
], - "actions": [
- "*"
], - "notActions": [
- null
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- null
], - "actions": [
- "*"
], - "notActions": [
- null
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "isProjectDefault": true,
- "_isLegacy": true
}
], - "totalCount": 1
}
Creates a new release pipeline.
The first release pipeline you create is automatically set as the default release pipeline for your project. To change the default release pipeline, use the Update project API to set the defaultReleasePipelineKey
.
You can create up to 20 release pipelines per project.
Release pipeline response
Invalid request
Forbidden
Invalid resource identifier
Status conflict
{- "description": "Standard pipeline to roll out to production",
- "key": "standard-pipeline",
- "name": "Standard Pipeline",
- "phases": [
- {
- "audiences": [
- {
- "environmentKey": "string",
- "name": "string",
- "segmentKeys": [
- "string"
], - "configuration": {
- "releaseStrategy": "string",
- "requireApproval": true,
- "notifyMemberIds": [
- "1234a56b7c89d012345e678f"
], - "notifyTeamKeys": [
- "example-reviewer-team"
], - "releaseGuardianConfiguration": {
- "monitoringWindowMilliseconds": 60000,
- "rolloutWeight": 50,
- "rollbackOnRegression": true,
- "randomizationUnit": "user"
}
}
}
], - "name": "Phase 1 - Testing",
- "configuration": {
- "bakeTimeDurationMs": 60000
}
}
], - "tags": [
- "example-tag"
], - "isProjectDefault": true,
- "isLegacy": true
}
{- "createdAt": "1684262711507",
- "description": "Standard pipeline to roll out to production",
- "key": "standard-pipeline",
- "name": "Standard Pipeline",
- "phases": [
- {
- "id": "1234a56b7c89d012345e678f",
- "audiences": [
- {
- "environment": {
- "_links": {
- "self": {
- "href": "/api/v2/projects/my-project/environments/my-environment",
- "type": "application/json"
}
}, - "key": "environment-key-123abc",
- "name": "My Environment",
- "color": "F5A623"
}, - "name": "Phase 1 - Testing",
- "configuration": {
- "releaseStrategy": "string",
- "requireApproval": true,
- "notifyMemberIds": [
- "1234a56b7c89d012345e678f"
], - "notifyTeamKeys": [
- "example-reviewer-team"
], - "releaseGuardianConfiguration": {
- "monitoringWindowMilliseconds": 60000,
- "rolloutWeight": 50,
- "rollbackOnRegression": true,
- "randomizationUnit": "user"
}
}, - "segmentKeys": [
- "segment-key-123abc"
]
}
], - "name": "Phase 1 - Testing",
- "configuration": {
- "bakeTimeDurationMs": 60000
}
}
], - "tags": [
- "example-tag"
], - "_version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "isProjectDefault": true,
- "_isLegacy": true
}
Get a release pipeline by key
Release pipeline response
Invalid resource identifier
{- "createdAt": "1684262711507",
- "description": "Standard pipeline to roll out to production",
- "key": "standard-pipeline",
- "name": "Standard Pipeline",
- "phases": [
- {
- "id": "1234a56b7c89d012345e678f",
- "audiences": [
- {
- "environment": {
- "_links": {
- "self": {
- "href": "/api/v2/projects/my-project/environments/my-environment",
- "type": "application/json"
}
}, - "key": "environment-key-123abc",
- "name": "My Environment",
- "color": "F5A623"
}, - "name": "Phase 1 - Testing",
- "configuration": {
- "releaseStrategy": "string",
- "requireApproval": true,
- "notifyMemberIds": [
- "1234a56b7c89d012345e678f"
], - "notifyTeamKeys": [
- "example-reviewer-team"
], - "releaseGuardianConfiguration": {
- "monitoringWindowMilliseconds": 60000,
- "rolloutWeight": 50,
- "rollbackOnRegression": true,
- "randomizationUnit": "user"
}
}, - "segmentKeys": [
- "segment-key-123abc"
]
}
], - "name": "Phase 1 - Testing",
- "configuration": {
- "bakeTimeDurationMs": 60000
}
}
], - "tags": [
- "example-tag"
], - "_version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "isProjectDefault": true,
- "_isLegacy": true
}
Updates a release pipeline. Updating a release pipeline uses a JSON patch representation of the desired changes. To learn more, read Updates.
Release pipeline response
Invalid request
Forbidden
Invalid resource identifier
{- "createdAt": "1684262711507",
- "description": "Standard pipeline to roll out to production",
- "key": "standard-pipeline",
- "name": "Standard Pipeline",
- "phases": [
- {
- "id": "1234a56b7c89d012345e678f",
- "audiences": [
- {
- "environment": {
- "_links": {
- "self": {
- "href": "/api/v2/projects/my-project/environments/my-environment",
- "type": "application/json"
}
}, - "key": "environment-key-123abc",
- "name": "My Environment",
- "color": "F5A623"
}, - "name": "Phase 1 - Testing",
- "configuration": {
- "releaseStrategy": "string",
- "requireApproval": true,
- "notifyMemberIds": [
- "1234a56b7c89d012345e678f"
], - "notifyTeamKeys": [
- "example-reviewer-team"
], - "releaseGuardianConfiguration": {
- "monitoringWindowMilliseconds": 60000,
- "rolloutWeight": 50,
- "rollbackOnRegression": true,
- "randomizationUnit": "user"
}
}, - "segmentKeys": [
- "segment-key-123abc"
]
}
], - "name": "Phase 1 - Testing",
- "configuration": {
- "bakeTimeDurationMs": 60000
}
}
], - "tags": [
- "example-tag"
], - "_version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "isProjectDefault": true,
- "_isLegacy": true
}
Deletes a release pipeline.
You cannot delete the default release pipeline.
If you want to delete a release pipeline that is currently the default, create a second release pipeline and set it as the default. Then delete the first release pipeline. To change the default release pipeline, use the Update project API to set the defaultReleasePipelineKey
.
Action succeeded
Forbidden
Invalid resource identifier
{- "code": "forbidden",
- "message": "Forbidden. Access to the requested resource was denied."
}
Get details on the progression of all releases, across all flags, for a release pipeline
Release progression collection
Invalid resource identifier
{- "activeCount": 3,
- "completedCount": 1,
- "items": [
- {
- "_createdAt": 0,
- "_completedAt": 0,
- "flagKey": "flag-key-123abc",
- "activePhaseId": "1234a56b7c89d012345e678f",
- "_links": {
- "property1": {
- "href": "string",
- "type": "string"
}, - "property2": {
- "href": "string",
- "type": "string"
}
}
}
], - "phases": [
- {
- "_id": "1234a56b7c89d012345e678f",
- "name": "Phase 1 - Testing",
- "releaseCount": 2
}
], - "totalCount": 8,
- "_links": {
- "property1": {
- "href": "string",
- "type": "string"
}, - "property2": {
- "href": "string",
- "type": "string"
}
}
}