Skip to content

@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:

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 ​

typescript
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 ​

SafetyConfig

Returns ​

SafetyGuard

Properties ​

config ​

readonly config: 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 ​

SafetyOperation

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:

  1. Temporary allows (from confirmed retries) — if matched, allow
  2. Config rules in order — first matching rule's action wins
  3. Level-based default — confirm if confirm: true, otherwise block/allow

All evaluations are trace-logged for diagnostics.

Parameters ​

operation ​

SafetyOperation

Returns ​

SafetyEvaluation


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 ​

SafetyRule

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 ​

SafetyOperation

Returns ​

(): void

Returns ​

void

Released under the Apache-2.0 License.