Release Candidates

List release candidates with optional filters

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
repositoryIdentifierstringOptional

Filter by repository identifier (e.g., flxbl-io/sf-core)

domainstringOptional

Filter by domain (e.g., core, auth, origination)

branchstringOptional

Filter by branch (e.g., main, develop)

limitnumberOptional

Limit results (1-200, default: 50)

offsetnumberOptional

Offset for pagination (default: 0)

Responses
200

List of release candidates

application/json
get
/sfp/api/release-candidates
GET /sfp/api/release-candidates HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "id": "text",
      "repositoryIdentifier": "text",
      "domain": "text",
      "releaseName": "text",
      "commitSha": "text",
      "branch": "text",
      "tag": "text",
      "value": {},
      "version": 1,
      "createdAt": "text",
      "updatedAt": "text",
      "createdBy": "text",
      "updatedBy": "text"
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1
}

Create or update a release candidate

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
repositoryIdentifierstringRequired

Repository identifier (e.g., "owner/repo")

domainstringRequired

Domain/release configuration name

releaseNamestringRequired

Release name

commitShastringRequired

Git commit SHA

branchstringOptional

Git branch name

tagstringOptional

Git tag

valueobjectRequired

Release definition and metadata

Responses
post
/sfp/api/release-candidates
POST /sfp/api/release-candidates HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "repositoryIdentifier": "text",
  "domain": "text",
  "releaseName": "text",
  "commitSha": "text",
  "branch": "text",
  "tag": "text",
  "value": {}
}
{
  "id": "text",
  "repositoryIdentifier": "text",
  "domain": "text",
  "releaseName": "text",
  "commitSha": "text",
  "branch": "text",
  "tag": "text",
  "value": {},
  "version": 1,
  "createdAt": "text",
  "updatedAt": "text",
  "createdBy": "text",
  "updatedBy": "text"
}

Get the latest release candidate for a domain

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
repositoryIdentifierstringRequired

Repository identifier (e.g., flxbl-io/sf-core)

domainstringRequired

Domain name (e.g., core, auth, origination)

branchstringOptional

Filter by branch (e.g., main, develop)

Responses
200

Latest release candidate

application/json
get
/sfp/api/release-candidates/latest
GET /sfp/api/release-candidates/latest?repositoryIdentifier=text&domain=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "text",
  "repositoryIdentifier": "text",
  "domain": "text",
  "releaseName": "text",
  "commitSha": "text",
  "branch": "text",
  "tag": "text",
  "value": {},
  "version": 1,
  "createdAt": "text",
  "updatedAt": "text",
  "createdBy": "text",
  "updatedBy": "text"
}

Get a specific release candidate

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

Release candidate ID

Responses
200

Release candidate details

application/json
get
/sfp/api/release-candidates/{id}
GET /sfp/api/release-candidates/{id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "text",
  "repositoryIdentifier": "text",
  "domain": "text",
  "releaseName": "text",
  "commitSha": "text",
  "branch": "text",
  "tag": "text",
  "value": {},
  "version": 1,
  "createdAt": "text",
  "updatedAt": "text",
  "createdBy": "text",
  "updatedBy": "text"
}

Delete a release candidate

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

Release candidate ID

Responses
delete
/sfp/api/release-candidates/{id}
DELETE /sfp/api/release-candidates/{id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Compare release candidate with an environment

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

Release candidate ID

Body
environmentIdstringRequired

Environment ID to compare against

Responses
200

Comparison results

application/json
post
/sfp/api/release-candidates/{id}/compare
POST /sfp/api/release-candidates/{id}/compare HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 24

{
  "environmentId": "text"
}
{
  "releaseCandidate": {
    "id": "text",
    "repositoryIdentifier": "text",
    "domain": "text",
    "releaseName": "text",
    "commitSha": "text",
    "branch": "text",
    "tag": "text",
    "value": {},
    "version": 1,
    "createdAt": "text",
    "updatedAt": "text",
    "createdBy": "text",
    "updatedBy": "text"
  },
  "environment": {},
  "comparison": {
    "packagesToInstall": [],
    "packagesToUpdate": [],
    "packagesToRemove": [],
    "totalChanges": 1
  },
  "estimatedDeploymentTime": 1
}

Get change analysis for a release candidate

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

Release candidate ID

Query parameters
sincestringOptional

Compare changes since this commit SHA or date

Responses
200

Change analysis

application/json
get
/sfp/api/release-candidates/{id}/changes
GET /sfp/api/release-candidates/{id}/changes HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "packages": [
    "text"
  ],
  "workItems": [
    "text"
  ],
  "commits": [
    "text"
  ]
}

Get rolling analysis from baseline to latest candidate

get

Performs comprehensive rolling analysis showing progression from last completed release to latest candidate

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
repositorystringRequired

Repository identifier (e.g., flxbl-io/sf-core)

domainstringRequired

Domain name (e.g., core, auth, origination)

Query parameters
branchstringOptional

Filter by branch (e.g., main, develop)

includeChangelogbooleanOptional

Include package changelogs (default: false)

Responses
200

Rolling analysis data

application/json
get
/sfp/api/release-candidates/rolling-analysis/{repository}/{domain}
GET /sfp/api/release-candidates/rolling-analysis/{repository}/{domain} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Rolling analysis data

{
  "repository": "text",
  "domain": "text",
  "baseline": {
    "releaseName": "text",
    "createdAt": "text",
    "completedAt": "text",
    "deployedEnvironments": [
      "text"
    ],
    "packages": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    }
  },
  "orchestrationOrder": [
    "text"
  ],
  "currentEnvironmentStates": {
    "ANY_ADDITIONAL_PROPERTY": {
      "currentRelease": "text",
      "packages": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  },
  "candidatesByBranch": {
    "byBranch": {
      "ANY_ADDITIONAL_PROPERTY": [
        {
          "id": "text",
          "releaseName": "text",
          "branch": "text",
          "commitSha": "text",
          "createdAt": "text",
          "incrementalChanges": {
            "packages": {
              "added": [
                {
                  "name": "text",
                  "version": "text"
                }
              ],
              "updated": [
                {
                  "name": "text",
                  "fromVersion": "text",
                  "toVersion": "text"
                }
              ],
              "removed": [
                {
                  "name": "text",
                  "version": "text"
                }
              ]
            },
            "summary": {
              "totalPackageChanges": 1,
              "totalCommits": 1,
              "totalWorkItems": 1
            }
          },
          "cumulativeChanges": {
            "packages": {
              "added": [
                {
                  "name": "text",
                  "version": "text"
                }
              ],
              "updated": [
                {
                  "name": "text",
                  "fromVersion": "text",
                  "toVersion": "text"
                }
              ],
              "removed": [
                {
                  "name": "text",
                  "version": "text"
                }
              ]
            },
            "summary": {
              "totalPackageChanges": 1,
              "totalCommits": 1,
              "totalWorkItems": 1
            },
            "cumulativeSummary": {
              "estimatedDeploymentTime": 1
            }
          }
        }
      ]
    },
    "all": [
      {
        "id": "text",
        "releaseName": "text",
        "branch": "text",
        "commitSha": "text",
        "createdAt": "text",
        "incrementalChanges": {
          "packages": {
            "added": [
              {
                "name": "text",
                "version": "text"
              }
            ],
            "updated": [
              {
                "name": "text",
                "fromVersion": "text",
                "toVersion": "text"
              }
            ],
            "removed": [
              {
                "name": "text",
                "version": "text"
              }
            ]
          },
          "summary": {
            "totalPackageChanges": 1,
            "totalCommits": 1,
            "totalWorkItems": 1
          }
        },
        "cumulativeChanges": {
          "packages": {
            "added": [
              {
                "name": "text",
                "version": "text"
              }
            ],
            "updated": [
              {
                "name": "text",
                "fromVersion": "text",
                "toVersion": "text"
              }
            ],
            "removed": [
              {
                "name": "text",
                "version": "text"
              }
            ]
          },
          "summary": {
            "totalPackageChanges": 1,
            "totalCommits": 1,
            "totalWorkItems": 1
          },
          "cumulativeSummary": {
            "estimatedDeploymentTime": 1
          }
        }
      }
    ]
  },
  "summary": {
    "deploymentPipeline": {
      "environmentStatus": [
        {
          "environment": "text",
          "currentRelease": "text",
          "candidatesInQueue": [
            "text"
          ]
        }
      ],
      "blockers": [
        {
          "environment": "text",
          "blockedCandidate": "text",
          "reason": "text"
        }
      ]
    },
    "progressMetrics": {
      "candidatesFullyDeployed": 1,
      "candidatesInProgress": 1,
      "candidatesPending": 1,
      "estimatedTimeToFullDeployment": 1
    },
    "baselineToLatestSummary": {
      "totalCandidates": 1,
      "totalUniqueWorkItems": 1,
      "totalUniqueCommits": 1,
      "packageProgressions": [
        {
          "name": "text",
          "journey": [
            {
              "version": "text",
              "candidateIndex": 1
            }
          ]
        }
      ]
    },
    "branchAnalysis": {
      "mainBranch": "text",
      "featureBranches": [
        {
          "branch": "text",
          "candidateCount": 1,
          "firstCandidate": "text",
          "lastCandidate": "text"
        }
      ]
    }
  },
  "analyzedAt": "text"
}

Get environment-specific progression analysis

get

Analyzes progression for a specific environment including pending candidates

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
repositorystringRequired

Repository identifier (e.g., myorg/myrepo)

domainstringRequired

Domain name

environmentstringRequired

Environment name

Query parameters
includeChangelogbooleanOptional

Include package changelogs

Responses
200

Environment progression analysis

No content

get
/sfp/api/release-candidates/rolling-analysis/{repository}/{domain}/environment/{environment}
GET /sfp/api/release-candidates/rolling-analysis/{repository}/{domain}/environment/{environment} HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Environment progression analysis

No content

Assess deployment risk for next candidate

get

Provides risk assessment for the next deployment to a specific environment

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
repositorystringRequired

Repository identifier (e.g., myorg/myrepo)

domainstringRequired

Domain name

environmentstringRequired

Environment name

Responses
200

Deployment risk assessment

No content

get
/sfp/api/release-candidates/rolling-analysis/{repository}/{domain}/environment/{environment}/risk
GET /sfp/api/release-candidates/rolling-analysis/{repository}/{domain}/environment/{environment}/risk HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Deployment risk assessment

No content

Last updated