Releases

sfp server API reference for Releases: 3 endpoints.

GET/sfp/api/releases/change-summary

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string

Repository identifier. GitHub uses owner/repo; Azure DevOps may use organization/project/repository.

domain?string

Optional release domain filter

environmentName?string

Optional environment filter. Only deployments to this environment are considered.

fromReleaseName?string

Baseline release for release-range mode. Excluded from the result.

toReleaseName?string

Target release for release-range mode. Included in the result.

since?string

Inclusive deployment start timestamp for date-range mode

until?string

Inclusive deployment end timestamp for date-range mode

Response Body

application/json

curl -X GET "https://example.com/sfp/api/releases/change-summary?repositoryIdentifier=flxbl-io%2Fsf-core"
{  "repositoryIdentifier": "flxbl-io/sf-core",  "filters": {    "domain": "frameworks",    "environmentName": "production",    "fromReleaseName": "frameworks-01MAY26-1777603932862",    "toReleaseName": "frameworks-01MAY26-1777604503461",    "since": "2026-05-01T00:00:00.000Z",    "until": "2026-05-07T23:59:59.000Z"  },  "summary": {    "totalReleases": 3,    "totalCommits": 27,    "totalWorkItems": 8,    "totalPackageChanges": 12  },  "workItems": [    "SFP-123",    "SFP-124"  ],  "releases": [    {      "releaseName": "sales-01MAY26-1777606086749",      "domain": "sales",      "matchedDeploymentDates": [        "2026-05-01T03:30:00.000Z"      ],      "matchedEnvironments": [        "production"      ],      "workItems": [        "SFP-123",        "SFP-124"      ],      "packageChanges": [        {          "packageName": "salespkg",          "changeType": "updated",          "fromVersion": "1.4.43.1777605095",          "toVersion": "1.4.44.1777606086749",          "commits": 5,          "workItems": [            "SFP-123",            "SFP-124"          ]        }      ]    }  ],  "missingChangelogReleases": [    {      "releaseName": "frameworks-01MAY26-1777604503461",      "domain": "frameworks"    }  ],  "unmatchedRanges": [    "Domain sales does not contain release range from \"Release-1\" to \"Release-3\"."  ]}
POST/sfp/api/releases/rollback-annotation

Called by the rollback flow on completion. Marks the target release's per-environment record as the result of a rollback (with the reverse, undone per-package delta) so the Releases UI can distinguish it from a forward deploy of the same release.

Authorization

access-token
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/sfp/api/releases/rollback-annotation" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "flxbl-io/sf-core",    "environment": "prod",    "target": "sales:RC-FEB25-01",    "rolledBackFrom": "sales:RC-FEB25-02",    "rolledBackBy": "jane.doe@example.com"  }'
Empty
GET/sfp/api/releases

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string

Repository identifier in format owner/repo

domain?string

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

releaseName?string

Filter by specific release name

includeChangelog?boolean

Include changelog information (default: false)

activeOnly?boolean

Only show active releases (default: true)

limit?number

Number of releases to fetch (1-200, default: 50)

offset?number

Offset for pagination (default: 0)

force?boolean

Force refresh cache (default: false)

skipLockStatus?boolean

Skip fetching lock status for performance (default: true)

includeApprovals?boolean

Include approval data for each environment deployment (default: false)

Response Body

application/json

curl -X GET "https://example.com/sfp/api/releases?repositoryIdentifier=flxbl-io%2Fsf-core"
{  "repositoryIdentifier": "myorg/myrepo",  "releases": [    {      "name": "v1.2.3",      "domain": "core",      "environments": [        {          "name": "staging",          "environmentId": "123e4567-e89b-12d3-a456-426614174000",          "deployedAt": "2024-01-15T10:30:00.000Z",          "packages": {            "core": "1.2.3",            "ui": "2.0.1"          },          "packageDetails": [            {              "name": "core",              "version": "1.2.3",              "skipped": false,              "status": "Success",              "versionInOrg": "1.2.2",              "isLeading": true,              "error": null,              "startTime": "2024-01-15T10:30:00.000Z",              "endTime": "2024-01-15T10:35:00.000Z"            }          ],          "changesFromPrevious": [            {              "packageName": "core",              "fromVersion": "1.2.2",              "toVersion": "1.2.3",              "totalCommits": 5,              "totalWorkItems": 3,              "totalPullRequests": 2,              "workItems": {                "issues": {                  "JIRA-123": [                    "abc123",                    "def456"                  ],                  "JIRA-124": [                    "ghi789"                  ]                },                "pullRequests": {                  "456": [                    "abc123"                  ],                  "789": [                    "def456"                  ]                },                "byType": {                  "jira": {                    "JIRA-123": [                      "abc123"                    ]                  },                  "github": {                    "456": [                      "def456"                    ]                  },                  "other": {                    "TASK-789": [                      "ghi789"                    ]                  }                }              },              "commitRange": {                "from": "abc123",                "to": "def456"              }            }          ],          "releaseChangelog": {},          "orchestrationOrder": 1,          "metadata": {},          "rollback": {            "rolledBackFrom": "sales:RC-FEB25-02",            "rolledBackAt": "2026-06-10T00:11:00.000Z",            "rolledBackBy": "jane.doe@example.com",            "skipAnalysis": false,            "packageChanges": [              {                "name": "salespkg",                "from": "1.4.44",                "to": "1.4.43",                "direction": "downgrade"              }            ]          },          "deploymentCounts": {            "deployed": 2,            "skipped": 36,            "failed": 0,            "total": 38          },          "approval": {            "status": "approved",            "requestedBy": "dev@company.com",            "approvedBy": "lead@company.com",            "approvedAt": "2026-04-18T10:30:00.000Z",            "responseTimeMs": 14523,            "source": "webhook"          }        }      ],      "firstDeployedAt": "2024-01-15T10:30:00.000Z",      "lastDeployedAt": "2024-01-20T15:45:00.000Z",      "deploymentCount": 4,      "deploymentStatus": {        "status": "in_progress",        "totalPackages": 3,        "packagesCompleted": [          "core",          "ui"        ],        "packagesInProgress": [          "api"        ],        "packagesWithIssues": [          {            "packageName": "auth",            "issue": "Package has been rolled back in staging"          }        ],        "missingFromEnvironments": [          "production"        ],        "recommendations": [          "Consider marking this release as obsolete"        ]      },      "packageStatuses": [        {          "packageName": "core",          "releaseVersion": "1.2.3",          "isFullyDeployed": false,          "isAbandoned": false,          "trajectory": "progressing"        }      ],      "releaseDefinition": {        "core": "1.2.3",        "ui": "2.0.1"      },      "releaseChangelog": {}    }  ],  "totalCount": 10,  "changelogStats": {    "uniqueDiffsCalculated": 5,    "totalEnvironments": 12,    "cacheHits": 7,    "processingTimeMs": 250  },  "retrievedAt": "2024-01-15T10:30:00.000Z",  "filters": {    "domain": "core",    "includeChangelog": true  }}