@salesforce/b2c-tooling-sdk 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/cjs/cli/base-command.d.ts +33 -8
  2. package/dist/cjs/cli/base-command.js +92 -35
  3. package/dist/cjs/cli/base-command.js.map +1 -1
  4. package/dist/cjs/clients/middleware.d.ts +15 -10
  5. package/dist/cjs/clients/middleware.js +22 -15
  6. package/dist/cjs/clients/middleware.js.map +1 -1
  7. package/dist/cjs/clients/webdav.d.ts +22 -0
  8. package/dist/cjs/clients/webdav.js +46 -0
  9. package/dist/cjs/clients/webdav.js.map +1 -1
  10. package/dist/cjs/config/dw-json.d.ts +32 -0
  11. package/dist/cjs/config/dw-json.js.map +1 -1
  12. package/dist/cjs/config/mapping.js +55 -0
  13. package/dist/cjs/config/mapping.js.map +1 -1
  14. package/dist/cjs/config/resolver.js +9 -1
  15. package/dist/cjs/config/resolver.js.map +1 -1
  16. package/dist/cjs/config/sources/env-source.js +3 -1
  17. package/dist/cjs/config/sources/env-source.js.map +1 -1
  18. package/dist/cjs/config/types.d.ts +15 -0
  19. package/dist/cjs/index.d.ts +3 -2
  20. package/dist/cjs/index.js +1 -1
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/operations/code/deploy.d.ts +6 -2
  23. package/dist/cjs/operations/code/deploy.js +13 -10
  24. package/dist/cjs/operations/code/deploy.js.map +1 -1
  25. package/dist/cjs/safety/index.d.ts +7 -2
  26. package/dist/cjs/safety/index.js +5 -1
  27. package/dist/cjs/safety/index.js.map +1 -1
  28. package/dist/cjs/safety/safety-guard.d.ts +92 -0
  29. package/dist/cjs/safety/safety-guard.js +270 -0
  30. package/dist/cjs/safety/safety-guard.js.map +1 -0
  31. package/dist/cjs/safety/safety-middleware.d.ts +86 -1
  32. package/dist/cjs/safety/safety-middleware.js +165 -16
  33. package/dist/cjs/safety/safety-middleware.js.map +1 -1
  34. package/dist/cjs/safety/types.d.ts +81 -0
  35. package/dist/cjs/safety/types.js +16 -0
  36. package/dist/cjs/safety/types.js.map +1 -0
  37. package/dist/cjs/safety/with-confirmation.d.ts +58 -0
  38. package/dist/cjs/safety/with-confirmation.js +67 -0
  39. package/dist/cjs/safety/with-confirmation.js.map +1 -0
  40. package/dist/cjs/ux/confirm.d.ts +14 -0
  41. package/dist/cjs/ux/confirm.js +36 -0
  42. package/dist/cjs/ux/confirm.js.map +1 -0
  43. package/dist/esm/cli/base-command.d.ts +33 -8
  44. package/dist/esm/cli/base-command.js +92 -35
  45. package/dist/esm/cli/base-command.js.map +1 -1
  46. package/dist/esm/clients/middleware.d.ts +15 -10
  47. package/dist/esm/clients/middleware.js +22 -15
  48. package/dist/esm/clients/middleware.js.map +1 -1
  49. package/dist/esm/clients/webdav.d.ts +22 -0
  50. package/dist/esm/clients/webdav.js +46 -0
  51. package/dist/esm/clients/webdav.js.map +1 -1
  52. package/dist/esm/config/dw-json.d.ts +32 -0
  53. package/dist/esm/config/dw-json.js.map +1 -1
  54. package/dist/esm/config/mapping.js +55 -0
  55. package/dist/esm/config/mapping.js.map +1 -1
  56. package/dist/esm/config/resolver.js +9 -1
  57. package/dist/esm/config/resolver.js.map +1 -1
  58. package/dist/esm/config/sources/env-source.js +3 -1
  59. package/dist/esm/config/sources/env-source.js.map +1 -1
  60. package/dist/esm/config/types.d.ts +15 -0
  61. package/dist/esm/index.d.ts +3 -2
  62. package/dist/esm/index.js +1 -1
  63. package/dist/esm/index.js.map +1 -1
  64. package/dist/esm/operations/code/deploy.d.ts +6 -2
  65. package/dist/esm/operations/code/deploy.js +13 -10
  66. package/dist/esm/operations/code/deploy.js.map +1 -1
  67. package/dist/esm/safety/index.d.ts +7 -2
  68. package/dist/esm/safety/index.js +5 -1
  69. package/dist/esm/safety/index.js.map +1 -1
  70. package/dist/esm/safety/safety-guard.d.ts +92 -0
  71. package/dist/esm/safety/safety-guard.js +270 -0
  72. package/dist/esm/safety/safety-guard.js.map +1 -0
  73. package/dist/esm/safety/safety-middleware.d.ts +86 -1
  74. package/dist/esm/safety/safety-middleware.js +165 -16
  75. package/dist/esm/safety/safety-middleware.js.map +1 -1
  76. package/dist/esm/safety/types.d.ts +81 -0
  77. package/dist/esm/safety/types.js +16 -0
  78. package/dist/esm/safety/types.js.map +1 -0
  79. package/dist/esm/safety/with-confirmation.d.ts +58 -0
  80. package/dist/esm/safety/with-confirmation.js +67 -0
  81. package/dist/esm/safety/with-confirmation.js.map +1 -0
  82. package/dist/esm/ux/confirm.d.ts +14 -0
  83. package/dist/esm/ux/confirm.js +36 -0
  84. package/dist/esm/ux/confirm.js.map +1 -0
  85. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Types for the safety evaluation system.
3
+ *
4
+ * @module safety/types
5
+ */
6
+ /**
7
+ * Action that a safety evaluation can produce.
8
+ *
9
+ * - `allow`: Operation is permitted
10
+ * - `block`: Operation is refused
11
+ * - `confirm`: Operation requires interactive confirmation before proceeding
12
+ */
13
+ export type SafetyAction = 'allow' | 'block' | 'confirm';
14
+ /**
15
+ * A safety rule that matches operations and specifies an action.
16
+ *
17
+ * Rules support three matcher types, all using glob patterns (via minimatch):
18
+ * - `method` + `path`: Matches HTTP requests by method and URL path
19
+ * - `job`: Matches job execution by job ID (extracted from OCAPI URLs)
20
+ * - `command`: Matches CLI commands by oclif command ID (e.g., "sandbox:delete")
21
+ *
22
+ * @example
23
+ * ```json
24
+ * { "job": "sfcc-site-archive-export", "action": "allow" }
25
+ * { "command": "ecdn:cache:purge", "action": "confirm" }
26
+ * { "method": "DELETE", "path": "/code_versions/*", "action": "block" }
27
+ * ```
28
+ */
29
+ export interface SafetyRule {
30
+ /** HTTP method pattern (e.g., "POST", "DELETE"). Omit to match any method. */
31
+ method?: string;
32
+ /** URL path glob pattern (e.g., "/jobs/*/executions"). Matched with minimatch. */
33
+ path?: string;
34
+ /** Job ID glob pattern. Matches OCAPI job execution URLs by job ID. */
35
+ job?: string;
36
+ /** CLI command ID glob pattern (e.g., "sandbox:*", "ecdn:cache:purge"). */
37
+ command?: string;
38
+ /** Action to take when this rule matches. */
39
+ action: SafetyAction;
40
+ }
41
+ /**
42
+ * An operation being evaluated for safety.
43
+ *
44
+ * Constructed by the caller (HTTP middleware, CLI command, etc.) and passed
45
+ * to {@link SafetyGuard.evaluate} for rule matching.
46
+ */
47
+ export interface SafetyOperation {
48
+ /** The type of operation being evaluated. */
49
+ type: 'http' | 'job' | 'command';
50
+ /** HTTP method (for http operations). */
51
+ method?: string;
52
+ /** Full request URL (for http operations). */
53
+ url?: string;
54
+ /** Parsed URL pathname (for http operations). */
55
+ path?: string;
56
+ /** Job identifier (for job operations, or extracted from http operation URLs). */
57
+ jobId?: string;
58
+ /** CLI command ID, e.g., "sandbox:delete" (for command operations). */
59
+ commandId?: string;
60
+ }
61
+ /**
62
+ * Result of evaluating an operation against safety rules.
63
+ */
64
+ export interface SafetyEvaluation {
65
+ /** The action determined by evaluation. */
66
+ action: SafetyAction;
67
+ /** Human-readable explanation of why this action was chosen. */
68
+ reason: string;
69
+ /** The operation that was evaluated. */
70
+ operation: SafetyOperation;
71
+ /** The rule that matched, or undefined if the level default was used. */
72
+ rule?: SafetyRule;
73
+ }
74
+ /**
75
+ * Validated safety actions for use in rule parsing.
76
+ */
77
+ export declare const VALID_SAFETY_ACTIONS: readonly SafetyAction[];
78
+ /**
79
+ * Check if a string is a valid SafetyAction.
80
+ */
81
+ export declare function isValidSafetyAction(value: string): value is SafetyAction;
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /**
7
+ * Validated safety actions for use in rule parsing.
8
+ */
9
+ export const VALID_SAFETY_ACTIONS = ['allow', 'block', 'confirm'];
10
+ /**
11
+ * Check if a string is a valid SafetyAction.
12
+ */
13
+ export function isValidSafetyAction(value) {
14
+ return VALID_SAFETY_ACTIONS.includes(value);
15
+ }
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/safety/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgFH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAEpG;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Confirmation flow utility for safety-guarded operations.
3
+ *
4
+ * @module safety/with-confirmation
5
+ */
6
+ import type { SafetyGuard } from './safety-guard.js';
7
+ import type { SafetyEvaluation } from './types.js';
8
+ /**
9
+ * Handler that prompts a user for confirmation.
10
+ *
11
+ * Implementations vary by context:
12
+ * - CLI: readline-based prompt
13
+ * - VS Code: `vscode.window.showWarningMessage({ modal: true })`
14
+ * - MCP/non-interactive: always returns `false`
15
+ *
16
+ * @param evaluation - The safety evaluation that triggered confirmation
17
+ * @returns true if the user confirmed, false to cancel
18
+ */
19
+ export type ConfirmHandler = (evaluation: SafetyEvaluation) => Promise<boolean>;
20
+ /**
21
+ * Execute an operation with safety confirmation support.
22
+ *
23
+ * If the operation throws {@link SafetyConfirmationRequired}, the
24
+ * `confirmHandler` is called. If the user confirms, the operation
25
+ * is retried with a temporary exemption. If the user cancels (or
26
+ * the handler returns false), a {@link SafetyBlockedError} is thrown.
27
+ *
28
+ * Non-confirmation errors are re-thrown as-is.
29
+ *
30
+ * @param guard - The SafetyGuard instance
31
+ * @param operation - The operation to execute
32
+ * @param confirmHandler - Context-specific confirmation handler
33
+ * @returns The operation's return value
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * // CLI usage
38
+ * const result = await withSafetyConfirmation(
39
+ * guard,
40
+ * () => instance.ocapi.POST('/jobs/import/executions', ...),
41
+ * async (eval) => {
42
+ * if (!process.stdin.isTTY) return false;
43
+ * return confirm(`Safety: ${eval.reason}. Proceed?`);
44
+ * },
45
+ * );
46
+ *
47
+ * // VS Code usage
48
+ * const result = await withSafetyConfirmation(
49
+ * guard,
50
+ * () => runJobImport(),
51
+ * async (eval) => {
52
+ * const choice = await vscode.window.showWarningMessage(eval.reason, { modal: true }, 'Proceed');
53
+ * return choice === 'Proceed';
54
+ * },
55
+ * );
56
+ * ```
57
+ */
58
+ export declare function withSafetyConfirmation<T>(guard: SafetyGuard, operation: () => Promise<T>, confirmHandler: ConfirmHandler): Promise<T>;
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { SafetyBlockedError, SafetyConfirmationRequired } from './safety-middleware.js';
7
+ /**
8
+ * Execute an operation with safety confirmation support.
9
+ *
10
+ * If the operation throws {@link SafetyConfirmationRequired}, the
11
+ * `confirmHandler` is called. If the user confirms, the operation
12
+ * is retried with a temporary exemption. If the user cancels (or
13
+ * the handler returns false), a {@link SafetyBlockedError} is thrown.
14
+ *
15
+ * Non-confirmation errors are re-thrown as-is.
16
+ *
17
+ * @param guard - The SafetyGuard instance
18
+ * @param operation - The operation to execute
19
+ * @param confirmHandler - Context-specific confirmation handler
20
+ * @returns The operation's return value
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // CLI usage
25
+ * const result = await withSafetyConfirmation(
26
+ * guard,
27
+ * () => instance.ocapi.POST('/jobs/import/executions', ...),
28
+ * async (eval) => {
29
+ * if (!process.stdin.isTTY) return false;
30
+ * return confirm(`Safety: ${eval.reason}. Proceed?`);
31
+ * },
32
+ * );
33
+ *
34
+ * // VS Code usage
35
+ * const result = await withSafetyConfirmation(
36
+ * guard,
37
+ * () => runJobImport(),
38
+ * async (eval) => {
39
+ * const choice = await vscode.window.showWarningMessage(eval.reason, { modal: true }, 'Proceed');
40
+ * return choice === 'Proceed';
41
+ * },
42
+ * );
43
+ * ```
44
+ */
45
+ export async function withSafetyConfirmation(guard, operation, confirmHandler) {
46
+ try {
47
+ return await operation();
48
+ }
49
+ catch (err) {
50
+ if (err instanceof SafetyConfirmationRequired) {
51
+ const confirmed = await confirmHandler(err.evaluation);
52
+ if (!confirmed) {
53
+ throw new SafetyBlockedError(`Operation cancelled: ${err.evaluation.reason}`, err.evaluation.operation.method ?? '', err.evaluation.operation.url ?? '', guard.config.level);
54
+ }
55
+ // Temporarily allow this specific operation and retry
56
+ const cleanup = guard.temporarilyAllow(err.evaluation.operation);
57
+ try {
58
+ return await operation();
59
+ }
60
+ finally {
61
+ cleanup();
62
+ }
63
+ }
64
+ throw err;
65
+ }
66
+ }
67
+ //# sourceMappingURL=with-confirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-confirmation.js","sourceRoot":"","sources":["../../../src/safety/with-confirmation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EAAC,kBAAkB,EAAE,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AAetF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkB,EAClB,SAA2B,EAC3B,cAA8B;IAE9B,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,0BAA0B,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,kBAAkB,CAC1B,wBAAwB,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAC/C,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,EACrC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,EAClC,KAAK,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;YACJ,CAAC;YAED,sDAAsD;YACtD,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,EAAE,CAAC;YAC3B,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface ConfirmOptions {
2
+ /** Default to yes when the user presses Enter without typing. Defaults to false (no). */
3
+ defaultYes?: boolean;
4
+ }
5
+ /**
6
+ * Simple yes/no confirmation prompt.
7
+ *
8
+ * Output goes to stderr so it doesn't interfere with structured stdout output.
9
+ *
10
+ * @param message - Prompt message (the hint is appended automatically)
11
+ * @param options - Options to control default behavior
12
+ * @returns true if user confirmed, false otherwise
13
+ */
14
+ export declare function confirm(message: string, options?: ConfirmOptions): Promise<boolean>;
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import * as readline from 'node:readline';
7
+ /**
8
+ * Simple yes/no confirmation prompt.
9
+ *
10
+ * Output goes to stderr so it doesn't interfere with structured stdout output.
11
+ *
12
+ * @param message - Prompt message (the hint is appended automatically)
13
+ * @param options - Options to control default behavior
14
+ * @returns true if user confirmed, false otherwise
15
+ */
16
+ export async function confirm(message, options) {
17
+ const defaultYes = options?.defaultYes ?? false;
18
+ const hint = defaultYes ? '(Y/n)' : '(y/N)';
19
+ const rl = readline.createInterface({
20
+ input: process.stdin,
21
+ output: process.stderr,
22
+ });
23
+ return new Promise((resolve) => {
24
+ rl.question(`${message} ${hint} `, (answer) => {
25
+ rl.close();
26
+ const normalized = answer.trim().toLowerCase();
27
+ if (normalized === '') {
28
+ resolve(defaultYes);
29
+ }
30
+ else {
31
+ resolve(normalized === 'y' || normalized === 'yes');
32
+ }
33
+ });
34
+ });
35
+ }
36
+ //# sourceMappingURL=confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../../src/ux/confirm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAO1C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,OAAwB;IACrE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC;IAChD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE5C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;gBACtB,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -3,6 +3,8 @@ import type { LoadConfigOptions } from './config.js';
3
3
  import type { ResolvedB2CConfig } from '../config/index.js';
4
4
  import { type Logger } from '../logging/index.js';
5
5
  import { type ExtraParamsConfig } from '../clients/middleware.js';
6
+ import { SafetyGuard } from '../safety/safety-guard.js';
7
+ import type { SafetyEvaluation } from '../safety/types.js';
6
8
  import { Telemetry, type TelemetryAttributes } from '../telemetry/index.js';
7
9
  export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof BaseCommand)['baseFlags'] & T['flags']>;
8
10
  export type Args<T extends typeof Command> = Interfaces.InferredArgs<T['args']>;
@@ -39,6 +41,8 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
39
41
  protected args: Args<T>;
40
42
  protected resolvedConfig: ResolvedB2CConfig;
41
43
  protected logger: Logger;
44
+ /** Safety guard for evaluating operations against safety rules and levels. */
45
+ protected safetyGuard: SafetyGuard;
42
46
  /** Telemetry instance for tracking command events */
43
47
  protected telemetry?: Telemetry;
44
48
  /** Start time for command duration tracking */
@@ -188,17 +192,38 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
188
192
  */
189
193
  protected getExtraParams(): ExtraParamsConfig | undefined;
190
194
  /**
191
- * Register safety middleware to block destructive operations.
192
- * This provides unbypassable protection at the HTTP layer - cannot be circumvented
193
- * by command-line flags since it operates on all HTTP requests.
195
+ * Register safety middleware that evaluates all HTTP requests against the SafetyGuard.
194
196
  *
195
- * Safety level is determined by the SFCC_SAFETY_LEVEL environment variable:
196
- * - NONE: No restrictions (default)
197
- * - NO_DELETE: Block DELETE operations
198
- * - NO_UPDATE: Block DELETE + destructive operations (reset/stop/restart)
199
- * - READ_ONLY: Block all writes (GET only)
197
+ * The middleware reads `this.safetyGuard` lazily (via arrow function closure), so it
198
+ * picks up the full config after `initializeSafetyGuard()` runs. This allows the
199
+ * middleware to be registered early in init() before config resolution completes.
200
200
  */
201
201
  private registerSafetyMiddleware;
202
+ /**
203
+ * Update the safety guard with config-provided safety settings.
204
+ * Called after loadConfiguration() to merge env vars, global safety config,
205
+ * and per-instance dw.json config.
206
+ */
207
+ private initializeSafetyGuard;
208
+ /**
209
+ * Evaluate command-level safety rules for the current command.
210
+ *
211
+ * This runs at the end of init() so every command is evaluated against
212
+ * command rules (e.g., `{ command: "code:deploy", action: "block" }`).
213
+ * If no command rule matches, this is a no-op — level-based blocking
214
+ * is handled by the HTTP middleware and assertDestructiveOperationAllowed().
215
+ */
216
+ private evaluateCommandSafety;
217
+ /**
218
+ * Require interactive confirmation for a safety-guarded operation.
219
+ *
220
+ * If stdin is a TTY, prompts the user. Otherwise, blocks with an error message.
221
+ * The error message clearly indicates the block is from the user's own safety configuration.
222
+ *
223
+ * @param evaluation - The safety evaluation that triggered confirmation
224
+ * @throws Error if confirmation is denied or not possible
225
+ */
226
+ protected confirmOrBlock(evaluation: SafetyEvaluation): Promise<void>;
202
227
  /**
203
228
  * Register extra params (query, body, headers) as global middleware.
204
229
  * This applies to ALL HTTP clients created during command execution.
@@ -9,7 +9,9 @@ import { parseFriendlySandboxId } from '../operations/ods/sandbox-lookup.js';
9
9
  import { setLanguage, t } from '../i18n/index.js';
10
10
  import { configureLogger, getLogger } from '../logging/index.js';
11
11
  import { createExtraParamsMiddleware, createSafetyMiddleware } from '../clients/middleware.js';
12
- import { getSafetyLevel, describeSafetyLevel } from '../safety/index.js';
12
+ import { getSafetyLevel, describeSafetyLevel, resolveEffectiveSafetyConfig, loadGlobalSafetyConfig, } from '../safety/index.js';
13
+ import { SafetyGuard } from '../safety/safety-guard.js';
14
+ import { confirm as safetyConfirm } from '../ux/confirm.js';
13
15
  import { globalConfigSourceRegistry } from '../config/config-source-registry.js';
14
16
  import { globalMiddlewareRegistry } from '../clients/middleware-registry.js';
15
17
  import { globalAuthMiddlewareRegistry } from '../auth/middleware.js';
@@ -105,6 +107,8 @@ export class BaseCommand extends Command {
105
107
  args;
106
108
  resolvedConfig;
107
109
  logger;
110
+ /** Safety guard for evaluating operations against safety rules and levels. */
111
+ safetyGuard = new SafetyGuard({ level: 'NONE' });
108
112
  /** Telemetry instance for tracking command events */
109
113
  telemetry;
110
114
  /** Start time for command duration tracking */
@@ -132,8 +136,12 @@ export class BaseCommand extends Command {
132
136
  // Register extra params middleware (from --extra-query, --extra-body, --extra-headers flags)
133
137
  // This must happen before any API clients are created
134
138
  this.registerExtraParamsMiddleware();
139
+ // Initialize safety guard with env-var-only config (before config resolution).
140
+ // The guard is updated with the full config after loadConfiguration().
141
+ this.safetyGuard = new SafetyGuard({ level: getSafetyLevel('NONE') });
135
142
  // Register safety middleware FIRST (before any other middleware)
136
- // This provides unbypassable protection at the HTTP layer
143
+ // The middleware reads this.safetyGuard lazily via closure, so it picks up
144
+ // the full config after initializeSafetyGuard() runs.
137
145
  this.registerSafetyMiddleware();
138
146
  // Collect middleware from plugins before any API clients are created
139
147
  await this.collectPluginHttpMiddleware();
@@ -144,6 +152,11 @@ export class BaseCommand extends Command {
144
152
  // Auto-initialize telemetry from oclif pjson config
145
153
  await this.initTelemetryFromConfig();
146
154
  this.resolvedConfig = await this.loadConfiguration();
155
+ // Update safety guard with config-provided safety settings (merges env + config)
156
+ this.initializeSafetyGuard();
157
+ // Evaluate command-level safety rules for every command.
158
+ // This enforces rules like { command: "code:deploy", action: "block" } generically.
159
+ await this.evaluateCommandSafety();
147
160
  this.addTelemetryContext();
148
161
  }
149
162
  /**
@@ -532,25 +545,22 @@ export class BaseCommand extends Command {
532
545
  * ```
533
546
  */
534
547
  assertDestructiveOperationAllowed(operationDescription) {
535
- const safetyLevel = getSafetyLevel('NONE');
536
- if (safetyLevel === 'NONE') {
537
- return; // No restrictions
548
+ const evaluation = this.safetyGuard.evaluate({
549
+ type: 'command',
550
+ commandId: this.id,
551
+ });
552
+ if (evaluation.action === 'allow') {
553
+ return;
538
554
  }
539
555
  const operation = operationDescription || t('base.destructiveOperation', 'this destructive operation');
540
- // Determine if this operation should be blocked
541
- // We assume all calls to this method are for destructive operations
542
- // The safety level determines blocking:
543
- // - READ_ONLY: blocks all writes
544
- // - NO_DELETE: blocks deletes (we assume this method is called for deletes/destructive ops)
545
- // - NO_UPDATE: blocks deletes and resets
546
- const shouldBlock = safetyLevel === 'READ_ONLY' || safetyLevel === 'NO_DELETE' || safetyLevel === 'NO_UPDATE';
547
- if (shouldBlock) {
548
- return this.error(t('base.safetyModeBlocked', 'Cannot {{operation}}: blocked by safety level {{safetyLevel}}.\n\n{{description}}\n\nTo allow this operation, unset or change the SFCC_SAFETY_LEVEL environment variable.\nSee: https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/security#operational-security-safety-mode', {
549
- operation,
550
- safetyLevel,
551
- description: describeSafetyLevel(safetyLevel),
552
- }), { exit: 1 });
553
- }
556
+ // For both 'block' and 'confirm' at the assertion level, we block.
557
+ // Commands that want to support confirmation should call confirmOrBlock() separately.
558
+ const safetyLevel = this.safetyGuard.config.level;
559
+ return this.error(t('base.safetyModeBlocked', 'Cannot {{operation}}: blocked by your safety configuration (level: {{safetyLevel}}).\n\n{{description}}\n\nTo change this, update the "safety" section in your dw.json or the SFCC_SAFETY_LEVEL environment variable.\nSee: https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/safety', {
560
+ operation,
561
+ safetyLevel,
562
+ description: describeSafetyLevel(safetyLevel),
563
+ }), { exit: 1 });
554
564
  }
555
565
  /**
556
566
  * Parse extra params from --extra-query, --extra-body, and --extra-headers flags.
@@ -593,30 +603,77 @@ export class BaseCommand extends Command {
593
603
  return config;
594
604
  }
595
605
  /**
596
- * Register safety middleware to block destructive operations.
597
- * This provides unbypassable protection at the HTTP layer - cannot be circumvented
598
- * by command-line flags since it operates on all HTTP requests.
606
+ * Register safety middleware that evaluates all HTTP requests against the SafetyGuard.
599
607
  *
600
- * Safety level is determined by the SFCC_SAFETY_LEVEL environment variable:
601
- * - NONE: No restrictions (default)
602
- * - NO_DELETE: Block DELETE operations
603
- * - NO_UPDATE: Block DELETE + destructive operations (reset/stop/restart)
604
- * - READ_ONLY: Block all writes (GET only)
608
+ * The middleware reads `this.safetyGuard` lazily (via arrow function closure), so it
609
+ * picks up the full config after `initializeSafetyGuard()` runs. This allows the
610
+ * middleware to be registered early in init() before config resolution completes.
605
611
  */
606
612
  registerSafetyMiddleware() {
607
- const safetyLevel = getSafetyLevel('NONE');
608
- // Only register if safety is enabled
609
- if (safetyLevel === 'NONE')
610
- return;
611
- // Safety mode is silent until it blocks something
612
- // Error messages will be shown when operations are actually blocked
613
613
  globalMiddlewareRegistry.register({
614
614
  name: 'cli-safety-guard',
615
- getMiddleware() {
616
- return createSafetyMiddleware({ level: safetyLevel });
615
+ getMiddleware: () => {
616
+ // Skip if no safety restrictions are configured
617
+ if (this.safetyGuard.config.level === 'NONE' && !this.safetyGuard.config.rules?.length) {
618
+ return undefined;
619
+ }
620
+ return createSafetyMiddleware(this.safetyGuard);
617
621
  },
618
622
  });
619
623
  }
624
+ /**
625
+ * Update the safety guard with config-provided safety settings.
626
+ * Called after loadConfiguration() to merge env vars, global safety config,
627
+ * and per-instance dw.json config.
628
+ */
629
+ initializeSafetyGuard() {
630
+ const globalSafety = loadGlobalSafetyConfig(this.config.configDir);
631
+ const config = resolveEffectiveSafetyConfig(this.resolvedConfig.values.safety, globalSafety);
632
+ this.safetyGuard = new SafetyGuard(config);
633
+ if (config.level !== 'NONE' || config.rules?.length || config.confirm) {
634
+ this.logger.debug({ level: config.level, confirm: config.confirm, ruleCount: config.rules?.length ?? 0 }, 'Safety mode active');
635
+ }
636
+ }
637
+ /**
638
+ * Evaluate command-level safety rules for the current command.
639
+ *
640
+ * This runs at the end of init() so every command is evaluated against
641
+ * command rules (e.g., `{ command: "code:deploy", action: "block" }`).
642
+ * If no command rule matches, this is a no-op — level-based blocking
643
+ * is handled by the HTTP middleware and assertDestructiveOperationAllowed().
644
+ */
645
+ async evaluateCommandSafety() {
646
+ const evaluation = this.safetyGuard.evaluate({
647
+ type: 'command',
648
+ commandId: this.id,
649
+ });
650
+ if (evaluation.action === 'block' && evaluation.rule) {
651
+ this.error(evaluation.reason, { exit: 1 });
652
+ }
653
+ if (evaluation.action === 'confirm' && evaluation.rule) {
654
+ await this.confirmOrBlock(evaluation);
655
+ }
656
+ }
657
+ /**
658
+ * Require interactive confirmation for a safety-guarded operation.
659
+ *
660
+ * If stdin is a TTY, prompts the user. Otherwise, blocks with an error message.
661
+ * The error message clearly indicates the block is from the user's own safety configuration.
662
+ *
663
+ * @param evaluation - The safety evaluation that triggered confirmation
664
+ * @throws Error if confirmation is denied or not possible
665
+ */
666
+ async confirmOrBlock(evaluation) {
667
+ if (!process.stdin.isTTY) {
668
+ this.error(`Your safety configuration requires confirmation for this operation, ` +
669
+ `but no interactive session is available.\n\n ${evaluation.reason}\n\n` +
670
+ `To change this, update the "safety" section in your dw.json or the SFCC_SAFETY_CONFIRM environment variable.`, { exit: 1 });
671
+ }
672
+ const confirmed = await safetyConfirm(`Your safety configuration requires confirmation for this operation:\n ${evaluation.reason}\n Proceed?`);
673
+ if (!confirmed) {
674
+ this.error('Operation cancelled.', { exit: 1 });
675
+ }
676
+ }
620
677
  /**
621
678
  * Register extra params (query, body, headers) as global middleware.
622
679
  * This applies to ALL HTTP clients created during command execution.
@@ -1 +1 @@
1
- {"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../../src/cli/base-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../../src/cli/base-command.ts"],"names":[],"mappings":"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"}