@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