---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../modules.md) / [safety](../index.md) / SafetyGuard

# Class: SafetyGuard

Defined in: [packages/b2c-tooling-sdk/src/safety/safety-guard.ts:116](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/safety/safety-guard.ts#L116)

SafetyGuard evaluates operations against safety rules and levels.

The guard provides three levels of API:
- [evaluate](#evaluate) — returns a [SafetyEvaluation](../interfaces/SafetyEvaluation.md) describing what should happen
- [assert](#assert) — throws [SafetyBlockedError](../../errors/classes/SafetyBlockedError.md) or [SafetyConfirmationRequired](SafetyConfirmationRequired.md)
- [temporarilyAllow](#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

```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](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/safety/safety-guard.ts#L120)

#### Parameters

##### config

[`SafetyConfig`](../interfaces/SafetyConfig.md)

#### Returns

`SafetyGuard`

## Properties

### config

> `readonly` **config**: [`SafetyConfig`](../interfaces/SafetyConfig.md)

Defined in: [packages/b2c-tooling-sdk/src/safety/safety-guard.ts:120](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/safety/safety-guard.ts#L120)

## Methods

### assert()

> **assert**(`operation`): `void`

Defined in: [packages/b2c-tooling-sdk/src/safety/safety-guard.ts:175](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/safety/safety-guard.ts#L175)

Assert that an operation is allowed.

#### Parameters

##### operation

[`SafetyOperation`](../interfaces/SafetyOperation.md)

#### Returns

`void`

#### Throws

if the operation is blocked

#### Throws

if the operation needs confirmation

***

### evaluate()

> **evaluate**(`operation`): [`SafetyEvaluation`](../interfaces/SafetyEvaluation.md)

Defined in: [packages/b2c-tooling-sdk/src/safety/safety-guard.ts:134](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/safety/safety-guard.ts#L134)

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`](../interfaces/SafetyOperation.md)

#### Returns

[`SafetyEvaluation`](../interfaces/SafetyEvaluation.md)

***

### temporarilyAddRule()

> **temporarilyAddRule**(`rule`): () => `void`

Defined in: [packages/b2c-tooling-sdk/src/safety/safety-guard.ts:207](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/safety/safety-guard.ts#L207)

Add a temporary safety rule for a scoped exemption.

Unlike [temporarilyAllow](#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`](../interfaces/SafetyRule.md)

#### Returns

> (): `void`

##### Returns

`void`

***

### temporarilyAllow()

> **temporarilyAllow**(`operation`): () => `void`

Defined in: [packages/b2c-tooling-sdk/src/safety/safety-guard.ts:193](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/safety/safety-guard.ts#L193)

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`](../interfaces/SafetyOperation.md)

#### Returns

> (): `void`

##### Returns

`void`
