@knowttl/artium-axi 0.0.18 → 0.0.20
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 +10 -0
- package/bin/artium-axi.mjs +92 -68
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -169,10 +169,20 @@ Administrators can opt in to the single read-only `security hunting query` comma
|
|
|
169
169
|
Hunting accepts exactly one UTF-8 plain-text upload named `query.kql`, at most 64 KiB, through `artium-axi mg-axi security hunting query --file query.kql`.
|
|
170
170
|
See [client input handling](docs/client-reference.md#command-surface-and-subcommands) for local file paths and upload restrictions.
|
|
171
171
|
Queries must use the upstream restricted read-only KQL subset.
|
|
172
|
+
Hunting parses KQL before the read-only allowlist and upstream authentication; syntax errors return positioned diagnostics without query excerpts or quoted literals.
|
|
173
|
+
Parsing does not check tables, columns, types or permissions; recognized Graph 400 errors expose only the error class and line/column, while unknown error shapes remain opaque.
|
|
172
174
|
The existing mg-axi role grant is required; other security commands remain unavailable.
|
|
173
175
|
See [Graph credential setup](docs/tool-credentials.md#microsoft-graph) for hunting permissions and consent; tenant acceptance remains unverified.
|
|
174
176
|
|
|
177
|
+
Azure Resource Graph and Log Analytics queries parse KQL before upstream authentication or requests, returning positioned syntax diagnostics and query excerpts on failure.
|
|
178
|
+
Successful parsing does not validate tables, columns, functions, permissions or service-specific restrictions.
|
|
179
|
+
|
|
175
180
|
Falcon investigation reads include detection lineage, process details and trees, existing sandbox reports, FileVantage changes and device-control policy details.
|
|
181
|
+
NG-SIEM `search start` checks CQL structure before upstream authentication, reporting code, line, column and token class without echoing query text; function names, fields and semantics remain unchecked, and ambiguous syntax passes.
|
|
182
|
+
Rejected searches preserve redacted server diagnostics, completed searches include server warnings when present, and `search start --wait` advises when the normalized filter differs.
|
|
183
|
+
|
|
184
|
+
Vectra `host show` and `entity show --type host`, plus the matching raw host reads, retain every returned API field under `host`, separate from CLI metadata.
|
|
185
|
+
Use `--full` on host/entity detail commands for complete returned text; secret redaction still applies, and upstream omissions cannot be restored.
|
|
176
186
|
|
|
177
187
|
Vectra supports selected QUX/RUX writes for detection close/open and mark-fixed, host/account close, key assets, tags, notes (including bulk notes), assignments and outcomes, triage labels and rules, groups and membership, proxies, threat feeds, internal-network settings, syslog/Kafka, notification destinations and Match, subject to deployment support in the [reviewed inventory](tools/inventories/vectra-axi.json).
|
|
178
188
|
User, role, API-client and credential administration remains blocked.
|
package/bin/artium-axi.mjs
CHANGED
|
@@ -20748,7 +20748,7 @@ import { resolve } from "node:path";
|
|
|
20748
20748
|
// package.json
|
|
20749
20749
|
var package_default = {
|
|
20750
20750
|
name: "artium-axi",
|
|
20751
|
-
version: "0.0.
|
|
20751
|
+
version: "0.0.20",
|
|
20752
20752
|
private: true,
|
|
20753
20753
|
license: "MIT",
|
|
20754
20754
|
type: "module",
|
|
@@ -21236,17 +21236,18 @@ var falcon_axi_default = {
|
|
|
21236
21236
|
generatedBy: "scripts/falcon-inventory.mjs",
|
|
21237
21237
|
tool: "falcon-axi",
|
|
21238
21238
|
repository: "https://github.com/knowttl/falcon-axi.git",
|
|
21239
|
-
tag: "v0.
|
|
21240
|
-
commit: "
|
|
21241
|
-
version: "0.
|
|
21239
|
+
tag: "v0.8.0",
|
|
21240
|
+
commit: "4ba25f373a5c4df46506bdd0d306fa3ef205d965",
|
|
21241
|
+
version: "0.8.0",
|
|
21242
21242
|
distribution: {
|
|
21243
|
-
filename: "falcon_axi-0.
|
|
21244
|
-
sha256: "
|
|
21245
|
-
provenance: "https://pypi.org/integrity/falcon-axi/0.
|
|
21243
|
+
filename: "falcon_axi-0.8.0-py3-none-any.whl",
|
|
21244
|
+
sha256: "8aad289fd58847cb6555f46b8e930c5904d6afda34a7b2e6965cdd60c8df06a4",
|
|
21245
|
+
provenance: "https://pypi.org/integrity/falcon-axi/0.8.0/falcon_axi-0.8.0-py3-none-any.whl/provenance"
|
|
21246
21246
|
},
|
|
21247
|
+
skillSha256: "5d5fd1cd57ff1da68e37448c93fce57236f76448ec9a10984c01ea7300c6a8e0",
|
|
21247
21248
|
parser: {
|
|
21248
21249
|
path: "falcon_axi/cli.py",
|
|
21249
|
-
sha256: "
|
|
21250
|
+
sha256: "9b3d42e3c00b3d302948e8937c6295bbdde9cb80384ebef253f9b8a077454909",
|
|
21250
21251
|
aliases: {},
|
|
21251
21252
|
shortFlags: {},
|
|
21252
21253
|
repeats: "last value wins",
|
|
@@ -21521,7 +21522,9 @@ var falcon_axi_default = {
|
|
|
21521
21522
|
profile: "value",
|
|
21522
21523
|
filter: "value",
|
|
21523
21524
|
limit: "value",
|
|
21524
|
-
cursor: "value"
|
|
21525
|
+
cursor: "value",
|
|
21526
|
+
fields: "value",
|
|
21527
|
+
full: "boolean"
|
|
21525
21528
|
},
|
|
21526
21529
|
input: "No file or raw URL input; cursors and queries remain native values"
|
|
21527
21530
|
},
|
|
@@ -22970,10 +22973,11 @@ var falcon_axi_default = {
|
|
|
22970
22973
|
var vectra_axi_default = {
|
|
22971
22974
|
generatedBy: "scripts/upstream-inventory.mjs",
|
|
22972
22975
|
tool: "vectra-axi",
|
|
22973
|
-
version: "0.1.
|
|
22974
|
-
integrity: "sha512-
|
|
22976
|
+
version: "0.1.10",
|
|
22977
|
+
integrity: "sha512-X7yttDlwpQJW/j0eNox5vLf7nWlFejXjtaq90N7ezJ+ACNqEFspODrwQ/mYqbXFnqjpIugQnhSGcnaI8YNMeLw==",
|
|
22975
22978
|
parserEvidence: "Installed pinned catalogue exports, provisional until adapter acceptance",
|
|
22976
|
-
packageManifestSha256: "
|
|
22979
|
+
packageManifestSha256: "3f4d4e3ec1b37690087e3c8850ffd5390574e6686cafbd723fb01f83b775ea97",
|
|
22980
|
+
skillSha256: "58978bfd2468e9fac8d17644df1de46768572b1cd9a719a9eec64cdcb547ff9c",
|
|
22977
22981
|
environment: [
|
|
22978
22982
|
{
|
|
22979
22983
|
name: "VECTRA_AXI_CONFIG",
|
|
@@ -23273,7 +23277,7 @@ var vectra_axi_default = {
|
|
|
23273
23277
|
},
|
|
23274
23278
|
source: {
|
|
23275
23279
|
path: "dist/src/catalogue.js",
|
|
23276
|
-
sha256: "
|
|
23280
|
+
sha256: "02e2443a4b6d6aef9faae51e0c4418c0c565ac5b0f73969a34a4c33a110bfabf"
|
|
23277
23281
|
}
|
|
23278
23282
|
},
|
|
23279
23283
|
flags: [
|
|
@@ -23753,7 +23757,8 @@ var vectra_axi_default = {
|
|
|
23753
23757
|
help: "boolean",
|
|
23754
23758
|
profile: "value",
|
|
23755
23759
|
config: "value",
|
|
23756
|
-
id: "value"
|
|
23760
|
+
id: "value",
|
|
23761
|
+
full: "boolean"
|
|
23757
23762
|
}
|
|
23758
23763
|
},
|
|
23759
23764
|
{
|
|
@@ -23805,7 +23810,8 @@ var vectra_axi_default = {
|
|
|
23805
23810
|
profile: "value",
|
|
23806
23811
|
config: "value",
|
|
23807
23812
|
type: "value",
|
|
23808
|
-
id: "value"
|
|
23813
|
+
id: "value",
|
|
23814
|
+
full: "boolean"
|
|
23809
23815
|
}
|
|
23810
23816
|
},
|
|
23811
23817
|
{
|
|
@@ -25025,10 +25031,11 @@ var vectra_axi_default = {
|
|
|
25025
25031
|
var az_axi_default = {
|
|
25026
25032
|
generatedBy: "scripts/upstream-inventory.mjs",
|
|
25027
25033
|
tool: "az-axi",
|
|
25028
|
-
version: "0.1.
|
|
25029
|
-
integrity: "sha512-
|
|
25034
|
+
version: "0.1.13",
|
|
25035
|
+
integrity: "sha512-qltNokGPKFvUxFxNVf25gV2jtgw9MpxT5k6Zlbhz0b/Y5pvbc04SpORpUurDZNXE7runLZZhoBmm38qXcA3M7Q==",
|
|
25030
25036
|
parserEvidence: "Installed pinned catalogue exports, provisional until adapter acceptance",
|
|
25031
|
-
packageManifestSha256: "
|
|
25037
|
+
packageManifestSha256: "dc09976ff76cdda672ba89f0a7689c39873a86a19213d46687c2a9af861d3ed2",
|
|
25038
|
+
skillSha256: "8a5bc0e8866ca55add8399376784a19e81671e6d036d10815e55b3c473540080",
|
|
25032
25039
|
environment: [
|
|
25033
25040
|
{
|
|
25034
25041
|
name: "AZ_AXI_CONFIG",
|
|
@@ -25287,11 +25294,11 @@ var az_axi_default = {
|
|
|
25287
25294
|
tokenResourceSources: [
|
|
25288
25295
|
{
|
|
25289
25296
|
path: "dist/lib/registry.js",
|
|
25290
|
-
sha256: "
|
|
25297
|
+
sha256: "dc1eb46c43aa5232b58acfb1d174fe2728491a3a6da28fa3cca27fed79494efd"
|
|
25291
25298
|
},
|
|
25292
25299
|
{
|
|
25293
25300
|
path: "dist/lib/client.js",
|
|
25294
|
-
sha256: "
|
|
25301
|
+
sha256: "156af240155e71c051a6a2f0c4235d51acaf3633d7a249736ff3b24ed541d2b6"
|
|
25295
25302
|
},
|
|
25296
25303
|
{
|
|
25297
25304
|
path: "dist/lib/principals.js",
|
|
@@ -25315,11 +25322,11 @@ var az_axi_default = {
|
|
|
25315
25322
|
},
|
|
25316
25323
|
{
|
|
25317
25324
|
path: "dist/commands/logs.js",
|
|
25318
|
-
sha256: "
|
|
25325
|
+
sha256: "1cfd781bd88e13ba1c70537263220c6bdd6932586e53edd6fc22fc75202bd938"
|
|
25319
25326
|
},
|
|
25320
25327
|
{
|
|
25321
25328
|
path: "dist/commands/doctor.js",
|
|
25322
|
-
sha256: "
|
|
25329
|
+
sha256: "02f26a4af30ed142b4187394c356e2204ad80f03fee52f65c2daf5c312150b06"
|
|
25323
25330
|
},
|
|
25324
25331
|
{
|
|
25325
25332
|
path: "dist/commands/api.js",
|
|
@@ -29743,10 +29750,11 @@ var az_axi_default = {
|
|
|
29743
29750
|
var mg_axi_default = {
|
|
29744
29751
|
generatedBy: "scripts/upstream-inventory.mjs",
|
|
29745
29752
|
tool: "mg-axi",
|
|
29746
|
-
version: "0.1.
|
|
29747
|
-
integrity: "sha512-
|
|
29753
|
+
version: "0.1.13",
|
|
29754
|
+
integrity: "sha512-V9f/H1xISbn1ar3ARVnYvtT4NDUDRgvhCkrnQd6lqNdj1MeQjF4JESS6PA6hY3epXKrqE+g/2nCfgJV1JDmDTQ==",
|
|
29748
29755
|
parserEvidence: "Installed pinned catalogue exports",
|
|
29749
|
-
packageManifestSha256: "
|
|
29756
|
+
packageManifestSha256: "2357d6568740146d05a0ad67fb8e0be3c871261726d3cf110fed83e216001dc9",
|
|
29757
|
+
skillSha256: "98ff12e741b04592afae76853a00f572940dee6edf0e868d2ccba04a742b24ad",
|
|
29750
29758
|
environment: [
|
|
29751
29759
|
{
|
|
29752
29760
|
name: "MG_AXI_CONFIG"
|
|
@@ -29908,7 +29916,7 @@ var mg_axi_default = {
|
|
|
29908
29916
|
},
|
|
29909
29917
|
{
|
|
29910
29918
|
path: "dist/cli.js",
|
|
29911
|
-
sha256: "
|
|
29919
|
+
sha256: "723f00e5031068211b541ee43447fb559833bea924c91131e0d074349d5b9a4e"
|
|
29912
29920
|
},
|
|
29913
29921
|
{
|
|
29914
29922
|
path: "dist/profiles.js",
|
|
@@ -29986,7 +29994,7 @@ var mg_axi_default = {
|
|
|
29986
29994
|
},
|
|
29987
29995
|
{
|
|
29988
29996
|
path: "dist/cli.js",
|
|
29989
|
-
sha256: "
|
|
29997
|
+
sha256: "723f00e5031068211b541ee43447fb559833bea924c91131e0d074349d5b9a4e"
|
|
29990
29998
|
}
|
|
29991
29999
|
]
|
|
29992
30000
|
},
|
|
@@ -40052,13 +40060,13 @@ var awx_axi_default = {
|
|
|
40052
40060
|
var tenable_axi_default = {
|
|
40053
40061
|
generatedBy: "scripts/tenable-inventory.mjs",
|
|
40054
40062
|
tool: "tenable-axi",
|
|
40055
|
-
version: "0.1.
|
|
40056
|
-
integrity: "sha512-
|
|
40063
|
+
version: "0.1.3",
|
|
40064
|
+
integrity: "sha512-1Ji117XJv7tssAgqq0vQyQP6m3llQdqOoM6TG7tmMrma9iH9tqq+eESkXGnmHqUuJFjlS8TyyctViWk+zpTTjA==",
|
|
40057
40065
|
parserEvidence: "Published command catalogue, mutation registry and reviewed native parsers and transport gates",
|
|
40058
40066
|
sources: [
|
|
40059
40067
|
{
|
|
40060
40068
|
path: "dist/src/attack-catalogue.js",
|
|
40061
|
-
sha256: "
|
|
40069
|
+
sha256: "8e691131c15c0a25703a2f3c53f9e6f081b13d83e41b132df47f0196b9f3a192"
|
|
40062
40070
|
},
|
|
40063
40071
|
{
|
|
40064
40072
|
path: "dist/src/attack-export-catalogue.js",
|
|
@@ -40070,11 +40078,11 @@ var tenable_axi_default = {
|
|
|
40070
40078
|
},
|
|
40071
40079
|
{
|
|
40072
40080
|
path: "dist/src/attack.js",
|
|
40073
|
-
sha256: "
|
|
40081
|
+
sha256: "9e37ff7bb1371f3b16b36fe18ecc0286f6f89956d96d3b243c7c37538a9504be"
|
|
40074
40082
|
},
|
|
40075
40083
|
{
|
|
40076
40084
|
path: "dist/src/catalogue.js",
|
|
40077
|
-
sha256: "
|
|
40085
|
+
sha256: "44e7f1adc29b56741b71af0fb1b95239f4fa7c0293f137b8fb9e5e03befcbd72"
|
|
40078
40086
|
},
|
|
40079
40087
|
{
|
|
40080
40088
|
path: "dist/src/cli.js",
|
|
@@ -40090,7 +40098,7 @@ var tenable_axi_default = {
|
|
|
40090
40098
|
},
|
|
40091
40099
|
{
|
|
40092
40100
|
path: "dist/src/exposure.js",
|
|
40093
|
-
sha256: "
|
|
40101
|
+
sha256: "db005db00fbf1dba311bad8e78a872836994909a9ce46b9bd8d498d72cfc7d2d"
|
|
40094
40102
|
},
|
|
40095
40103
|
{
|
|
40096
40104
|
path: "dist/src/hook-install.js",
|
|
@@ -40098,7 +40106,7 @@ var tenable_axi_default = {
|
|
|
40098
40106
|
},
|
|
40099
40107
|
{
|
|
40100
40108
|
path: "dist/src/inventory-catalogue.js",
|
|
40101
|
-
sha256: "
|
|
40109
|
+
sha256: "9000156bdbc7e9e8a461f89a602f6fa1e9d7217eabe30a67195be79442f8afe6"
|
|
40102
40110
|
},
|
|
40103
40111
|
{
|
|
40104
40112
|
path: "dist/src/inventory-export-catalogue.js",
|
|
@@ -40110,7 +40118,7 @@ var tenable_axi_default = {
|
|
|
40110
40118
|
},
|
|
40111
40119
|
{
|
|
40112
40120
|
path: "dist/src/inventory.js",
|
|
40113
|
-
sha256: "
|
|
40121
|
+
sha256: "700efba15d086ba88be5444d66f131c9d7482e198dfd050eefc7ecd4f1b96bfe"
|
|
40114
40122
|
},
|
|
40115
40123
|
{
|
|
40116
40124
|
path: "dist/src/inventory/schema.js",
|
|
@@ -40252,7 +40260,7 @@ var tenable_axi_default = {
|
|
|
40252
40260
|
}
|
|
40253
40261
|
}
|
|
40254
40262
|
},
|
|
40255
|
-
skillSha256: "
|
|
40263
|
+
skillSha256: "788b612b4b89f6e390e42ca1619da3a7c146599284ff8ebd69c9e5e42aae5ae0",
|
|
40256
40264
|
nativeWriteSettings: {
|
|
40257
40265
|
supportedOperations: [
|
|
40258
40266
|
"apa-export-attack-path",
|
|
@@ -40342,7 +40350,7 @@ var tenable_axi_default = {
|
|
|
40342
40350
|
config: "Config path; default credential precedence",
|
|
40343
40351
|
profile: "Profile name; default credential precedence",
|
|
40344
40352
|
fields: "Comma-separated display or wire properties; display names: id, name, class, exposureScore; default compact view",
|
|
40345
|
-
full: "Show
|
|
40353
|
+
full: "Show untruncated text; does not add fields or rows; default false",
|
|
40346
40354
|
help: "Show help",
|
|
40347
40355
|
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
40348
40356
|
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
@@ -40350,7 +40358,7 @@ var tenable_axi_default = {
|
|
|
40350
40358
|
query: "Simple query text",
|
|
40351
40359
|
filter: 'Repeatable: <property> <operator> <JSON string array>, e.g. asset_class = ["DEVICE"]',
|
|
40352
40360
|
"filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
|
|
40353
|
-
sort: "
|
|
40361
|
+
sort: "Sortable display or wire property:asc|desc; unknown names report valid choices",
|
|
40354
40362
|
"extra-properties": "Comma-separated extra wire properties",
|
|
40355
40363
|
offset: "Starting record; default 0; excludes --cursor",
|
|
40356
40364
|
class: "Server-side asset class filter"
|
|
@@ -40363,7 +40371,7 @@ var tenable_axi_default = {
|
|
|
40363
40371
|
config: "Config path; default credential precedence",
|
|
40364
40372
|
profile: "Profile name; default credential precedence",
|
|
40365
40373
|
fields: "Comma-separated output fields; accepted: key, readable_name, operators, sortable, filterable, control, description; default compact view",
|
|
40366
|
-
full: "Show
|
|
40374
|
+
full: "Show untruncated text; does not add fields or rows; default false",
|
|
40367
40375
|
help: "Show help",
|
|
40368
40376
|
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
40369
40377
|
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
@@ -40377,8 +40385,8 @@ var tenable_axi_default = {
|
|
|
40377
40385
|
flags: {
|
|
40378
40386
|
config: "Config path; default credential precedence",
|
|
40379
40387
|
profile: "Profile name; default credential precedence",
|
|
40380
|
-
fields: "Comma-separated display or wire properties; display names: id, name, class, exposureScore; default compact view",
|
|
40381
|
-
full: "Show
|
|
40388
|
+
fields: "Comma-separated display or wire properties; display names: id, name, class, exposureScore, fqdns, last_observed_at; default compact view",
|
|
40389
|
+
full: "Show untruncated text; does not add fields or rows; default false",
|
|
40382
40390
|
help: "Show help",
|
|
40383
40391
|
id: "Required exact inventory ID",
|
|
40384
40392
|
"extra-properties": "Comma-separated extra wire properties"
|
|
@@ -40770,8 +40778,8 @@ var tenable_axi_default = {
|
|
|
40770
40778
|
flags: {
|
|
40771
40779
|
config: "Config path; default credential precedence",
|
|
40772
40780
|
profile: "Profile name; default credential precedence",
|
|
40773
|
-
fields: "Comma-separated display or wire properties; display names: id, name, severity, state; default compact view",
|
|
40774
|
-
full: "Show
|
|
40781
|
+
fields: "Comma-separated display or wire properties; display names: id, name, severity, state, sensor_type; default compact view",
|
|
40782
|
+
full: "Show untruncated text; does not add fields or rows; default false",
|
|
40775
40783
|
help: "Show help",
|
|
40776
40784
|
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
40777
40785
|
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
@@ -40779,7 +40787,7 @@ var tenable_axi_default = {
|
|
|
40779
40787
|
query: "Simple query text",
|
|
40780
40788
|
filter: 'Repeatable: <property> <operator> <JSON string array>, e.g. severity = ["HIGH"]',
|
|
40781
40789
|
"filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
|
|
40782
|
-
sort: "
|
|
40790
|
+
sort: "Sortable display or wire property:asc|desc; unknown names report valid choices",
|
|
40783
40791
|
"extra-properties": "Comma-separated extra wire properties",
|
|
40784
40792
|
offset: "Starting record; default 0; excludes --cursor"
|
|
40785
40793
|
}
|
|
@@ -40791,7 +40799,7 @@ var tenable_axi_default = {
|
|
|
40791
40799
|
config: "Config path; default credential precedence",
|
|
40792
40800
|
profile: "Profile name; default credential precedence",
|
|
40793
40801
|
fields: "Comma-separated output fields; accepted: key, readable_name, operators, sortable, filterable, control, description; default compact view",
|
|
40794
|
-
full: "Show
|
|
40802
|
+
full: "Show untruncated text; does not add fields or rows; default false",
|
|
40795
40803
|
help: "Show help",
|
|
40796
40804
|
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
40797
40805
|
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
@@ -40804,13 +40812,22 @@ var tenable_axi_default = {
|
|
|
40804
40812
|
flags: {
|
|
40805
40813
|
config: "Config path; default credential precedence",
|
|
40806
40814
|
profile: "Profile name; default credential precedence",
|
|
40807
|
-
fields: "Comma-separated display or wire properties; display names: id, name, severity, state; default compact view",
|
|
40808
|
-
full: "Show
|
|
40815
|
+
fields: "Comma-separated display or wire properties; display names: id, name, severity, state, sensor_type, asset_id, cves; default compact view",
|
|
40816
|
+
full: "Show untruncated text; does not add fields or rows; default false",
|
|
40809
40817
|
help: "Show help",
|
|
40810
40818
|
id: "Required exact inventory ID",
|
|
40811
40819
|
"extra-properties": "Comma-separated extra wire properties"
|
|
40812
40820
|
}
|
|
40813
40821
|
},
|
|
40822
|
+
{
|
|
40823
|
+
command: "finding summary",
|
|
40824
|
+
effect: "read",
|
|
40825
|
+
flags: {
|
|
40826
|
+
config: "Config path; default credential precedence",
|
|
40827
|
+
profile: "Profile name; default credential precedence",
|
|
40828
|
+
help: "Show help"
|
|
40829
|
+
}
|
|
40830
|
+
},
|
|
40814
40831
|
{
|
|
40815
40832
|
command: "home",
|
|
40816
40833
|
effect: "read",
|
|
@@ -40931,7 +40948,7 @@ var tenable_axi_default = {
|
|
|
40931
40948
|
config: "Config path; default credential precedence",
|
|
40932
40949
|
profile: "Profile name; default credential precedence",
|
|
40933
40950
|
fields: "Comma-separated display or wire properties; display names: name, version, publisher; default compact view",
|
|
40934
|
-
full: "Show
|
|
40951
|
+
full: "Show untruncated text; does not add fields or rows; default false",
|
|
40935
40952
|
help: "Show help",
|
|
40936
40953
|
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
40937
40954
|
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
@@ -40939,7 +40956,7 @@ var tenable_axi_default = {
|
|
|
40939
40956
|
query: "Simple query text",
|
|
40940
40957
|
filter: 'Repeatable: <property> <operator> <JSON string array>, e.g. application = ["example-app"]',
|
|
40941
40958
|
"filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
|
|
40942
|
-
sort: "
|
|
40959
|
+
sort: "Sortable display or wire property:asc|desc; unknown names report valid choices",
|
|
40943
40960
|
"extra-properties": "Comma-separated extra wire properties",
|
|
40944
40961
|
offset: "Starting record; default 0; excludes --cursor"
|
|
40945
40962
|
}
|
|
@@ -40951,7 +40968,7 @@ var tenable_axi_default = {
|
|
|
40951
40968
|
config: "Config path; default credential precedence",
|
|
40952
40969
|
profile: "Profile name; default credential precedence",
|
|
40953
40970
|
fields: "Comma-separated output fields; accepted: key, readable_name, operators, sortable, filterable, control, description; default compact view",
|
|
40954
|
-
full: "Show
|
|
40971
|
+
full: "Show untruncated text; does not add fields or rows; default false",
|
|
40955
40972
|
help: "Show help",
|
|
40956
40973
|
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
40957
40974
|
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
@@ -41254,13 +41271,13 @@ var tenable_axi_default = {
|
|
|
41254
41271
|
var hybrid_axi_default = {
|
|
41255
41272
|
generatedBy: "scripts/hybrid-inventory.mjs",
|
|
41256
41273
|
tool: "hybrid-axi",
|
|
41257
|
-
version: "0.1.
|
|
41258
|
-
integrity: "sha512-
|
|
41274
|
+
version: "0.1.2",
|
|
41275
|
+
integrity: "sha512-rveeeytckjW+8lFwKQppSEAncC3yk8KpGqI7Qh3ziJvQtf4ycUrOw+6Tzp9a69gcTamGiYf805OC0+rhIhh6ag==",
|
|
41259
41276
|
parserEvidence: "Published command catalogue, mutation registry and reviewed native parsers and transport gates",
|
|
41260
41277
|
sources: [
|
|
41261
41278
|
{
|
|
41262
41279
|
path: "dist/src/catalogue.js",
|
|
41263
|
-
sha256: "
|
|
41280
|
+
sha256: "cf353500382a0c33a6fa2c1735543ae43ecc10eb53c68e727a8940f7f881b380"
|
|
41264
41281
|
},
|
|
41265
41282
|
{
|
|
41266
41283
|
path: "dist/src/cli.js",
|
|
@@ -41300,7 +41317,7 @@ var hybrid_axi_default = {
|
|
|
41300
41317
|
},
|
|
41301
41318
|
{
|
|
41302
41319
|
path: "dist/src/report-catalogue.js",
|
|
41303
|
-
sha256: "
|
|
41320
|
+
sha256: "3c3346176cf5aabaf177c40a03efd1c67683640a95c8899f71cab1ec4bd95195"
|
|
41304
41321
|
},
|
|
41305
41322
|
{
|
|
41306
41323
|
path: "dist/src/report-file.js",
|
|
@@ -41308,11 +41325,11 @@ var hybrid_axi_default = {
|
|
|
41308
41325
|
},
|
|
41309
41326
|
{
|
|
41310
41327
|
path: "dist/src/reports.js",
|
|
41311
|
-
sha256: "
|
|
41328
|
+
sha256: "167fa9b8a542b149b8056dbb5f27bbe70c0ed4385662fc6ae9698c40e421a8d7"
|
|
41312
41329
|
},
|
|
41313
41330
|
{
|
|
41314
41331
|
path: "dist/src/search-catalogue.js",
|
|
41315
|
-
sha256: "
|
|
41332
|
+
sha256: "42fa4e7e979914c67f99fd9b083f18030ed58c01dc6cbaddea3a03553ac2a353"
|
|
41316
41333
|
},
|
|
41317
41334
|
{
|
|
41318
41335
|
path: "dist/src/search-contracts.js",
|
|
@@ -41320,11 +41337,11 @@ var hybrid_axi_default = {
|
|
|
41320
41337
|
},
|
|
41321
41338
|
{
|
|
41322
41339
|
path: "dist/src/search.js",
|
|
41323
|
-
sha256: "
|
|
41340
|
+
sha256: "cf6192817869625e1d70030c2df748535c39d48632d8e5604cd020003807ef37"
|
|
41324
41341
|
},
|
|
41325
41342
|
{
|
|
41326
41343
|
path: "dist/src/session.js",
|
|
41327
|
-
sha256: "
|
|
41344
|
+
sha256: "c55dce9aea70c4f213a040968783bb81296127395367136593985bfe99b4788c"
|
|
41328
41345
|
},
|
|
41329
41346
|
{
|
|
41330
41347
|
path: "dist/src/setup.js",
|
|
@@ -41435,7 +41452,7 @@ var hybrid_axi_default = {
|
|
|
41435
41452
|
}
|
|
41436
41453
|
}
|
|
41437
41454
|
},
|
|
41438
|
-
skillSha256: "
|
|
41455
|
+
skillSha256: "0dc43810bcc0774457a33dba2454849e2c8588f0607bd770b30fefe09cd0d26c",
|
|
41439
41456
|
nativeWriteSettings: {
|
|
41440
41457
|
supportedOperations: [
|
|
41441
41458
|
"convertQuickScan",
|
|
@@ -44070,19 +44087,19 @@ var commands = {
|
|
|
44070
44087
|
"tenable-axi": {
|
|
44071
44088
|
usage: "artium-axi tenable-axi [<args>]",
|
|
44072
44089
|
purpose: "Investigate Tenable One with managed API keys.",
|
|
44073
|
-
flags: ["Writes and export jobs are off by default and require administrator-enabled operations, preview, --execute and exact --confirm. Downloads are blocked."],
|
|
44090
|
+
flags: ["Writes and export jobs are off by default and require administrator-enabled operations, preview, --execute and exact --confirm. Downloads are blocked.", "Declared file flags accept - to read stdin to EOF within 5 s; otherwise INVALID_INPUT. Close stdin or pass a local file path."],
|
|
44074
44091
|
example: "artium-axi tenable-axi card list --limit 1"
|
|
44075
44092
|
},
|
|
44076
44093
|
"hybrid-axi": {
|
|
44077
44094
|
usage: "artium-axi hybrid-axi [<args>]",
|
|
44078
44095
|
purpose: "Investigate Hybrid Analysis with a managed API key.",
|
|
44079
|
-
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.", transferWarning],
|
|
44096
|
+
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],
|
|
44080
44097
|
example: "artium-axi hybrid-axi quota"
|
|
44081
44098
|
},
|
|
44082
44099
|
"az-axi": {
|
|
44083
44100
|
usage: "artium-axi az-axi [<args>]",
|
|
44084
44101
|
purpose: "Run Azure commands with your managed identity.",
|
|
44085
|
-
flags: ["Arguments after az-axi are forwarded upstream, including --help."],
|
|
44102
|
+
flags: ["Arguments after az-axi are forwarded upstream, including --help.", "Query commands read non-terminal stdin to EOF only without a file, positional query or query flag. api reads stdin only without --body, --body-file or --data; method/path are not body sources. The pinned upstream accepts --body, not --data.", "Tool stdin must reach EOF within 5 s; otherwise INVALID_INPUT. Close stdin or pass --file for queries, --body or --body-file for api."],
|
|
44086
44103
|
example: "artium-axi az-axi sub list"
|
|
44087
44104
|
},
|
|
44088
44105
|
"mg-axi": {
|
|
@@ -44369,9 +44386,12 @@ ${executableBlock}
|
|
|
44369
44386
|
// src/cli/input.ts
|
|
44370
44387
|
import { createReadStream } from "node:fs";
|
|
44371
44388
|
import { basename } from "node:path";
|
|
44372
|
-
async function readBounded(stream, limit) {
|
|
44389
|
+
async function readBounded(stream, limit, stdinAlternative) {
|
|
44373
44390
|
const chunks = [];
|
|
44374
44391
|
let bytes = 0;
|
|
44392
|
+
const deadline = stdinAlternative === void 0 ? void 0 : setTimeout(() => {
|
|
44393
|
+
stream.destroy(new ArtiumError("INVALID_INPUT", `no stdin EOF after 5 s; close stdin or pass ${stdinAlternative}`));
|
|
44394
|
+
}, 5e3);
|
|
44375
44395
|
try {
|
|
44376
44396
|
for await (const chunk of stream) {
|
|
44377
44397
|
const buffer = Buffer.from(chunk);
|
|
@@ -44382,6 +44402,8 @@ async function readBounded(stream, limit) {
|
|
|
44382
44402
|
} catch (error62) {
|
|
44383
44403
|
if (error62 instanceof ArtiumError) throw error62;
|
|
44384
44404
|
throw new ArtiumError("INVALID_INPUT", "Tool input could not be read.", "Check the local input file or stdin.");
|
|
44405
|
+
} finally {
|
|
44406
|
+
clearTimeout(deadline);
|
|
44385
44407
|
}
|
|
44386
44408
|
return Buffer.concat(chunks);
|
|
44387
44409
|
}
|
|
@@ -44400,7 +44422,7 @@ async function toolInput(tool, original) {
|
|
|
44400
44422
|
const equals = args[index].indexOf("=");
|
|
44401
44423
|
const path = equals < 0 ? args[++index] : args[index].slice(equals + 1);
|
|
44402
44424
|
if (path === "-" && (tool === "tenable-axi" || tool === "hybrid-axi" && flag === "--body-file")) {
|
|
44403
|
-
input2.stdin = (await readBounded(process.stdin, inputLimits.stdinBytes)).toString("utf8");
|
|
44425
|
+
input2.stdin = (await readBounded(process.stdin, inputLimits.stdinBytes, flag)).toString("utf8");
|
|
44404
44426
|
continue;
|
|
44405
44427
|
}
|
|
44406
44428
|
if (!path || path === "-") throw new ArtiumError("UNSUPPORTED_INPUT", "A file flag requires a local file path.");
|
|
@@ -44425,20 +44447,22 @@ async function toolInput(tool, original) {
|
|
|
44425
44447
|
}
|
|
44426
44448
|
const route = az_axi_default.commands.find((route2) => ["rg query", "logs query", "api"].includes(route2.handlerCommand) && route2.command.split(" ").every((word, index) => args[leading + index] === word));
|
|
44427
44449
|
let positional = false;
|
|
44450
|
+
let explicitInput = false;
|
|
44428
44451
|
if (route) {
|
|
44429
44452
|
for (let index = leading + route.command.split(" ").length; index < args.length; index++) {
|
|
44430
44453
|
const token = args[index];
|
|
44431
44454
|
if (token === "--") {
|
|
44432
|
-
positional
|
|
44455
|
+
positional ||= index + 1 < args.length;
|
|
44433
44456
|
break;
|
|
44434
44457
|
}
|
|
44435
44458
|
if (!token.startsWith("-") || token === "-") {
|
|
44436
44459
|
positional = true;
|
|
44437
|
-
|
|
44460
|
+
continue;
|
|
44438
44461
|
}
|
|
44439
44462
|
const raw = token.slice(token.startsWith("--") ? 2 : 1).split("=")[0];
|
|
44440
44463
|
const expanded = token.startsWith("--") ? raw : route.shortFlags[raw] ?? raw;
|
|
44441
44464
|
const name = route.flagAliases[expanded] ?? expanded;
|
|
44465
|
+
if ((route.handlerCommand === "api" ? ["body", "body-file", "data"] : ["graph-query", "analytics-query"]).includes(name)) explicitInput = true;
|
|
44442
44466
|
const kind = route.flags[name];
|
|
44443
44467
|
if (token.includes("=") || !kind) continue;
|
|
44444
44468
|
if (kind === "boolean") {
|
|
@@ -44451,8 +44475,8 @@ async function toolInput(tool, original) {
|
|
|
44451
44475
|
}
|
|
44452
44476
|
}
|
|
44453
44477
|
}
|
|
44454
|
-
if (tool === "az-axi" && route && !input2.files?.length && !positional && !process.stdin.isTTY) {
|
|
44455
|
-
const stdin = await readBounded(process.stdin, inputLimits.stdinBytes);
|
|
44478
|
+
if (tool === "az-axi" && route && !input2.files?.length && !explicitInput && (route.handlerCommand === "api" || !positional) && !process.stdin.isTTY) {
|
|
44479
|
+
const stdin = await readBounded(process.stdin, inputLimits.stdinBytes, route.handlerCommand === "api" ? "--data (supported body flag: --body)" : "--file");
|
|
44456
44480
|
if (stdin.length) input2.stdin = stdin.toString("utf8");
|
|
44457
44481
|
}
|
|
44458
44482
|
}
|