Deployment Steps

sfp server API reference for Deployment Steps: 15 endpoints.

GET/sfp/api/deployment-steps/history

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string

Response Body

curl -X GET "https://example.com/sfp/api/deployment-steps/history?repositoryIdentifier=acme%2Fsalesforce-core"
Empty
POST/sfp/api/deployment-steps

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/deployment-steps" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core",    "type": "pre",    "title": "Activate the Order Capture feature toggle"  }'
Empty
GET/sfp/api/deployment-steps

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string
pr?number

Only steps authored on this pull request

status?string
Default"open"

Value in

  • "open"
  • "cancelled"
  • "all"

Response Body

curl -X GET "https://example.com/sfp/api/deployment-steps?repositoryIdentifier=acme%2Fsalesforce-core"
Empty
GET/sfp/api/deployment-steps/{stepId}/details

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

stepId*string

Query Parameters

repositoryIdentifier*string

Response Body

curl -X GET "https://example.com/sfp/api/deployment-steps/string/details?repositoryIdentifier=acme%2Fsalesforce-core"
Empty
GET/sfp/api/deployment-steps/{stepId}

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

stepId*string

Query Parameters

repositoryIdentifier*string

Response Body

curl -X GET "https://example.com/sfp/api/deployment-steps/string?repositoryIdentifier=acme%2Fsalesforce-core"
Empty
POST/sfp/api/deployment-steps/{stepId}/complete

Completion is attested per environment: whichever domain surfaced the step, completing it clears the step for every deploy to that environment.

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

stepId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/sfp/api/deployment-steps/string/complete" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core",    "environment": "string"  }'
Empty
POST/sfp/api/deployment-steps/{stepId}/reopen

Re-gates the step for that environment. Use after a rollback undid the action, or when an attestation was recorded in error.

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

stepId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/sfp/api/deployment-steps/string/reopen" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core",    "environment": "string"  }'
Empty
POST/sfp/api/deployment-steps/{stepId}/link

The override honoured by the same read path as the computed verdict — the escape hatch for cherry-picked delivery and mis-anchored steps.

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

stepId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/sfp/api/deployment-steps/string/link" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core",    "releaseCandidate": "sales:Sprint_26.20",    "mode": "include"  }'
Empty
GET/sfp/api/deployment-steps/anchors/migrations

Authorization

access-token
AuthorizationBearer <token>

In: header

Query Parameters

repositoryIdentifier*string

Response Body

curl -X GET "https://example.com/sfp/api/deployment-steps/anchors/migrations?repositoryIdentifier=acme%2Fsalesforce-core"
Empty
POST/sfp/api/deployment-steps/anchors/migrations/{headCommit}/cancel

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

headCommit*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/sfp/api/deployment-steps/anchors/migrations/string/cancel" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core"  }'
Empty
POST/sfp/api/deployment-steps/anchors/prepare

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/deployment-steps/anchors/prepare" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core",    "releaseBranch": "release/1.4",    "commitMapping": [      {        "original": "string",        "rewritten": "string"      }    ]  }'
Empty
POST/sfp/api/deployment-steps/anchors/migrate

Reported by sfp releasecandidate unbundle after it force-pushes a reconstructed release branch. Re-anchors every step whose commit was re-applied under a new SHA (an anchor on a merge commit follows the re-applied commits of its lineage), and flags the steps the branch used to carry but no longer does.

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/deployment-steps/anchors/migrate" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core",    "releaseBranch": "release/1.4",    "commitMapping": [      {        "original": "string",        "rewritten": "string"      }    ]  }'
Empty
POST/sfp/api/deployment-steps/{stepId}/cancel

A cancelled step never pends again, whatever the ancestry says. The record is kept for audit.

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

stepId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/sfp/api/deployment-steps/string/cancel" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core"  }'
Empty
POST/sfp/api/deployment-steps/gate/check

Resolves whether the environment gates on manual steps, computes what is still outstanding for the candidate, records the audit snapshot, and returns the steps the caller still has to surface in a checklist. Fails with 5xx when the pending set cannot be established, so the caller retries rather than proceeding.

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/deployment-steps/gate/check" \  -H "Content-Type: application/json" \  -d '{    "repositoryIdentifier": "acme/salesforce-core",    "environment": "prod",    "releaseCandidate": "sales:Sprint_26.20",    "runId": "string"  }'
Empty
GET/sfp/api/environments/by-name/{name}/deployment-steps

Per domain: the pre steps the next deploy is waiting on, the post steps that became due from the environment's current release, and the attestations recorded here. A domain that cannot be evaluated is reported with its error rather than failing the whole view.

Authorization

access-token
AuthorizationBearer <token>

In: header

Path Parameters

name*string

Query Parameters

repositoryIdentifier*string
domain?string

Restrict the view to one domain

Response Body

curl -X GET "https://example.com/sfp/api/environments/by-name/string/deployment-steps?repositoryIdentifier=acme%2Fsalesforce-core"
Empty