@cdot65/prisma-airs-cli 2.9.0 → 2.10.1
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/airs/promptsets.d.ts.map +1 -1
- package/dist/airs/promptsets.js +4 -1
- package/dist/airs/promptsets.js.map +1 -1
- package/dist/airs/redteam.d.ts +11 -1
- package/dist/airs/redteam.d.ts.map +1 -1
- package/dist/airs/redteam.js +61 -12
- package/dist/airs/redteam.js.map +1 -1
- package/dist/airs/types.d.ts +5 -1
- package/dist/airs/types.d.ts.map +1 -1
- package/dist/cli/commands/dlp/build-body.d.ts +28 -0
- package/dist/cli/commands/dlp/build-body.d.ts.map +1 -0
- package/dist/cli/commands/dlp/build-body.js +174 -0
- package/dist/cli/commands/dlp/build-body.js.map +1 -0
- package/dist/cli/commands/dlp/dictionaries.d.ts.map +1 -1
- package/dist/cli/commands/dlp/dictionaries.js +2 -1
- package/dist/cli/commands/dlp/dictionaries.js.map +1 -1
- package/dist/cli/commands/dlp/filtering-profiles.d.ts.map +1 -1
- package/dist/cli/commands/dlp/filtering-profiles.js +26 -10
- package/dist/cli/commands/dlp/filtering-profiles.js.map +1 -1
- package/dist/cli/commands/dlp/patterns.d.ts.map +1 -1
- package/dist/cli/commands/dlp/patterns.js +37 -30
- package/dist/cli/commands/dlp/patterns.js.map +1 -1
- package/dist/cli/commands/dlp/profiles.d.ts.map +1 -1
- package/dist/cli/commands/dlp/profiles.js +35 -33
- package/dist/cli/commands/dlp/profiles.js.map +1 -1
- package/dist/cli/commands/redteam.d.ts.map +1 -1
- package/dist/cli/commands/redteam.js +38 -21
- package/dist/cli/commands/redteam.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -31
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/program.d.ts +3 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +32 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/renderer/dlp.d.ts +22 -19
- package/dist/cli/renderer/dlp.d.ts.map +1 -1
- package/dist/cli/renderer/dlp.js +299 -58
- package/dist/cli/renderer/dlp.js.map +1 -1
- package/dist/cli/renderer/redteam.d.ts +30 -4
- package/dist/cli/renderer/redteam.d.ts.map +1 -1
- package/dist/cli/renderer/redteam.js +70 -10
- package/dist/cli/renderer/redteam.js.map +1 -1
- package/dist/dlp/embed/docx.d.ts.map +1 -1
- package/dist/dlp/embed/docx.js +17 -10
- package/dist/dlp/embed/docx.js.map +1 -1
- package/dist/dlp/generate/docx.d.ts.map +1 -1
- package/dist/dlp/generate/docx.js +5 -1
- package/dist/dlp/generate/docx.js.map +1 -1
- package/package.json +10 -3
|
@@ -57,6 +57,7 @@ export function register(dlp) {
|
|
|
57
57
|
.option('--file <path>', 'Keyword file')
|
|
58
58
|
.option('--metadata-file <path>', 'JSON metadata file (overrides --name/--category/...)')
|
|
59
59
|
.option('--include-keywords', 'Include keywords in response')
|
|
60
|
+
.option('--output <fmt>', 'Output format', 'pretty')
|
|
60
61
|
.action(async (opts) => {
|
|
61
62
|
try {
|
|
62
63
|
const metadata = await buildMetadata(opts);
|
|
@@ -68,7 +69,7 @@ export function register(dlp) {
|
|
|
68
69
|
file,
|
|
69
70
|
includeKeywords: opts.includeKeywords,
|
|
70
71
|
});
|
|
71
|
-
dlpDictionaries.renderCreated(r,
|
|
72
|
+
dlpDictionaries.renderCreated(r, opts.output);
|
|
72
73
|
}
|
|
73
74
|
catch (err) {
|
|
74
75
|
renderError(err instanceof Error ? err.message : String(err));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionaries.js","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/dictionaries.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dictionaries.js","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/dictionaries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAqB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,yEAAyE;AACzE,KAAK,UAAU,aAAa,CAAC,IAAS;IACpC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,MAAM;QACxB,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;KACf,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC;IAE7F,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACvD,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACvD,MAAM,CAAC,oBAAoB,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,IAAc,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SAChF,MAAM,CAAC,YAAY,EAAE,kCAAkC,CAAC;SACxD,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;SACpD,MAAM,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC;YAC9D,eAAe,CAAC,UAAU,CACxB,MAAM,IAAI,sBAAsB,EAAE,CAAC,IAAI,CAAC;gBACtC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAC7C,CAAC,EACF,IAAI,CAAC,MAAsB,CAC5B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;SACxB,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC5B,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;SAC1B,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAC/B,MAAM,CAAC,sBAAsB,EAAE,EAAE,CAAC;SAClC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;SACvC,MAAM,CAAC,wBAAwB,EAAE,sDAAsD,CAAC;SACxF,MAAM,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;SAC5D,MAAM,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,MAAM,CAAC;gBAClD,QAAQ;gBACR,IAAI;gBACJ,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;YACH,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,MAAsB,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;SACxB,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;SACpD,MAAM,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC;YAC9D,eAAe,CAAC,SAAS,CACvB,MAAM,IAAI,sBAAsB,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAC/D,IAAI,CAAC,MAAsB,CAC5B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CACV,4EAA4E;QAC1E,2EAA2E,CAC9E;SACA,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;SACxB,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC5B,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;SAC1B,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAC/B,MAAM,CAAC,sBAAsB,EAAE,EAAE,CAAC;SAClC,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC;SAClD,MAAM,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;SACtD,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC;SAChC,MAAM,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;gBACvD,QAAQ;gBACR,IAAI;gBACJ,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;YACH,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzC,eAAe,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,MAAsB,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,YAAY,CAAC;SACrB,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC;SAChC,MAAM,CAAC,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,IAAc,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5E,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,IAAc,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9E,MAAM,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;gBACxB,CAAC,CAAC,MAAM,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9C,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,eAAe,CAAC,aAAa;YAC3B,gHAAgH;YAChH,MAAM,IAAI,sBAAsB,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAW,CAAC,EACzD,IAAI,CAAC,MAAsB,CAC5B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,sBAAsB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filtering-profiles.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/filtering-profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"filtering-profiles.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/filtering-profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAgE3C"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { SdkDataFilteringProfilesService } from '../../../airs/dlp/data-filtering-profiles.js';
|
|
2
2
|
import { dlpFilteringProfiles, renderError } from '../../renderer/index.js';
|
|
3
|
+
import { buildFilteringProfileBody, repeatable } from './build-body.js';
|
|
3
4
|
import { parseBody } from './patch.js';
|
|
4
5
|
function listFlags(cmd) {
|
|
5
6
|
return cmd
|
|
6
7
|
.option('--page <n>', 'Zero-indexed page number', (v) => Number.parseInt(v, 10))
|
|
7
8
|
.option('--size <n>', 'Page size', (v) => Number.parseInt(v, 10))
|
|
8
|
-
.option('--sort <field,dir>', 'Sort criteria (repeatable)',
|
|
9
|
-
...prev,
|
|
10
|
-
v,
|
|
11
|
-
])
|
|
9
|
+
.option('--sort <field,dir>', 'Sort criteria (repeatable)', repeatable)
|
|
12
10
|
.option('--output <fmt>', 'Output format', 'pretty');
|
|
13
11
|
}
|
|
12
|
+
async function resolveReplaceBody(opts) {
|
|
13
|
+
if (opts.body || opts.bodyFile) {
|
|
14
|
+
const body = await parseBody({ body: opts.body, bodyFile: opts.bodyFile });
|
|
15
|
+
if (!body)
|
|
16
|
+
throw new Error('--body or --body-file was empty');
|
|
17
|
+
return body;
|
|
18
|
+
}
|
|
19
|
+
return buildFilteringProfileBody(opts);
|
|
20
|
+
}
|
|
14
21
|
export function register(dlp) {
|
|
15
22
|
const group = dlp
|
|
16
23
|
.command('filtering-profiles')
|
|
@@ -44,17 +51,26 @@ export function register(dlp) {
|
|
|
44
51
|
group
|
|
45
52
|
.command('replace <id>')
|
|
46
53
|
.description('Full-replace a filtering profile (PUT)')
|
|
47
|
-
.option('--
|
|
48
|
-
.option('--
|
|
54
|
+
.option('--file-based', 'Apply to file-based scans (boolean)')
|
|
55
|
+
.option('--non-file-based', 'Apply to non-file-based scans (boolean)')
|
|
56
|
+
.option('--description <s>', 'Description')
|
|
57
|
+
.option('--direction <s>', 'Direction: BOTH|UPLOAD|DOWNLOAD')
|
|
58
|
+
.option('--log-severity <s>', 'Severity: CRITICAL|HIGH|MEDIUM|LOW|INFORMATIONAL')
|
|
59
|
+
.option('--scan-type <s>', 'Scan type: include|exclude')
|
|
60
|
+
.option('--data-profile-id <n>', 'Data profile ID', (v) => Number(v))
|
|
61
|
+
.option('--euc-template-id <s>', 'EUC template ID')
|
|
62
|
+
.option('--end-user-coaching', 'Enable end-user coaching')
|
|
63
|
+
.option('--granular', 'Granular profile')
|
|
64
|
+
.option('--file-type <s>', 'File type (repeatable)', repeatable)
|
|
65
|
+
.option('--body <json|->', 'Raw JSON body (escape hatch; or "-" for stdin)')
|
|
66
|
+
.option('--body-file <path>', 'Raw JSON body file (escape hatch)')
|
|
49
67
|
.option('--output <fmt>', 'Output format', 'pretty')
|
|
50
68
|
.action(async (id, opts) => {
|
|
51
69
|
try {
|
|
52
|
-
const body = await
|
|
53
|
-
if (!body)
|
|
54
|
-
throw new Error('--body or --body-file is required');
|
|
70
|
+
const body = await resolveReplaceBody(opts);
|
|
55
71
|
const svc = new SdkDataFilteringProfilesService();
|
|
56
72
|
dlpFilteringProfiles.renderReplaced(
|
|
57
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
73
|
+
// biome-ignore lint/suspicious/noExplicitAny: body shape verified by SDK Zod
|
|
58
74
|
await svc.replace(id, body), opts.output);
|
|
59
75
|
}
|
|
60
76
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filtering-profiles.js","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/filtering-profiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAqB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,SAAS,SAAS,CAAoB,GAAM;IAC1C,OAAO,GAAG;SACP,MAAM,CAAC,YAAY,EAAE,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/E,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAChE,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"filtering-profiles.js","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/filtering-profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCzC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAwG3C"}
|
|
@@ -1,16 +1,40 @@
|
|
|
1
1
|
import { SdkDataPatternsService } from '../../../airs/dlp/data-patterns.js';
|
|
2
2
|
import { dlpPatterns, renderError } from '../../renderer/index.js';
|
|
3
|
+
import { buildPatternBody, repeatable } from './build-body.js';
|
|
3
4
|
import { buildMergePatch, parseBody } from './patch.js';
|
|
4
5
|
function listFlags(cmd) {
|
|
5
6
|
return cmd
|
|
6
7
|
.option('--page <n>', 'Zero-indexed page number', (v) => Number.parseInt(v, 10))
|
|
7
8
|
.option('--size <n>', 'Page size', (v) => Number.parseInt(v, 10))
|
|
8
|
-
.option('--sort <field,dir>', 'Sort criteria (repeatable)',
|
|
9
|
-
...prev,
|
|
10
|
-
v,
|
|
11
|
-
])
|
|
9
|
+
.option('--sort <field,dir>', 'Sort criteria (repeatable)', repeatable)
|
|
12
10
|
.option('--output <fmt>', 'Output format', 'pretty');
|
|
13
11
|
}
|
|
12
|
+
function writeFlags(cmd) {
|
|
13
|
+
return cmd
|
|
14
|
+
.option('--name <s>', 'Pattern name (required unless --body-file)')
|
|
15
|
+
.option('--type <s>', 'Pattern type: predefined|custom|file_property (default: custom)')
|
|
16
|
+
.option('--description <s>', 'Pattern description')
|
|
17
|
+
.option('--technique <s>', 'Detection technique (default: regex)')
|
|
18
|
+
.option('--confidence-levels <csv>', 'Confidence levels CSV: e.g. high,low')
|
|
19
|
+
.option('--regex <pattern>', 'Regex with weight=1 (repeatable)', repeatable)
|
|
20
|
+
.option('--weighted-regex <PATTERN|N>', 'Regex with explicit weight (repeatable)', repeatable)
|
|
21
|
+
.option('--delimiter <s>', 'Delimiter for proximity matching')
|
|
22
|
+
.option('--proximity-distance <n>', 'Proximity window (2..1000)')
|
|
23
|
+
.option('--proximity-keyword <s>', 'Proximity keyword (repeatable)', repeatable)
|
|
24
|
+
.option('--tag <k=v>', 'Tag (repeatable, value can be CSV)', repeatable)
|
|
25
|
+
.option('--body <json|->', 'Raw JSON body (escape hatch; or "-" for stdin)')
|
|
26
|
+
.option('--body-file <path>', 'Raw JSON body file (escape hatch)')
|
|
27
|
+
.option('--output <fmt>', 'Output format', 'pretty');
|
|
28
|
+
}
|
|
29
|
+
async function resolveWriteBody(opts) {
|
|
30
|
+
if (opts.body || opts.bodyFile) {
|
|
31
|
+
const body = await parseBody({ body: opts.body, bodyFile: opts.bodyFile });
|
|
32
|
+
if (!body)
|
|
33
|
+
throw new Error('--body or --body-file was empty');
|
|
34
|
+
return body;
|
|
35
|
+
}
|
|
36
|
+
return buildPatternBody(opts);
|
|
37
|
+
}
|
|
14
38
|
export function register(dlp) {
|
|
15
39
|
const group = dlp.command('patterns').description('DLP data patterns (full CRUD)');
|
|
16
40
|
listFlags(group.command('list').description('List data patterns')).action(async (opts) => {
|
|
@@ -23,21 +47,12 @@ export function register(dlp) {
|
|
|
23
47
|
process.exit(1);
|
|
24
48
|
}
|
|
25
49
|
});
|
|
26
|
-
group
|
|
27
|
-
.command('create')
|
|
28
|
-
.description('Create a data pattern')
|
|
29
|
-
.option('--body <json|->', 'JSON body (or "-" for stdin)')
|
|
30
|
-
.option('--body-file <path>', 'Path to JSON body file')
|
|
31
|
-
.option('--output <fmt>', 'Output format', 'pretty')
|
|
32
|
-
.action(async (opts) => {
|
|
50
|
+
writeFlags(group.command('create').description('Create a data pattern')).action(async (opts) => {
|
|
33
51
|
try {
|
|
34
|
-
const body = await
|
|
35
|
-
if (!body)
|
|
36
|
-
throw new Error('--body or --body-file is required');
|
|
37
|
-
const svc = new SdkDataPatternsService();
|
|
52
|
+
const body = await resolveWriteBody(opts);
|
|
38
53
|
dlpPatterns.renderCreated(
|
|
39
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
40
|
-
await
|
|
54
|
+
// biome-ignore lint/suspicious/noExplicitAny: body shape verified by SDK Zod
|
|
55
|
+
await new SdkDataPatternsService().create(body), opts.output);
|
|
41
56
|
}
|
|
42
57
|
catch (err) {
|
|
43
58
|
renderError(err instanceof Error ? err.message : String(err));
|
|
@@ -57,19 +72,11 @@ export function register(dlp) {
|
|
|
57
72
|
process.exit(1);
|
|
58
73
|
}
|
|
59
74
|
});
|
|
60
|
-
group
|
|
61
|
-
.command('replace <id>')
|
|
62
|
-
.description('Full-replace a data pattern (PUT)')
|
|
63
|
-
.option('--body <json|->', 'JSON body (or "-" for stdin)')
|
|
64
|
-
.option('--body-file <path>', 'Path to JSON body file')
|
|
65
|
-
.option('--output <fmt>', 'Output format', 'pretty')
|
|
66
|
-
.action(async (id, opts) => {
|
|
75
|
+
writeFlags(group.command('replace <id>').description('Full-replace a data pattern (PUT)')).action(async (id, opts) => {
|
|
67
76
|
try {
|
|
68
|
-
const body = await
|
|
69
|
-
if (!body)
|
|
70
|
-
throw new Error('--body or --body-file is required');
|
|
77
|
+
const body = await resolveWriteBody(opts);
|
|
71
78
|
dlpPatterns.renderReplaced(
|
|
72
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
79
|
+
// biome-ignore lint/suspicious/noExplicitAny: body shape verified by SDK Zod
|
|
73
80
|
await new SdkDataPatternsService().replace(id, body), opts.output);
|
|
74
81
|
}
|
|
75
82
|
catch (err) {
|
|
@@ -83,8 +90,8 @@ export function register(dlp) {
|
|
|
83
90
|
'--set/--clear coerce values: numbers/booleans/JSON literals. ' +
|
|
84
91
|
'To force a string, quote: --set count=\'"5"\'.')
|
|
85
92
|
.option('--body-file <path>', 'JSON merge-patch body file')
|
|
86
|
-
.option('--set <k=v...>', 'Set scalar field (repeatable)',
|
|
87
|
-
.option('--clear <key...>', 'Clear field via merge-patch null (repeatable)',
|
|
93
|
+
.option('--set <k=v...>', 'Set scalar field (repeatable)', repeatable)
|
|
94
|
+
.option('--clear <key...>', 'Clear field via merge-patch null (repeatable)', repeatable)
|
|
88
95
|
.option('--output <fmt>', 'Output format', 'pretty')
|
|
89
96
|
.action(async (id, opts) => {
|
|
90
97
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/patterns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAqB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,SAAS,SAAS,CAAoB,GAAM;IAC1C,OAAO,GAAG;SACP,MAAM,CAAC,YAAY,EAAE,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/E,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAChE,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+CzC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA8G3C"}
|
|
@@ -1,16 +1,36 @@
|
|
|
1
1
|
import { SdkDataProfilesService } from '../../../airs/dlp/data-profiles.js';
|
|
2
2
|
import { dlpProfiles, renderError } from '../../renderer/index.js';
|
|
3
|
+
import { buildProfileBody, repeatable } from './build-body.js';
|
|
3
4
|
import { buildMergePatch, parseBody } from './patch.js';
|
|
4
5
|
function listFlags(cmd) {
|
|
5
6
|
return cmd
|
|
6
7
|
.option('--page <n>', 'Zero-indexed page number', (v) => Number.parseInt(v, 10))
|
|
7
8
|
.option('--size <n>', 'Page size', (v) => Number.parseInt(v, 10))
|
|
8
|
-
.option('--sort <field,dir>', 'Sort criteria (repeatable)',
|
|
9
|
-
...prev,
|
|
10
|
-
v,
|
|
11
|
-
])
|
|
9
|
+
.option('--sort <field,dir>', 'Sort criteria (repeatable)', repeatable)
|
|
12
10
|
.option('--output <fmt>', 'Output format', 'pretty');
|
|
13
11
|
}
|
|
12
|
+
function writeFlags(cmd) {
|
|
13
|
+
return cmd
|
|
14
|
+
.option('--name <s>', 'Profile name (required unless --body-file)')
|
|
15
|
+
.option('--profile-type <s>', 'Profile type: basic|advanced (default: advanced)')
|
|
16
|
+
.option('--description <s>', 'Description')
|
|
17
|
+
.option('--granular', 'Granular data profile')
|
|
18
|
+
.option('--pattern-id <id>', 'Data pattern ID to include (repeatable). Builds a simple expression_tree.', repeatable)
|
|
19
|
+
.option('--combinator <op>', 'Combinator for --pattern-id: or|and|not|and_not|or_not (default: or)')
|
|
20
|
+
.option('--confidence <level>', 'Confidence level for --pattern-id leaves (default: high)')
|
|
21
|
+
.option('--body <json|->', 'Raw JSON body (escape hatch; or "-" for stdin)')
|
|
22
|
+
.option('--body-file <path>', 'Raw JSON body file (escape hatch; required for complex rule trees)')
|
|
23
|
+
.option('--output <fmt>', 'Output format', 'pretty');
|
|
24
|
+
}
|
|
25
|
+
async function resolveWriteBody(opts) {
|
|
26
|
+
if (opts.body || opts.bodyFile) {
|
|
27
|
+
const body = await parseBody({ body: opts.body, bodyFile: opts.bodyFile });
|
|
28
|
+
if (!body)
|
|
29
|
+
throw new Error('--body or --body-file was empty');
|
|
30
|
+
return body;
|
|
31
|
+
}
|
|
32
|
+
return buildProfileBody(opts);
|
|
33
|
+
}
|
|
14
34
|
export function register(dlp) {
|
|
15
35
|
const group = dlp
|
|
16
36
|
.command('profiles')
|
|
@@ -25,21 +45,12 @@ export function register(dlp) {
|
|
|
25
45
|
process.exit(1);
|
|
26
46
|
}
|
|
27
47
|
});
|
|
28
|
-
group
|
|
29
|
-
.command('create')
|
|
30
|
-
.description('Create a data profile')
|
|
31
|
-
.option('--body <json|->', 'JSON body (or "-" for stdin)')
|
|
32
|
-
.option('--body-file <path>', 'Path to JSON body file')
|
|
33
|
-
.option('--output <fmt>', 'Output format', 'pretty')
|
|
34
|
-
.action(async (opts) => {
|
|
48
|
+
writeFlags(group.command('create').description('Create a data profile')).action(async (opts) => {
|
|
35
49
|
try {
|
|
36
|
-
const body = await
|
|
37
|
-
if (!body)
|
|
38
|
-
throw new Error('--body or --body-file is required');
|
|
39
|
-
const svc = new SdkDataProfilesService();
|
|
50
|
+
const body = await resolveWriteBody(opts);
|
|
40
51
|
dlpProfiles.renderCreated(
|
|
41
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
42
|
-
await
|
|
52
|
+
// biome-ignore lint/suspicious/noExplicitAny: body shape verified by SDK Zod
|
|
53
|
+
await new SdkDataProfilesService().create(body), opts.output);
|
|
43
54
|
}
|
|
44
55
|
catch (err) {
|
|
45
56
|
renderError(err instanceof Error ? err.message : String(err));
|
|
@@ -59,19 +70,11 @@ export function register(dlp) {
|
|
|
59
70
|
process.exit(1);
|
|
60
71
|
}
|
|
61
72
|
});
|
|
62
|
-
group
|
|
63
|
-
.command('replace <id>')
|
|
64
|
-
.description('Full-replace a data profile (PUT)')
|
|
65
|
-
.option('--body <json|->', 'JSON body (or "-" for stdin)')
|
|
66
|
-
.option('--body-file <path>', 'Path to JSON body file')
|
|
67
|
-
.option('--output <fmt>', 'Output format', 'pretty')
|
|
68
|
-
.action(async (id, opts) => {
|
|
73
|
+
writeFlags(group.command('replace <id>').description('Full-replace a data profile (PUT)')).action(async (id, opts) => {
|
|
69
74
|
try {
|
|
70
|
-
const body = await
|
|
71
|
-
if (!body)
|
|
72
|
-
throw new Error('--body or --body-file is required');
|
|
75
|
+
const body = await resolveWriteBody(opts);
|
|
73
76
|
dlpProfiles.renderReplaced(
|
|
74
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
77
|
+
// biome-ignore lint/suspicious/noExplicitAny: body shape verified by SDK Zod
|
|
75
78
|
await new SdkDataProfilesService().replace(id, body), opts.output);
|
|
76
79
|
}
|
|
77
80
|
catch (err) {
|
|
@@ -85,8 +88,8 @@ export function register(dlp) {
|
|
|
85
88
|
'--set/--clear coerce values: numbers/booleans/JSON literals. ' +
|
|
86
89
|
'To force a string, quote: --set count=\'"5"\'.')
|
|
87
90
|
.option('--body-file <path>', 'JSON merge-patch body file')
|
|
88
|
-
.option('--set <k=v...>', 'Set scalar field (repeatable)',
|
|
89
|
-
.option('--clear <key...>', 'Clear field via merge-patch null (repeatable)',
|
|
91
|
+
.option('--set <k=v...>', 'Set scalar field (repeatable)', repeatable)
|
|
92
|
+
.option('--clear <key...>', 'Clear field via merge-patch null (repeatable)', repeatable)
|
|
90
93
|
.option('--output <fmt>', 'Output format', 'pretty')
|
|
91
94
|
.action(async (id, opts) => {
|
|
92
95
|
try {
|
|
@@ -114,9 +117,8 @@ This DLP API has no DELETE for data profiles.
|
|
|
114
117
|
To soft-delete, fetch the profile to get its name + profile_type, then patch:
|
|
115
118
|
|
|
116
119
|
airs runtime dlp profiles get ${id} --output json
|
|
117
|
-
airs runtime dlp profiles patch ${id} --
|
|
118
|
-
|
|
119
|
-
EOF
|
|
120
|
+
airs runtime dlp profiles patch ${id} --set profile_status='"deleted"' \\
|
|
121
|
+
--set name='"<existing-name>"' --set profile_type='"<existing-type>"'
|
|
120
122
|
`);
|
|
121
123
|
process.exit(2);
|
|
122
124
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/profiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAqB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,SAAS,SAAS,CAAoB,GAAM;IAC1C,OAAO,GAAG;SACP,MAAM,CAAC,YAAY,EAAE,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/E,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAChE,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../../src/cli/commands/dlp/profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/redteam.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/redteam.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgEzC,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAaxD;AAED,iDAAiD;AACjD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,mFAOzB,CAAC;AAEX,+DAA+D;AAC/D,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED,4CAA4C;AAC5C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6+B7D"}
|
|
@@ -5,7 +5,7 @@ import { SdkPromptSetService } from '../../airs/promptsets.js';
|
|
|
5
5
|
import { SdkRedTeamService } from '../../airs/redteam.js';
|
|
6
6
|
import { resolveOutputDir } from '../../backup/io.js';
|
|
7
7
|
import { loadConfig } from '../../config/loader.js';
|
|
8
|
-
import { renderAttackList, renderAuthValidation, renderBackupHeader, renderBackupSummary, renderCategories, renderCustomAttackList, renderCustomReport, renderError, renderEulaContent, renderEulaStatus, renderInstanceDetail, renderInstanceResponse, renderPromptDetail, renderPromptList, renderPromptSetDetail, renderPromptSetList, renderPropertyNames, renderPropertyValues, renderRedteamHeader, renderRegistryCredentials, renderRestoreSummary, renderScanList, renderScanProgress, renderScanStatus, renderStaticReport, renderTargetDetail, renderTargetList, renderTargetTemplates, renderVersionInfo, } from '../renderer/index.js';
|
|
8
|
+
import { buildAttackListFootnote, renderAttackList, renderAuthValidation, renderBackupHeader, renderBackupSummary, renderCategories, renderCustomAttackList, renderCustomReport, renderError, renderEulaContent, renderEulaStatus, renderInstanceDetail, renderInstanceResponse, renderPromptDetail, renderPromptList, renderPromptSetDetail, renderPromptSetList, renderPropertyNames, renderPropertyValues, renderRedteamHeader, renderRegistryCredentials, renderRestoreSummary, renderScanList, renderScanProgress, renderScanStatus, renderStaticReport, renderTargetDetail, renderTargetList, renderTargetTemplates, renderVersionInfo, } from '../renderer/index.js';
|
|
9
9
|
import { backupTargets } from './backup.js';
|
|
10
10
|
import { restoreTargets } from './restore.js';
|
|
11
11
|
/** Create an SdkRedTeamService from config. */
|
|
@@ -384,14 +384,22 @@ export function registerRedteamCommand(program) {
|
|
|
384
384
|
promptSets
|
|
385
385
|
.command('get <uuid>')
|
|
386
386
|
.description('Get prompt set details')
|
|
387
|
-
.
|
|
387
|
+
.option('--output <format>', 'Output format: pretty, json, yaml', 'pretty')
|
|
388
|
+
.action(async (uuid, opts) => {
|
|
388
389
|
try {
|
|
389
|
-
|
|
390
|
+
const fmt = opts.output;
|
|
391
|
+
if (fmt === 'pretty')
|
|
392
|
+
renderRedteamHeader();
|
|
390
393
|
const service = await createPromptSetService();
|
|
391
394
|
const ps = await service.getPromptSet(uuid);
|
|
392
|
-
renderPromptSetDetail(ps);
|
|
393
395
|
const info = await service.getPromptSetVersionInfo(uuid);
|
|
394
|
-
|
|
396
|
+
if (fmt === 'pretty') {
|
|
397
|
+
renderPromptSetDetail(ps);
|
|
398
|
+
renderVersionInfo(info);
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
renderPromptSetDetail(ps, fmt, info);
|
|
402
|
+
}
|
|
395
403
|
}
|
|
396
404
|
catch (err) {
|
|
397
405
|
renderError(err instanceof Error ? err.message : String(err));
|
|
@@ -623,12 +631,15 @@ export function registerRedteamCommand(program) {
|
|
|
623
631
|
properties
|
|
624
632
|
.command('values <name>')
|
|
625
633
|
.description('List values for a property')
|
|
626
|
-
.
|
|
634
|
+
.option('--output <format>', 'Output format: pretty, json, yaml', 'pretty')
|
|
635
|
+
.action(async (name, opts) => {
|
|
627
636
|
try {
|
|
628
|
-
|
|
637
|
+
const fmt = opts.output;
|
|
638
|
+
if (fmt === 'pretty')
|
|
639
|
+
renderRedteamHeader();
|
|
629
640
|
const service = await createPromptSetService();
|
|
630
641
|
const values = await service.getPropertyValues(name);
|
|
631
|
-
renderPropertyValues(values);
|
|
642
|
+
renderPropertyValues(values, fmt);
|
|
632
643
|
}
|
|
633
644
|
catch (err) {
|
|
634
645
|
renderError(err instanceof Error ? err.message : String(err));
|
|
@@ -670,24 +681,27 @@ export function registerRedteamCommand(program) {
|
|
|
670
681
|
if (job.jobType === 'CUSTOM') {
|
|
671
682
|
const report = await service.getCustomReport(jobId);
|
|
672
683
|
renderCustomReport(report);
|
|
673
|
-
|
|
674
|
-
else {
|
|
675
|
-
const report = await service.getStaticReport(jobId);
|
|
676
|
-
renderStaticReport(report);
|
|
677
|
-
}
|
|
678
|
-
if (opts.attacks) {
|
|
679
|
-
if (job.jobType === 'CUSTOM') {
|
|
684
|
+
if (opts.attacks) {
|
|
680
685
|
const attacks = await service.listCustomAttacks(jobId, {
|
|
681
686
|
limit: Number.parseInt(opts.limit, 10),
|
|
682
687
|
});
|
|
683
688
|
renderCustomAttackList(attacks);
|
|
684
689
|
}
|
|
685
|
-
|
|
686
|
-
|
|
690
|
+
}
|
|
691
|
+
else {
|
|
692
|
+
const report = await service.getStaticReport(jobId);
|
|
693
|
+
renderStaticReport(report);
|
|
694
|
+
if (opts.attacks) {
|
|
695
|
+
const { attacks, totalItems } = await service.listAttacks(jobId, {
|
|
687
696
|
severity: opts.severity,
|
|
688
697
|
limit: Number.parseInt(opts.limit, 10),
|
|
689
698
|
});
|
|
690
|
-
|
|
699
|
+
const footnote = buildAttackListFootnote({
|
|
700
|
+
severity: opts.severity,
|
|
701
|
+
totalItems,
|
|
702
|
+
severityBreakdown: report.severityBreakdown,
|
|
703
|
+
});
|
|
704
|
+
renderAttackList(attacks, { footnote });
|
|
691
705
|
}
|
|
692
706
|
}
|
|
693
707
|
}
|
|
@@ -798,12 +812,15 @@ export function registerRedteamCommand(program) {
|
|
|
798
812
|
targets
|
|
799
813
|
.command('get <uuid>')
|
|
800
814
|
.description('Get target details')
|
|
801
|
-
.
|
|
815
|
+
.option('--output <format>', 'Output format: pretty, json, yaml', 'pretty')
|
|
816
|
+
.action(async (uuid, opts) => {
|
|
802
817
|
try {
|
|
803
|
-
|
|
818
|
+
const fmt = opts.output;
|
|
819
|
+
if (fmt === 'pretty')
|
|
820
|
+
renderRedteamHeader();
|
|
804
821
|
const service = await createService();
|
|
805
822
|
const target = await service.getTarget(uuid);
|
|
806
|
-
renderTargetDetail(target);
|
|
823
|
+
renderTargetDetail(target, fmt);
|
|
807
824
|
}
|
|
808
825
|
catch (err) {
|
|
809
826
|
renderError(err instanceof Error ? err.message : String(err));
|