Review Environments
Acquire a review environment for use, marking it as in-use for a specified duration
sfp review-envs acquiresfp review-envs assignsfp review-envs browser recordsfp review-envs browser replaysfp review-envs extendsfp review-envs listsfp review-envs releasesfp review-envs rules listsfp review-envs rules matchsfp review-envs unassign
sfp review-envs acquire
Acquire a review environment for use, marking it as in-use for a specified duration
USAGE
$ sfp review-envs acquire -r <value> -t pr|issue|user|custom -i <value> -d <value> --used-by <value> [--json] [-e
<value>] [-t <value>] [--sfp-server-url <value>] [-g <value>...] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [-w] [--poll-interval <value>] [--max-wait-time
<value>] [--domain <value>] [-b <value>]
FLAGS
-b, --branch=<value> Branch used to re-resolve assignment rules when a stale environment needs
replacement
-d, --duration=<value> (required) Duration in minutes for which the environment is needed (1-480)
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-g, --logsgroupsymbol=<value>... Symbol used by CICD platform to group/collapse logs in the console. Provide an
opening group, and an optional closing group symbol.
-i, --id=<value> (required) Assignment identifier (e.g., PR number, issue number, username, or custom
ID)
-r, --repository=<value> (required) Repository identifier in format owner/repo (GitHub/GitLab) or
org/project/repo (Azure DevOps)
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
-t, --type=<option> (required) Type of assignment (pr, issue, user, or custom)
<options: pr|issue|user|custom>
-w, --wait Wait for the environment to become available if currently in use
--domain=<value> Specific domain to acquire (for multi-domain assignments)
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--max-wait-time=<value> [default: 480] Maximum time to wait in minutes when --wait is used (default: 480
minutes/8 hours)
--poll-interval=<value> [default: 30] Polling interval in seconds when waiting (10-300, default: 30)
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
--used-by=<value> (required) Identifier of the process or user acquiring the environment
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Acquire a review environment for use, marking it as in-use for a specified duration
EXAMPLES
$ sfp review-envs acquire --type pr --id 123 --repository myorg/myrepo --duration 30 --used-by "ci-pipeline-123"
$ sfp review-envs acquire --type user --id john.doe --repository myorg/myrepo --duration 60 --used-by "local-dev"
$ sfp review-envs acquire --type custom --id demo-session --repository myorg/myrepo --duration 120 --used-by "demo-process"
$ sfp review-envs acquire --type pr --id 123 --repository myorg/myrepo --duration 30 --used-by "ci-pipeline-123" --wait
$ sfp review-envs acquire --type pr --id 123 --repository myorg/myrepo --duration 30 --used-by "ci-pipeline-123" --wait --poll-interval 60
$ sfp review-envs acquire --type pr --id 123 --repository myorg/myrepo --duration 30 --used-by "ci-pipeline-123" --wait --max-wait-time 120
$ sfp review-envs acquire --type pr --id 123 --repository myorg/myrepo --domain sales --branch main --duration 30 --used-by "ci-pipeline-123" --waitsfp review-envs assign
Assign a review environment from a pool
USAGE
$ sfp review-envs assign -r <value> -t pr|issue|user|custom -i <value> [--json] [-e <value>] [-t <value>]
[--sfp-server-url <value>] [-g <value>...] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [--pool-tag <value>] [-b <value>] [-d
<value>...] [--expiration <value>] [--immortal] [--override] [-m <value>]
FLAGS
-b, --branch=<value> Git branch name for automatic pool resolution
-d, --domain=<value>... SFP domain for automatic pool resolution
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-g, --logsgroupsymbol=<value>... Symbol used by CICD platform to group/collapse logs in the console. Provide an
opening group, and an optional closing group symbol.
-i, --id=<value> (required) Assignment identifier (e.g., PR number, issue ID, username)
-m, --metadata=<value> Additional metadata as JSON string
-r, --repository=<value> (required) Repository identifier in format owner/repo (GitHub/GitLab) or
org/project/repo (Azure DevOps)
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
-t, --type=<option> (required) Type of assignment (pr, issue, user, custom)
<options: pr|issue|user|custom>
--expiration=<value> Number of hours before environment expires
--immortal Make the environment never expire
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--override Force reassignment if environment already assigned
--pool-tag=<value> Pool tag to fetch environment from (optional if branch/domain provided)
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Assign a review environment from a pool
EXAMPLES
$ sfp review-envs assign --type pr --id 123 --repository myorg/myrepo --pool-tag feature_dev
$ sfp review-envs assign --type pr --id 123 --repository myorg/myrepo --branch feature/ABC-123 --domain sales
$ sfp review-envs assign --type pr --id 123 --repository myorg/myrepo --branch feature/multi --domain sales --domain service
$ sfp review-envs assign --type user --id john.doe --repository myorg/myrepo --pool-tag dev --expiration 72
$ sfp review-envs assign --type pr --id 123 --repository myorg/myrepo --branch main --domain "sales,service,core"
$ sfp review-envs assign --type pr --id 123 --repository myorg/myrepo --pool-tag dev --overridesfp review-envs browser record
Open a recorded, already-authenticated browser session against a Salesforce org using Browserbase. One session exposes three URLs: a live view (humans drive or observe), a CDP endpoint (agents connect with Playwright's connectOverCDP), and a recording (reviewers watch the replay). The org's frontdoor authenticates the session without placing the session token in any URL. Credentials follow the integration model — Flxbl Cloud supplies them per tenant; self-hosted brings its own Browserbase key.
USAGE
$ sfp review-envs browser record [--json] [--repository <value>] [-e <value>] [-t <value>] [--sfp-server-url <value>]
[--server] [--browser-session-id <value>] [--environment <value>] [--api-key <value>] [--project-id <value>]
[--ret-url <value>] [--timeout <value>] [-o <value>] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
FLAGS
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-o, --targetusername=<value> Username or alias of the target org.
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
--api-key=<value> [env: BROWSERBASE_API_KEY] Browserbase API key (defaults to BROWSERBASE_API_KEY). On
Flxbl Cloud this is supplied per tenant; self-hosted instances bring their own.
--browser-session-id=<value> The sfp_browser_sessions row id to update with the session faces (server mode).
--environment=<value> Name of the environment (registered in SFP Server) to record against (server mode).
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--project-id=<value> [env: BROWSERBASE_PROJECT_ID] Browserbase project id that scopes the session — one
project per tenant (defaults to BROWSERBASE_PROJECT_ID). Optional; inferred from the
API key if omitted.
--repository=<value> The repository identifier. E.g `owner/repo` for GitHub/GitLab or `org/project/repo`
for Azure DevOps
--ret-url=<value> Lightning path to land on after authentication (e.g. /lightning/o/Account/list).
Defaults to the Setup home.
--server Run in server mode: resolve Browserbase credentials and the environment org from the
SFP server, then write the session faces back to the browser-session row. Requires
--browser-session-id, --repository and --environment.
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
--timeout=<value> Session timeout in seconds, after which Browserbase releases the session.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Open a recorded, already-authenticated browser session against a Salesforce org using Browserbase. One session exposes
three URLs: a live view (humans drive or observe), a CDP endpoint (agents connect with Playwright's connectOverCDP),
and a recording (reviewers watch the replay). The org's frontdoor authenticates the session without placing the
session token in any URL. Credentials follow the integration model — Flxbl Cloud supplies them per tenant; self-hosted
brings its own Browserbase key.
EXAMPLES
$ sfp review-envs browser record -o reviewOrg --api-key $BROWSERBASE_API_KEY --project-id $BROWSERBASE_PROJECT_ID
$ sfp review-envs browser record -o reviewOrg --ret-url /lightning/o/Account/list
$ sfp review-envs browser record --server --browser-session-id <id> --repository owner/repo --environment QAsfp review-envs browser replay
Resolve the replay for a recorded browser session — the Browserbase HLS video, which the sfp server proxies to an embedded player for reviewers on the PR.
USAGE
$ sfp review-envs browser replay --session-id <value> --api-key <value> [--json] [--project-id <value>] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
FLAGS
--api-key=<value> (required) [env: BROWSERBASE_API_KEY] Browserbase API key (defaults to BROWSERBASE_API_KEY).
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--project-id=<value> [env: BROWSERBASE_PROJECT_ID] Browserbase project id (defaults to BROWSERBASE_PROJECT_ID).
--session-id=<value> (required) The id of the session to replay.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Resolve the replay for a recorded browser session — the Browserbase HLS video, which the sfp server proxies to an
embedded player for reviewers on the PR.
EXAMPLES
$ sfp review-envs browser replay --session-id <id> --api-key $BROWSERBASE_API_KEYsfp review-envs extend
Extend a review environment assignment
USAGE
$ sfp review-envs extend -r <value> -t pr|issue|user|custom -i <value> [--json] [-e <value>] [-t <value>]
[--sfp-server-url <value>] [-g <value>...] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [-h <value>] [--immortal] [-d <value>]
FLAGS
-d, --domain=<value> Specific domain to extend (for multi-domain PRs)
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-g, --logsgroupsymbol=<value>... Symbol used by CICD platform to group/collapse logs in the console. Provide an
opening group, and an optional closing group symbol.
-h, --hours=<value> Number of hours to extend the assignment
-i, --id=<value> (required) Assignment identifier
-r, --repository=<value> (required) Repository identifier in format owner/repo (GitHub/GitLab) or
org/project/repo (Azure DevOps)
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
-t, --type=<option> (required) Type of assignment (pr, issue, user, custom)
<options: pr|issue|user|custom>
--[no-]immortal Make the environment never expire
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Extend a review environment assignment
EXAMPLES
$ sfp review-envs extend --type pr --id 123 --repository myorg/myrepo --hours 24
$ sfp review-envs extend --type pr --id 123 --repository myorg/myrepo --hours 24 --domain sales
$ sfp review-envs extend --type user --id john.doe --repository myorg/myrepo --immortalsfp review-envs list
List review environment assignments
USAGE
$ sfp review-envs list [--json] [-r <value>] [-e <value>] [-t <value>] [--sfp-server-url <value>] [-g <value>...]
[--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [-t pr|issue|user|custom] [-s
active|expired|released] [--assigned-by <value>] [--pool-tag <value>] [--include-expired]
FLAGS
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-g, --logsgroupsymbol=<value>... Symbol used by CICD platform to group/collapse logs in the console. Provide an
opening group, and an optional closing group symbol.
-r, --repository=<value> Repository identifier in format owner/repo (GitHub/GitLab) or org/project/repo
(Azure DevOps)
-s, --status=<option> Filter by assignment status
<options: active|expired|released>
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
-t, --type=<option> Filter by assignment type
<options: pr|issue|user|custom>
--assigned-by=<value> Filter by who assigned the environment
--include-expired Include expired assignments in the results (by default expired assignments are
excluded)
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--pool-tag=<value> Filter by pool tag
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List review environment assignments
EXAMPLES
$ sfp review-envs list --repository myorg/myrepo
$ sfp review-envs list --repository myorg/myrepo --status active
$ sfp review-envs list --repository myorg/myrepo --type pr
$ sfp review-envs list --repository myorg/myrepo --pool-tag devsfp review-envs release
Release a review environment from use, marking it as idle for subsequent use within the same assignment
USAGE
$ sfp review-envs release -r <value> -t pr|issue|user|custom -i <value> [--json] [-e <value>] [-t <value>]
[--sfp-server-url <value>] [-g <value>...] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [--domain <value>]
FLAGS
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-g, --logsgroupsymbol=<value>... Symbol used by CICD platform to group/collapse logs in the console. Provide an
opening group, and an optional closing group symbol.
-i, --id=<value> (required) Assignment identifier (e.g., PR number, issue number, username, or custom
ID)
-r, --repository=<value> (required) Repository identifier in format owner/repo (GitHub/GitLab) or
org/project/repo (Azure DevOps)
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
-t, --type=<option> (required) Type of assignment (pr, issue, user, or custom)
<options: pr|issue|user|custom>
--domain=<value> Specific domain to release (for multi-domain assignments)
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Release a review environment from use, marking it as idle for subsequent use within the same assignment
EXAMPLES
$ sfp review-envs release --type pr --id 123 --repository myorg/myrepo
$ sfp review-envs release --type user --id john.doe --repository myorg/myrepo
$ sfp review-envs release --type custom --id demo-session --repository myorg/myreposfp review-envs rules list
List pool assignment rules
USAGE
$ sfp review-envs rules list [--json] [-r <value>] [-e <value>] [-t <value>] [--sfp-server-url <value>] [-g <value>...]
[--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [--pool-tag <value>] [--active]
[--branch-search <value>] [--domain-search <value>]
FLAGS
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-g, --logsgroupsymbol=<value>... Symbol used by CICD platform to group/collapse logs in the console. Provide an
opening group, and an optional closing group symbol.
-r, --repository=<value> Filter by repository identifier in format owner/repo (GitHub/GitLab) or
org/project/repo (Azure DevOps)
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
--active Show only active rules
--branch-search=<value> Search for rules with branch patterns containing this text
--domain-search=<value> Search for rules with domain patterns containing this text
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--pool-tag=<value> Filter by pool tag
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List pool assignment rules
EXAMPLES
$ sfp review-envs rules list --repository myorg/myrepo
$ sfp review-envs rules list --repository myorg/myrepo --active
$ sfp review-envs rules list --repository myorg/myrepo --pool-tag dev
$ sfp review-envs rules list --repository myorg/myrepo --branch-search "feature"sfp review-envs rules match
Test which pool would be assigned for given branch and domain
USAGE
$ sfp review-envs rules match -r <value> -b <value> [--json] [-e <value>] [-t <value>] [--sfp-server-url <value>] [-g
<value>...] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [-d <value>...]
FLAGS
-b, --branch=<value> (required) Git branch name to test
-d, --domain=<value>... SFP domain name to test (optional - if not provided, will test branch-only matching)
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-g, --logsgroupsymbol=<value>... Symbol used by CICD platform to group/collapse logs in the console. Provide an
opening group, and an optional closing group symbol.
-r, --repository=<value> (required) Repository identifier in format owner/repo (GitHub/GitLab) or
org/project/repo (Azure DevOps)
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Test which pool would be assigned for given branch and domain
EXAMPLES
$ sfp review-envs rules match --repository myorg/myrepo --branch feature/ABC-123 --domain sales
$ sfp review-envs rules match --repository myorg/myrepo --branch main --domain core --domain service
$ sfp review-envs rules match --repository myorg/myrepo --branch hotfix/critical
$ sfp review-envs rules match --repository myorg/myrepo --branch release/v2.0 --domain "sales,reporting"
$ sfp review-envs rules match --repository myorg/myrepo --branch feature/multi --domain sales --domain service --domain coresfp review-envs unassign
Unassign a review environment
USAGE
$ sfp review-envs unassign -r <value> -t pr|issue|user|custom -i <value> [--json] [-e <value>] [-t <value>]
[--sfp-server-url <value>] [-g <value>...] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL] [--return-to-pool] [-d <value>]
FLAGS
-d, --domain=<value> Specific domain to unassign (for multi-domain PRs)
-e, --email=<value> Email address for authenticated user. Ignored if --application-token is provided.
Can be set via SFP_SERVER_USER env var.
-g, --logsgroupsymbol=<value>... Symbol used by CICD platform to group/collapse logs in the console. Provide an
opening group, and an optional closing group symbol.
-i, --id=<value> (required) Assignment identifier
-r, --repository=<value> (required) Repository identifier in format owner/repo (GitHub/GitLab) or
org/project/repo (Azure DevOps)
-t, --application-token=<value> Application token for CI/CD authentication. Can be set via SFP_SERVER_TOKEN env var
(CLI flags take precedence over env vars).
-t, --type=<option> (required) Type of assignment (pr, issue, user, custom)
<options: pr|issue|user|custom>
--loglevel=<option> [default: info] logging level for this command invocation
<options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>
--[no-]return-to-pool Return the environment to the pool for reuse (only applies to sandbox pools, ignored
for scratch orgs)
--sfp-server-url=<value> URL of the SFP server. Can be set via SFP_SERVER_URL env var or config: sfp
config:set server-url
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Unassign a review environment
EXAMPLES
$ sfp review-envs unassign --type pr --id 123 --repository myorg/myrepo
$ sfp review-envs unassign --type pr --id 123 --repository myorg/myrepo --domain sales
$ sfp review-envs unassign --type user --id john.doe --repository myorg/myrepo --no-return-to-poolReport
Generate an AI-powered analysis report of your Salesforce repository. Supports environment variables for CI/CD: ANTHROPIC_API_KEY (Anthropic), OPENAI_API_KEY (OpenAI), GOOGLE_API_KEY (Google), AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY (Bedrock)
Rollback
Analyze and manage rollbacks of deployed releases