@salesforce/b2c-cli 0.0.0-nightly.20260122024142 → 0.0.0-nightly.20260122144746
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.
- package/dist/commands/ecdn/cache/purge.d.ts +43 -0
- package/dist/commands/ecdn/cache/purge.js +104 -0
- package/dist/commands/ecdn/cache/purge.js.map +1 -0
- package/dist/commands/ecdn/certificates/add.d.ts +44 -0
- package/dist/commands/ecdn/certificates/add.js +109 -0
- package/dist/commands/ecdn/certificates/add.js.map +1 -0
- package/dist/commands/ecdn/certificates/delete.d.ts +41 -0
- package/dist/commands/ecdn/certificates/delete.js +69 -0
- package/dist/commands/ecdn/certificates/delete.js.map +1 -0
- package/dist/commands/ecdn/certificates/list.d.ts +46 -0
- package/dist/commands/ecdn/certificates/list.js +124 -0
- package/dist/commands/ecdn/certificates/list.js.map +1 -0
- package/dist/commands/ecdn/certificates/update.d.ts +45 -0
- package/dist/commands/ecdn/certificates/update.js +104 -0
- package/dist/commands/ecdn/certificates/update.js.map +1 -0
- package/dist/commands/ecdn/certificates/validate.d.ts +40 -0
- package/dist/commands/ecdn/certificates/validate.js +68 -0
- package/dist/commands/ecdn/certificates/validate.js.map +1 -0
- package/dist/commands/ecdn/cipher-suites/get.d.ts +39 -0
- package/dist/commands/ecdn/cipher-suites/get.js +63 -0
- package/dist/commands/ecdn/cipher-suites/get.js.map +1 -0
- package/dist/commands/ecdn/cipher-suites/update.d.ts +41 -0
- package/dist/commands/ecdn/cipher-suites/update.js +81 -0
- package/dist/commands/ecdn/cipher-suites/update.js.map +1 -0
- package/dist/commands/ecdn/logpush/jobs/create.d.ts +45 -0
- package/dist/commands/ecdn/logpush/jobs/create.js +103 -0
- package/dist/commands/ecdn/logpush/jobs/create.js.map +1 -0
- package/dist/commands/ecdn/logpush/jobs/delete.d.ts +39 -0
- package/dist/commands/ecdn/logpush/jobs/delete.js +50 -0
- package/dist/commands/ecdn/logpush/jobs/delete.js.map +1 -0
- package/dist/commands/ecdn/logpush/jobs/get.d.ts +40 -0
- package/dist/commands/ecdn/logpush/jobs/get.js +85 -0
- package/dist/commands/ecdn/logpush/jobs/get.js.map +1 -0
- package/dist/commands/ecdn/logpush/jobs/list.d.ts +43 -0
- package/dist/commands/ecdn/logpush/jobs/list.js +124 -0
- package/dist/commands/ecdn/logpush/jobs/list.js.map +1 -0
- package/dist/commands/ecdn/logpush/jobs/update.d.ts +43 -0
- package/dist/commands/ecdn/logpush/jobs/update.js +94 -0
- package/dist/commands/ecdn/logpush/jobs/update.js.map +1 -0
- package/dist/commands/ecdn/logpush/ownership.d.ts +39 -0
- package/dist/commands/ecdn/logpush/ownership.js +72 -0
- package/dist/commands/ecdn/logpush/ownership.js.map +1 -0
- package/dist/commands/ecdn/mrt-rules/create.d.ts +42 -0
- package/dist/commands/ecdn/mrt-rules/create.js +81 -0
- package/dist/commands/ecdn/mrt-rules/create.js.map +1 -0
- package/dist/commands/ecdn/mrt-rules/delete.d.ts +39 -0
- package/dist/commands/ecdn/mrt-rules/delete.js +52 -0
- package/dist/commands/ecdn/mrt-rules/delete.js.map +1 -0
- package/dist/commands/ecdn/mrt-rules/get.d.ts +39 -0
- package/dist/commands/ecdn/mrt-rules/get.js +89 -0
- package/dist/commands/ecdn/mrt-rules/get.js.map +1 -0
- package/dist/commands/ecdn/mrt-rules/rules/delete.d.ts +40 -0
- package/dist/commands/ecdn/mrt-rules/rules/delete.js +57 -0
- package/dist/commands/ecdn/mrt-rules/rules/delete.js.map +1 -0
- package/dist/commands/ecdn/mrt-rules/rules/update.d.ts +44 -0
- package/dist/commands/ecdn/mrt-rules/rules/update.js +88 -0
- package/dist/commands/ecdn/mrt-rules/rules/update.js.map +1 -0
- package/dist/commands/ecdn/mrt-rules/update.d.ts +43 -0
- package/dist/commands/ecdn/mrt-rules/update.js +87 -0
- package/dist/commands/ecdn/mrt-rules/update.js.map +1 -0
- package/dist/commands/ecdn/mtls/create.d.ts +41 -0
- package/dist/commands/ecdn/mtls/create.js +84 -0
- package/dist/commands/ecdn/mtls/create.js.map +1 -0
- package/dist/commands/ecdn/mtls/delete.d.ts +38 -0
- package/dist/commands/ecdn/mtls/delete.js +53 -0
- package/dist/commands/ecdn/mtls/delete.js.map +1 -0
- package/dist/commands/ecdn/mtls/get.d.ts +39 -0
- package/dist/commands/ecdn/mtls/get.js +72 -0
- package/dist/commands/ecdn/mtls/get.js.map +1 -0
- package/dist/commands/ecdn/mtls/list.d.ts +42 -0
- package/dist/commands/ecdn/mtls/list.js +118 -0
- package/dist/commands/ecdn/mtls/list.js.map +1 -0
- package/dist/commands/ecdn/origin-headers/delete.d.ts +37 -0
- package/dist/commands/ecdn/origin-headers/delete.js +46 -0
- package/dist/commands/ecdn/origin-headers/delete.js.map +1 -0
- package/dist/commands/ecdn/origin-headers/get.d.ts +39 -0
- package/dist/commands/ecdn/origin-headers/get.js +61 -0
- package/dist/commands/ecdn/origin-headers/get.js.map +1 -0
- package/dist/commands/ecdn/origin-headers/set.d.ts +41 -0
- package/dist/commands/ecdn/origin-headers/set.js +76 -0
- package/dist/commands/ecdn/origin-headers/set.js.map +1 -0
- package/dist/commands/ecdn/page-shield/notifications/create.d.ts +41 -0
- package/dist/commands/ecdn/page-shield/notifications/create.js +84 -0
- package/dist/commands/ecdn/page-shield/notifications/create.js.map +1 -0
- package/dist/commands/ecdn/page-shield/notifications/delete.d.ts +38 -0
- package/dist/commands/ecdn/page-shield/notifications/delete.js +53 -0
- package/dist/commands/ecdn/page-shield/notifications/delete.js.map +1 -0
- package/dist/commands/ecdn/page-shield/notifications/list.d.ts +42 -0
- package/dist/commands/ecdn/page-shield/notifications/list.js +118 -0
- package/dist/commands/ecdn/page-shield/notifications/list.js.map +1 -0
- package/dist/commands/ecdn/page-shield/policies/create.d.ts +44 -0
- package/dist/commands/ecdn/page-shield/policies/create.js +100 -0
- package/dist/commands/ecdn/page-shield/policies/create.js.map +1 -0
- package/dist/commands/ecdn/page-shield/policies/delete.d.ts +39 -0
- package/dist/commands/ecdn/page-shield/policies/delete.js +56 -0
- package/dist/commands/ecdn/page-shield/policies/delete.js.map +1 -0
- package/dist/commands/ecdn/page-shield/policies/get.d.ts +40 -0
- package/dist/commands/ecdn/page-shield/policies/get.js +72 -0
- package/dist/commands/ecdn/page-shield/policies/get.js.map +1 -0
- package/dist/commands/ecdn/page-shield/policies/list.d.ts +43 -0
- package/dist/commands/ecdn/page-shield/policies/list.js +119 -0
- package/dist/commands/ecdn/page-shield/policies/list.js.map +1 -0
- package/dist/commands/ecdn/page-shield/policies/update.d.ts +45 -0
- package/dist/commands/ecdn/page-shield/policies/update.js +110 -0
- package/dist/commands/ecdn/page-shield/policies/update.js.map +1 -0
- package/dist/commands/ecdn/page-shield/scripts/get.d.ts +40 -0
- package/dist/commands/ecdn/page-shield/scripts/get.js +99 -0
- package/dist/commands/ecdn/page-shield/scripts/get.js.map +1 -0
- package/dist/commands/ecdn/page-shield/scripts/list.d.ts +43 -0
- package/dist/commands/ecdn/page-shield/scripts/list.js +124 -0
- package/dist/commands/ecdn/page-shield/scripts/list.js.map +1 -0
- package/dist/commands/ecdn/security/get.d.ts +39 -0
- package/dist/commands/ecdn/security/get.js +69 -0
- package/dist/commands/ecdn/security/get.js.map +1 -0
- package/dist/commands/ecdn/security/update.d.ts +47 -0
- package/dist/commands/ecdn/security/update.js +136 -0
- package/dist/commands/ecdn/security/update.js.map +1 -0
- package/dist/commands/ecdn/speed/get.d.ts +39 -0
- package/dist/commands/ecdn/speed/get.js +64 -0
- package/dist/commands/ecdn/speed/get.js.map +1 -0
- package/dist/commands/ecdn/speed/update.d.ts +46 -0
- package/dist/commands/ecdn/speed/update.js +105 -0
- package/dist/commands/ecdn/speed/update.js.map +1 -0
- package/dist/commands/ecdn/waf/groups/list.d.ts +42 -0
- package/dist/commands/ecdn/waf/groups/list.js +89 -0
- package/dist/commands/ecdn/waf/groups/list.js.map +1 -0
- package/dist/commands/ecdn/waf/groups/update.d.ts +43 -0
- package/dist/commands/ecdn/waf/groups/update.js +84 -0
- package/dist/commands/ecdn/waf/groups/update.js.map +1 -0
- package/dist/commands/ecdn/waf/managed-rules/list.d.ts +44 -0
- package/dist/commands/ecdn/waf/managed-rules/list.js +124 -0
- package/dist/commands/ecdn/waf/managed-rules/list.js.map +1 -0
- package/dist/commands/ecdn/waf/managed-rules/update.d.ts +43 -0
- package/dist/commands/ecdn/waf/managed-rules/update.js +94 -0
- package/dist/commands/ecdn/waf/managed-rules/update.js.map +1 -0
- package/dist/commands/ecdn/waf/migrate.d.ts +40 -0
- package/dist/commands/ecdn/waf/migrate.js +83 -0
- package/dist/commands/ecdn/waf/migrate.js.map +1 -0
- package/dist/commands/ecdn/waf/owasp/get.d.ts +40 -0
- package/dist/commands/ecdn/waf/owasp/get.js +64 -0
- package/dist/commands/ecdn/waf/owasp/get.js.map +1 -0
- package/dist/commands/ecdn/waf/owasp/update.d.ts +42 -0
- package/dist/commands/ecdn/waf/owasp/update.js +79 -0
- package/dist/commands/ecdn/waf/owasp/update.js.map +1 -0
- package/dist/commands/ecdn/waf/rules/get.d.ts +41 -0
- package/dist/commands/ecdn/waf/rules/get.js +68 -0
- package/dist/commands/ecdn/waf/rules/get.js.map +1 -0
- package/dist/commands/ecdn/waf/rules/list.d.ts +45 -0
- package/dist/commands/ecdn/waf/rules/list.js +120 -0
- package/dist/commands/ecdn/waf/rules/list.js.map +1 -0
- package/dist/commands/ecdn/waf/rules/update.d.ts +42 -0
- package/dist/commands/ecdn/waf/rules/update.js +77 -0
- package/dist/commands/ecdn/waf/rules/update.js.map +1 -0
- package/dist/commands/ecdn/waf/rulesets/list.d.ts +43 -0
- package/dist/commands/ecdn/waf/rulesets/list.js +119 -0
- package/dist/commands/ecdn/waf/rulesets/list.js.map +1 -0
- package/dist/commands/ecdn/waf/rulesets/update.d.ts +44 -0
- package/dist/commands/ecdn/waf/rulesets/update.js +101 -0
- package/dist/commands/ecdn/waf/rulesets/update.js.map +1 -0
- package/dist/commands/ecdn/zones/create.d.ts +40 -0
- package/dist/commands/ecdn/zones/create.js +71 -0
- package/dist/commands/ecdn/zones/create.js.map +1 -0
- package/dist/commands/ecdn/zones/list.d.ts +44 -0
- package/dist/commands/ecdn/zones/list.js +112 -0
- package/dist/commands/ecdn/zones/list.js.map +1 -0
- package/dist/commands/mrt/{push.d.ts → bundle/deploy.d.ts} +24 -9
- package/dist/commands/mrt/bundle/deploy.js +182 -0
- package/dist/commands/mrt/bundle/deploy.js.map +1 -0
- package/dist/commands/mrt/bundle/download.d.ts +40 -0
- package/dist/commands/mrt/bundle/download.js +109 -0
- package/dist/commands/mrt/bundle/download.js.map +1 -0
- package/dist/commands/mrt/bundle/history.d.ts +30 -0
- package/dist/commands/mrt/bundle/history.js +90 -0
- package/dist/commands/mrt/bundle/history.js.map +1 -0
- package/dist/commands/mrt/bundle/list.d.ts +30 -0
- package/dist/commands/mrt/bundle/list.js +79 -0
- package/dist/commands/mrt/bundle/list.js.map +1 -0
- package/dist/commands/mrt/env/access-control/list.d.ts +30 -0
- package/dist/commands/mrt/env/access-control/list.js +83 -0
- package/dist/commands/mrt/env/access-control/list.js.map +1 -0
- package/dist/commands/mrt/env/b2c.d.ts +32 -0
- package/dist/commands/mrt/env/b2c.js +120 -0
- package/dist/commands/mrt/env/b2c.js.map +1 -0
- package/dist/commands/mrt/env/get.d.ts +28 -0
- package/dist/commands/mrt/env/get.js +98 -0
- package/dist/commands/mrt/env/get.js.map +1 -0
- package/dist/commands/mrt/env/invalidate.d.ts +29 -0
- package/dist/commands/mrt/env/invalidate.js +66 -0
- package/dist/commands/mrt/env/invalidate.js.map +1 -0
- package/dist/commands/mrt/env/list.d.ts +28 -0
- package/dist/commands/mrt/env/list.js +68 -0
- package/dist/commands/mrt/env/list.js.map +1 -0
- package/dist/commands/mrt/env/redirect/clone.d.ts +31 -0
- package/dist/commands/mrt/env/redirect/clone.js +95 -0
- package/dist/commands/mrt/env/redirect/clone.js.map +1 -0
- package/dist/commands/mrt/env/redirect/create.d.ts +33 -0
- package/dist/commands/mrt/env/redirect/create.js +87 -0
- package/dist/commands/mrt/env/redirect/create.js.map +1 -0
- package/dist/commands/mrt/env/redirect/delete.d.ts +34 -0
- package/dist/commands/mrt/env/redirect/delete.js +92 -0
- package/dist/commands/mrt/env/redirect/delete.js.map +1 -0
- package/dist/commands/mrt/env/redirect/list.d.ts +31 -0
- package/dist/commands/mrt/env/redirect/list.js +90 -0
- package/dist/commands/mrt/env/redirect/list.js.map +1 -0
- package/dist/commands/mrt/env/update.d.ts +37 -0
- package/dist/commands/mrt/env/update.js +173 -0
- package/dist/commands/mrt/env/update.js.map +1 -0
- package/dist/commands/mrt/org/b2c.d.ts +31 -0
- package/dist/commands/mrt/org/b2c.js +55 -0
- package/dist/commands/mrt/org/b2c.js.map +1 -0
- package/dist/commands/mrt/org/list.d.ts +30 -0
- package/dist/commands/mrt/org/list.js +70 -0
- package/dist/commands/mrt/org/list.js.map +1 -0
- package/dist/commands/mrt/project/create.d.ts +35 -0
- package/dist/commands/mrt/project/create.js +129 -0
- package/dist/commands/mrt/project/create.js.map +1 -0
- package/dist/commands/mrt/project/delete.d.ts +39 -0
- package/dist/commands/mrt/project/delete.js +81 -0
- package/dist/commands/mrt/project/delete.js.map +1 -0
- package/dist/commands/mrt/project/get.d.ts +31 -0
- package/dist/commands/mrt/project/get.js +79 -0
- package/dist/commands/mrt/project/get.js.map +1 -0
- package/dist/commands/mrt/project/list.d.ts +31 -0
- package/dist/commands/mrt/project/list.js +80 -0
- package/dist/commands/mrt/project/list.js.map +1 -0
- package/dist/commands/mrt/project/member/add.d.ts +32 -0
- package/dist/commands/mrt/project/member/add.js +73 -0
- package/dist/commands/mrt/project/member/add.js.map +1 -0
- package/dist/commands/mrt/project/member/get.d.ts +31 -0
- package/dist/commands/mrt/project/member/get.js +70 -0
- package/dist/commands/mrt/project/member/get.js.map +1 -0
- package/dist/commands/mrt/project/member/list.d.ts +32 -0
- package/dist/commands/mrt/project/member/list.js +82 -0
- package/dist/commands/mrt/project/member/list.js.map +1 -0
- package/dist/commands/mrt/project/member/remove.d.ts +34 -0
- package/dist/commands/mrt/project/member/remove.js +89 -0
- package/dist/commands/mrt/project/member/remove.js.map +1 -0
- package/dist/commands/mrt/project/member/update.d.ts +32 -0
- package/dist/commands/mrt/project/member/update.js +72 -0
- package/dist/commands/mrt/project/member/update.js.map +1 -0
- package/dist/commands/mrt/project/notification/create.d.ts +33 -0
- package/dist/commands/mrt/project/notification/create.js +86 -0
- package/dist/commands/mrt/project/notification/create.js.map +1 -0
- package/dist/commands/mrt/project/notification/delete.d.ts +34 -0
- package/dist/commands/mrt/project/notification/delete.js +88 -0
- package/dist/commands/mrt/project/notification/delete.js.map +1 -0
- package/dist/commands/mrt/project/notification/get.d.ts +31 -0
- package/dist/commands/mrt/project/notification/get.js +86 -0
- package/dist/commands/mrt/project/notification/get.js.map +1 -0
- package/dist/commands/mrt/project/notification/list.d.ts +31 -0
- package/dist/commands/mrt/project/notification/list.js +88 -0
- package/dist/commands/mrt/project/notification/list.js.map +1 -0
- package/dist/commands/mrt/project/notification/update.d.ts +36 -0
- package/dist/commands/mrt/project/notification/update.js +86 -0
- package/dist/commands/mrt/project/notification/update.js.map +1 -0
- package/dist/commands/mrt/project/update.d.ts +34 -0
- package/dist/commands/mrt/project/update.js +123 -0
- package/dist/commands/mrt/project/update.js.map +1 -0
- package/dist/commands/mrt/user/api-key.d.ts +30 -0
- package/dist/commands/mrt/user/api-key.js +63 -0
- package/dist/commands/mrt/user/api-key.js.map +1 -0
- package/dist/commands/mrt/user/email-prefs.d.ts +30 -0
- package/dist/commands/mrt/user/email-prefs.js +83 -0
- package/dist/commands/mrt/user/email-prefs.js.map +1 -0
- package/dist/commands/mrt/user/profile.d.ts +28 -0
- package/dist/commands/mrt/user/profile.js +50 -0
- package/dist/commands/mrt/user/profile.js.map +1 -0
- package/dist/commands/ods/create.d.ts +1 -1
- package/dist/commands/ods/create.js +2 -3
- package/dist/commands/ods/create.js.map +1 -1
- package/dist/commands/ods/delete.js +2 -3
- package/dist/commands/ods/delete.js.map +1 -1
- package/dist/commands/ods/list.d.ts +1 -1
- package/dist/commands/ods/list.js +2 -3
- package/dist/commands/ods/list.js.map +1 -1
- package/dist/commands/ods/restart.d.ts +1 -1
- package/dist/commands/ods/restart.js +2 -3
- package/dist/commands/ods/restart.js.map +1 -1
- package/dist/commands/ods/start.d.ts +1 -1
- package/dist/commands/ods/start.js +2 -3
- package/dist/commands/ods/start.js.map +1 -1
- package/dist/commands/ods/stop.d.ts +1 -1
- package/dist/commands/ods/stop.js +2 -3
- package/dist/commands/ods/stop.js.map +1 -1
- package/dist/commands/scapi/custom/status.js +3 -3
- package/dist/commands/scapi/custom/status.js.map +1 -1
- package/dist/commands/scapi/schemas/get.js +2 -2
- package/dist/commands/scapi/schemas/get.js.map +1 -1
- package/dist/commands/scapi/schemas/list.js +2 -2
- package/dist/commands/scapi/schemas/list.js.map +1 -1
- package/dist/commands/sites/list.js +5 -2
- package/dist/commands/sites/list.js.map +1 -1
- package/dist/commands/slas/client/create.js +1 -1
- package/dist/commands/slas/client/create.js.map +1 -1
- package/dist/commands/slas/client/delete.js +2 -2
- package/dist/commands/slas/client/delete.js.map +1 -1
- package/dist/commands/slas/client/get.js +2 -2
- package/dist/commands/slas/client/get.js.map +1 -1
- package/dist/commands/slas/client/list.js +2 -2
- package/dist/commands/slas/client/list.js.map +1 -1
- package/dist/commands/slas/client/update.js +4 -4
- package/dist/commands/slas/client/update.js.map +1 -1
- package/dist/utils/ecdn/base-command.d.ts +46 -0
- package/dist/utils/ecdn/base-command.js +69 -0
- package/dist/utils/ecdn/base-command.js.map +1 -0
- package/dist/utils/ecdn/index.d.ts +2 -0
- package/dist/utils/ecdn/index.js +8 -0
- package/dist/utils/ecdn/index.js.map +1 -0
- package/dist/utils/ecdn/zone-command.d.ts +42 -0
- package/dist/utils/ecdn/zone-command.js +75 -0
- package/dist/utils/ecdn/zone-command.js.map +1 -0
- package/dist/utils/scapi/schemas.d.ts +1 -1
- package/dist/utils/scapi/schemas.js +3 -3
- package/dist/utils/scapi/schemas.js.map +1 -1
- package/dist/utils/slas/client.d.ts +1 -1
- package/dist/utils/slas/client.js +6 -6
- package/dist/utils/slas/client.js.map +1 -1
- package/oclif.manifest.json +21535 -2858
- package/package.json +118 -8
- package/dist/commands/mrt/push.js +0 -125
- package/dist/commands/mrt/push.js.map +0 -1
|
@@ -0,0 +1,124 @@
|
|
|
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 { Flags } from '@oclif/core';
|
|
7
|
+
import { TableRenderer } from '@salesforce/b2c-tooling-sdk/cli';
|
|
8
|
+
import { EcdnZoneCommand, formatApiError } from '../../../../utils/ecdn/index.js';
|
|
9
|
+
import { t } from '../../../../i18n/index.js';
|
|
10
|
+
const COLUMNS = {
|
|
11
|
+
ruleId: {
|
|
12
|
+
header: 'Rule ID',
|
|
13
|
+
get: (r) => r.ruleId || '-',
|
|
14
|
+
},
|
|
15
|
+
description: {
|
|
16
|
+
header: 'Description',
|
|
17
|
+
get: (r) => r.description || '-',
|
|
18
|
+
},
|
|
19
|
+
action: {
|
|
20
|
+
header: 'Action',
|
|
21
|
+
get: (r) => r.action || '-',
|
|
22
|
+
},
|
|
23
|
+
enabled: {
|
|
24
|
+
header: 'Enabled',
|
|
25
|
+
get: (r) => (r.enabled ? 'yes' : 'no'),
|
|
26
|
+
},
|
|
27
|
+
categories: {
|
|
28
|
+
header: 'Categories',
|
|
29
|
+
get: (r) => r.categories?.join(', ') || '-',
|
|
30
|
+
extended: true,
|
|
31
|
+
},
|
|
32
|
+
score: {
|
|
33
|
+
header: 'Score',
|
|
34
|
+
get: (r) => (r.score === undefined ? '-' : String(r.score)),
|
|
35
|
+
extended: true,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
const DEFAULT_COLUMNS = ['ruleId', 'description', 'action', 'enabled'];
|
|
39
|
+
const tableRenderer = new TableRenderer(COLUMNS);
|
|
40
|
+
/**
|
|
41
|
+
* Command to list WAF v2 managed rules within a ruleset.
|
|
42
|
+
*/
|
|
43
|
+
export default class EcdnWafManagedRulesList extends EcdnZoneCommand {
|
|
44
|
+
static description = t('commands.ecdn.waf.managed-rules.list.description', 'List WAF v2 managed rules in a ruleset');
|
|
45
|
+
static enableJsonFlag = true;
|
|
46
|
+
static examples = [
|
|
47
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123',
|
|
48
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --extended',
|
|
49
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --json',
|
|
50
|
+
];
|
|
51
|
+
static flags = {
|
|
52
|
+
...EcdnZoneCommand.baseFlags,
|
|
53
|
+
'ruleset-id': Flags.string({
|
|
54
|
+
description: t('flags.rulesetId.description', 'WAF ruleset ID to list rules for'),
|
|
55
|
+
required: true,
|
|
56
|
+
}),
|
|
57
|
+
columns: Flags.string({
|
|
58
|
+
char: 'c',
|
|
59
|
+
description: `Columns to display (comma-separated). Available: ${Object.keys(COLUMNS).join(', ')}`,
|
|
60
|
+
}),
|
|
61
|
+
extended: Flags.boolean({
|
|
62
|
+
char: 'x',
|
|
63
|
+
description: t('flags.extended.description', 'Show all columns including extended fields'),
|
|
64
|
+
default: false,
|
|
65
|
+
}),
|
|
66
|
+
};
|
|
67
|
+
async run() {
|
|
68
|
+
this.requireOAuthCredentials();
|
|
69
|
+
const zoneId = await this.resolveZoneId();
|
|
70
|
+
const rulesetId = this.flags['ruleset-id'];
|
|
71
|
+
if (!this.jsonEnabled()) {
|
|
72
|
+
this.log(t('commands.ecdn.waf.managed-rules.list.fetching', 'Fetching WAF v2 managed rules...'));
|
|
73
|
+
}
|
|
74
|
+
const client = this.getCdnZonesClient();
|
|
75
|
+
const organizationId = this.getOrganizationId();
|
|
76
|
+
const { data, error } = await client.GET('/organizations/{organizationId}/zones/{zoneId}/firewall-managed/rulesets/{rulesetId}/rules', {
|
|
77
|
+
params: {
|
|
78
|
+
path: { organizationId, zoneId, rulesetId },
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
if (error) {
|
|
82
|
+
this.error(t('commands.ecdn.waf.managed-rules.list.error', 'Failed to fetch WAF managed rules: {{message}}', {
|
|
83
|
+
message: formatApiError(error),
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
const rules = data?.data ?? [];
|
|
87
|
+
const output = {
|
|
88
|
+
rules,
|
|
89
|
+
total: rules.length,
|
|
90
|
+
};
|
|
91
|
+
if (this.jsonEnabled()) {
|
|
92
|
+
return output;
|
|
93
|
+
}
|
|
94
|
+
if (rules.length === 0) {
|
|
95
|
+
this.log(t('commands.ecdn.waf.managed-rules.list.noRules', 'No WAF managed rules found.'));
|
|
96
|
+
return output;
|
|
97
|
+
}
|
|
98
|
+
this.log(t('commands.ecdn.waf.managed-rules.list.count', 'Found {{count}} WAF managed rule(s):', {
|
|
99
|
+
count: rules.length,
|
|
100
|
+
}));
|
|
101
|
+
this.log('');
|
|
102
|
+
const columns = this.getSelectedColumns();
|
|
103
|
+
tableRenderer.render(rules, columns);
|
|
104
|
+
return output;
|
|
105
|
+
}
|
|
106
|
+
getSelectedColumns() {
|
|
107
|
+
const columnsFlag = this.flags.columns;
|
|
108
|
+
const extended = this.flags.extended;
|
|
109
|
+
if (columnsFlag) {
|
|
110
|
+
const requested = columnsFlag.split(',').map((c) => c.trim());
|
|
111
|
+
const valid = tableRenderer.validateColumnKeys(requested);
|
|
112
|
+
if (valid.length === 0) {
|
|
113
|
+
this.warn(`No valid columns specified. Available: ${tableRenderer.getColumnKeys().join(', ')}`);
|
|
114
|
+
return DEFAULT_COLUMNS;
|
|
115
|
+
}
|
|
116
|
+
return valid;
|
|
117
|
+
}
|
|
118
|
+
if (extended) {
|
|
119
|
+
return tableRenderer.getColumnKeys();
|
|
120
|
+
}
|
|
121
|
+
return DEFAULT_COLUMNS;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/commands/ecdn/waf/managed-rules/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { CdnZonesComponents } from '@salesforce/b2c-tooling-sdk/clients';
|
|
2
|
+
import { EcdnZoneCommand } from '../../../../utils/ecdn/index.js';
|
|
3
|
+
type WAFManagedRule = CdnZonesComponents['schemas']['WAFManagedRule'];
|
|
4
|
+
/**
|
|
5
|
+
* Response type for the update command.
|
|
6
|
+
*/
|
|
7
|
+
interface UpdateOutput {
|
|
8
|
+
rule: WAFManagedRule;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Command to update a WAF v2 managed rule within a ruleset.
|
|
12
|
+
*/
|
|
13
|
+
export default class EcdnWafManagedRulesUpdate extends EcdnZoneCommand<typeof EcdnWafManagedRulesUpdate> {
|
|
14
|
+
static description: string;
|
|
15
|
+
static enableJsonFlag: boolean;
|
|
16
|
+
static examples: string[];
|
|
17
|
+
static flags: {
|
|
18
|
+
'ruleset-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
+
'rule-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
enabled: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
action: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
zone: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
|
+
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
24
|
+
'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
25
|
+
'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
26
|
+
scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
27
|
+
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
28
|
+
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
29
|
+
'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
30
|
+
'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
|
+
debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
32
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
33
|
+
lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
35
|
+
instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
|
+
'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
37
|
+
'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
38
|
+
'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
39
|
+
'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
40
|
+
};
|
|
41
|
+
run(): Promise<UpdateOutput>;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
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 { Flags, ux } from '@oclif/core';
|
|
7
|
+
import cliui from 'cliui';
|
|
8
|
+
import { EcdnZoneCommand, formatApiError } from '../../../../utils/ecdn/index.js';
|
|
9
|
+
import { t } from '../../../../i18n/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Command to update a WAF v2 managed rule within a ruleset.
|
|
12
|
+
*/
|
|
13
|
+
export default class EcdnWafManagedRulesUpdate extends EcdnZoneCommand {
|
|
14
|
+
static description = t('commands.ecdn.waf.managed-rules.update.description', 'Update a WAF v2 managed rule in a ruleset');
|
|
15
|
+
static enableJsonFlag = true;
|
|
16
|
+
static examples = [
|
|
17
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --rule-id def456 --enabled',
|
|
18
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --rule-id def456 --action block',
|
|
19
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --rule-id def456 --no-enabled',
|
|
20
|
+
];
|
|
21
|
+
static flags = {
|
|
22
|
+
...EcdnZoneCommand.baseFlags,
|
|
23
|
+
'ruleset-id': Flags.string({
|
|
24
|
+
description: t('flags.rulesetId.description', 'WAF ruleset ID containing the rule'),
|
|
25
|
+
required: true,
|
|
26
|
+
}),
|
|
27
|
+
'rule-id': Flags.string({
|
|
28
|
+
description: t('flags.ruleId.description', 'WAF managed rule ID to update'),
|
|
29
|
+
required: true,
|
|
30
|
+
}),
|
|
31
|
+
enabled: Flags.boolean({
|
|
32
|
+
description: t('flags.enabled.description', 'Enable the rule'),
|
|
33
|
+
allowNo: true,
|
|
34
|
+
}),
|
|
35
|
+
action: Flags.string({
|
|
36
|
+
description: t('flags.action.description', 'Action for the rule (e.g., default, block, challenge)'),
|
|
37
|
+
}),
|
|
38
|
+
};
|
|
39
|
+
async run() {
|
|
40
|
+
this.requireOAuthCredentials();
|
|
41
|
+
const zoneId = await this.resolveZoneId();
|
|
42
|
+
const rulesetId = this.flags['ruleset-id'];
|
|
43
|
+
const ruleId = this.flags['rule-id'];
|
|
44
|
+
if (!this.jsonEnabled()) {
|
|
45
|
+
this.log(t('commands.ecdn.waf.managed-rules.update.updating', 'Updating WAF managed rule {{id}}...', { id: ruleId }));
|
|
46
|
+
}
|
|
47
|
+
const body = {};
|
|
48
|
+
if (this.flags.enabled !== undefined) {
|
|
49
|
+
body.enabled = this.flags.enabled;
|
|
50
|
+
}
|
|
51
|
+
if (this.flags.action) {
|
|
52
|
+
body.action = this.flags.action;
|
|
53
|
+
}
|
|
54
|
+
const client = this.getCdnZonesRwClient();
|
|
55
|
+
const organizationId = this.getOrganizationId();
|
|
56
|
+
const { data, error } = await client.PATCH('/organizations/{organizationId}/zones/{zoneId}/firewall-managed/rulesets/{rulesetId}/rules/{ruleId}', {
|
|
57
|
+
params: {
|
|
58
|
+
path: { organizationId, zoneId, rulesetId, ruleId },
|
|
59
|
+
},
|
|
60
|
+
body,
|
|
61
|
+
});
|
|
62
|
+
if (error) {
|
|
63
|
+
this.error(t('commands.ecdn.waf.managed-rules.update.error', 'Failed to update WAF managed rule: {{message}}', {
|
|
64
|
+
message: formatApiError(error),
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
const rule = data?.data;
|
|
68
|
+
if (!rule) {
|
|
69
|
+
this.error(t('commands.ecdn.waf.managed-rules.update.noData', 'No WAF managed rule data returned from API'));
|
|
70
|
+
}
|
|
71
|
+
const output = { rule };
|
|
72
|
+
if (this.jsonEnabled()) {
|
|
73
|
+
return output;
|
|
74
|
+
}
|
|
75
|
+
const ui = cliui({ width: process.stdout.columns || 80 });
|
|
76
|
+
const labelWidth = 16;
|
|
77
|
+
ui.div('');
|
|
78
|
+
ui.div({ text: t('commands.ecdn.waf.managed-rules.update.success', 'WAF managed rule updated successfully!') });
|
|
79
|
+
ui.div('');
|
|
80
|
+
ui.div({ text: 'Rule ID:', width: labelWidth }, { text: rule.ruleId || '-' });
|
|
81
|
+
ui.div({ text: 'Description:', width: labelWidth }, { text: rule.description || '-' });
|
|
82
|
+
ui.div({ text: 'Action:', width: labelWidth }, { text: rule.action || '-' });
|
|
83
|
+
ui.div({ text: 'Enabled:', width: labelWidth }, { text: rule.enabled ? 'yes' : 'no' });
|
|
84
|
+
if (rule.score !== undefined) {
|
|
85
|
+
ui.div({ text: 'Score:', width: labelWidth }, { text: String(rule.score) });
|
|
86
|
+
}
|
|
87
|
+
if (rule.categories && rule.categories.length > 0) {
|
|
88
|
+
ui.div({ text: 'Categories:', width: labelWidth }, { text: rule.categories.join(', ') });
|
|
89
|
+
}
|
|
90
|
+
ux.stdout(ui.toString());
|
|
91
|
+
return output;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../src/commands/ecdn/waf/managed-rules/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { CdnZonesComponents } from '@salesforce/b2c-tooling-sdk/clients';
|
|
2
|
+
import { EcdnZoneCommand } from '../../../utils/ecdn/index.js';
|
|
3
|
+
type WAFManagedRuleset = CdnZonesComponents['schemas']['WAFManagedRuleset'];
|
|
4
|
+
/**
|
|
5
|
+
* Response type for the migrate command.
|
|
6
|
+
*/
|
|
7
|
+
interface MigrateOutput {
|
|
8
|
+
rulesets: WAFManagedRuleset[];
|
|
9
|
+
total: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Command to migrate a zone from WAF v1 to WAF v2.
|
|
13
|
+
*/
|
|
14
|
+
export default class EcdnWafMigrate extends EcdnZoneCommand<typeof EcdnWafMigrate> {
|
|
15
|
+
static description: string;
|
|
16
|
+
static enableJsonFlag: boolean;
|
|
17
|
+
static examples: string[];
|
|
18
|
+
static flags: {
|
|
19
|
+
zone: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
|
+
scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
24
|
+
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
25
|
+
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
26
|
+
'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
27
|
+
'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
28
|
+
debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
29
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
30
|
+
lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
|
+
instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
|
+
'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
|
+
'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
35
|
+
'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
|
+
'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
37
|
+
};
|
|
38
|
+
run(): Promise<MigrateOutput>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
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 { ux } from '@oclif/core';
|
|
7
|
+
import { TableRenderer } from '@salesforce/b2c-tooling-sdk/cli';
|
|
8
|
+
import { EcdnZoneCommand, formatApiError } from '../../../utils/ecdn/index.js';
|
|
9
|
+
import { t } from '../../../i18n/index.js';
|
|
10
|
+
const COLUMNS = {
|
|
11
|
+
rulesetId: {
|
|
12
|
+
header: 'Ruleset ID',
|
|
13
|
+
get: (r) => r.rulesetId || '-',
|
|
14
|
+
},
|
|
15
|
+
name: {
|
|
16
|
+
header: 'Name',
|
|
17
|
+
get: (r) => r.name || '-',
|
|
18
|
+
},
|
|
19
|
+
enabled: {
|
|
20
|
+
header: 'Enabled',
|
|
21
|
+
get: (r) => (r.enabled ? 'yes' : 'no'),
|
|
22
|
+
},
|
|
23
|
+
action: {
|
|
24
|
+
header: 'Action',
|
|
25
|
+
get: (r) => r.action || '-',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
const tableRenderer = new TableRenderer(COLUMNS);
|
|
29
|
+
/**
|
|
30
|
+
* Command to migrate a zone from WAF v1 to WAF v2.
|
|
31
|
+
*/
|
|
32
|
+
export default class EcdnWafMigrate extends EcdnZoneCommand {
|
|
33
|
+
static description = t('commands.ecdn.waf.migrate.description', 'Migrate a zone from WAF v1 to WAF v2 (only applicable for existing WAFv1 zones)');
|
|
34
|
+
static enableJsonFlag = true;
|
|
35
|
+
static examples = [
|
|
36
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone',
|
|
37
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --json',
|
|
38
|
+
];
|
|
39
|
+
static flags = {
|
|
40
|
+
...EcdnZoneCommand.baseFlags,
|
|
41
|
+
};
|
|
42
|
+
async run() {
|
|
43
|
+
this.requireOAuthCredentials();
|
|
44
|
+
const zoneId = await this.resolveZoneId();
|
|
45
|
+
if (!this.jsonEnabled()) {
|
|
46
|
+
this.log(t('commands.ecdn.waf.migrate.migrating', 'Migrating zone to WAF v2...'));
|
|
47
|
+
}
|
|
48
|
+
const client = this.getCdnZonesRwClient();
|
|
49
|
+
const organizationId = this.getOrganizationId();
|
|
50
|
+
const { data, error } = await client.PUT('/organizations/{organizationId}/zones/{zoneId}/firewall-managed/migration', {
|
|
51
|
+
params: {
|
|
52
|
+
path: { organizationId, zoneId },
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
if (error) {
|
|
56
|
+
this.error(t('commands.ecdn.waf.migrate.error', 'Failed to migrate zone to WAF v2: {{message}}', {
|
|
57
|
+
message: formatApiError(error),
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
const rulesets = data?.data ?? [];
|
|
61
|
+
const output = {
|
|
62
|
+
rulesets,
|
|
63
|
+
total: rulesets.length,
|
|
64
|
+
};
|
|
65
|
+
if (this.jsonEnabled()) {
|
|
66
|
+
return output;
|
|
67
|
+
}
|
|
68
|
+
this.log('');
|
|
69
|
+
ux.stdout(t('commands.ecdn.waf.migrate.success', 'Zone successfully migrated to WAF v2!'));
|
|
70
|
+
this.log('');
|
|
71
|
+
if (rulesets.length === 0) {
|
|
72
|
+
this.log(t('commands.ecdn.waf.migrate.noRulesets', 'No WAF rulesets created during migration.'));
|
|
73
|
+
return output;
|
|
74
|
+
}
|
|
75
|
+
this.log(t('commands.ecdn.waf.migrate.count', 'Created {{count}} WAF v2 ruleset(s):', {
|
|
76
|
+
count: rulesets.length,
|
|
77
|
+
}));
|
|
78
|
+
this.log('');
|
|
79
|
+
tableRenderer.render(rulesets, Object.keys(COLUMNS));
|
|
80
|
+
return output;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../../src/commands/ecdn/waf/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { CdnZonesComponents } from '@salesforce/b2c-tooling-sdk/clients';
|
|
2
|
+
import { EcdnZoneCommand } from '../../../../utils/ecdn/index.js';
|
|
3
|
+
type WAFRulePackage = CdnZonesComponents['schemas']['WAFRulePackage'];
|
|
4
|
+
/**
|
|
5
|
+
* Response type for the get command.
|
|
6
|
+
*/
|
|
7
|
+
interface GetOutput {
|
|
8
|
+
package: WAFRulePackage;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Command to get OWASP ModSecurity package settings for a zone.
|
|
12
|
+
* Note: This is for WAF v1. For zones created after 24.5, use waf rulesets commands.
|
|
13
|
+
*/
|
|
14
|
+
export default class EcdnWafOwaspGet extends EcdnZoneCommand<typeof EcdnWafOwaspGet> {
|
|
15
|
+
static description: string;
|
|
16
|
+
static enableJsonFlag: boolean;
|
|
17
|
+
static examples: string[];
|
|
18
|
+
static flags: {
|
|
19
|
+
zone: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
|
+
scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
24
|
+
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
25
|
+
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
26
|
+
'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
27
|
+
'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
28
|
+
debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
29
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
30
|
+
lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
|
+
instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
|
+
'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
|
+
'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
35
|
+
'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
|
+
'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
37
|
+
};
|
|
38
|
+
run(): Promise<GetOutput>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
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 { ux } from '@oclif/core';
|
|
7
|
+
import cliui from 'cliui';
|
|
8
|
+
import { EcdnZoneCommand, formatApiError } from '../../../../utils/ecdn/index.js';
|
|
9
|
+
import { t } from '../../../../i18n/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Command to get OWASP ModSecurity package settings for a zone.
|
|
12
|
+
* Note: This is for WAF v1. For zones created after 24.5, use waf rulesets commands.
|
|
13
|
+
*/
|
|
14
|
+
export default class EcdnWafOwaspGet extends EcdnZoneCommand {
|
|
15
|
+
static description = t('commands.ecdn.waf.owasp.get.description', 'Get OWASP ModSecurity package settings for a zone (not applicable for WAFv2 zones)');
|
|
16
|
+
static enableJsonFlag = true;
|
|
17
|
+
static examples = [
|
|
18
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone',
|
|
19
|
+
'<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --json',
|
|
20
|
+
];
|
|
21
|
+
static flags = {
|
|
22
|
+
...EcdnZoneCommand.baseFlags,
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
this.requireOAuthCredentials();
|
|
26
|
+
const zoneId = await this.resolveZoneId();
|
|
27
|
+
if (!this.jsonEnabled()) {
|
|
28
|
+
this.log(t('commands.ecdn.waf.owasp.get.fetching', 'Fetching OWASP package settings...'));
|
|
29
|
+
}
|
|
30
|
+
const client = this.getCdnZonesClient();
|
|
31
|
+
const organizationId = this.getOrganizationId();
|
|
32
|
+
const { data, error } = await client.GET('/organizations/{organizationId}/zones/{zoneId}/firewall/waf/packages/owasp', {
|
|
33
|
+
params: {
|
|
34
|
+
path: { organizationId, zoneId },
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
if (error) {
|
|
38
|
+
this.error(t('commands.ecdn.waf.owasp.get.error', 'Failed to fetch OWASP package settings: {{message}}', {
|
|
39
|
+
message: formatApiError(error),
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
const pkg = data?.data;
|
|
43
|
+
if (!pkg) {
|
|
44
|
+
this.error(t('commands.ecdn.waf.owasp.get.noData', 'No OWASP package data returned from API'));
|
|
45
|
+
}
|
|
46
|
+
const output = { package: pkg };
|
|
47
|
+
if (this.jsonEnabled()) {
|
|
48
|
+
return output;
|
|
49
|
+
}
|
|
50
|
+
const ui = cliui({ width: process.stdout.columns || 80 });
|
|
51
|
+
const labelWidth = 18;
|
|
52
|
+
ui.div('');
|
|
53
|
+
ui.div({ text: 'OWASP Package:', padding: [0, 0, 1, 0] });
|
|
54
|
+
ui.div({ text: 'ID:', width: labelWidth }, { text: pkg.id });
|
|
55
|
+
ui.div({ text: 'Name:', width: labelWidth }, { text: pkg.name });
|
|
56
|
+
ui.div({ text: 'Description:', width: labelWidth }, { text: pkg.description });
|
|
57
|
+
ui.div({ text: 'Detection Mode:', width: labelWidth }, { text: pkg.detection_mode });
|
|
58
|
+
ui.div({ text: 'Sensitivity:', width: labelWidth }, { text: pkg.sensitivity });
|
|
59
|
+
ui.div({ text: 'Action Mode:', width: labelWidth }, { text: pkg.action_mode });
|
|
60
|
+
ux.stdout(ui.toString());
|
|
61
|
+
return output;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/commands/ecdn/waf/owasp/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { CdnZonesComponents } from '@salesforce/b2c-tooling-sdk/clients';
|
|
2
|
+
import { EcdnZoneCommand } from '../../../../utils/ecdn/index.js';
|
|
3
|
+
type WAFRulePackage = CdnZonesComponents['schemas']['WAFRulePackage'];
|
|
4
|
+
/**
|
|
5
|
+
* Response type for the update command.
|
|
6
|
+
*/
|
|
7
|
+
interface UpdateOutput {
|
|
8
|
+
package: WAFRulePackage;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Command to update OWASP ModSecurity package settings for a zone.
|
|
12
|
+
* Note: This is for WAF v1. For zones created after 24.5, use waf rulesets commands.
|
|
13
|
+
*/
|
|
14
|
+
export default class EcdnWafOwaspUpdate extends EcdnZoneCommand<typeof EcdnWafOwaspUpdate> {
|
|
15
|
+
static description: string;
|
|
16
|
+
static enableJsonFlag: boolean;
|
|
17
|
+
static examples: string[];
|
|
18
|
+
static flags: {
|
|
19
|
+
sensitivity: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
'action-mode': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
zone: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
|
+
'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
24
|
+
'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
25
|
+
scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
26
|
+
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
27
|
+
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
28
|
+
'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
29
|
+
'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
30
|
+
debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
31
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
32
|
+
lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
|
+
instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
35
|
+
'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
|
+
'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
37
|
+
'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
38
|
+
'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
39
|
+
};
|
|
40
|
+
run(): Promise<UpdateOutput>;
|
|
41
|
+
}
|
|
42
|
+
export {};
|