@salesforce/b2c-tooling-sdk / safety / SafetyGuard
Class: SafetyGuard
Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:116
SafetyGuard evaluates operations against safety rules and levels.
The guard provides three levels of API:
- evaluate — returns a SafetyEvaluation describing what should happen
- assert — throws SafetyBlockedError or SafetyConfirmationRequired
- temporarilyAllow — creates a scoped exemption for confirmed operations
The HTTP middleware uses the guard internally so all HTTP requests are evaluated automatically. CLI commands and other consumers can use the guard directly for richer safety interaction (command-level checks, confirmation flows).
Example
const guard = new SafetyGuard({
level: 'NO_UPDATE',
confirm: true,
rules: [{ job: 'sfcc-site-archive-export', action: 'allow' }],
});
const evaluation = guard.evaluate({ type: 'job', jobId: 'sfcc-site-archive-export' });
// evaluation.action === 'allow'Constructors
Constructor
new SafetyGuard(
config):SafetyGuard
Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:120
Parameters
config
Returns
SafetyGuard
Properties
config
readonlyconfig:SafetyConfig
Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:120
Methods
assert()
assert(
operation):void
Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:175
Assert that an operation is allowed.
Parameters
operation
Returns
void
Throws
if the operation is blocked
Throws
if the operation needs confirmation
evaluate()
evaluate(
operation):SafetyEvaluation
Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:134
Evaluate an operation against safety rules and level.
Evaluation order:
- Temporary allows (from confirmed retries) — if matched, allow
- Config rules in order — first matching rule's action wins
- Level-based default — confirm if
confirm: true, otherwise block/allow
All evaluations are trace-logged for diagnostics.
Parameters
operation
Returns
temporarilyAddRule()
temporarilyAddRule(
rule): () =>void
Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:207
Add a temporary safety rule for a scoped exemption.
Unlike temporarilyAllow which derives a rule from an operation, this accepts an arbitrary rule — useful for granting broad temporary access (e.g., allowing WebDAV DELETE on Impex paths during a job export).
Returns a cleanup function that removes the rule.
Parameters
rule
Returns
():
void
Returns
void
temporarilyAllow()
temporarilyAllow(
operation): () =>void
Defined in: packages/b2c-tooling-sdk/src/safety/safety-guard.ts:193
Create a temporary exemption for a confirmed operation.
Returns a cleanup function that removes the exemption. Use this to retry an operation after the user has confirmed.
Parameters
operation
Returns
():
void
Returns
void