@knowttl/artium-axi 0.0.20 → 0.0.21
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/README.md +5 -2
- package/bin/artium-axi.mjs +667 -23
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -46,6 +46,7 @@ Agents keep a command-line interface with TOON discovery rather than implementin
|
|
|
46
46
|
| AWX | Pasted token or one-time password sign-in; optional operational writes |
|
|
47
47
|
| Tenable One | Access and secret API keys; optional allow-listed business writes and export jobs |
|
|
48
48
|
| Hybrid Analysis | Managed API key; investigation reads and optional allow-listed submissions, YARA mutations and consuming matches |
|
|
49
|
+
| Check Point Email Security | Regional client credentials; email, event, task and exception reads, guarded writes and authenticated email/attachment saving |
|
|
49
50
|
|
|
50
51
|
[Package pins](tools/package.json) and the [Falcon source pin](tools/falcon-source.json) own bundled versions; [reviewed inventories](tools/inventories) define the supported command boundary.
|
|
51
52
|
|
|
@@ -199,6 +200,7 @@ See [client input handling](docs/client-reference.md#command-surface-and-subcomm
|
|
|
199
200
|
| Azure DevOps | Reviewed mutations with administrator `allowWrites: true`; raw `api` remains GET-only. |
|
|
200
201
|
| AWX | Launch/cancel/relaunch, workflow approval/denial, project/inventory-source sync and notification tests with `allowWrites: true` and upstream `--confirm`; configuration, deletion and security writes stay blocked. |
|
|
201
202
|
| Tenable One | Business writes and export-job creation with administrator `writes.allowWrites: true`, an explicit operations allow-list, native preview, `--execute`, exact `--confirm` and durable journaling; downloads and local configuration stay blocked. |
|
|
203
|
+
| Check Point Email Security | Email and exception writes require administrator `writes.allowWrites: true`, exact selected operations and native preview, execute, confirmation and journal gates. Name-only event actions require their exact `event.action.<name>` scope. The six malware/URL/DLP remove/clear operations and click-time clear remain refused. Three separately selected downloads use [authenticated CLI saving](docs/client-reference.md#check-point-email-and-attachment-saving) with host-owned confirmation and independent SHA-256 verification; native download journal fields remain empty. Ordinary tool-run downloads and credential/origin overrides stay blocked. Live API contracts remain uncommissioned. |
|
|
202
204
|
| Hybrid Analysis | Sandbox submissions, YARA create/update/delete, consuming hunting matches and the four reviewed archive downloads require administrator `writes.allowWrites: true`, independently selected operations, native preview, `--execute`, exact `--confirm` and durable journaling. Downloads are limited to `hash-download-bin`, `report-download-bin`, `report-download-dropped-files` and `report-download-memory`, through the [authenticated CLI verified-save path](docs/client-reference.md#hybrid-analysis-archive-saving) after the [operator prerequisites](docs/runbook.md#scope-and-prerequisites) pass. All operations default off; enabling other writes never enables downloads or grants upstream entitlement. The browser provides warnings, command guidance and metadata/save status only. Ordinary tool-run downloads, local configuration and credential/origin overrides are blocked. |
|
|
203
205
|
|
|
204
206
|
Hybrid Analysis quick scans transmit the supplied sample or URL as read exceptions without a write gate; sandbox submission previews disclose that samples and reports can become visible to the community.
|
|
@@ -221,6 +223,7 @@ After an unknown write outcome, inspect state using returned guidance before ret
|
|
|
221
223
|
| AWX job list | Token identity with job read access |
|
|
222
224
|
| Tenable One card list | See [Tenable One credential permissions](docs/tool-credentials.md#tenable-one). |
|
|
223
225
|
| Hybrid Analysis quota | A valid API key; resource permissions vary by key level. See [Hybrid Analysis setup](docs/tool-credentials.md#hybrid-analysis). |
|
|
226
|
+
| Check Point doctor | Regional authentication and one bounded email search. See [Check Point setup and commissioning](docs/tool-credentials.md#check-point-email-security). |
|
|
224
227
|
|
|
225
228
|
See [tool credentials](docs/tool-credentials.md) for dedicated identities, permissions and safe credential entry.
|
|
226
229
|
Artium stores shared service credentials encrypted with AES-256-GCM and never returns saved secrets to clients.
|
|
@@ -261,9 +264,9 @@ This summary follows the [CLI help registry](src/cli/help.ts); `artium-axi --hel
|
|
|
261
264
|
| `tools` / `tools show <tool>` | Granted enabled tools / pinned help and first call |
|
|
262
265
|
| `doctor` | Server, TLS, token, version and cached health; five-second request deadlines |
|
|
263
266
|
| `update` | Update the [server-downloaded client](#verified-client) |
|
|
264
|
-
| `download` | Preview and explicitly verify/save administrator-selected Hybrid Analysis archives through the local CLI. Run `artium-axi download --help` for guards and warnings. |
|
|
267
|
+
| `download` | Preview and explicitly verify/save administrator-selected Hybrid Analysis archives and Check Point emails/attachments through the local CLI. Run `artium-axi download --help` for guards and warnings. |
|
|
265
268
|
| `setup --host <host>` | Install managed skills and optional Claude hook |
|
|
266
|
-
| `<tool> <args>` | Run any of the
|
|
269
|
+
| `<tool> <args>` | Run any of the ten managed tools above |
|
|
267
270
|
| `--managed-session --help` | Private-pipe session protocol |
|
|
268
271
|
|
|
269
272
|
`artium-axi --help falcon-axi` is local help; `artium-axi falcon-axi --help` authenticates and calls upstream.
|
package/bin/artium-axi.mjs
CHANGED
|
@@ -19801,8 +19801,14 @@ var transferSelectionSchema = external_exports.discriminatedUnion("operation", [
|
|
|
19801
19801
|
external_exports.strictObject({ operation: external_exports.literal("hash-download-bin"), selector: sampleSha256Schema, type: external_exports.literal("bin") }),
|
|
19802
19802
|
external_exports.strictObject({ operation: external_exports.literal("report-download-bin"), selector: reportIdSchema, type: external_exports.literal("bin") }),
|
|
19803
19803
|
external_exports.strictObject({ operation: external_exports.literal("report-download-dropped-files"), selector: reportIdSchema, type: external_exports.literal("dropped-files") }),
|
|
19804
|
-
external_exports.strictObject({ operation: external_exports.literal("report-download-memory"), selector: reportIdSchema, type: external_exports.literal("memory") })
|
|
19804
|
+
external_exports.strictObject({ operation: external_exports.literal("report-download-memory"), selector: reportIdSchema, type: external_exports.literal("memory") }),
|
|
19805
|
+
external_exports.strictObject({ operation: external_exports.literal("email.download"), selector: transferOwnerIdSchema, type: external_exports.enum(["email", "original"]) }),
|
|
19806
|
+
external_exports.strictObject({ operation: external_exports.literal("attachment.download"), selector: external_exports.string().regex(/^[A-Za-z0-9_-]{1,256}\/[A-Za-z0-9_-]{1,256}$/), type: external_exports.literal("attachment") }),
|
|
19807
|
+
external_exports.strictObject({ operation: external_exports.literal("attachment.download-all"), selector: transferOwnerIdSchema, type: external_exports.literal("zip") })
|
|
19805
19808
|
]);
|
|
19809
|
+
function transferTool(operation) {
|
|
19810
|
+
return ["email.download", "attachment.download", "attachment.download-all"].includes(operation) ? "checkpoint-axi" : "hybrid-axi";
|
|
19811
|
+
}
|
|
19806
19812
|
var transferPrepareSchema = external_exports.strictObject({ selection: transferSelectionSchema, targetDigest: sha256Schema });
|
|
19807
19813
|
var transferIdSchema = external_exports.uuid();
|
|
19808
19814
|
var transferScopeSchema = external_exports.strictObject({
|
|
@@ -19865,12 +19871,18 @@ var transferRoutes = {
|
|
|
19865
19871
|
cancel: { method: "POST", path: "/v1/transfers/hybrid/cancel", input: transferRetrieveSchema },
|
|
19866
19872
|
status: { method: "POST", path: "/v1/transfers/hybrid/status", input: transferRetrieveSchema, response: transferStatusSchema }
|
|
19867
19873
|
};
|
|
19874
|
+
function transferRoutesFor(tool) {
|
|
19875
|
+
return Object.fromEntries(Object.entries(transferRoutes).map(([name, route]) => [
|
|
19876
|
+
name,
|
|
19877
|
+
{ ...route, path: route.path.replace("/hybrid/", tool === "checkpoint-axi" ? "/checkpoint/" : "/hybrid/") }
|
|
19878
|
+
]));
|
|
19879
|
+
}
|
|
19868
19880
|
var transferAuditSchema = external_exports.strictObject({
|
|
19869
19881
|
transfer_id: transferIdSchema,
|
|
19870
19882
|
session_family_id: transferOwnerIdSchema,
|
|
19871
|
-
transfer_operation:
|
|
19872
|
-
artifact_type: external_exports.enum(["bin", "dropped-files", "memory"]),
|
|
19873
|
-
artifact_selector:
|
|
19883
|
+
transfer_operation: external_exports.enum(transferSelectionSchema.options.map((option) => option.shape.operation.value)),
|
|
19884
|
+
artifact_type: external_exports.enum(["bin", "dropped-files", "memory", "email", "original", "attachment", "zip"]),
|
|
19885
|
+
artifact_selector: external_exports.string().min(1).max(513),
|
|
19874
19886
|
requested_target_digest: sha256Schema,
|
|
19875
19887
|
archive_bytes: external_exports.number().int().nonnegative().max(transferLimits.artifactBytes).nullable(),
|
|
19876
19888
|
archive_sha256: sha256Schema.nullable(),
|
|
@@ -19928,7 +19940,7 @@ var meResponseSchema = external_exports.strictObject({
|
|
|
19928
19940
|
sessionExpiresAt: external_exports.number().int()
|
|
19929
19941
|
});
|
|
19930
19942
|
var accountId = external_exports.string().min(1);
|
|
19931
|
-
var toolSchema = external_exports.enum(["falcon-axi", "vectra-axi", "az-axi", "mg-axi", "ldap-axi", "ado-axi", "awx-axi", "tenable-axi", "hybrid-axi"]);
|
|
19943
|
+
var toolSchema = external_exports.enum(["falcon-axi", "vectra-axi", "az-axi", "mg-axi", "ldap-axi", "ado-axi", "awx-axi", "tenable-axi", "hybrid-axi", "checkpoint-axi"]);
|
|
19932
19944
|
var skillsResponseSchema = external_exports.strictObject({ skills: external_exports.array(external_exports.strictObject({
|
|
19933
19945
|
name: toolSchema,
|
|
19934
19946
|
content: external_exports.string().min(1)
|
|
@@ -20180,6 +20192,10 @@ var falconRtrSettingsSchema = external_exports.strictObject({
|
|
|
20180
20192
|
])).optional()
|
|
20181
20193
|
});
|
|
20182
20194
|
var nativeSettingsSchemas = {
|
|
20195
|
+
"checkpoint-axi": external_exports.strictObject({ writes: external_exports.strictObject({
|
|
20196
|
+
allowWrites: external_exports.boolean(),
|
|
20197
|
+
operations: external_exports.array(external_exports.string().regex(/^[a-z][A-Za-z0-9_.-]{0,255}$/)).min(1).max(126)
|
|
20198
|
+
}).optional() }),
|
|
20183
20199
|
"hybrid-axi": external_exports.strictObject({ writes: external_exports.strictObject({
|
|
20184
20200
|
allowWrites: external_exports.boolean(),
|
|
20185
20201
|
operations: external_exports.array(external_exports.string())
|
|
@@ -20748,7 +20764,7 @@ import { resolve } from "node:path";
|
|
|
20748
20764
|
// package.json
|
|
20749
20765
|
var package_default = {
|
|
20750
20766
|
name: "artium-axi",
|
|
20751
|
-
version: "0.0.
|
|
20767
|
+
version: "0.0.21",
|
|
20752
20768
|
private: true,
|
|
20753
20769
|
license: "MIT",
|
|
20754
20770
|
type: "module",
|
|
@@ -42177,8 +42193,605 @@ var hybrid_axi_default = {
|
|
|
42177
42193
|
]
|
|
42178
42194
|
};
|
|
42179
42195
|
|
|
42196
|
+
// tools/inventories/checkpoint-axi.json
|
|
42197
|
+
var checkpoint_axi_default = {
|
|
42198
|
+
generatedBy: "scripts/checkpoint-inventory.mjs",
|
|
42199
|
+
tool: "checkpoint-axi",
|
|
42200
|
+
version: "0.1.0",
|
|
42201
|
+
integrity: "sha512-fbwTL0lbbJwCDjR8bt431kWHSCEuBmAEzk/QNJzsVcAbve2x8Ehtz/mr/aPzJ6I/WMRQiRPFpCE2zsW/2CRHlQ==",
|
|
42202
|
+
parserEvidence: "Published catalogue, fixed regional map and reviewed native parsers, write coordinator and download contracts",
|
|
42203
|
+
sources: [
|
|
42204
|
+
{
|
|
42205
|
+
path: "dist/src/catalogue.js",
|
|
42206
|
+
sha256: "59b9568b614a101e2746a8275768c238ba8eb7166185119875a40f7eac191f7a"
|
|
42207
|
+
},
|
|
42208
|
+
{
|
|
42209
|
+
path: "dist/src/cli.js",
|
|
42210
|
+
sha256: "11a2e7f6c8ba3fc5507aa8ca33d480337a5a64bf79c241f4ed478f512ac8fa92"
|
|
42211
|
+
},
|
|
42212
|
+
{
|
|
42213
|
+
path: "dist/src/doctor.js",
|
|
42214
|
+
sha256: "7f25c415bc59b12e6d0a6155d701c3646bd3370e0b2024a29efdbaf5e4c0ffed"
|
|
42215
|
+
},
|
|
42216
|
+
{
|
|
42217
|
+
path: "dist/src/downloads.js",
|
|
42218
|
+
sha256: "206f08ec7d978e41fe1c9c4ba744f1cf4c3f47ee909a1f761645a802371c8d6e"
|
|
42219
|
+
},
|
|
42220
|
+
{
|
|
42221
|
+
path: "dist/src/exceptions.js",
|
|
42222
|
+
sha256: "8264427dd5871a447e3e8759341251779454490a387cdca801a0e68b81265327"
|
|
42223
|
+
},
|
|
42224
|
+
{
|
|
42225
|
+
path: "dist/src/local-commands.js",
|
|
42226
|
+
sha256: "ed9c39e204d42f45ae3c5b8008bf1c719d88f8e7214168f68de4d15921e35299"
|
|
42227
|
+
},
|
|
42228
|
+
{
|
|
42229
|
+
path: "dist/src/private-file.js",
|
|
42230
|
+
sha256: "574a40223d0bba130f903eb89e2cfd2d96bf01a4df237738af993272ebee0332"
|
|
42231
|
+
},
|
|
42232
|
+
{
|
|
42233
|
+
path: "dist/src/profiles.js",
|
|
42234
|
+
sha256: "db013b041bb6302993d7045fe3bd411bbd1a3593b5b2a84a3d8411645f55d3e6"
|
|
42235
|
+
},
|
|
42236
|
+
{
|
|
42237
|
+
path: "dist/src/reads.js",
|
|
42238
|
+
sha256: "02a5478edb3d44ab51ea300095794abc69d9e4a353060af4faed0d6e4ce592a7"
|
|
42239
|
+
},
|
|
42240
|
+
{
|
|
42241
|
+
path: "dist/src/redact.js",
|
|
42242
|
+
sha256: "9793e98af5c93c09e89748e26675b2d48663904a27e3aa42655954f93025c35a"
|
|
42243
|
+
},
|
|
42244
|
+
{
|
|
42245
|
+
path: "dist/src/regions.js",
|
|
42246
|
+
sha256: "44288abe19a68fa672bc04ad167141717aed5c3a333b2420b14ee68e13abee78"
|
|
42247
|
+
},
|
|
42248
|
+
{
|
|
42249
|
+
path: "dist/src/transport.js",
|
|
42250
|
+
sha256: "7beb28cc283e876db4f6aeaf5c308280e1fce482c20c19dd9924e29985e54e56"
|
|
42251
|
+
},
|
|
42252
|
+
{
|
|
42253
|
+
path: "dist/src/write-exceptions.js",
|
|
42254
|
+
sha256: "34114e0b2a3e04462914118ba6108f6d7eb7bf38a417f1f80ec4126deff786a8"
|
|
42255
|
+
},
|
|
42256
|
+
{
|
|
42257
|
+
path: "dist/src/write-sectools.js",
|
|
42258
|
+
sha256: "c962f2180d34625c9a0be1ad468e17b3e25d93390b0efae3dec02e9ab8f1dd9e"
|
|
42259
|
+
},
|
|
42260
|
+
{
|
|
42261
|
+
path: "dist/src/writes.js",
|
|
42262
|
+
sha256: "4f683a01ab151b4b1e61588b6c3fe86f3d8a34ebdbdb1a257dc42cae21e6f5ed"
|
|
42263
|
+
}
|
|
42264
|
+
],
|
|
42265
|
+
credentialSchema: {
|
|
42266
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
42267
|
+
$id: "https://github.com/knowttl/checkpoint-axi/axi-credential.schema.json",
|
|
42268
|
+
title: "Check Point AXI credential profile",
|
|
42269
|
+
type: "object",
|
|
42270
|
+
additionalProperties: false,
|
|
42271
|
+
required: [
|
|
42272
|
+
"region",
|
|
42273
|
+
"clientId"
|
|
42274
|
+
],
|
|
42275
|
+
properties: {
|
|
42276
|
+
region: {
|
|
42277
|
+
type: "string",
|
|
42278
|
+
enum: [
|
|
42279
|
+
"us",
|
|
42280
|
+
"eu",
|
|
42281
|
+
"ca",
|
|
42282
|
+
"au",
|
|
42283
|
+
"uk",
|
|
42284
|
+
"uae",
|
|
42285
|
+
"in"
|
|
42286
|
+
]
|
|
42287
|
+
},
|
|
42288
|
+
clientId: {
|
|
42289
|
+
type: "string",
|
|
42290
|
+
minLength: 1,
|
|
42291
|
+
pattern: "\\S"
|
|
42292
|
+
},
|
|
42293
|
+
clientSecret: {
|
|
42294
|
+
$ref: "#/$defs/secretRef",
|
|
42295
|
+
"x-secret": true,
|
|
42296
|
+
default: {
|
|
42297
|
+
env: "CHECKPOINT_AXI_CLIENT_SECRET"
|
|
42298
|
+
}
|
|
42299
|
+
},
|
|
42300
|
+
saas: {
|
|
42301
|
+
type: "string",
|
|
42302
|
+
minLength: 1,
|
|
42303
|
+
pattern: "\\S",
|
|
42304
|
+
default: "office365_emails"
|
|
42305
|
+
},
|
|
42306
|
+
scope: {
|
|
42307
|
+
type: "string",
|
|
42308
|
+
minLength: 1,
|
|
42309
|
+
pattern: "\\S"
|
|
42310
|
+
},
|
|
42311
|
+
downloads: {
|
|
42312
|
+
type: "object",
|
|
42313
|
+
additionalProperties: false,
|
|
42314
|
+
required: [
|
|
42315
|
+
"allow"
|
|
42316
|
+
],
|
|
42317
|
+
default: {
|
|
42318
|
+
allow: false
|
|
42319
|
+
},
|
|
42320
|
+
properties: {
|
|
42321
|
+
allow: {
|
|
42322
|
+
type: "boolean"
|
|
42323
|
+
}
|
|
42324
|
+
}
|
|
42325
|
+
},
|
|
42326
|
+
writes: {
|
|
42327
|
+
type: "object",
|
|
42328
|
+
additionalProperties: false,
|
|
42329
|
+
required: [
|
|
42330
|
+
"allowWrites",
|
|
42331
|
+
"operations"
|
|
42332
|
+
],
|
|
42333
|
+
default: {
|
|
42334
|
+
allowWrites: false,
|
|
42335
|
+
operations: []
|
|
42336
|
+
},
|
|
42337
|
+
properties: {
|
|
42338
|
+
allowWrites: {
|
|
42339
|
+
type: "boolean"
|
|
42340
|
+
},
|
|
42341
|
+
operations: {
|
|
42342
|
+
type: "array",
|
|
42343
|
+
items: {
|
|
42344
|
+
type: "string",
|
|
42345
|
+
pattern: "^[a-z][A-Za-z0-9_.-]*$"
|
|
42346
|
+
}
|
|
42347
|
+
}
|
|
42348
|
+
}
|
|
42349
|
+
}
|
|
42350
|
+
},
|
|
42351
|
+
$defs: {
|
|
42352
|
+
secretRef: {
|
|
42353
|
+
oneOf: [
|
|
42354
|
+
{
|
|
42355
|
+
type: "object",
|
|
42356
|
+
additionalProperties: false,
|
|
42357
|
+
required: [
|
|
42358
|
+
"env"
|
|
42359
|
+
],
|
|
42360
|
+
properties: {
|
|
42361
|
+
env: {
|
|
42362
|
+
type: "string",
|
|
42363
|
+
pattern: "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
42364
|
+
}
|
|
42365
|
+
}
|
|
42366
|
+
},
|
|
42367
|
+
{
|
|
42368
|
+
type: "object",
|
|
42369
|
+
additionalProperties: false,
|
|
42370
|
+
required: [
|
|
42371
|
+
"file"
|
|
42372
|
+
],
|
|
42373
|
+
properties: {
|
|
42374
|
+
file: {
|
|
42375
|
+
type: "string",
|
|
42376
|
+
pattern: "^(?:/|[A-Za-z]:[\\\\/])"
|
|
42377
|
+
}
|
|
42378
|
+
}
|
|
42379
|
+
}
|
|
42380
|
+
]
|
|
42381
|
+
}
|
|
42382
|
+
}
|
|
42383
|
+
},
|
|
42384
|
+
regions: {
|
|
42385
|
+
us: "https://cloudinfra-gw-us.portal.checkpoint.com",
|
|
42386
|
+
eu: "https://cloudinfra-gw.portal.checkpoint.com",
|
|
42387
|
+
ca: "https://cloudinfra-gw.ca.portal.checkpoint.com",
|
|
42388
|
+
au: "https://cloudinfra-gw.ap.portal.checkpoint.com",
|
|
42389
|
+
uk: "https://cloudinfra-gw.uk.portal.checkpoint.com",
|
|
42390
|
+
uae: "https://cloudinfra-gw.me.portal.checkpoint.com",
|
|
42391
|
+
in: "https://cloudinfra-gw.in.portal.checkpoint.com"
|
|
42392
|
+
},
|
|
42393
|
+
skillSha256: "69f0754d565fc1e65163435ef698ea6dca6009470f158171cb3b4258d27c647b",
|
|
42394
|
+
nativeWriteSettings: {
|
|
42395
|
+
supportedOperations: [
|
|
42396
|
+
"attachment.download",
|
|
42397
|
+
"attachment.download-all",
|
|
42398
|
+
"email.download",
|
|
42399
|
+
"email.quarantine",
|
|
42400
|
+
"email.restore",
|
|
42401
|
+
"exception.anomaly.create",
|
|
42402
|
+
"exception.anomaly.remove",
|
|
42403
|
+
"exception.click-time.create",
|
|
42404
|
+
"exception.click-time.remove",
|
|
42405
|
+
"exception.click-time.remove-items",
|
|
42406
|
+
"exception.click-time.update",
|
|
42407
|
+
"exception.dlp.create",
|
|
42408
|
+
"exception.dlp.update",
|
|
42409
|
+
"exception.malware.create",
|
|
42410
|
+
"exception.malware.update",
|
|
42411
|
+
"exception.phishing-allow.create",
|
|
42412
|
+
"exception.phishing-allow.remove",
|
|
42413
|
+
"exception.phishing-allow.update",
|
|
42414
|
+
"exception.phishing-block.create",
|
|
42415
|
+
"exception.phishing-block.remove",
|
|
42416
|
+
"exception.phishing-block.update",
|
|
42417
|
+
"exception.spam-allow.create",
|
|
42418
|
+
"exception.spam-allow.remove",
|
|
42419
|
+
"exception.spam-allow.update",
|
|
42420
|
+
"exception.url.create",
|
|
42421
|
+
"exception.url.update"
|
|
42422
|
+
],
|
|
42423
|
+
dynamicOperation: "event.action.<exact available action name>"
|
|
42424
|
+
},
|
|
42425
|
+
adapterBoundary: {
|
|
42426
|
+
unsafeOverrides: [
|
|
42427
|
+
"config",
|
|
42428
|
+
"profile",
|
|
42429
|
+
"origin",
|
|
42430
|
+
"out"
|
|
42431
|
+
],
|
|
42432
|
+
inputFileFlags: [
|
|
42433
|
+
"input"
|
|
42434
|
+
],
|
|
42435
|
+
blockedCommands: [
|
|
42436
|
+
"profile list",
|
|
42437
|
+
"config path",
|
|
42438
|
+
"exception clear",
|
|
42439
|
+
"email download",
|
|
42440
|
+
"attachment download",
|
|
42441
|
+
"attachment download-all"
|
|
42442
|
+
],
|
|
42443
|
+
downloadCommands: [
|
|
42444
|
+
"email download",
|
|
42445
|
+
"attachment download",
|
|
42446
|
+
"attachment download-all"
|
|
42447
|
+
],
|
|
42448
|
+
inputs: {
|
|
42449
|
+
stdin: "unsupported",
|
|
42450
|
+
files: "uploaded private JSON leaves only",
|
|
42451
|
+
downloads: "authenticated hosted transfers only"
|
|
42452
|
+
},
|
|
42453
|
+
nativeWrites: "native preview, exact operation allow-list, execute, exact confirm and durable journal; ambiguous deletes refused"
|
|
42454
|
+
},
|
|
42455
|
+
discovery: {
|
|
42456
|
+
commands: [
|
|
42457
|
+
"auth",
|
|
42458
|
+
"doctor",
|
|
42459
|
+
"email",
|
|
42460
|
+
"event",
|
|
42461
|
+
"exception",
|
|
42462
|
+
"home",
|
|
42463
|
+
"task"
|
|
42464
|
+
],
|
|
42465
|
+
example: [
|
|
42466
|
+
"email",
|
|
42467
|
+
"search",
|
|
42468
|
+
"--limit",
|
|
42469
|
+
"1"
|
|
42470
|
+
],
|
|
42471
|
+
help: "checkpoint-axi email search [--limit <n>]\nArtium manages region, client ID and secret. Writes require administrator-enabled exact operations and native preview, --execute and exact --confirm. Upload private JSON with --input. Use artium-axi download for authenticated email and attachment saving with host-owned confirmation; ordinary downloads and local configuration are blocked.\n"
|
|
42472
|
+
},
|
|
42473
|
+
suggestionFields: [
|
|
42474
|
+
"help"
|
|
42475
|
+
],
|
|
42476
|
+
format: "TOON",
|
|
42477
|
+
commands: [
|
|
42478
|
+
{
|
|
42479
|
+
command: "attachment download",
|
|
42480
|
+
effect: "blocked",
|
|
42481
|
+
flags: {
|
|
42482
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42483
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42484
|
+
help: "Show concise command help; default false",
|
|
42485
|
+
out: "Required absolute new output file; mode 0600, never stdout or overwrite",
|
|
42486
|
+
scope: "Optional authorized scope query; default profile scope when configured; live behavior unverified"
|
|
42487
|
+
}
|
|
42488
|
+
},
|
|
42489
|
+
{
|
|
42490
|
+
command: "attachment download-all",
|
|
42491
|
+
effect: "blocked",
|
|
42492
|
+
flags: {
|
|
42493
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42494
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42495
|
+
help: "Show concise command help; default false",
|
|
42496
|
+
out: "Required absolute new output file; mode 0600, never stdout or overwrite",
|
|
42497
|
+
scope: "Optional authorized scope query; default profile scope when configured; live behavior unverified"
|
|
42498
|
+
}
|
|
42499
|
+
},
|
|
42500
|
+
{
|
|
42501
|
+
command: "auth status",
|
|
42502
|
+
effect: "read",
|
|
42503
|
+
flags: {
|
|
42504
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42505
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42506
|
+
fields: "Comma-separated output fields; default all",
|
|
42507
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42508
|
+
help: "Show concise command help; default false"
|
|
42509
|
+
}
|
|
42510
|
+
},
|
|
42511
|
+
{
|
|
42512
|
+
command: "config path",
|
|
42513
|
+
effect: "blocked",
|
|
42514
|
+
flags: {
|
|
42515
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42516
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42517
|
+
fields: "Comma-separated output fields; default all",
|
|
42518
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42519
|
+
help: "Show concise command help; default false"
|
|
42520
|
+
}
|
|
42521
|
+
},
|
|
42522
|
+
{
|
|
42523
|
+
command: "doctor",
|
|
42524
|
+
effect: "read",
|
|
42525
|
+
flags: {
|
|
42526
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42527
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42528
|
+
fields: "Comma-separated output fields; default all",
|
|
42529
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42530
|
+
help: "Show concise command help; default false",
|
|
42531
|
+
saas: "SaaS override; default selected profile saas or office365_emails"
|
|
42532
|
+
}
|
|
42533
|
+
},
|
|
42534
|
+
{
|
|
42535
|
+
command: "email download",
|
|
42536
|
+
effect: "blocked",
|
|
42537
|
+
flags: {
|
|
42538
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42539
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42540
|
+
help: "Show concise command help; default false",
|
|
42541
|
+
out: "Required absolute new output file; mode 0600, never stdout or overwrite",
|
|
42542
|
+
original: "Download original email without processing modifications; default false"
|
|
42543
|
+
}
|
|
42544
|
+
},
|
|
42545
|
+
{
|
|
42546
|
+
command: "email quarantine",
|
|
42547
|
+
effect: "write",
|
|
42548
|
+
flags: {
|
|
42549
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42550
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42551
|
+
fields: "Comma-separated output fields; default all",
|
|
42552
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42553
|
+
help: "Show concise command help; default false",
|
|
42554
|
+
ids: "Required comma-separated unique entity IDs; maximum 20",
|
|
42555
|
+
execute: "Send once after all write gates; default false (preview)",
|
|
42556
|
+
"dry-run": "Explicit preview; cannot combine with --execute",
|
|
42557
|
+
confirm: "Exact operation followed by a space and the comma-separated IDs in supplied order"
|
|
42558
|
+
}
|
|
42559
|
+
},
|
|
42560
|
+
{
|
|
42561
|
+
command: "email restore",
|
|
42562
|
+
effect: "write",
|
|
42563
|
+
flags: {
|
|
42564
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42565
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42566
|
+
fields: "Comma-separated output fields; default all",
|
|
42567
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42568
|
+
help: "Show concise command help; default false",
|
|
42569
|
+
ids: "Required comma-separated unique entity IDs; maximum 20",
|
|
42570
|
+
execute: "Send once after all write gates; default false (preview)",
|
|
42571
|
+
"dry-run": "Explicit preview; cannot combine with --execute",
|
|
42572
|
+
confirm: "Exact operation followed by a space and the comma-separated IDs in supplied order"
|
|
42573
|
+
}
|
|
42574
|
+
},
|
|
42575
|
+
{
|
|
42576
|
+
command: "email search",
|
|
42577
|
+
effect: "read",
|
|
42578
|
+
flags: {
|
|
42579
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42580
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42581
|
+
fields: "Comma-separated output fields; default all",
|
|
42582
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42583
|
+
help: "Show concise command help; default false",
|
|
42584
|
+
saas: "SaaS override; default selected profile saas or office365_emails",
|
|
42585
|
+
"saas-entity": "Optional SaaS entity type selector",
|
|
42586
|
+
"start-date": "ISO timestamp with timezone; default 24 hours before end-date; maximum window 31 days",
|
|
42587
|
+
"end-date": "ISO timestamp with timezone; default now",
|
|
42588
|
+
limit: "Maximum rows; default 50, range 1-1000; cannot combine with --all",
|
|
42589
|
+
all: "Read up to 1000 rows / 10 HTTP requests / 60 seconds / 8 MiB; default false",
|
|
42590
|
+
cursor: "Opaque continuation bound to profile, region, operation and selectors; repeat original selectors",
|
|
42591
|
+
filter: "JSON array of {saasAttrName, saasAttrOp, saasAttrValue} filters (guide pages 19-20)"
|
|
42592
|
+
}
|
|
42593
|
+
},
|
|
42594
|
+
{
|
|
42595
|
+
command: "email show",
|
|
42596
|
+
effect: "read",
|
|
42597
|
+
flags: {
|
|
42598
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42599
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42600
|
+
fields: "Comma-separated output fields; default all",
|
|
42601
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42602
|
+
help: "Show concise command help; default false"
|
|
42603
|
+
}
|
|
42604
|
+
},
|
|
42605
|
+
{
|
|
42606
|
+
command: "event action",
|
|
42607
|
+
effect: "write",
|
|
42608
|
+
flags: {
|
|
42609
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42610
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42611
|
+
fields: "Comma-separated output fields; default all",
|
|
42612
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42613
|
+
help: "Show concise command help; default false",
|
|
42614
|
+
ids: "Required comma-separated unique event IDs; maximum 20",
|
|
42615
|
+
execute: "Send once after all write gates; default false (preview)",
|
|
42616
|
+
"dry-run": "Explicit preview; cannot combine with --execute",
|
|
42617
|
+
confirm: "Exact operation followed by a space and the comma-separated IDs in supplied order",
|
|
42618
|
+
name: "Required available action name; nonempty action parameters are unverified"
|
|
42619
|
+
}
|
|
42620
|
+
},
|
|
42621
|
+
{
|
|
42622
|
+
command: "event list",
|
|
42623
|
+
effect: "read",
|
|
42624
|
+
flags: {
|
|
42625
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42626
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42627
|
+
fields: "Comma-separated output fields; default all",
|
|
42628
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42629
|
+
help: "Show concise command help; default false",
|
|
42630
|
+
"start-date": "ISO timestamp with timezone; default 24 hours before end-date; maximum window 31 days",
|
|
42631
|
+
"end-date": "ISO timestamp with timezone; default now",
|
|
42632
|
+
limit: "Maximum rows; default 50, range 1-1000; cannot combine with --all",
|
|
42633
|
+
all: "Read up to 1000 rows / 10 HTTP requests / 60 seconds / 8 MiB; default false",
|
|
42634
|
+
cursor: "Opaque continuation bound to profile, region, operation and selectors; repeat original selectors",
|
|
42635
|
+
saas: "Comma-separated SaaS overrides; default selected profile saas or office365_emails",
|
|
42636
|
+
"event-types": "Comma-separated event types; default unfiltered",
|
|
42637
|
+
"event-states": "Comma-separated event states; default unfiltered",
|
|
42638
|
+
severities: "Comma-separated severities; default unfiltered",
|
|
42639
|
+
"event-ids": "Comma-separated event IDs; default unfiltered",
|
|
42640
|
+
"confidence-indicator": "Confidence indicator selector; default unfiltered",
|
|
42641
|
+
description: "Description selector; default unfiltered"
|
|
42642
|
+
}
|
|
42643
|
+
},
|
|
42644
|
+
{
|
|
42645
|
+
command: "event show",
|
|
42646
|
+
effect: "read",
|
|
42647
|
+
flags: {
|
|
42648
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42649
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42650
|
+
fields: "Comma-separated output fields; default all",
|
|
42651
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42652
|
+
help: "Show concise command help; default false"
|
|
42653
|
+
}
|
|
42654
|
+
},
|
|
42655
|
+
{
|
|
42656
|
+
command: "exception clear",
|
|
42657
|
+
effect: "blocked",
|
|
42658
|
+
flags: {
|
|
42659
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42660
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42661
|
+
fields: "Comma-separated output fields; default all",
|
|
42662
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42663
|
+
help: "Show concise command help; default false",
|
|
42664
|
+
execute: "Send once after all write gates; default false (preview)",
|
|
42665
|
+
"dry-run": "Explicit preview; cannot combine with --execute",
|
|
42666
|
+
confirm: "Exact operation followed by a space and every target from preview (payload sha256 for create and malware/url/dlp update, exception ID or comma-separated item IDs otherwise)"
|
|
42667
|
+
}
|
|
42668
|
+
},
|
|
42669
|
+
{
|
|
42670
|
+
command: "exception create",
|
|
42671
|
+
effect: "write",
|
|
42672
|
+
flags: {
|
|
42673
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42674
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42675
|
+
fields: "Comma-separated output fields; default all",
|
|
42676
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42677
|
+
help: "Show concise command help; default false",
|
|
42678
|
+
execute: "Send once after all write gates; default false (preview)",
|
|
42679
|
+
"dry-run": "Explicit preview; cannot combine with --execute",
|
|
42680
|
+
confirm: "Exact operation followed by a space and every target from preview (payload sha256 for create and malware/url/dlp update, exception ID or comma-separated item IDs otherwise)",
|
|
42681
|
+
input: "Required absolute private JSON file containing documented requestData fields directly; fields depend on kind; update sends a replacement PUT",
|
|
42682
|
+
specific: "Malware/url/dlp only: use the documented create-specific /exceptions route; default false; included in confirmation digest"
|
|
42683
|
+
}
|
|
42684
|
+
},
|
|
42685
|
+
{
|
|
42686
|
+
command: "exception list",
|
|
42687
|
+
effect: "read",
|
|
42688
|
+
flags: {
|
|
42689
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42690
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42691
|
+
fields: "Comma-separated output fields; default all",
|
|
42692
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42693
|
+
help: "Show concise command help; default false",
|
|
42694
|
+
type: "Required for malware: hash,micro_hash,file_type,ppat_sender_name,allow_file_type,sender_email; url: allow-url,allow-domain,block-url,block-domain; dlp: hash,text_content,sender_email,recipient_email",
|
|
42695
|
+
items: "Click-time item routes instead of list routes; default false",
|
|
42696
|
+
limit: "Maximum rows; default 50, range 1-1000; cannot combine with --all",
|
|
42697
|
+
all: "Return up to 1000 rows within transport budgets; no server continuation parameter is documented"
|
|
42698
|
+
}
|
|
42699
|
+
},
|
|
42700
|
+
{
|
|
42701
|
+
command: "exception remove",
|
|
42702
|
+
effect: "write",
|
|
42703
|
+
flags: {
|
|
42704
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42705
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42706
|
+
fields: "Comma-separated output fields; default all",
|
|
42707
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42708
|
+
help: "Show concise command help; default false",
|
|
42709
|
+
execute: "Send once after all write gates; default false (preview)",
|
|
42710
|
+
"dry-run": "Explicit preview; cannot combine with --execute",
|
|
42711
|
+
confirm: "Exact operation followed by a space and every target from preview (payload sha256 for create and malware/url/dlp update, exception ID or comma-separated item IDs otherwise)"
|
|
42712
|
+
}
|
|
42713
|
+
},
|
|
42714
|
+
{
|
|
42715
|
+
command: "exception remove-items",
|
|
42716
|
+
effect: "write",
|
|
42717
|
+
flags: {
|
|
42718
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42719
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42720
|
+
fields: "Comma-separated output fields; default all",
|
|
42721
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42722
|
+
help: "Show concise command help; default false",
|
|
42723
|
+
execute: "Send once after all write gates; default false (preview)",
|
|
42724
|
+
"dry-run": "Explicit preview; cannot combine with --execute",
|
|
42725
|
+
confirm: "Exact operation followed by a space and every target from preview (payload sha256 for create and malware/url/dlp update, exception ID or comma-separated item IDs otherwise)",
|
|
42726
|
+
ids: "Required 1-20 unique comma-separated click-time item IDs"
|
|
42727
|
+
}
|
|
42728
|
+
},
|
|
42729
|
+
{
|
|
42730
|
+
command: "exception show",
|
|
42731
|
+
effect: "read",
|
|
42732
|
+
flags: {
|
|
42733
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42734
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42735
|
+
fields: "Comma-separated output fields; default all",
|
|
42736
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42737
|
+
help: "Show concise command help; default false",
|
|
42738
|
+
type: "Required for malware: hash,micro_hash,file_type,ppat_sender_name,allow_file_type,sender_email; url: allow-url,allow-domain,block-url,block-domain; dlp: hash,text_content,sender_email,recipient_email",
|
|
42739
|
+
items: "Click-time item route instead of list route; default false"
|
|
42740
|
+
}
|
|
42741
|
+
},
|
|
42742
|
+
{
|
|
42743
|
+
command: "exception update",
|
|
42744
|
+
effect: "write",
|
|
42745
|
+
flags: {
|
|
42746
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42747
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42748
|
+
fields: "Comma-separated output fields; default all",
|
|
42749
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42750
|
+
help: "Show concise command help; default false",
|
|
42751
|
+
execute: "Send once after all write gates; default false (preview)",
|
|
42752
|
+
"dry-run": "Explicit preview; cannot combine with --execute",
|
|
42753
|
+
confirm: "Exact operation followed by a space and every target from preview (payload sha256 for create and malware/url/dlp update, exception ID or comma-separated item IDs otherwise)",
|
|
42754
|
+
input: "Required absolute private JSON file containing documented requestData fields directly; fields depend on kind; update sends a replacement PUT"
|
|
42755
|
+
}
|
|
42756
|
+
},
|
|
42757
|
+
{
|
|
42758
|
+
command: "home",
|
|
42759
|
+
effect: "read",
|
|
42760
|
+
flags: {
|
|
42761
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42762
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42763
|
+
fields: "Comma-separated output fields; default all",
|
|
42764
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42765
|
+
help: "Show concise command help; default false"
|
|
42766
|
+
}
|
|
42767
|
+
},
|
|
42768
|
+
{
|
|
42769
|
+
command: "profile list",
|
|
42770
|
+
effect: "blocked",
|
|
42771
|
+
flags: {
|
|
42772
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42773
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42774
|
+
fields: "Comma-separated output fields; default all",
|
|
42775
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42776
|
+
help: "Show concise command help; default false"
|
|
42777
|
+
}
|
|
42778
|
+
},
|
|
42779
|
+
{
|
|
42780
|
+
command: "task show",
|
|
42781
|
+
effect: "read",
|
|
42782
|
+
flags: {
|
|
42783
|
+
config: "Config path; default CHECKPOINT_AXI_CONFIG or platform path",
|
|
42784
|
+
profile: "Profile name; default CHECKPOINT_AXI_PROFILE, env profile, config default, or sole profile",
|
|
42785
|
+
fields: "Comma-separated output fields; default all",
|
|
42786
|
+
full: "Show full strings instead of 500-character previews; default false",
|
|
42787
|
+
help: "Show concise command help; default false"
|
|
42788
|
+
}
|
|
42789
|
+
}
|
|
42790
|
+
]
|
|
42791
|
+
};
|
|
42792
|
+
|
|
42180
42793
|
// src/shared/tool-manifests.ts
|
|
42181
|
-
var toolManifests = { "falcon-axi": falcon_axi_default, "vectra-axi": vectra_axi_default, "az-axi": az_axi_default, "mg-axi": mg_axi_default, "ldap-axi": ldap_axi_default, "ado-axi": ado_axi_default, "awx-axi": awx_axi_default, "tenable-axi": tenable_axi_default, "hybrid-axi": hybrid_axi_default };
|
|
42794
|
+
var toolManifests = { "falcon-axi": falcon_axi_default, "vectra-axi": vectra_axi_default, "az-axi": az_axi_default, "mg-axi": mg_axi_default, "ldap-axi": ldap_axi_default, "ado-axi": ado_axi_default, "awx-axi": awx_axi_default, "tenable-axi": tenable_axi_default, "hybrid-axi": hybrid_axi_default, "checkpoint-axi": checkpoint_axi_default };
|
|
42182
42795
|
|
|
42183
42796
|
// node_modules/.pnpm/@toon-format+toon@2.3.1/node_modules/@toon-format/toon/dist/index.mjs
|
|
42184
42797
|
var NULL_LITERAL = "null";
|
|
@@ -43546,6 +44159,7 @@ function resolveDecodeOptions(options) {
|
|
|
43546
44159
|
|
|
43547
44160
|
// src/cli/rewrite.ts
|
|
43548
44161
|
var managedFlags = {
|
|
44162
|
+
"checkpoint-axi": checkpoint_axi_default.adapterBoundary.unsafeOverrides,
|
|
43549
44163
|
"hybrid-axi": hybrid_axi_default.adapterBoundary.unsafeOverrides,
|
|
43550
44164
|
"tenable-axi": tenable_axi_default.adapterBoundary.unsafeOverrides,
|
|
43551
44165
|
"awx-axi": awx_axi_default.adapterBoundary.unsafeOverrides,
|
|
@@ -43571,6 +44185,25 @@ function rewriteDiscoveryHelp(help, tool) {
|
|
|
43571
44185
|
}
|
|
43572
44186
|
function rewriteSuggestions(output3, tool, truncated = false) {
|
|
43573
44187
|
if (truncated) return output3;
|
|
44188
|
+
if (tool === "checkpoint-axi") {
|
|
44189
|
+
try {
|
|
44190
|
+
const document = decode3(output3);
|
|
44191
|
+
if (document.command && document.flags) return encode3({
|
|
44192
|
+
...document,
|
|
44193
|
+
command: document.command.startsWith("artium-axi ") ? document.command : `artium-axi checkpoint-axi ${document.command}`,
|
|
44194
|
+
flags: Object.fromEntries(Object.entries(document.flags).filter(([name]) => !checkpoint_axi_default.adapterBoundary.unsafeOverrides.includes(name.replace(/^--/, "")))),
|
|
44195
|
+
examples: (document.examples ?? []).filter((example) => !/--(?:config|profile|out)\b/.test(example)).map((example) => example.replace(/^checkpoint-axi\b/, "artium-axi checkpoint-axi")),
|
|
44196
|
+
help: [checkpoint_axi_default.discovery.help.replaceAll("checkpoint-axi ", "artium-axi checkpoint-axi ")]
|
|
44197
|
+
}) + "\n";
|
|
44198
|
+
if (document.bin || document.commands) return encode3({
|
|
44199
|
+
bin: "artium-axi checkpoint-axi",
|
|
44200
|
+
description: "Investigate Check Point Email Security with managed credentials.",
|
|
44201
|
+
commands: checkpoint_axi_default.commands.filter((route) => route.effect !== "blocked").map((route) => route.command),
|
|
44202
|
+
help: [checkpoint_axi_default.discovery.help.replaceAll("checkpoint-axi ", "artium-axi checkpoint-axi ")]
|
|
44203
|
+
}) + "\n";
|
|
44204
|
+
} catch {
|
|
44205
|
+
}
|
|
44206
|
+
}
|
|
43574
44207
|
if (tool === "hybrid-axi") {
|
|
43575
44208
|
try {
|
|
43576
44209
|
const document = decode3(output3);
|
|
@@ -43734,6 +44367,10 @@ function managedFlagRanges(command, tool) {
|
|
|
43734
44367
|
return ranges;
|
|
43735
44368
|
}
|
|
43736
44369
|
function hostedHelp(help, tool, flags, commands2) {
|
|
44370
|
+
if (tool === "checkpoint-axi") {
|
|
44371
|
+
help = help.split("\n").filter((line) => !/CHECKPOINT_AXI_|SecretRef|checkpoint-axi (?:config|profile)|Valid commands:/.test(line)).join("\n");
|
|
44372
|
+
if (!help.trim()) help = checkpoint_axi_default.discovery.help;
|
|
44373
|
+
}
|
|
43737
44374
|
if (tool === "hybrid-axi") {
|
|
43738
44375
|
help = help.split("\n").filter((line) => !/HYBRID_AXI_|SecretRefs|hybrid-axi (?:setup|config|profile)|--(?:config|profile|origin|output)\b/.test(line)).join("\n");
|
|
43739
44376
|
const guidance = "Artium manages the API key and fixed origin. Submissions, YARA mutations, consuming matches and four reviewed archive downloads require independently selected administrator-enabled operations, native preview, execute, exact confirmation and journal. Quick scans transmit the supplied sample or URL. Use artium-axi download --help for authenticated one-shot CLI verified saving and live-malware warnings.";
|
|
@@ -44037,20 +44674,20 @@ var commands = {
|
|
|
44037
44674
|
doctor: { usage: "artium-axi doctor", purpose: "Check the server, certificate, token, CLI version and cached tool health.", flags: [], example: "artium-axi doctor" },
|
|
44038
44675
|
update: { usage: "artium-axi update", purpose: "Download and verify the server\u2019s client, replace this file and keep a .bak backup. npm installations must use npm install -g @knowttl/artium-axi.", flags: [], example: "artium-axi update" },
|
|
44039
44676
|
download: {
|
|
44040
|
-
usage: "artium-axi download --operation <operation> --selector <
|
|
44041
|
-
purpose: "Preview or explicitly save a hosted Hybrid Analysis archive.
|
|
44677
|
+
usage: "artium-axi download --operation <operation> --selector <selector> --type <type> --destination <absolute-new-path> [--transfer <id> --execute --confirm <exact-confirm>] [--password-stdin|--sso]",
|
|
44678
|
+
purpose: "Preview or explicitly save a hosted Hybrid Analysis archive or Check Point email/attachment. Each operation requires administrator enablement.",
|
|
44042
44679
|
flags: [
|
|
44043
|
-
"--operation <hash-download-bin|report-download-bin|report-download-dropped-files|report-download-memory> (required)",
|
|
44044
|
-
"--selector <hash|report-id> (required)",
|
|
44045
|
-
"--type <bin|dropped-files|memory> (required)",
|
|
44680
|
+
"--operation <hash-download-bin|report-download-bin|report-download-dropped-files|report-download-memory|email.download|attachment.download|attachment.download-all> (required)",
|
|
44681
|
+
"--selector <hash|report-id|entity-id|entity-id/attachment-id> (required; attachment.download uses entity-id/attachment-id)",
|
|
44682
|
+
"--type <bin|dropped-files|memory|email|original|attachment|zip> (required; email.download uses email or original, attachment.download uses attachment, attachment.download-all uses zip)",
|
|
44046
44683
|
"--destination <absolute-new-path> (required; Linux private 0700 directory, no symlink components or overwrite)",
|
|
44047
44684
|
"--transfer <id> (required for execution; preview transfer ID)",
|
|
44048
44685
|
"--execute (default false)",
|
|
44049
|
-
"--confirm <exact-confirm> (required for execution; unchanged
|
|
44686
|
+
"--confirm <exact-confirm> (required for execution; unchanged preview string; Check Point confirmation is host-owned)",
|
|
44050
44687
|
"--password-stdin (default false; otherwise terminal password)",
|
|
44051
44688
|
"--sso (default false; browser identity confirmation)",
|
|
44052
44689
|
transferWarning,
|
|
44053
|
-
`Limit ${transferLimits.artifactBytes / 1024 ** 2} MiB; ${transferLimits.reservationsPerUser} reservation per user, ${transferLimits.reservations} globally, ${transferLimits.reservedBytes / 1024 ** 3} GiB total artifact capacity; absolute expiry ${transferLimits.lifetimeMs / 6e4} minutes after preview preparation, including generation and retrieval. No resume or automatic retry. Missing receipt is unconfirmed.`
|
|
44690
|
+
`Limit ${transferLimits.artifactBytes / 1024 ** 2} MiB (Check Point: 50 MiB with mandatory upstream hash); ${transferLimits.reservationsPerUser} reservation per user, ${transferLimits.reservations} globally, ${transferLimits.reservedBytes / 1024 ** 3} GiB total artifact capacity; absolute expiry ${transferLimits.lifetimeMs / 6e4} minutes after preview preparation, including generation and retrieval. No resume or automatic retry. Missing receipt is unconfirmed.`
|
|
44054
44691
|
],
|
|
44055
44692
|
example: "artium-axi download --operation report-download-bin --selector synthetic-report --type bin --destination /controlled/artifacts/new-archive.bin --sso"
|
|
44056
44693
|
},
|
|
@@ -44096,6 +44733,12 @@ var commands = {
|
|
|
44096
44733
|
flags: ["Submissions, YARA mutations, consuming matches and four reviewed archive downloads are off by default and selected independently by an administrator. Native preview, --execute and exact --confirm remain required. Use artium-axi download --help for authenticated CLI verified saving.", "--body-file - reads stdin to EOF within 5 s; otherwise INVALID_INPUT. Close stdin or pass a local file path.", transferWarning],
|
|
44097
44734
|
example: "artium-axi hybrid-axi quota"
|
|
44098
44735
|
},
|
|
44736
|
+
"checkpoint-axi": {
|
|
44737
|
+
usage: "artium-axi checkpoint-axi [<args>]",
|
|
44738
|
+
purpose: "Investigate Check Point Email Security with managed regional credentials.",
|
|
44739
|
+
flags: ["Writes require administrator-selected exact operations, native preview, --execute and exact --confirm. Private JSON inputs are uploaded with --input; stdin is unavailable. Downloads use artium-axi download with host-owned confirmation. Ambiguous deletes remain blocked."],
|
|
44740
|
+
example: "artium-axi checkpoint-axi email search --limit 1"
|
|
44741
|
+
},
|
|
44099
44742
|
"az-axi": {
|
|
44100
44743
|
usage: "artium-axi az-axi [<args>]",
|
|
44101
44744
|
purpose: "Run Azure commands with your managed identity.",
|
|
@@ -44413,8 +45056,8 @@ async function toolInput(tool, original) {
|
|
|
44413
45056
|
const input2 = {};
|
|
44414
45057
|
let totalFileBytes = 0;
|
|
44415
45058
|
const hunting = tool === "mg-axi" && args.slice(0, 3).join(" ") === "security hunting query";
|
|
44416
|
-
if ((tool === "az-axi" || tool === "hybrid-axi" || tool === "tenable-axi" || hunting) && !args.some((arg) => ["--help", "-h", "--version", "-v", "-V"].includes(arg))) {
|
|
44417
|
-
const fileFlags = hunting ? ["file"] : tool === "tenable-axi" ? tenable_axi_default.adapterBoundary.inputFileFlags : tool === "hybrid-axi" ? hybrid_axi_default.adapterBoundary.inputFileFlags : az_axi_default.adapterBoundary.inputFileFlags;
|
|
45059
|
+
if ((tool === "checkpoint-axi" || tool === "az-axi" || tool === "hybrid-axi" || tool === "tenable-axi" || hunting) && !args.some((arg) => ["--help", "-h", "--version", "-v", "-V"].includes(arg))) {
|
|
45060
|
+
const fileFlags = hunting ? ["file"] : tool === "checkpoint-axi" ? checkpoint_axi_default.adapterBoundary.inputFileFlags : tool === "tenable-axi" ? tenable_axi_default.adapterBoundary.inputFileFlags : tool === "hybrid-axi" ? hybrid_axi_default.adapterBoundary.inputFileFlags : az_axi_default.adapterBoundary.inputFileFlags;
|
|
44418
45061
|
for (let index = 0; index < args.length; index++) {
|
|
44419
45062
|
if (args[index] === "--") break;
|
|
44420
45063
|
const [flag] = args[index].split("=");
|
|
@@ -44859,6 +45502,7 @@ async function download(args, output3, managed2) {
|
|
|
44859
45502
|
targetDigest: createHash4("sha256").update(destination).digest("hex")
|
|
44860
45503
|
});
|
|
44861
45504
|
if (!input2.success || !destination || flags.has("--sso") && flags.has("--password-stdin")) throw new ArtiumError("INVALID_INPUT");
|
|
45505
|
+
const transferRoutes2 = transferRoutesFor(transferTool(input2.data.selection.operation));
|
|
44862
45506
|
const execute = flags.has("--execute");
|
|
44863
45507
|
if (execute !== flags.has("--transfer") || execute !== flags.has("--confirm")) throw new ArtiumError("INVALID_INPUT");
|
|
44864
45508
|
let execution;
|
|
@@ -44910,7 +45554,7 @@ async function download(args, output3, managed2) {
|
|
|
44910
45554
|
{ "x-artium-reauth-ticket": ticket }
|
|
44911
45555
|
);
|
|
44912
45556
|
if (!execution) {
|
|
44913
|
-
const preview = transferPreviewSchema.parse(await request(
|
|
45557
|
+
const preview = transferPreviewSchema.parse(await request(transferRoutes2.prepare.path, input2.data));
|
|
44914
45558
|
if (preview.targetDigest !== input2.data.targetDigest) throw new ArtiumError("INVALID_RESPONSE");
|
|
44915
45559
|
announce({
|
|
44916
45560
|
...input2.data.selection,
|
|
@@ -44927,7 +45571,7 @@ async function download(args, output3, managed2) {
|
|
|
44927
45571
|
let saved = false;
|
|
44928
45572
|
let receipt = "unconfirmed";
|
|
44929
45573
|
try {
|
|
44930
|
-
const pending = transferStatusSchema.parse(await request(
|
|
45574
|
+
const pending = transferStatusSchema.parse(await request(transferRoutes2.status.path, retrieval));
|
|
44931
45575
|
if (pending.transferId !== execution.transferId || pending.outcome !== "preview" || pending.archive !== null) throw new ArtiumError("INVALID_RESPONSE");
|
|
44932
45576
|
announce({
|
|
44933
45577
|
...input2.data.selection,
|
|
@@ -44936,11 +45580,11 @@ async function download(args, output3, managed2) {
|
|
|
44936
45580
|
expiresAt: pending.expiresAt,
|
|
44937
45581
|
saveOutcome: "unconfirmed"
|
|
44938
45582
|
});
|
|
44939
|
-
const status = transferStatusSchema.parse(await request(
|
|
45583
|
+
const status = transferStatusSchema.parse(await request(transferRoutes2.execute.path, execution));
|
|
44940
45584
|
if (status.transferId !== execution.transferId || status.expiresAt !== pending.expiresAt || status.outcome !== "ready" || !status.archive) throw new ArtiumError("INVALID_RESPONSE");
|
|
44941
45585
|
archive = status.archive;
|
|
44942
45586
|
await client.artifact(
|
|
44943
|
-
|
|
45587
|
+
transferRoutes2.retrieve.path,
|
|
44944
45588
|
retrieval,
|
|
44945
45589
|
token,
|
|
44946
45590
|
ticket,
|
|
@@ -44950,19 +45594,19 @@ async function download(args, output3, managed2) {
|
|
|
44950
45594
|
saved = true;
|
|
44951
45595
|
await local.close();
|
|
44952
45596
|
try {
|
|
44953
|
-
await request(
|
|
45597
|
+
await request(transferRoutes2.receipt.path, { ...retrieval, archive, saveOutcome: "verified-save" });
|
|
44954
45598
|
receipt = "confirmed";
|
|
44955
45599
|
} catch {
|
|
44956
45600
|
}
|
|
44957
45601
|
} catch (error62) {
|
|
44958
45602
|
if (archive && !saved) {
|
|
44959
45603
|
try {
|
|
44960
|
-
await request(
|
|
45604
|
+
await request(transferRoutes2.receipt.path, { ...retrieval, archive, saveOutcome: "save-failed" });
|
|
44961
45605
|
} catch {
|
|
44962
45606
|
}
|
|
44963
45607
|
}
|
|
44964
45608
|
try {
|
|
44965
|
-
await request(
|
|
45609
|
+
await request(transferRoutes2.cancel.path, retrieval);
|
|
44966
45610
|
} catch {
|
|
44967
45611
|
}
|
|
44968
45612
|
throw error62;
|