Release Candidates

List release candidates with optional filters

get
Authorizations
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
GET /sfp/api/release-candidates HTTP/1.1
Host: 
Authorization: Bearer JWT
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
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
201

Release candidate created/updated

application/json
post
POST /sfp/api/release-candidates HTTP/1.1
Host: 
Authorization: Bearer JWT
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
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
GET /sfp/api/release-candidates/latest?repositoryIdentifier=text&domain=text HTTP/1.1
Host: 
Authorization: Bearer JWT
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
Path parameters
idstringRequired

Release candidate ID

Responses
200

Release candidate details

application/json
get
GET /sfp/api/release-candidates/{id} HTTP/1.1
Host: 
Authorization: Bearer JWT
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
Path parameters
idstringRequired

Release candidate ID

Responses
204

Release candidate deleted

No content

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

No content

Compare release candidate with an environment

post
Authorizations
Path parameters
idstringRequired

Release candidate ID

Body
environmentIdstringRequired

Environment ID to compare against

Responses
200

Comparison results

application/json
post
POST /sfp/api/release-candidates/{id}/compare HTTP/1.1
Host: 
Authorization: Bearer JWT
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
Path parameters
idstringRequired

Release candidate ID

Query parameters
sincestringOptional

Compare changes since this commit SHA or date

Responses
200

Change analysis

application/json
get
GET /sfp/api/release-candidates/{id}/changes HTTP/1.1
Host: 
Authorization: Bearer JWT
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
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
GET /sfp/api/release-candidates/rolling-analysis/{repository}/{domain} HTTP/1.1
Host: 
Authorization: Bearer JWT
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
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
GET /sfp/api/release-candidates/rolling-analysis/{repository}/{domain}/environment/{environment} HTTP/1.1
Host: 
Authorization: Bearer JWT
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
Path parameters
repositorystringRequired

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

domainstringRequired

Domain name

environmentstringRequired

Environment name

Responses
200

Deployment risk assessment

No content

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

Deployment risk assessment

No content