Review Environments

Assign a review environment from pool

post

Fetches an available environment from the specified pool and assigns it to a PR, issue, user, or custom identifier. If an active assignment already exists, it will be reused.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
assignmentTypestring · enumRequired

Type of assignment for the review environment

Possible values:
assignmentIdstringRequired

Unique identifier for the assignment (e.g., "123" for PR number)

Pattern: ^[a-zA-Z0-9@._-]+$
repositoryIdentifierstringRequired

Repository identifier in format owner/repo or org/project/repo

Pattern: ^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+(\/[a-zA-Z0-9_.-]+)?$
poolTagstringOptional

Tag of the pool to fetch from. If not provided, resolved via branch/domain patterns

Pattern: ^[a-z0-9_-]+$
branchstringOptional

Git branch name for automatic pool resolution

domainsstring[]Optional

Domain names for automatic pool resolution (supports multiple domains)

domainstringOptional

Specific domain for multi-domain assignments

expirationHoursinteger · min: 1 · max: 720Optional

Hours before expiration (1-720). If not provided, uses pool default

isImmortalbooleanOptional

If true, the environment will never expire

Default: false
overridebooleanOptional

Force reassignment even if an environment is already assigned

Default: false
Responses
post
/sfp/api/review/environments/assign

No content

Get review environment details

get

Retrieves the details of a specific review environment assignment

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
assignmentTypestring · enumRequired

Type of assignment

Possible values:
assignmentIdstringRequired

Assignment identifier

Query parameters
repositoryIdentifierstringRequired

Repository identifier in format owner/repo

Example: flxbl-io/sf-core
domainstringOptional

Specific domain for multi-domain assignments

Example: sales
Responses
get
/sfp/api/review/environments/{assignmentType}/{assignmentId}

No content

Extend review environment expiration

post

Extends the expiration time of a review environment assignment. Can also be used to make an environment immortal or remove immortal status.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
assignmentTypestring · enumRequired

Type of assignment for the review environment

Example: prPossible values:
assignmentIdstringRequired

Unique identifier for the assignment

Example: 123
repositoryIdentifierstringRequired

Repository identifier in format owner/repo

Example: flxbl-io/sf-core
extensionHoursnumber · min: 1 · max: 168Optional

Number of hours to extend the expiration by. If not provided, uses pool default.

Example: 24
isImmortalbooleanOptional

If true, makes the environment immortal (never expires). If false, removes immortal status.

Example: false
domainstringOptional

Specific domain to extend. If not provided, extends the default domain.

Example: sales
Responses
post
/sfp/api/review/environments/extend

No content

Unassign review environment

post

Releases a review environment assignment and optionally returns it to the pool

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
assignmentTypestring · enumRequired

Type of assignment for the review environment

Example: prPossible values:
assignmentIdstringRequired

Unique identifier for the assignment

Example: 123
repositoryIdentifierstringRequired

Repository identifier in format owner/repo

Example: flxbl-io/sf-core
returnToPoolbooleanOptional

Whether to return the environment to the pool as available (true) or mark it expired (false). Explicit values always win. If omitted, the server falls back to each instance's pool config returnToPoolOnUnassign (default false). Multi-domain unassigns resolve per-instance, so each domain can take a different decision based on its own pool. Scratch-org pools always delete the org regardless of this flag.

Example: false
domainstringOptional

Specific domain to unassign. If not provided, unassigns all domains.

Example: sales
Responses
post
/sfp/api/review/environments/unassign

No content

Transition environment between assignments

post

Moves a review environment from one assignment to another (e.g., from PR to issue)

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

Repository identifier in format owner/repo

Example: flxbl-io/sf-core
fromAssignmentTypestring · enumRequired

Current assignment type

Example: prPossible values:
fromAssignmentIdstringRequired

Current assignment identifier

Example: 123
toAssignmentTypestring · enumRequired

New assignment type

Example: issuePossible values:
toAssignmentIdstringRequired

New assignment identifier

Example: 456
metadataobjectOptional

Additional metadata for the new assignment

Example: {"reason":"PR merged, moving to issue for tracking","transitionedBy":"automation"}
Responses
post
/sfp/api/review/environments/transition

No content

Acquire environment for use

post

Marks an assigned environment as in-use for a specified duration. Uses optimistic locking to handle concurrent requests.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
assignmentTypestring · enumRequired

Type of assignment

Example: prPossible values:
assignmentIdstringRequired

Unique identifier for the assignment

Example: 123
repositoryIdentifierstringRequired

Repository identifier in format owner/repo

Example: flxbl-io/sf-core
durationnumber · min: 1 · max: 480Required

Duration in minutes for which the environment is needed

Example: 30
usedBystringRequired

Identifier of the process or user acquiring the environment

Example: ci-pipeline-123 or [email protected]
domainstringOptional

Specific domain to acquire (for multi-domain assignments)

Example: sales
Responses
200

Environment successfully acquired

application/json
statusstringOptionalExample: environment_acquired
messagestringOptionalExample: Environment successfully acquired for 30 minutes
timestampstring · date-timeOptional
post
/sfp/api/review/environments/acquire

Release environment from use

post

Marks an environment as idle, making it available for other processes to acquire

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
assignmentTypestring · enumRequired

Type of assignment

Possible values:
assignmentIdstring · min: 1Required

Unique identifier for the assignment

repositoryIdentifierstringRequired

Repository identifier in format owner/repo or org/project/repo

Pattern: ^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+(\/[a-zA-Z0-9_.-]+)?$
domainstringOptional

Specific domain to release (for multi-domain assignments)

Responses
200

Environment successfully released

application/json
statusstringOptionalExample: environment_released
messagestringOptionalExample: Environment successfully released
timestampstring · date-timeOptional
post
/sfp/api/review/environments/release

List review environment assignments

get

Retrieves a list of review environment assignments with optional filters

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

Filter by repository identifier

Example: flxbl-io/sf-core
assignmentTypestring · enumOptional

Filter by assignment type

Possible values:
assignmentIdstringOptional

Filter by assignment ID

Example: 123
poolTagstringOptional

Filter by pool tag

Example: core_dev
statusstring · enumOptional

Filter by assignment status

Possible values:
assignedBystringOptional

Filter by who assigned the environment

Example: [email protected]
includeExpiredbooleanOptional

Include expired assignments in the results. By default, expired assignments are excluded unless explicitly requested

Default: falseExample: false
Responses
get
/sfp/api/review/environments/list

No content

Last updated

Was this helpful?