@knowttl/artium-axi 0.0.9 → 0.0.10
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 +24 -16
- package/bin/artium-axi.mjs +2507 -1005
- package/package.json +1 -1
package/bin/artium-axi.mjs
CHANGED
|
@@ -6,9 +6,9 @@ var __export = (target, all) => {
|
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
// src/cli/main.ts
|
|
9
|
-
import { randomUUID as
|
|
9
|
+
import { randomUUID as randomUUID4 } from "node:crypto";
|
|
10
10
|
import { homedir as homedir3 } from "node:os";
|
|
11
|
-
import { resolve as
|
|
11
|
+
import { resolve as resolve3, relative, sep, isAbsolute } from "node:path";
|
|
12
12
|
|
|
13
13
|
// node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/external.js
|
|
14
14
|
var external_exports = {};
|
|
@@ -5036,7 +5036,7 @@ var recursive = /* @__PURE__ */ new WeakMap();
|
|
|
5036
5036
|
var NONE = 0;
|
|
5037
5037
|
var ASSUMED = 1;
|
|
5038
5038
|
var PROVEN = 2;
|
|
5039
|
-
function isRecursive(inst, stack,
|
|
5039
|
+
function isRecursive(inst, stack, resolve4) {
|
|
5040
5040
|
const cached2 = recursive.get(inst);
|
|
5041
5041
|
if (cached2 !== void 0)
|
|
5042
5042
|
return cached2 ? PROVEN : NONE;
|
|
@@ -5046,7 +5046,7 @@ function isRecursive(inst, stack, resolve3) {
|
|
|
5046
5046
|
let result = NONE;
|
|
5047
5047
|
const check2 = (child) => {
|
|
5048
5048
|
if (result !== PROVEN && child?._zod) {
|
|
5049
|
-
const answer = isRecursive(child, stack,
|
|
5049
|
+
const answer = isRecursive(child, stack, resolve4);
|
|
5050
5050
|
if (answer > result)
|
|
5051
5051
|
result = answer;
|
|
5052
5052
|
}
|
|
@@ -5057,7 +5057,7 @@ function isRecursive(inst, stack, resolve3) {
|
|
|
5057
5057
|
const desc = Object.getOwnPropertyDescriptor(sh, key);
|
|
5058
5058
|
if (spread && !desc.enumerable)
|
|
5059
5059
|
continue;
|
|
5060
|
-
const child = desc.get ? ASSUMED : desc.value?._zod ? isRecursive(desc.value, stack,
|
|
5060
|
+
const child = desc.get ? ASSUMED : desc.value?._zod ? isRecursive(desc.value, stack, resolve4) : NONE;
|
|
5061
5061
|
if (child > answer)
|
|
5062
5062
|
answer = child;
|
|
5063
5063
|
}
|
|
@@ -5121,7 +5121,7 @@ function isRecursive(inst, stack, resolve3) {
|
|
|
5121
5121
|
break;
|
|
5122
5122
|
// `$ZodLazy` caches its inner on the def, so a resolved edge is followed exactly
|
|
5123
5123
|
case "lazy": {
|
|
5124
|
-
const inner = def._cachedInner ?? (
|
|
5124
|
+
const inner = def._cachedInner ?? (resolve4 ? inst._zod.innerType : void 0);
|
|
5125
5125
|
merge2(inner ? isRecursive(inner, stack, false) : ASSUMED);
|
|
5126
5126
|
break;
|
|
5127
5127
|
}
|
|
@@ -19683,7 +19683,7 @@ var definitions = {
|
|
|
19683
19683
|
STORE_SCHEMA_INVALID: { status: 503, message: "The store schema is unsupported by this image.", next: "Use the matching image, or restore the pre-upgrade backup into a new volume with its matching image and key." },
|
|
19684
19684
|
BACKUP_FAILED: { status: 500, message: "Database backup did not complete.", next: "Check the source store and a writable backup directory; choose a new output file." },
|
|
19685
19685
|
RESTORE_FAILED: { status: 500, message: "Database restore did not complete.", next: "Stop the destination server and use an empty new data volume, an intact backup and its matching master key." },
|
|
19686
|
-
CLI_OUTDATED: { status: 426, message: "The CLI version is too old for this server.", next: "
|
|
19686
|
+
CLI_OUTDATED: { status: 426, message: "The CLI version is too old for this server.", next: "Run artium-axi update to install the current CLI." },
|
|
19687
19687
|
CERTIFICATE_INVALID: { status: 503, message: "The server certificate could not be verified.", next: "Check certificate trust or set ARTIUM_AXI_CA_FILE to the trusted CA file." },
|
|
19688
19688
|
ADMIN_REQUIRED: { status: 403, message: "Administrator capability is required.", next: "Ask an administrator to perform this operation." },
|
|
19689
19689
|
REVISION_CONFLICT: { status: 409, message: "The record changed since it was read.", next: "Read the current record revision and retry your edit." },
|
|
@@ -19823,10 +19823,11 @@ var meResponseSchema = external_exports.strictObject({
|
|
|
19823
19823
|
displayName: external_exports.string(),
|
|
19824
19824
|
administrator: external_exports.boolean(),
|
|
19825
19825
|
roles: external_exports.array(external_exports.string()),
|
|
19826
|
-
accessExpiresAt: external_exports.number().int()
|
|
19826
|
+
accessExpiresAt: external_exports.number().int(),
|
|
19827
|
+
sessionExpiresAt: external_exports.number().int()
|
|
19827
19828
|
});
|
|
19828
19829
|
var accountId = external_exports.string().min(1);
|
|
19829
|
-
var toolSchema = external_exports.enum(["falcon-axi", "vectra-axi", "az-axi", "mg-axi", "ldap-axi", "ado-axi", "awx-axi"]);
|
|
19830
|
+
var toolSchema = external_exports.enum(["falcon-axi", "vectra-axi", "az-axi", "mg-axi", "ldap-axi", "ado-axi", "awx-axi", "tenable-axi"]);
|
|
19830
19831
|
var skillsResponseSchema = external_exports.strictObject({ skills: external_exports.array(external_exports.strictObject({
|
|
19831
19832
|
name: toolSchema,
|
|
19832
19833
|
content: external_exports.string().min(1)
|
|
@@ -20046,6 +20047,10 @@ var adminAuditRoute = {
|
|
|
20046
20047
|
auditEvent: null
|
|
20047
20048
|
};
|
|
20048
20049
|
var nativeSettingsSchemas = {
|
|
20050
|
+
"tenable-axi": external_exports.strictObject({ writes: external_exports.strictObject({
|
|
20051
|
+
allowWrites: external_exports.boolean(),
|
|
20052
|
+
operations: external_exports.array(external_exports.string().regex(/^[A-Za-z0-9][A-Za-z0-9_-]*$/)).min(1).max(64)
|
|
20053
|
+
}).optional() }),
|
|
20049
20054
|
"awx-axi": external_exports.strictObject({ allowWrites: external_exports.boolean().optional() }),
|
|
20050
20055
|
"ldap-axi": external_exports.strictObject({}),
|
|
20051
20056
|
"ado-axi": external_exports.strictObject({ allowWrites: external_exports.boolean().optional() }),
|
|
@@ -20091,10 +20096,25 @@ var healthSchema = external_exports.strictObject({
|
|
|
20091
20096
|
credentialRevision: external_exports.number().int().nullable(),
|
|
20092
20097
|
errorCode: external_exports.enum(Object.keys(errors)).nullable()
|
|
20093
20098
|
});
|
|
20099
|
+
var toolWriteStateSchema = external_exports.strictObject({
|
|
20100
|
+
capable: external_exports.boolean(),
|
|
20101
|
+
enabled: external_exports.boolean(),
|
|
20102
|
+
reason: external_exports.string().nullable(),
|
|
20103
|
+
supportedOperations: external_exports.array(external_exports.string()).nullable(),
|
|
20104
|
+
allowedOperations: external_exports.array(external_exports.string()),
|
|
20105
|
+
unlocks: external_exports.string(),
|
|
20106
|
+
blocked: external_exports.string()
|
|
20107
|
+
});
|
|
20108
|
+
var writeAccessInputSchema = external_exports.strictObject({
|
|
20109
|
+
enabled: external_exports.boolean(),
|
|
20110
|
+
operations: external_exports.array(external_exports.string().min(1).max(256)).max(64).refine((operations) => new Set(operations).size === operations.length).optional(),
|
|
20111
|
+
expectedRevision: external_exports.number().int().positive()
|
|
20112
|
+
});
|
|
20094
20113
|
var adminToolSchema = external_exports.strictObject({
|
|
20095
20114
|
name: toolSchema,
|
|
20096
20115
|
enabled: external_exports.boolean(),
|
|
20097
20116
|
version: external_exports.string(),
|
|
20117
|
+
writeAccess: toolWriteStateSchema,
|
|
20098
20118
|
readOnly: external_exports.boolean().default(true),
|
|
20099
20119
|
nativeSettings: external_exports.record(external_exports.string(), external_exports.unknown()),
|
|
20100
20120
|
revision: external_exports.number().int().positive(),
|
|
@@ -20177,6 +20197,26 @@ var adminCertificateRoutes = {
|
|
|
20177
20197
|
}
|
|
20178
20198
|
};
|
|
20179
20199
|
var adminToolRoutes = {
|
|
20200
|
+
get: {
|
|
20201
|
+
method: "GET",
|
|
20202
|
+
path: "/v1/admin/tools/:tool",
|
|
20203
|
+
input: external_exports.strictObject({}),
|
|
20204
|
+
response: adminToolSchema,
|
|
20205
|
+
authorization: "administrator-and-recent-auth",
|
|
20206
|
+
auditEvent: null
|
|
20207
|
+
},
|
|
20208
|
+
// Changes only write policy. Omitted operations retain the current allow-list; an empty
|
|
20209
|
+
// list clears it while disabling. Graph and Vectra require a supported nonempty allow-list
|
|
20210
|
+
// when enabling; tools without an allow-list reject operations input.
|
|
20211
|
+
// Other native settings and credentials are preserved. Revision conflicts never mutate.
|
|
20212
|
+
writeAccess: {
|
|
20213
|
+
method: "PATCH",
|
|
20214
|
+
path: "/v1/admin/tools/:tool/write-access",
|
|
20215
|
+
input: writeAccessInputSchema,
|
|
20216
|
+
response: adminToolSchema,
|
|
20217
|
+
authorization: "administrator-and-recent-auth",
|
|
20218
|
+
auditEvent: "tool-write-access"
|
|
20219
|
+
},
|
|
20180
20220
|
list: {
|
|
20181
20221
|
method: "GET",
|
|
20182
20222
|
path: "/v1/admin/tools",
|
|
@@ -20559,11 +20599,12 @@ import { readFileSync as readFileSync2 } from "node:fs";
|
|
|
20559
20599
|
import { request as httpRequest } from "node:http";
|
|
20560
20600
|
import { request as httpsRequest } from "node:https";
|
|
20561
20601
|
import { rootCertificates } from "node:tls";
|
|
20602
|
+
import { resolve } from "node:path";
|
|
20562
20603
|
|
|
20563
20604
|
// package.json
|
|
20564
20605
|
var package_default = {
|
|
20565
20606
|
name: "artium-axi",
|
|
20566
|
-
version: "0.0.
|
|
20607
|
+
version: "0.0.10",
|
|
20567
20608
|
private: true,
|
|
20568
20609
|
license: "MIT",
|
|
20569
20610
|
type: "module",
|
|
@@ -20641,8 +20682,20 @@ function sessionPath(platform = process.platform, environment = process.env, hom
|
|
|
20641
20682
|
if (!base) throw new ArtiumError("CLIENT_CONFIG_INVALID", void 0, "Set APPDATA to your writable roaming configuration folder, then sign in again.");
|
|
20642
20683
|
return paths.join(base, "artium-axi", "session.json");
|
|
20643
20684
|
}
|
|
20685
|
+
function clientConfigPath(platform = process.platform, environment = process.env, home = homedir()) {
|
|
20686
|
+
return sessionPath(platform, environment, home).replace(/session\.json$/, "config.json");
|
|
20687
|
+
}
|
|
20688
|
+
function readClientConfig(environment = process.env) {
|
|
20689
|
+
try {
|
|
20690
|
+
return external_exports.object({ serverUrl: external_exports.string(), caFile: external_exports.string().optional() }).parse(JSON.parse(readFileSync(clientConfigPath(process.platform, environment), "utf8")));
|
|
20691
|
+
} catch (error62) {
|
|
20692
|
+
if (error62.code === "ENOENT") return void 0;
|
|
20693
|
+
if (error62 instanceof ArtiumError) throw error62;
|
|
20694
|
+
throw new ArtiumError("CLIENT_CONFIG_INVALID");
|
|
20695
|
+
}
|
|
20696
|
+
}
|
|
20644
20697
|
function restrictWindowsAcl(path, directory) {
|
|
20645
|
-
const script = `$ErrorActionPreference='Stop'; $path=$env:ARTIUM_AXI_SESSION_ACL_PATH; $directory=$env:ARTIUM_AXI_SESSION_ACL_KIND -eq 'directory'; $acl=if ($directory) { [System.Security.AccessControl.DirectorySecurity]::new() } else { [System.Security.AccessControl.FileSecurity]::new() }; $acl.SetAccessRuleProtection($true,$false); $user=[System.Security.Principal.WindowsIdentity]::GetCurrent().User; $inherit=if ($directory) { [System.Security.AccessControl.InheritanceFlags]'ContainerInherit,ObjectInherit' } else { [System.Security.AccessControl.InheritanceFlags]::None }; foreach ($sid in @($user,[System.Security.Principal.SecurityIdentifier]::new('S-1-5-18'),[System.Security.Principal.SecurityIdentifier]::new('S-1-5-32-544'))) { $acl.AddAccessRule([System.Security.AccessControl.FileSystemAccessRule]::new($sid,'FullControl',$inherit,'None','Allow')) };
|
|
20698
|
+
const script = `$ErrorActionPreference='Stop'; $path=$env:ARTIUM_AXI_SESSION_ACL_PATH; $directory=$env:ARTIUM_AXI_SESSION_ACL_KIND -eq 'directory'; $acl=if ($directory) { [System.Security.AccessControl.DirectorySecurity]::new() } else { [System.Security.AccessControl.FileSecurity]::new() }; $acl.SetAccessRuleProtection($true,$false); $user=[System.Security.Principal.WindowsIdentity]::GetCurrent().User; $inherit=if ($directory) { [System.Security.AccessControl.InheritanceFlags]'ContainerInherit,ObjectInherit' } else { [System.Security.AccessControl.InheritanceFlags]::None }; foreach ($sid in @($user,[System.Security.Principal.SecurityIdentifier]::new('S-1-5-18'),[System.Security.Principal.SecurityIdentifier]::new('S-1-5-32-544'))) { $acl.AddAccessRule([System.Security.AccessControl.FileSystemAccessRule]::new($sid,'FullControl',$inherit,'None','Allow')) }; $item=if ($directory) { [System.IO.DirectoryInfo]::new($path) } else { [System.IO.FileInfo]::new($path) }; $item.SetAccessControl($acl)`;
|
|
20646
20699
|
execFileSync("powershell.exe", ["-NoProfile", "-NonInteractive", "-EncodedCommand", Buffer.from(script, "utf16le").toString("base64")], {
|
|
20647
20700
|
stdio: "ignore",
|
|
20648
20701
|
env: { ...process.env, ARTIUM_AXI_SESSION_ACL_PATH: path, ARTIUM_AXI_SESSION_ACL_KIND: directory ? "directory" : "file" }
|
|
@@ -20706,6 +20759,26 @@ var SessionStore = class {
|
|
|
20706
20759
|
rmSync(temporary, { force: true });
|
|
20707
20760
|
}
|
|
20708
20761
|
}
|
|
20762
|
+
writeClientConfig(caFile) {
|
|
20763
|
+
this.secureDirectory();
|
|
20764
|
+
const temporary = join(this.directory, `${randomUUID()}.tmp`);
|
|
20765
|
+
try {
|
|
20766
|
+
const file2 = openSync(temporary, "wx", 384);
|
|
20767
|
+
try {
|
|
20768
|
+
if (this.platform === "win32") this.acl(temporary, false);
|
|
20769
|
+
else fchmodSync(file2, 384);
|
|
20770
|
+
writeFileSync(file2, JSON.stringify({ serverUrl: this.serverUrl, caFile }));
|
|
20771
|
+
fsyncSync(file2);
|
|
20772
|
+
} finally {
|
|
20773
|
+
closeSync(file2);
|
|
20774
|
+
}
|
|
20775
|
+
renameSync(temporary, join(this.directory, "config.json"));
|
|
20776
|
+
} catch {
|
|
20777
|
+
throw new ArtiumError("SESSION_STORAGE_UNAVAILABLE");
|
|
20778
|
+
} finally {
|
|
20779
|
+
rmSync(temporary, { force: true });
|
|
20780
|
+
}
|
|
20781
|
+
}
|
|
20709
20782
|
remove() {
|
|
20710
20783
|
try {
|
|
20711
20784
|
rmSync(this.file, { force: true });
|
|
@@ -20720,8 +20793,8 @@ var SessionStore = class {
|
|
|
20720
20793
|
while (true) {
|
|
20721
20794
|
const watcher = watch(this.directory);
|
|
20722
20795
|
let timer;
|
|
20723
|
-
const changed = new Promise((
|
|
20724
|
-
watcher.once("change", () =>
|
|
20796
|
+
const changed = new Promise((resolve4, reject) => {
|
|
20797
|
+
watcher.once("change", () => resolve4());
|
|
20725
20798
|
watcher.once("error", () => reject(new ArtiumError("SESSION_STORAGE_UNAVAILABLE")));
|
|
20726
20799
|
timer = setTimeout(() => reject(new ArtiumError("SESSION_BUSY")), Math.max(0, deadline - Date.now()));
|
|
20727
20800
|
});
|
|
@@ -20750,11 +20823,14 @@ var SessionStore = class {
|
|
|
20750
20823
|
var DEFAULT_REQUEST_DEADLINE_MS = 9e4;
|
|
20751
20824
|
var Client = class {
|
|
20752
20825
|
constructor(environment = process.env, managed2, requestDeadlineMs = DEFAULT_REQUEST_DEADLINE_MS) {
|
|
20753
|
-
this.environment = environment;
|
|
20754
20826
|
this.managed = managed2;
|
|
20755
20827
|
this.requestDeadlineMs = requestDeadlineMs;
|
|
20756
20828
|
try {
|
|
20757
|
-
const
|
|
20829
|
+
const config2 = !managed2 && (environment.ARTIUM_AXI_URL === void 0 || environment.ARTIUM_AXI_CA_FILE === void 0) ? readClientConfig(environment) : void 0;
|
|
20830
|
+
this.serverUrlSource = environment.ARTIUM_AXI_URL === void 0 ? "config.json" : "ARTIUM_AXI_URL";
|
|
20831
|
+
const caFile = environment.ARTIUM_AXI_CA_FILE ?? config2?.caFile;
|
|
20832
|
+
this.caFile = caFile ? resolve(caFile) : void 0;
|
|
20833
|
+
const url2 = new URL(environment.ARTIUM_AXI_URL ?? config2?.serverUrl ?? "");
|
|
20758
20834
|
if (url2.username || url2.password || url2.href.includes("?") || url2.href.includes("#") || url2.protocol !== "https:" && !(url2.protocol === "http:" && environment.ARTIUM_AXI_TEST_HTTP === "1" && ["localhost", "127.0.0.1", "[::1]"].includes(url2.hostname))) throw new Error();
|
|
20759
20835
|
this.serverUrl = url2.href.replace(/\/$/, "");
|
|
20760
20836
|
if (!managed2) this.storedSessions = new SessionStore(this.serverUrl, sessionPath(process.platform, environment));
|
|
@@ -20764,21 +20840,22 @@ var Client = class {
|
|
|
20764
20840
|
}
|
|
20765
20841
|
managed2?.checkServer(this.serverUrl);
|
|
20766
20842
|
}
|
|
20767
|
-
environment;
|
|
20768
20843
|
managed;
|
|
20769
20844
|
requestDeadlineMs;
|
|
20770
20845
|
serverUrl;
|
|
20846
|
+
serverUrlSource;
|
|
20847
|
+
caFile;
|
|
20771
20848
|
storedSessions;
|
|
20772
20849
|
get sessions() {
|
|
20773
20850
|
if (!this.storedSessions) throw new ArtiumError("INVALID_INPUT", "Session-file operations are unavailable in managed mode.");
|
|
20774
20851
|
return this.storedSessions;
|
|
20775
20852
|
}
|
|
20776
20853
|
certificateVerified = false;
|
|
20777
|
-
async request(path, method, input2, token) {
|
|
20854
|
+
async request(path, method, input2, token, bytes = false) {
|
|
20778
20855
|
this.certificateVerified = false;
|
|
20779
20856
|
let ca;
|
|
20780
20857
|
try {
|
|
20781
|
-
if (this.
|
|
20858
|
+
if (this.caFile) ca = [...rootCertificates, readFileSync2(this.caFile, "utf8")];
|
|
20782
20859
|
} catch {
|
|
20783
20860
|
throw new ArtiumError("CLIENT_CONFIG_INVALID");
|
|
20784
20861
|
}
|
|
@@ -20786,7 +20863,7 @@ var Client = class {
|
|
|
20786
20863
|
const controller = new AbortController();
|
|
20787
20864
|
const deadline = setTimeout(() => controller.abort(), this.requestDeadlineMs);
|
|
20788
20865
|
const url2 = new URL(`${this.serverUrl}${path}`);
|
|
20789
|
-
const result = await new Promise((
|
|
20866
|
+
const result = await new Promise((resolve4, reject) => {
|
|
20790
20867
|
const request = (url2.protocol === "https:" ? httpsRequest : httpRequest)(url2, {
|
|
20791
20868
|
method,
|
|
20792
20869
|
ca,
|
|
@@ -20804,9 +20881,9 @@ var Client = class {
|
|
|
20804
20881
|
response.on("error", () => reject(new ArtiumError("SERVER_UNAVAILABLE")));
|
|
20805
20882
|
response.on("end", () => {
|
|
20806
20883
|
try {
|
|
20807
|
-
|
|
20884
|
+
resolve4({
|
|
20808
20885
|
status: response.statusCode,
|
|
20809
|
-
body: response.statusCode === 204 ? void 0 : JSON.parse(Buffer.concat(chunks).toString("utf8")),
|
|
20886
|
+
body: bytes ? Buffer.concat(chunks) : response.statusCode === 204 ? void 0 : JSON.parse(Buffer.concat(chunks).toString("utf8")),
|
|
20810
20887
|
serverVersion: typeof response.headers["x-artium-cli-version"] === "string" ? response.headers["x-artium-cli-version"] : void 0
|
|
20811
20888
|
});
|
|
20812
20889
|
} catch {
|
|
@@ -20842,7 +20919,7 @@ var Client = class {
|
|
|
20842
20919
|
if (result.status !== 200 && result.status !== 204) throw new ArtiumError("INVALID_RESPONSE");
|
|
20843
20920
|
if ((path === "/v1/auth/login" || path === "/v1/auth/device") && result.serverVersion && result.serverVersion !== cliVersion) {
|
|
20844
20921
|
const version2 = result.serverVersion.replace(/[\x00-\x1f\x7f]/g, "");
|
|
20845
|
-
const warning = `warning: CLI ${cliVersion} differs from server ${version2};
|
|
20922
|
+
const warning = `warning: CLI ${cliVersion} differs from server ${version2}; run artium-axi update, or run npm install -g @knowttl/artium-axi@${version2}.
|
|
20846
20923
|
`;
|
|
20847
20924
|
if (this.managed) this.managed.write("stderr", warning);
|
|
20848
20925
|
else process.stderr.write(warning);
|
|
@@ -20916,13 +20993,13 @@ async function readPassword(stdin, environmentVariable) {
|
|
|
20916
20993
|
process.stdin.setRawMode(true);
|
|
20917
20994
|
process.stdin.resume();
|
|
20918
20995
|
try {
|
|
20919
|
-
return await new Promise((
|
|
20996
|
+
return await new Promise((resolve4, reject) => {
|
|
20920
20997
|
let password = "";
|
|
20921
20998
|
const keypress = (text2, key) => {
|
|
20922
20999
|
if (key.name === "return" || key.ctrl && key.name === "c") {
|
|
20923
21000
|
process.stdin.off("keypress", keypress);
|
|
20924
21001
|
if (key.ctrl) reject(new ArtiumError("CANCELLED"));
|
|
20925
|
-
else
|
|
21002
|
+
else resolve4(password);
|
|
20926
21003
|
} else if (key.name === "backspace") password = Array.from(password).slice(0, -1).join("");
|
|
20927
21004
|
else if (text2 && !key.ctrl && !new RegExp("\\p{Cc}", "u").test(text2)) password += text2;
|
|
20928
21005
|
};
|
|
@@ -20936,82 +21013,17 @@ async function readPassword(stdin, environmentVariable) {
|
|
|
20936
21013
|
}
|
|
20937
21014
|
}
|
|
20938
21015
|
|
|
20939
|
-
// src/cli/doctor.ts
|
|
20940
|
-
var DIAGNOSTIC_REQUEST_DEADLINE_MS = 5e3;
|
|
20941
|
-
async function doctor(createClient = (deadline) => new Client(process.env, void 0, deadline), write = (text2) => {
|
|
20942
|
-
process.stdout.write(text2);
|
|
20943
|
-
}) {
|
|
20944
|
-
let failure2;
|
|
20945
|
-
const line = (name, pass, detail, error62) => {
|
|
20946
|
-
if (!pass) failure2 ??= error62 ?? new ArtiumError("INVALID_RESPONSE");
|
|
20947
|
-
write(`${pass ? "pass" : "fail"}: ${name}${detail ? ` (${detail})` : ""}
|
|
20948
|
-
`);
|
|
20949
|
-
};
|
|
20950
|
-
let client;
|
|
20951
|
-
try {
|
|
20952
|
-
client = createClient(DIAGNOSTIC_REQUEST_DEADLINE_MS);
|
|
20953
|
-
} catch (error62) {
|
|
20954
|
-
for (const name of ["server address", "certificate", "token", "CLI version"]) line(name, false, "CLIENT_CONFIG_INVALID");
|
|
20955
|
-
throw error62;
|
|
20956
|
-
}
|
|
20957
|
-
let addressOk = false;
|
|
20958
|
-
try {
|
|
20959
|
-
const live = await client.request("/health/live", "GET");
|
|
20960
|
-
addressOk = !!live && typeof live === "object" && "status" in live && live.status === "ok";
|
|
20961
|
-
line("server address", addressOk);
|
|
20962
|
-
line("certificate", client.certificateVerified, client.certificateVerified ? void 0 : "test HTTP", new ArtiumError("CLIENT_CONFIG_INVALID"));
|
|
20963
|
-
} catch (error62) {
|
|
20964
|
-
const cause = error62 instanceof ArtiumError ? error62 : new ArtiumError("INVALID_RESPONSE");
|
|
20965
|
-
line("server address", cause.code === "CERTIFICATE_INVALID", cause.code, cause);
|
|
20966
|
-
line("certificate", client.certificateVerified, client.certificateVerified ? void 0 : cause.code, cause);
|
|
20967
|
-
}
|
|
20968
|
-
if (!addressOk && failure2) throw failure2;
|
|
20969
|
-
let versionOk = true;
|
|
20970
|
-
let versionError;
|
|
20971
|
-
try {
|
|
20972
|
-
await client.request("/v1/me", "GET");
|
|
20973
|
-
} catch (error62) {
|
|
20974
|
-
versionOk = error62 instanceof ArtiumError && error62.code === "TOKEN_INVALID";
|
|
20975
|
-
if (!versionOk) versionError = error62 instanceof ArtiumError ? error62 : new ArtiumError("INVALID_RESPONSE");
|
|
20976
|
-
}
|
|
20977
|
-
let tokenOk = false;
|
|
20978
|
-
let tokenError;
|
|
20979
|
-
try {
|
|
20980
|
-
tokenOk = meResponseSchema.safeParse(await client.authenticated("/v1/me", "GET")).success;
|
|
20981
|
-
} catch (error62) {
|
|
20982
|
-
tokenError = error62 instanceof ArtiumError ? error62 : new ArtiumError("INVALID_RESPONSE");
|
|
20983
|
-
}
|
|
20984
|
-
line("token", tokenOk, void 0, tokenError);
|
|
20985
|
-
line("CLI version", versionOk, void 0, versionError);
|
|
20986
|
-
if (tokenOk && versionOk) {
|
|
20987
|
-
try {
|
|
20988
|
-
const parsed = toolsResponseSchema.safeParse(await client.authenticated("/v1/tools", "GET"));
|
|
20989
|
-
if (!parsed.success) throw new ArtiumError("INVALID_RESPONSE");
|
|
20990
|
-
for (const tool of parsed.data.tools) line(
|
|
20991
|
-
tool.name,
|
|
20992
|
-
tool.status === "ok",
|
|
20993
|
-
tool.status,
|
|
20994
|
-
new ArtiumError(tool.status === "unconfigured" ? "CREDENTIAL_NOT_CONFIGURED" : tool.status === "error" ? "TOOL_FAILED" : tool.status === "disabled" ? "TOOL_DISABLED" : "SERVER_UNAVAILABLE")
|
|
20995
|
-
);
|
|
20996
|
-
} catch (error62) {
|
|
20997
|
-
const cause = error62 instanceof ArtiumError ? error62 : new ArtiumError("INVALID_RESPONSE");
|
|
20998
|
-
line("tools", false, cause.code, cause);
|
|
20999
|
-
}
|
|
21000
|
-
}
|
|
21001
|
-
if (failure2) throw failure2;
|
|
21002
|
-
}
|
|
21003
|
-
|
|
21004
21016
|
// tools/inventories/falcon-axi.json
|
|
21005
21017
|
var falcon_axi_default = {
|
|
21006
21018
|
generatedBy: "scripts/falcon-inventory.mjs",
|
|
21007
21019
|
tool: "falcon-axi",
|
|
21008
21020
|
repository: "https://github.com/knowttl/falcon-axi.git",
|
|
21009
|
-
tag: "v0.5.
|
|
21010
|
-
commit: "
|
|
21011
|
-
version: "0.5.
|
|
21021
|
+
tag: "v0.5.1",
|
|
21022
|
+
commit: "b595b500681eee476ddeb2d8d459bb9f8ad2125f",
|
|
21023
|
+
version: "0.5.1",
|
|
21012
21024
|
parser: {
|
|
21013
21025
|
path: "falcon_axi/cli.py",
|
|
21014
|
-
sha256: "
|
|
21026
|
+
sha256: "2f7ee1d6601dafb63e5e40cc3b1fe28b295f67f7da2f9e23e747cca644caa09d",
|
|
21015
21027
|
aliases: {},
|
|
21016
21028
|
shortFlags: {},
|
|
21017
21029
|
repeats: "last value wins",
|
|
@@ -21632,7 +21644,8 @@ var falcon_axi_default = {
|
|
|
21632
21644
|
profile: "value",
|
|
21633
21645
|
query: "value",
|
|
21634
21646
|
repository: "value",
|
|
21635
|
-
since: "value"
|
|
21647
|
+
since: "value",
|
|
21648
|
+
wait: "value"
|
|
21636
21649
|
},
|
|
21637
21650
|
input: "No file or raw URL input; cursors and queries remain native values"
|
|
21638
21651
|
},
|
|
@@ -21646,7 +21659,8 @@ var falcon_axi_default = {
|
|
|
21646
21659
|
"no-member-cid": "boolean",
|
|
21647
21660
|
config: "value",
|
|
21648
21661
|
profile: "value",
|
|
21649
|
-
repository: "value"
|
|
21662
|
+
repository: "value",
|
|
21663
|
+
wait: "value"
|
|
21650
21664
|
},
|
|
21651
21665
|
input: "No file or raw URL input; cursors and queries remain native values"
|
|
21652
21666
|
},
|
|
@@ -22477,10 +22491,10 @@ var falcon_axi_default = {
|
|
|
22477
22491
|
var vectra_axi_default = {
|
|
22478
22492
|
generatedBy: "scripts/upstream-inventory.mjs",
|
|
22479
22493
|
tool: "vectra-axi",
|
|
22480
|
-
version: "0.1.
|
|
22481
|
-
integrity: "sha512-
|
|
22494
|
+
version: "0.1.8",
|
|
22495
|
+
integrity: "sha512-Wvn73g5hm4mzQQKhNnKvAjt6SfGFrPD2EAYMa4AXhoVqFfjXjxnQLk6tUw7E92jozeHtpZ+aDXSGMHaJhhTi1Q==",
|
|
22482
22496
|
parserEvidence: "Installed pinned catalogue exports, provisional until adapter acceptance",
|
|
22483
|
-
packageManifestSha256: "
|
|
22497
|
+
packageManifestSha256: "0e2e4e616e06435582fcd96787a2088f7fda5b0b99c32daa4d6c7dc8c2b2f3fb",
|
|
22484
22498
|
environment: [
|
|
22485
22499
|
{
|
|
22486
22500
|
name: "VECTRA_AXI_CONFIG",
|
|
@@ -22546,6 +22560,38 @@ var vectra_axi_default = {
|
|
|
22546
22560
|
nativeWriteSettings: {
|
|
22547
22561
|
default: "disabled",
|
|
22548
22562
|
disposition: "server-owned",
|
|
22563
|
+
supportedOperations: [
|
|
22564
|
+
"qux.account.assignment.create",
|
|
22565
|
+
"qux.account.assignment.reassign",
|
|
22566
|
+
"qux.account.assignment.unassign",
|
|
22567
|
+
"qux.account.note.add",
|
|
22568
|
+
"qux.account.note.delete",
|
|
22569
|
+
"qux.account.note.edit",
|
|
22570
|
+
"qux.account.tag.bulk-delete",
|
|
22571
|
+
"qux.account.tag.bulk-set",
|
|
22572
|
+
"qux.account.tag.set",
|
|
22573
|
+
"qux.detection.note.add",
|
|
22574
|
+
"qux.detection.note.delete",
|
|
22575
|
+
"qux.detection.note.edit",
|
|
22576
|
+
"qux.detection.tag.bulk-delete",
|
|
22577
|
+
"qux.detection.tag.bulk-set",
|
|
22578
|
+
"qux.detection.tag.set",
|
|
22579
|
+
"qux.host.assignment.create",
|
|
22580
|
+
"qux.host.assignment.reassign",
|
|
22581
|
+
"qux.host.assignment.unassign",
|
|
22582
|
+
"qux.host.note.add",
|
|
22583
|
+
"qux.host.note.delete",
|
|
22584
|
+
"qux.host.note.edit",
|
|
22585
|
+
"qux.host.tag.bulk-delete",
|
|
22586
|
+
"qux.host.tag.bulk-set",
|
|
22587
|
+
"qux.host.tag.set",
|
|
22588
|
+
"rux.account.note.delete",
|
|
22589
|
+
"rux.account.note.edit",
|
|
22590
|
+
"rux.detection.note.delete",
|
|
22591
|
+
"rux.detection.note.edit",
|
|
22592
|
+
"rux.host.note.delete",
|
|
22593
|
+
"rux.host.note.edit"
|
|
22594
|
+
],
|
|
22549
22595
|
profileFields: {
|
|
22550
22596
|
"writes.allowWrites": "boolean",
|
|
22551
22597
|
"writes.operations": "string[]"
|
|
@@ -22597,12 +22643,13 @@ var vectra_axi_default = {
|
|
|
22597
22643
|
help: {
|
|
22598
22644
|
command: "vectra-axi detection list",
|
|
22599
22645
|
description: "List detections on QUX v2.5 or RUX v3.4 with server-side filters and a bounded window",
|
|
22646
|
+
pagination: "QUX: collection pages; bounded --all supported; RUX: collection pages; bounded --all supported",
|
|
22600
22647
|
flags: {
|
|
22601
22648
|
"--help": "Show concise help; default false",
|
|
22602
22649
|
"--state <state>": "Filter by server-side detection state",
|
|
22603
22650
|
"--detection-type <type>": "Filter by server-side detection type",
|
|
22604
22651
|
"--detection-category <category>": "Filter by server-side detection category",
|
|
22605
|
-
"--host-id <id>": "Filter by server-side host ID (non-negative integer)",
|
|
22652
|
+
"--host-id <id>": "Filter by server-side host ID (non-negative integer); find it with host list --name <text>, then detection list --host-id <id>",
|
|
22606
22653
|
"--tags <tags>": "Filter by server-side tags",
|
|
22607
22654
|
"--certainty-gte <score>": "Filter by server-side minimum certainty",
|
|
22608
22655
|
"--threat-gte <score>": "Filter by server-side minimum threat",
|
|
@@ -22610,7 +22657,7 @@ var vectra_axi_default = {
|
|
|
22610
22657
|
"--min-id <id>": "Server-side minimum detection ID (non-negative integer)",
|
|
22611
22658
|
"--max-id <id>": "Server-side maximum detection ID (non-negative integer)",
|
|
22612
22659
|
"--limit <rows>": "Row window for this read; default 100",
|
|
22613
|
-
"--fields <list>": "Comma-separated
|
|
22660
|
+
"--fields <list>": "Comma-separated detection fields, including first_timestamp,last_timestamp,src_ip,src_host,summary,grouped_details; default id,detection_type,state,threat,certainty",
|
|
22614
22661
|
"--all": "Traverse pages within 10 requests, 8 MiB, 60 seconds and 10000 rows; cannot combine with --limit",
|
|
22615
22662
|
"--cursor <cursor>": "Resume a capped list with its original filters"
|
|
22616
22663
|
},
|
|
@@ -22642,7 +22689,7 @@ var vectra_axi_default = {
|
|
|
22642
22689
|
},
|
|
22643
22690
|
source: {
|
|
22644
22691
|
path: "dist/src/catalogue.js",
|
|
22645
|
-
sha256: "
|
|
22692
|
+
sha256: "5fadea660c71fb4021a4c130699ae3883c54e801c8e3eb6c3f370a10b0a04930"
|
|
22646
22693
|
}
|
|
22647
22694
|
},
|
|
22648
22695
|
flags: [
|
|
@@ -22973,6 +23020,7 @@ var vectra_axi_default = {
|
|
|
22973
23020
|
profile: "value",
|
|
22974
23021
|
config: "value",
|
|
22975
23022
|
id: "value",
|
|
23023
|
+
fields: "value",
|
|
22976
23024
|
full: "boolean"
|
|
22977
23025
|
}
|
|
22978
23026
|
},
|
|
@@ -22995,6 +23043,7 @@ var vectra_axi_default = {
|
|
|
22995
23043
|
help: "boolean",
|
|
22996
23044
|
profile: "value",
|
|
22997
23045
|
config: "value",
|
|
23046
|
+
name: "value",
|
|
22998
23047
|
"threat-gte": "value",
|
|
22999
23048
|
"certainty-gte": "value",
|
|
23000
23049
|
tags: "value",
|
|
@@ -23402,6 +23451,7 @@ var vectra_axi_default = {
|
|
|
23402
23451
|
help: "boolean",
|
|
23403
23452
|
profile: "value",
|
|
23404
23453
|
config: "value",
|
|
23454
|
+
all: "boolean",
|
|
23405
23455
|
account: "value",
|
|
23406
23456
|
host: "value",
|
|
23407
23457
|
assignee: "value",
|
|
@@ -23434,6 +23484,7 @@ var vectra_axi_default = {
|
|
|
23434
23484
|
help: "boolean",
|
|
23435
23485
|
profile: "value",
|
|
23436
23486
|
config: "value",
|
|
23487
|
+
all: "boolean",
|
|
23437
23488
|
limit: "value",
|
|
23438
23489
|
fields: "value",
|
|
23439
23490
|
cursor: "value"
|
|
@@ -23454,6 +23505,7 @@ var vectra_axi_default = {
|
|
|
23454
23505
|
help: "boolean",
|
|
23455
23506
|
profile: "value",
|
|
23456
23507
|
config: "value",
|
|
23508
|
+
all: "boolean",
|
|
23457
23509
|
username: "value",
|
|
23458
23510
|
limit: "value",
|
|
23459
23511
|
fields: "value",
|
|
@@ -23490,6 +23542,7 @@ var vectra_axi_default = {
|
|
|
23490
23542
|
help: "boolean",
|
|
23491
23543
|
profile: "value",
|
|
23492
23544
|
config: "value",
|
|
23545
|
+
all: "boolean",
|
|
23493
23546
|
name: "value",
|
|
23494
23547
|
type: "value",
|
|
23495
23548
|
limit: "value",
|
|
@@ -23512,6 +23565,7 @@ var vectra_axi_default = {
|
|
|
23512
23565
|
help: "boolean",
|
|
23513
23566
|
profile: "value",
|
|
23514
23567
|
config: "value",
|
|
23568
|
+
all: "boolean",
|
|
23515
23569
|
id: "value",
|
|
23516
23570
|
name: "value",
|
|
23517
23571
|
ordering: "value",
|
|
@@ -23527,6 +23581,7 @@ var vectra_axi_default = {
|
|
|
23527
23581
|
help: "boolean",
|
|
23528
23582
|
profile: "value",
|
|
23529
23583
|
config: "value",
|
|
23584
|
+
all: "boolean",
|
|
23530
23585
|
contains: "value",
|
|
23531
23586
|
ordering: "value",
|
|
23532
23587
|
limit: "value",
|
|
@@ -23611,727 +23666,6 @@ var vectra_axi_default = {
|
|
|
23611
23666
|
]
|
|
23612
23667
|
};
|
|
23613
23668
|
|
|
23614
|
-
// tools/inventories/ldap-axi.json
|
|
23615
|
-
var ldap_axi_default = {
|
|
23616
|
-
generatedBy: "scripts/ldap-inventory.mjs",
|
|
23617
|
-
tool: "ldap-axi",
|
|
23618
|
-
version: "0.2.0",
|
|
23619
|
-
integrity: "sha512-w/gE4jHaUHE0iKh3ucDnDG0AVrhP0VwpFCEcw3wSTzLmTBMNZrJ9AFB06j2jnf4TFgK5+5NhF0EE0R69mv7crA==",
|
|
23620
|
-
parserEvidence: "Installed pinned command schemas and reviewed CLI globals and entry routes",
|
|
23621
|
-
sources: [
|
|
23622
|
-
{
|
|
23623
|
-
path: "package.json",
|
|
23624
|
-
sha256: "7ee133bf0333fe975c905418c9ecdd542836dab39f52aa5f7f630776d2bcc0b0"
|
|
23625
|
-
},
|
|
23626
|
-
{
|
|
23627
|
-
path: "README.md",
|
|
23628
|
-
sha256: "3a1eeda8c376c39853e4835acf2a1d61f76f23a555651417d0d691459fbb3139"
|
|
23629
|
-
},
|
|
23630
|
-
{
|
|
23631
|
-
path: "axi-credential.schema.json",
|
|
23632
|
-
sha256: "76b9f5f449d844dcd4365b966ed907515582f72fc920b936dae825ebf1b7cc53"
|
|
23633
|
-
},
|
|
23634
|
-
{
|
|
23635
|
-
path: "dist/src/cli.js",
|
|
23636
|
-
sha256: "2cb024b2848c2c9e27c292205b3ed86a829cfed21d52e8fea06ef544a039ec2a"
|
|
23637
|
-
},
|
|
23638
|
-
{
|
|
23639
|
-
path: "dist/src/schema.js",
|
|
23640
|
-
sha256: "0d5946fa26efb55e8480e9a22f93cdb6b321c48697e77ca02c4c99630f11284f"
|
|
23641
|
-
},
|
|
23642
|
-
{
|
|
23643
|
-
path: "dist/src/config.js",
|
|
23644
|
-
sha256: "cbc48584b6ff2a2a70375e9e8e6242a87543a3e6e6f7e1c055a2d29c42b677f9"
|
|
23645
|
-
},
|
|
23646
|
-
{
|
|
23647
|
-
path: "dist/src/secrets.js",
|
|
23648
|
-
sha256: "9f2ccf86515cec1dd65f2dd5850188232374535f7fe56a788fdc7b94d91c8532"
|
|
23649
|
-
},
|
|
23650
|
-
{
|
|
23651
|
-
path: "dist/src/directory/auth.js",
|
|
23652
|
-
sha256: "d2b3a61cb9e63744462e3a6a2841fcddb2b48e7823c307841028288cfe9d688b"
|
|
23653
|
-
},
|
|
23654
|
-
{
|
|
23655
|
-
path: "dist/src/directory/policy.js",
|
|
23656
|
-
sha256: "a697dd78990493f7f1c19d22278ebb922c997e9cf88a51b12adfaca30fa8a01d"
|
|
23657
|
-
}
|
|
23658
|
-
],
|
|
23659
|
-
credentialSchema: {
|
|
23660
|
-
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
23661
|
-
title: "ldap-axi profile",
|
|
23662
|
-
type: "object",
|
|
23663
|
-
additionalProperties: false,
|
|
23664
|
-
required: [
|
|
23665
|
-
"url"
|
|
23666
|
-
],
|
|
23667
|
-
properties: {
|
|
23668
|
-
url: {
|
|
23669
|
-
type: "string",
|
|
23670
|
-
pattern: "^ldaps?://",
|
|
23671
|
-
description: "LDAP URL without userinfo; use the server FQDN for ambient authentication"
|
|
23672
|
-
},
|
|
23673
|
-
auth: {
|
|
23674
|
-
enum: [
|
|
23675
|
-
"auto",
|
|
23676
|
-
"gssapi",
|
|
23677
|
-
"simple"
|
|
23678
|
-
],
|
|
23679
|
-
default: "auto"
|
|
23680
|
-
},
|
|
23681
|
-
bindDn: {
|
|
23682
|
-
type: "string",
|
|
23683
|
-
minLength: 1,
|
|
23684
|
-
description: "Simple-bind identity, required for simple authentication"
|
|
23685
|
-
},
|
|
23686
|
-
bindPassword: {
|
|
23687
|
-
"x-secret": true,
|
|
23688
|
-
description: "Simple-bind password reference; defaults to env LDAP_AXI_BIND_PASSWORD. No stored secrets.",
|
|
23689
|
-
oneOf: [
|
|
23690
|
-
{
|
|
23691
|
-
type: "object",
|
|
23692
|
-
additionalProperties: false,
|
|
23693
|
-
required: [
|
|
23694
|
-
"env"
|
|
23695
|
-
],
|
|
23696
|
-
properties: {
|
|
23697
|
-
env: {
|
|
23698
|
-
type: "string",
|
|
23699
|
-
pattern: "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
23700
|
-
}
|
|
23701
|
-
}
|
|
23702
|
-
},
|
|
23703
|
-
{
|
|
23704
|
-
type: "object",
|
|
23705
|
-
additionalProperties: false,
|
|
23706
|
-
required: [
|
|
23707
|
-
"file"
|
|
23708
|
-
],
|
|
23709
|
-
properties: {
|
|
23710
|
-
file: {
|
|
23711
|
-
type: "string",
|
|
23712
|
-
pattern: "^(?:/|[A-Za-z]:[\\\\/])",
|
|
23713
|
-
description: "Absolute local path to a private UTF-8 password file; UNC/device paths are forbidden on Windows"
|
|
23714
|
-
}
|
|
23715
|
-
}
|
|
23716
|
-
}
|
|
23717
|
-
]
|
|
23718
|
-
},
|
|
23719
|
-
base: {
|
|
23720
|
-
type: "string"
|
|
23721
|
-
},
|
|
23722
|
-
pageSize: {
|
|
23723
|
-
type: "integer",
|
|
23724
|
-
minimum: 1,
|
|
23725
|
-
maximum: 1e3
|
|
23726
|
-
},
|
|
23727
|
-
caFile: {
|
|
23728
|
-
type: "string",
|
|
23729
|
-
minLength: 1
|
|
23730
|
-
},
|
|
23731
|
-
startTls: {
|
|
23732
|
-
type: "boolean",
|
|
23733
|
-
default: false
|
|
23734
|
-
},
|
|
23735
|
-
tlsMaxVersion: {
|
|
23736
|
-
const: "1.2"
|
|
23737
|
-
},
|
|
23738
|
-
flavor: {
|
|
23739
|
-
enum: [
|
|
23740
|
-
"ad",
|
|
23741
|
-
"adlds",
|
|
23742
|
-
"ldapv3"
|
|
23743
|
-
]
|
|
23744
|
-
},
|
|
23745
|
-
gssapiService: {
|
|
23746
|
-
type: "string",
|
|
23747
|
-
minLength: 1
|
|
23748
|
-
},
|
|
23749
|
-
gssapiProtection: {
|
|
23750
|
-
enum: [
|
|
23751
|
-
"none",
|
|
23752
|
-
"confidentiality"
|
|
23753
|
-
]
|
|
23754
|
-
}
|
|
23755
|
-
}
|
|
23756
|
-
},
|
|
23757
|
-
adapterBoundary: {
|
|
23758
|
-
unsafeOverrides: [
|
|
23759
|
-
"config",
|
|
23760
|
-
"url",
|
|
23761
|
-
"start-tls",
|
|
23762
|
-
"ca-file",
|
|
23763
|
-
"ca-only",
|
|
23764
|
-
"tls-no-verify",
|
|
23765
|
-
"tls-max-version",
|
|
23766
|
-
"insecure-plaintext",
|
|
23767
|
-
"anonymous",
|
|
23768
|
-
"profile",
|
|
23769
|
-
"auth",
|
|
23770
|
-
"gssapi-service",
|
|
23771
|
-
"gssapi-protection"
|
|
23772
|
-
],
|
|
23773
|
-
blockedCommands: [
|
|
23774
|
-
"config",
|
|
23775
|
-
"profile",
|
|
23776
|
-
"setup"
|
|
23777
|
-
],
|
|
23778
|
-
sensitiveFlags: [
|
|
23779
|
-
"base",
|
|
23780
|
-
"filter",
|
|
23781
|
-
"name",
|
|
23782
|
-
"sam",
|
|
23783
|
-
"upn",
|
|
23784
|
-
"uid"
|
|
23785
|
-
],
|
|
23786
|
-
authentication: "Stored simple-bind identity over verified LDAPS or StartTLS; no ambient ticket or keytab",
|
|
23787
|
-
inputs: {
|
|
23788
|
-
stdin: "unsupported",
|
|
23789
|
-
files: "unsupported",
|
|
23790
|
-
caFile: "stored PEM materialized privately by host"
|
|
23791
|
-
},
|
|
23792
|
-
resources: {
|
|
23793
|
-
nodeHeapMiB: 128
|
|
23794
|
-
},
|
|
23795
|
-
nativeWrites: "read-only upstream design"
|
|
23796
|
-
},
|
|
23797
|
-
discovery: {
|
|
23798
|
-
commands: [
|
|
23799
|
-
"entry",
|
|
23800
|
-
"user",
|
|
23801
|
-
"group",
|
|
23802
|
-
"computer",
|
|
23803
|
-
"auth status",
|
|
23804
|
-
"server"
|
|
23805
|
-
],
|
|
23806
|
-
example: [
|
|
23807
|
-
"user",
|
|
23808
|
-
"list",
|
|
23809
|
-
"--limit",
|
|
23810
|
-
"1"
|
|
23811
|
-
],
|
|
23812
|
-
help: "List user accounts.\nLDAPv3 users are inetOrgPerson or posixAccount entries; use ldap-axi entry search for account + simpleSecurityObject service accounts.\nUsage: ldap-axi user list [flags]\nFlags:\n --help show this help\n --base <dn> search base (default: environment, config, or server naming contexts)\n --disabled include disabled accounts (LDAPv3: permanent ppolicy locks)\n --enabled include enabled accounts (LDAPv3: exclude permanent ppolicy locks)\n --locked include current AD locks or recorded LDAPv3 ppolicy lock candidates\n --all read all pages up to --max-rows or --limit\n --name <pattern> match cn\n --sam <pattern> AD only: match sAMAccountName\n --upn <pattern> AD only: match userPrincipalName\n --uid <pattern> LDAPv3 only: match uid\n --filter <RFC4515> add a raw LDAP filter\n --scope <base|one|sub> search scope (default: sub)\n --max-rows <n> maximum output rows\n --page-size <1..1000> LDAP page size (default: AD 1000, LDAPv3 500; config overrides)\n --limit <n> alias for bounded list output\n --fields <name,...> select output fields\n --attributes <name,...> request and emit raw attributes\nActive Directory fields: sam, upn, name, dn, enabled, locked, last_logon, object_sid, when_created\nActive Directory defaults: sam, name, enabled, last_logon\nLDAPv3 fields: uid, name, mail, enabled, locked, account_state, dn, entry_uuid, when_created\nLDAPv3 defaults: uid, name, mail, enabled, locked, account_state\nExamples:\n ldap-axi user list --disabled --max-rows 25\n ldap-axi user list --name Alice --fields name,dn --limit 50"
|
|
23813
|
-
},
|
|
23814
|
-
suggestionFields: [
|
|
23815
|
-
"help"
|
|
23816
|
-
],
|
|
23817
|
-
format: "TOON",
|
|
23818
|
-
commands: [
|
|
23819
|
-
{
|
|
23820
|
-
command: "home",
|
|
23821
|
-
flags: {
|
|
23822
|
-
help: "boolean",
|
|
23823
|
-
config: "value",
|
|
23824
|
-
url: "value",
|
|
23825
|
-
base: "value",
|
|
23826
|
-
"start-tls": "boolean",
|
|
23827
|
-
"ca-file": "value",
|
|
23828
|
-
"ca-only": "boolean",
|
|
23829
|
-
"tls-no-verify": "boolean",
|
|
23830
|
-
"tls-max-version": "value",
|
|
23831
|
-
"insecure-plaintext": "boolean",
|
|
23832
|
-
anonymous: "boolean",
|
|
23833
|
-
profile: "value",
|
|
23834
|
-
auth: "value",
|
|
23835
|
-
"gssapi-service": "value",
|
|
23836
|
-
"gssapi-protection": "value"
|
|
23837
|
-
},
|
|
23838
|
-
positionalInput: false
|
|
23839
|
-
},
|
|
23840
|
-
{
|
|
23841
|
-
command: "auth status",
|
|
23842
|
-
flags: {
|
|
23843
|
-
help: "boolean",
|
|
23844
|
-
config: "value",
|
|
23845
|
-
url: "value",
|
|
23846
|
-
base: "value",
|
|
23847
|
-
"start-tls": "boolean",
|
|
23848
|
-
"ca-file": "value",
|
|
23849
|
-
"ca-only": "boolean",
|
|
23850
|
-
"tls-no-verify": "boolean",
|
|
23851
|
-
"tls-max-version": "value",
|
|
23852
|
-
"insecure-plaintext": "boolean",
|
|
23853
|
-
anonymous: "boolean",
|
|
23854
|
-
profile: "value",
|
|
23855
|
-
auth: "value",
|
|
23856
|
-
"gssapi-service": "value",
|
|
23857
|
-
"gssapi-protection": "value",
|
|
23858
|
-
offline: "boolean"
|
|
23859
|
-
},
|
|
23860
|
-
positionalInput: false
|
|
23861
|
-
},
|
|
23862
|
-
{
|
|
23863
|
-
command: "server",
|
|
23864
|
-
flags: {
|
|
23865
|
-
help: "boolean",
|
|
23866
|
-
config: "value",
|
|
23867
|
-
url: "value",
|
|
23868
|
-
base: "value",
|
|
23869
|
-
"start-tls": "boolean",
|
|
23870
|
-
"ca-file": "value",
|
|
23871
|
-
"ca-only": "boolean",
|
|
23872
|
-
"tls-no-verify": "boolean",
|
|
23873
|
-
"tls-max-version": "value",
|
|
23874
|
-
"insecure-plaintext": "boolean",
|
|
23875
|
-
anonymous: "boolean",
|
|
23876
|
-
profile: "value",
|
|
23877
|
-
auth: "value",
|
|
23878
|
-
"gssapi-service": "value",
|
|
23879
|
-
"gssapi-protection": "value"
|
|
23880
|
-
},
|
|
23881
|
-
positionalInput: false
|
|
23882
|
-
},
|
|
23883
|
-
{
|
|
23884
|
-
command: "entry search",
|
|
23885
|
-
flags: {
|
|
23886
|
-
help: "boolean",
|
|
23887
|
-
config: "value",
|
|
23888
|
-
url: "value",
|
|
23889
|
-
base: "value",
|
|
23890
|
-
"start-tls": "boolean",
|
|
23891
|
-
"ca-file": "value",
|
|
23892
|
-
"ca-only": "boolean",
|
|
23893
|
-
"tls-no-verify": "boolean",
|
|
23894
|
-
"tls-max-version": "value",
|
|
23895
|
-
"insecure-plaintext": "boolean",
|
|
23896
|
-
anonymous: "boolean",
|
|
23897
|
-
profile: "value",
|
|
23898
|
-
auth: "value",
|
|
23899
|
-
"gssapi-service": "value",
|
|
23900
|
-
"gssapi-protection": "value",
|
|
23901
|
-
filter: "value",
|
|
23902
|
-
scope: "value",
|
|
23903
|
-
attributes: "value",
|
|
23904
|
-
"page-size": "value",
|
|
23905
|
-
"max-rows": "value",
|
|
23906
|
-
all: "boolean"
|
|
23907
|
-
},
|
|
23908
|
-
positionalInput: false
|
|
23909
|
-
},
|
|
23910
|
-
{
|
|
23911
|
-
command: "entry show",
|
|
23912
|
-
flags: {
|
|
23913
|
-
help: "boolean",
|
|
23914
|
-
config: "value",
|
|
23915
|
-
url: "value",
|
|
23916
|
-
base: "value",
|
|
23917
|
-
"start-tls": "boolean",
|
|
23918
|
-
"ca-file": "value",
|
|
23919
|
-
"ca-only": "boolean",
|
|
23920
|
-
"tls-no-verify": "boolean",
|
|
23921
|
-
"tls-max-version": "value",
|
|
23922
|
-
"insecure-plaintext": "boolean",
|
|
23923
|
-
anonymous: "boolean",
|
|
23924
|
-
profile: "value",
|
|
23925
|
-
auth: "value",
|
|
23926
|
-
"gssapi-service": "value",
|
|
23927
|
-
"gssapi-protection": "value",
|
|
23928
|
-
attributes: "value",
|
|
23929
|
-
"page-size": "value"
|
|
23930
|
-
},
|
|
23931
|
-
positionalInput: true
|
|
23932
|
-
},
|
|
23933
|
-
{
|
|
23934
|
-
command: "user list",
|
|
23935
|
-
flags: {
|
|
23936
|
-
help: "boolean",
|
|
23937
|
-
config: "value",
|
|
23938
|
-
url: "value",
|
|
23939
|
-
base: "value",
|
|
23940
|
-
"start-tls": "boolean",
|
|
23941
|
-
"ca-file": "value",
|
|
23942
|
-
"ca-only": "boolean",
|
|
23943
|
-
"tls-no-verify": "boolean",
|
|
23944
|
-
"tls-max-version": "value",
|
|
23945
|
-
"insecure-plaintext": "boolean",
|
|
23946
|
-
anonymous: "boolean",
|
|
23947
|
-
profile: "value",
|
|
23948
|
-
auth: "value",
|
|
23949
|
-
"gssapi-service": "value",
|
|
23950
|
-
"gssapi-protection": "value",
|
|
23951
|
-
disabled: "boolean",
|
|
23952
|
-
enabled: "boolean",
|
|
23953
|
-
locked: "boolean",
|
|
23954
|
-
all: "boolean",
|
|
23955
|
-
name: "value",
|
|
23956
|
-
sam: "value",
|
|
23957
|
-
upn: "value",
|
|
23958
|
-
uid: "value",
|
|
23959
|
-
filter: "value",
|
|
23960
|
-
scope: "value",
|
|
23961
|
-
"max-rows": "value",
|
|
23962
|
-
"page-size": "value",
|
|
23963
|
-
limit: "value",
|
|
23964
|
-
fields: "value",
|
|
23965
|
-
attributes: "value"
|
|
23966
|
-
},
|
|
23967
|
-
positionalInput: false
|
|
23968
|
-
},
|
|
23969
|
-
{
|
|
23970
|
-
command: "user show",
|
|
23971
|
-
flags: {
|
|
23972
|
-
help: "boolean",
|
|
23973
|
-
config: "value",
|
|
23974
|
-
url: "value",
|
|
23975
|
-
base: "value",
|
|
23976
|
-
"start-tls": "boolean",
|
|
23977
|
-
"ca-file": "value",
|
|
23978
|
-
"ca-only": "boolean",
|
|
23979
|
-
"tls-no-verify": "boolean",
|
|
23980
|
-
"tls-max-version": "value",
|
|
23981
|
-
"insecure-plaintext": "boolean",
|
|
23982
|
-
anonymous: "boolean",
|
|
23983
|
-
profile: "value",
|
|
23984
|
-
auth: "value",
|
|
23985
|
-
"gssapi-service": "value",
|
|
23986
|
-
"gssapi-protection": "value",
|
|
23987
|
-
fields: "value",
|
|
23988
|
-
attributes: "value"
|
|
23989
|
-
},
|
|
23990
|
-
positionalInput: true
|
|
23991
|
-
},
|
|
23992
|
-
{
|
|
23993
|
-
command: "user groups",
|
|
23994
|
-
flags: {
|
|
23995
|
-
help: "boolean",
|
|
23996
|
-
config: "value",
|
|
23997
|
-
url: "value",
|
|
23998
|
-
base: "value",
|
|
23999
|
-
"start-tls": "boolean",
|
|
24000
|
-
"ca-file": "value",
|
|
24001
|
-
"ca-only": "boolean",
|
|
24002
|
-
"tls-no-verify": "boolean",
|
|
24003
|
-
"tls-max-version": "value",
|
|
24004
|
-
"insecure-plaintext": "boolean",
|
|
24005
|
-
anonymous: "boolean",
|
|
24006
|
-
profile: "value",
|
|
24007
|
-
auth: "value",
|
|
24008
|
-
"gssapi-service": "value",
|
|
24009
|
-
"gssapi-protection": "value",
|
|
24010
|
-
nested: "boolean",
|
|
24011
|
-
"max-rows": "value",
|
|
24012
|
-
"page-size": "value",
|
|
24013
|
-
fields: "value"
|
|
24014
|
-
},
|
|
24015
|
-
positionalInput: true
|
|
24016
|
-
},
|
|
24017
|
-
{
|
|
24018
|
-
command: "group list",
|
|
24019
|
-
flags: {
|
|
24020
|
-
help: "boolean",
|
|
24021
|
-
config: "value",
|
|
24022
|
-
url: "value",
|
|
24023
|
-
base: "value",
|
|
24024
|
-
"start-tls": "boolean",
|
|
24025
|
-
"ca-file": "value",
|
|
24026
|
-
"ca-only": "boolean",
|
|
24027
|
-
"tls-no-verify": "boolean",
|
|
24028
|
-
"tls-max-version": "value",
|
|
24029
|
-
"insecure-plaintext": "boolean",
|
|
24030
|
-
anonymous: "boolean",
|
|
24031
|
-
profile: "value",
|
|
24032
|
-
auth: "value",
|
|
24033
|
-
"gssapi-service": "value",
|
|
24034
|
-
"gssapi-protection": "value",
|
|
24035
|
-
all: "boolean",
|
|
24036
|
-
name: "value",
|
|
24037
|
-
sam: "value",
|
|
24038
|
-
filter: "value",
|
|
24039
|
-
scope: "value",
|
|
24040
|
-
"max-rows": "value",
|
|
24041
|
-
"page-size": "value",
|
|
24042
|
-
limit: "value",
|
|
24043
|
-
fields: "value",
|
|
24044
|
-
attributes: "value"
|
|
24045
|
-
},
|
|
24046
|
-
positionalInput: false
|
|
24047
|
-
},
|
|
24048
|
-
{
|
|
24049
|
-
command: "group show",
|
|
24050
|
-
flags: {
|
|
24051
|
-
help: "boolean",
|
|
24052
|
-
config: "value",
|
|
24053
|
-
url: "value",
|
|
24054
|
-
base: "value",
|
|
24055
|
-
"start-tls": "boolean",
|
|
24056
|
-
"ca-file": "value",
|
|
24057
|
-
"ca-only": "boolean",
|
|
24058
|
-
"tls-no-verify": "boolean",
|
|
24059
|
-
"tls-max-version": "value",
|
|
24060
|
-
"insecure-plaintext": "boolean",
|
|
24061
|
-
anonymous: "boolean",
|
|
24062
|
-
profile: "value",
|
|
24063
|
-
auth: "value",
|
|
24064
|
-
"gssapi-service": "value",
|
|
24065
|
-
"gssapi-protection": "value",
|
|
24066
|
-
fields: "value",
|
|
24067
|
-
attributes: "value"
|
|
24068
|
-
},
|
|
24069
|
-
positionalInput: true
|
|
24070
|
-
},
|
|
24071
|
-
{
|
|
24072
|
-
command: "group members",
|
|
24073
|
-
flags: {
|
|
24074
|
-
help: "boolean",
|
|
24075
|
-
config: "value",
|
|
24076
|
-
url: "value",
|
|
24077
|
-
base: "value",
|
|
24078
|
-
"start-tls": "boolean",
|
|
24079
|
-
"ca-file": "value",
|
|
24080
|
-
"ca-only": "boolean",
|
|
24081
|
-
"tls-no-verify": "boolean",
|
|
24082
|
-
"tls-max-version": "value",
|
|
24083
|
-
"insecure-plaintext": "boolean",
|
|
24084
|
-
anonymous: "boolean",
|
|
24085
|
-
profile: "value",
|
|
24086
|
-
auth: "value",
|
|
24087
|
-
"gssapi-service": "value",
|
|
24088
|
-
"gssapi-protection": "value",
|
|
24089
|
-
nested: "boolean",
|
|
24090
|
-
"max-rows": "value",
|
|
24091
|
-
"page-size": "value",
|
|
24092
|
-
fields: "value"
|
|
24093
|
-
},
|
|
24094
|
-
positionalInput: true
|
|
24095
|
-
},
|
|
24096
|
-
{
|
|
24097
|
-
command: "computer list",
|
|
24098
|
-
flags: {
|
|
24099
|
-
help: "boolean",
|
|
24100
|
-
config: "value",
|
|
24101
|
-
url: "value",
|
|
24102
|
-
base: "value",
|
|
24103
|
-
"start-tls": "boolean",
|
|
24104
|
-
"ca-file": "value",
|
|
24105
|
-
"ca-only": "boolean",
|
|
24106
|
-
"tls-no-verify": "boolean",
|
|
24107
|
-
"tls-max-version": "value",
|
|
24108
|
-
"insecure-plaintext": "boolean",
|
|
24109
|
-
anonymous: "boolean",
|
|
24110
|
-
profile: "value",
|
|
24111
|
-
auth: "value",
|
|
24112
|
-
"gssapi-service": "value",
|
|
24113
|
-
"gssapi-protection": "value",
|
|
24114
|
-
all: "boolean",
|
|
24115
|
-
name: "value",
|
|
24116
|
-
sam: "value",
|
|
24117
|
-
filter: "value",
|
|
24118
|
-
scope: "value",
|
|
24119
|
-
"max-rows": "value",
|
|
24120
|
-
"page-size": "value",
|
|
24121
|
-
limit: "value",
|
|
24122
|
-
fields: "value",
|
|
24123
|
-
attributes: "value"
|
|
24124
|
-
},
|
|
24125
|
-
positionalInput: false
|
|
24126
|
-
},
|
|
24127
|
-
{
|
|
24128
|
-
command: "computer show",
|
|
24129
|
-
flags: {
|
|
24130
|
-
help: "boolean",
|
|
24131
|
-
config: "value",
|
|
24132
|
-
url: "value",
|
|
24133
|
-
base: "value",
|
|
24134
|
-
"start-tls": "boolean",
|
|
24135
|
-
"ca-file": "value",
|
|
24136
|
-
"ca-only": "boolean",
|
|
24137
|
-
"tls-no-verify": "boolean",
|
|
24138
|
-
"tls-max-version": "value",
|
|
24139
|
-
"insecure-plaintext": "boolean",
|
|
24140
|
-
anonymous: "boolean",
|
|
24141
|
-
profile: "value",
|
|
24142
|
-
auth: "value",
|
|
24143
|
-
"gssapi-service": "value",
|
|
24144
|
-
"gssapi-protection": "value",
|
|
24145
|
-
fields: "value",
|
|
24146
|
-
attributes: "value"
|
|
24147
|
-
},
|
|
24148
|
-
positionalInput: true
|
|
24149
|
-
}
|
|
24150
|
-
]
|
|
24151
|
-
};
|
|
24152
|
-
|
|
24153
|
-
// src/cli/help.ts
|
|
24154
|
-
var commands = {
|
|
24155
|
-
home: { usage: "artium-axi [tools [show <tool>]|whoami|login|passwd|logout|doctor|setup|<tool> <args>]", purpose: "Show your identity, roles and available tools.", flags: ["--version (default false; print the client package version and exit)"], example: "artium-axi" },
|
|
24156
|
-
setup: {
|
|
24157
|
-
usage: "artium-axi setup --host <claude|codex|opencode|pi> [--hook] [--force]",
|
|
24158
|
-
purpose: "Install skills for your signed-in account\u2019s granted tools and an optional Claude Code session hook.",
|
|
24159
|
-
flags: ["--host <claude|codex|opencode|pi> (required)", "--hook (default false; Claude Code only)", "--force (default false; explicitly replace an edited skill)"],
|
|
24160
|
-
example: "artium-axi setup --host claude --hook"
|
|
24161
|
-
},
|
|
24162
|
-
tools: { usage: "artium-axi tools", purpose: "List available tools with their status and pinned version.", flags: [], example: "artium-axi tools" },
|
|
24163
|
-
"tools show": { usage: "artium-axi tools show <tool>", purpose: "Show one available tool and its vetted upstream help.", flags: [], example: "artium-axi tools show falcon-axi" },
|
|
24164
|
-
whoami: { usage: "artium-axi whoami", purpose: "Show your identity, roles, access expiry and server.", flags: [], example: "artium-axi whoami" },
|
|
24165
|
-
login: {
|
|
24166
|
-
usage: "artium-axi login --sso | --username <username> [--password-stdin]",
|
|
24167
|
-
purpose: "Sign in through browser SSO (8-hour session) or with a local account.",
|
|
24168
|
-
flags: ["--sso (default false; open the displayed URL in any browser and approve your terminal code; no password flags)", "--username <username> (required for local sign-in)", "--password-stdin (default false; local only; otherwise ARTIUM_AXI_PASSWORD or a terminal prompt)"],
|
|
24169
|
-
example: "artium-axi login --sso"
|
|
24170
|
-
},
|
|
24171
|
-
passwd: {
|
|
24172
|
-
usage: "artium-axi passwd [--password-stdin]",
|
|
24173
|
-
purpose: "Change your password, then sign in again.",
|
|
24174
|
-
flags: ["--password-stdin (default false; otherwise a terminal prompt; current password uses ARTIUM_AXI_CURRENT_PASSWORD or a terminal prompt)"],
|
|
24175
|
-
example: "artium-axi passwd --password-stdin"
|
|
24176
|
-
},
|
|
24177
|
-
logout: { usage: "artium-axi logout", purpose: "Remove local tokens and revoke the server session.", flags: [], example: "artium-axi logout" },
|
|
24178
|
-
doctor: { usage: "artium-axi doctor", purpose: "Check the server, certificate, token, CLI version and cached tool health.", flags: [], example: "artium-axi doctor" },
|
|
24179
|
-
"falcon-axi": {
|
|
24180
|
-
usage: "artium-axi falcon-axi [<args>]",
|
|
24181
|
-
purpose: "Run Falcon commands with your managed credentials.",
|
|
24182
|
-
flags: ["Arguments after falcon-axi are forwarded upstream, including --help."],
|
|
24183
|
-
example: `artium-axi falcon-axi ${falcon_axi_default.discovery.example.join(" ")}`
|
|
24184
|
-
},
|
|
24185
|
-
"vectra-axi": {
|
|
24186
|
-
usage: "artium-axi vectra-axi [<args>]",
|
|
24187
|
-
purpose: "Run Vectra commands with your managed credentials.",
|
|
24188
|
-
flags: ["Arguments after vectra-axi are forwarded upstream, including --help."],
|
|
24189
|
-
example: `artium-axi vectra-axi ${vectra_axi_default.discovery.example.join(" ")}`
|
|
24190
|
-
},
|
|
24191
|
-
"ldap-axi": {
|
|
24192
|
-
usage: "artium-axi ldap-axi [<args>]",
|
|
24193
|
-
purpose: "Read directory data with the managed LDAP bind identity.",
|
|
24194
|
-
flags: ["Arguments after ldap-axi are forwarded upstream, including --help."],
|
|
24195
|
-
example: `artium-axi ldap-axi ${ldap_axi_default.discovery.example.join(" ")}`
|
|
24196
|
-
},
|
|
24197
|
-
"ado-axi": {
|
|
24198
|
-
usage: "artium-axi ado-axi [<args>]",
|
|
24199
|
-
purpose: "Run Azure DevOps commands with managed credentials.",
|
|
24200
|
-
flags: ["Arguments after ado-axi include --help. Organization and credentials are managed by Artium; api is GET only; writes are off by default."],
|
|
24201
|
-
example: "artium-axi ado-axi project list --limit 1"
|
|
24202
|
-
},
|
|
24203
|
-
"awx-axi": {
|
|
24204
|
-
usage: "artium-axi awx-axi [<args>]",
|
|
24205
|
-
purpose: "Inspect AWX automation with managed credentials.",
|
|
24206
|
-
flags: ["Arguments after awx-axi include --help. Operational writes are off by default; configuration, deletion and security writes are blocked."],
|
|
24207
|
-
example: "artium-axi awx-axi job list --limit 1"
|
|
24208
|
-
},
|
|
24209
|
-
"az-axi": {
|
|
24210
|
-
usage: "artium-axi az-axi [<args>]",
|
|
24211
|
-
purpose: "Run Azure commands with your managed identity.",
|
|
24212
|
-
flags: ["Arguments after az-axi are forwarded upstream, including --help."],
|
|
24213
|
-
example: "artium-axi az-axi sub list"
|
|
24214
|
-
},
|
|
24215
|
-
"mg-axi": {
|
|
24216
|
-
usage: "artium-axi mg-axi [<args>]",
|
|
24217
|
-
purpose: "Run Microsoft Graph commands with your managed identity.",
|
|
24218
|
-
flags: ["Arguments after mg-axi are forwarded upstream, including --help."],
|
|
24219
|
-
example: "artium-axi mg-axi entra user list"
|
|
24220
|
-
},
|
|
24221
|
-
"managed-session": {
|
|
24222
|
-
usage: "artium-axi --managed-session <command> [<args>]",
|
|
24223
|
-
purpose: "Let a caller supply and persist sessions through private pipes.",
|
|
24224
|
-
flags: [],
|
|
24225
|
-
example: "artium-axi --managed-session whoami"
|
|
24226
|
-
}
|
|
24227
|
-
};
|
|
24228
|
-
function commandHelp(command) {
|
|
24229
|
-
const entry = commands[command];
|
|
24230
|
-
const flags = [
|
|
24231
|
-
toolSchema.safeParse(command).success ? "--help before the tool name (default false)" : "--help (default false)",
|
|
24232
|
-
...entry.flags,
|
|
24233
|
-
"--managed-session before the command (default false; caller-owned sessions; see artium-axi --managed-session --help)"
|
|
24234
|
-
];
|
|
24235
|
-
const protocol = [
|
|
24236
|
-
"Session JSON on inherited pipe fd 3, new sessions and rotations as JSON lines on private pipe fd 4; no session file.",
|
|
24237
|
-
"Managed input: {serverUrl, accessToken, refreshToken?}; close fd 3 after JSON (64 KiB maximum). Output: {serverUrl, status, accessToken, refreshToken, accessExpiresAt, familyExpiresAt} per rotation, before retry, including on later failure.",
|
|
24238
|
-
"Managed login: fd 3 is unused; fd 4 must be a writable private pipe/socket. Local sign-in requires --username <username> --password-stdin with protected inherited stdin; password argv and ARTIUM_AXI_PASSWORD are refused. SSO uses login --sso and displays browser approval instructions immediately. New sessions use the rotation envelope; password-change-required returns {serverUrl, status, passwordChangeToken, passwordChangeExpiresAt} on fd 4 and exits 1.",
|
|
24239
|
-
"Managed exits: 0 success; 2 invalid JSON/descriptors or refused passwd/logout/setup; 1 authentication/transport failure; tool exit codes pass through. Only TOKEN_EXPIRED permits one refresh/retry; without refreshToken or on refusal, return control to the caller."
|
|
24240
|
-
];
|
|
24241
|
-
const purposes = command === "home" ? `commands[${Object.keys(commands).length - 2}]{command,purpose}:
|
|
24242
|
-
${Object.entries(commands).filter(([name]) => name !== "home" && name !== "managed-session").map(([name, value]) => ` ${name},${JSON.stringify(value.purpose)}`).join("\n")}
|
|
24243
|
-
` : "";
|
|
24244
|
-
return `purpose: ${entry.purpose}
|
|
24245
|
-
usage: ${entry.usage}
|
|
24246
|
-
${purposes}flags[${flags.length}]:
|
|
24247
|
-
${flags.map((flag) => ` - ${JSON.stringify(flag)}`).join("\n")}
|
|
24248
|
-
example: ${entry.example}
|
|
24249
|
-
` + (command === "login" || command === "managed-session" ? `managedSession[${protocol.length}]:
|
|
24250
|
-
${protocol.map((line) => ` - ${JSON.stringify(line)}`).join("\n")}
|
|
24251
|
-
` : "");
|
|
24252
|
-
}
|
|
24253
|
-
function validateArguments(args, prefixHelp) {
|
|
24254
|
-
const command = args[0];
|
|
24255
|
-
if (command === "tools") args = [...args.filter((arg) => arg !== "--help"), ...args.filter((arg) => arg === "--help")];
|
|
24256
|
-
const rootFlags = "--help, --version, --managed-session (before the command)";
|
|
24257
|
-
const rootCommands = Object.keys(commands).filter((name) => name !== "home" && name !== "managed-session" && name !== "tools show").join(", ");
|
|
24258
|
-
function fail(token, level2, choices2) {
|
|
24259
|
-
const kind = token?.startsWith("-") ? "flag" : "argument";
|
|
24260
|
-
const message = token === void 0 ? `Missing argument for ${level2}.` : command === "login" || command === "passwd" ? `Unexpected argument at position ${args.indexOf(token) + 1} for ${level2}. Password arguments are refused.` : `Unknown or unexpected ${kind} ${JSON.stringify(kind === "flag" ? token.split("=")[0] : token)} for ${level2}.`;
|
|
24261
|
-
throw new ArtiumError("INVALID_INPUT", message, choices2);
|
|
24262
|
-
}
|
|
24263
|
-
if (!command) return;
|
|
24264
|
-
if (command === "--version" && args.length === 1) return;
|
|
24265
|
-
if (!Object.hasOwn(commands, command) || command === "home" || command === "managed-session" || command === "tools show") {
|
|
24266
|
-
fail(command, "artium-axi", `Valid commands: ${rootCommands}. Valid flags: ${rootFlags}.`);
|
|
24267
|
-
}
|
|
24268
|
-
if (toolSchema.safeParse(command).success) {
|
|
24269
|
-
if (prefixHelp && args.length > 1) fail(args[1], command, `Use artium-axi --help ${command} for local help; artium-axi ${command} --help for upstream flags.`);
|
|
24270
|
-
return;
|
|
24271
|
-
}
|
|
24272
|
-
let level = command;
|
|
24273
|
-
let start = 1;
|
|
24274
|
-
if (command === "tools" && args[1] === "show") {
|
|
24275
|
-
level = "tools show";
|
|
24276
|
-
start = 2;
|
|
24277
|
-
}
|
|
24278
|
-
const entry = commands[level];
|
|
24279
|
-
const validFlags = ["--help", ...entry.flags.map((flag) => flag.split(" ")[0])];
|
|
24280
|
-
const choices = `Valid flags for ${level}: ${validFlags.join(", ")}.` + (level === "tools" ? " Valid subcommands: show <tool>." : level === "tools show" ? ` Valid tools: ${toolSchema.options.join(", ")}.` : "");
|
|
24281
|
-
let tool = false;
|
|
24282
|
-
const seen = /* @__PURE__ */ new Set();
|
|
24283
|
-
for (let index = start; index < args.length; index++) {
|
|
24284
|
-
const token = args[index];
|
|
24285
|
-
if (level === "tools show" && !token.startsWith("-") && !tool) {
|
|
24286
|
-
if (!toolSchema.safeParse(token).success) fail(token, level, choices);
|
|
24287
|
-
tool = true;
|
|
24288
|
-
} else {
|
|
24289
|
-
if (!validFlags.includes(token) || seen.has(token)) fail(token, level, choices);
|
|
24290
|
-
seen.add(token);
|
|
24291
|
-
if (token === "--username" || token === "--host") {
|
|
24292
|
-
const value = args[index + 1];
|
|
24293
|
-
if (!value) fail(value, `${level} ${token}`, `Supply ${token} ${token === "--host" ? "<claude|codex|opencode|pi>" : "<username>"}. ${choices}`);
|
|
24294
|
-
if (token === "--host" && !["claude", "codex", "opencode", "pi"].includes(value)) fail(value, `${level} --host`, `Valid hosts: claude, codex, opencode, pi. Use ${entry.usage}.`);
|
|
24295
|
-
index++;
|
|
24296
|
-
}
|
|
24297
|
-
}
|
|
24298
|
-
}
|
|
24299
|
-
if (level === "tools show" && !tool && !seen.has("--help") && !prefixHelp) fail(void 0, level, choices);
|
|
24300
|
-
}
|
|
24301
|
-
function helpCommand(args, prefixHelp = false) {
|
|
24302
|
-
if (args[0] === "setup" && args.includes("--help")) {
|
|
24303
|
-
const path2 = args.filter((arg) => arg !== "--help");
|
|
24304
|
-
for (let index = 1; index < path2.length; index++) {
|
|
24305
|
-
if (path2[index] === "--host" && ["claude", "codex", "opencode", "pi"].includes(path2[index + 1])) index++;
|
|
24306
|
-
else if (path2[index] !== "--hook" && path2[index] !== "--force") return void 0;
|
|
24307
|
-
}
|
|
24308
|
-
return "setup";
|
|
24309
|
-
}
|
|
24310
|
-
if (toolSchema.safeParse(args[0]).success) return prefixHelp && args.length === 2 ? args[0] : void 0;
|
|
24311
|
-
if (args[0] === "login" || args[0] === "passwd") {
|
|
24312
|
-
if (args[0] === "login" && args.length === 3 && args.includes("--sso") && args.includes("--help")) return "login";
|
|
24313
|
-
let requested = false;
|
|
24314
|
-
let username = false;
|
|
24315
|
-
let stdin = false;
|
|
24316
|
-
for (let index = 1; index < args.length; index++) {
|
|
24317
|
-
const option = args[index];
|
|
24318
|
-
if (option === "--username" && args[0] === "login" && !username && args[index + 1] !== void 0) {
|
|
24319
|
-
username = true;
|
|
24320
|
-
index++;
|
|
24321
|
-
} else if (option === "--password-stdin" && !stdin) stdin = true;
|
|
24322
|
-
else if (option === "--help" && !requested) requested = true;
|
|
24323
|
-
else return void 0;
|
|
24324
|
-
}
|
|
24325
|
-
return requested ? args[0] : void 0;
|
|
24326
|
-
}
|
|
24327
|
-
if (!args.includes("--help")) return void 0;
|
|
24328
|
-
const path = args.filter((arg) => arg !== "--help");
|
|
24329
|
-
if (path.length === 0) return "home";
|
|
24330
|
-
if (path[0] === "tools" && path[1] === "show" && (path.length === 2 || path.length === 3 && toolSchema.safeParse(path[2]).success)) return "tools show";
|
|
24331
|
-
if (path.length === 1 && path[0] !== "home" && Object.hasOwn(commands, path[0])) return path[0];
|
|
24332
|
-
return void 0;
|
|
24333
|
-
}
|
|
24334
|
-
|
|
24335
23669
|
// tools/inventories/az-axi.json
|
|
24336
23670
|
var az_axi_default = {
|
|
24337
23671
|
generatedBy: "scripts/upstream-inventory.mjs",
|
|
@@ -29064,6 +28398,13 @@ var mg_axi_default = {
|
|
|
29064
28398
|
],
|
|
29065
28399
|
nativeWriteSettings: {
|
|
29066
28400
|
default: "disabled",
|
|
28401
|
+
supportedOperations: [
|
|
28402
|
+
"entra.conditional-access.policy.update",
|
|
28403
|
+
"entra.risky-user.dismiss",
|
|
28404
|
+
"entra.user.revokeSessions",
|
|
28405
|
+
"entra.user.update",
|
|
28406
|
+
"mg.entra.group.member.add"
|
|
28407
|
+
],
|
|
29067
28408
|
profileFields: {
|
|
29068
28409
|
"writes.allowWrites": "boolean",
|
|
29069
28410
|
"writes.operations": "string[]"
|
|
@@ -33640,171 +32981,710 @@ var mg_axi_default = {
|
|
|
33640
32981
|
positionalInput: false
|
|
33641
32982
|
},
|
|
33642
32983
|
{
|
|
33643
|
-
command: "entra lifecycle run user-processing-result count",
|
|
32984
|
+
command: "entra lifecycle run user-processing-result count",
|
|
32985
|
+
flags: {
|
|
32986
|
+
help: "boolean",
|
|
32987
|
+
profile: "value",
|
|
32988
|
+
"api-version": "value",
|
|
32989
|
+
workflow: "value",
|
|
32990
|
+
run: "value",
|
|
32991
|
+
scopes: "value",
|
|
32992
|
+
config: "value"
|
|
32993
|
+
},
|
|
32994
|
+
positionalInput: false
|
|
32995
|
+
},
|
|
32996
|
+
{
|
|
32997
|
+
command: "entra lifecycle run subject-processing-result list",
|
|
32998
|
+
flags: {
|
|
32999
|
+
help: "boolean",
|
|
33000
|
+
profile: "value",
|
|
33001
|
+
"api-version": "value",
|
|
33002
|
+
workflow: "value",
|
|
33003
|
+
run: "value",
|
|
33004
|
+
limit: "value",
|
|
33005
|
+
all: "boolean",
|
|
33006
|
+
filter: "value",
|
|
33007
|
+
fields: "value",
|
|
33008
|
+
full: "boolean",
|
|
33009
|
+
cursor: "value",
|
|
33010
|
+
scopes: "value",
|
|
33011
|
+
config: "value"
|
|
33012
|
+
},
|
|
33013
|
+
positionalInput: false
|
|
33014
|
+
},
|
|
33015
|
+
{
|
|
33016
|
+
command: "entra lifecycle run subject-processing-result show",
|
|
33017
|
+
flags: {
|
|
33018
|
+
help: "boolean",
|
|
33019
|
+
profile: "value",
|
|
33020
|
+
"api-version": "value",
|
|
33021
|
+
workflow: "value",
|
|
33022
|
+
run: "value",
|
|
33023
|
+
id: "value",
|
|
33024
|
+
fields: "value",
|
|
33025
|
+
full: "boolean",
|
|
33026
|
+
scopes: "value",
|
|
33027
|
+
config: "value"
|
|
33028
|
+
},
|
|
33029
|
+
positionalInput: false
|
|
33030
|
+
},
|
|
33031
|
+
{
|
|
33032
|
+
command: "entra lifecycle run subject-processing-result count",
|
|
33033
|
+
flags: {
|
|
33034
|
+
help: "boolean",
|
|
33035
|
+
profile: "value",
|
|
33036
|
+
"api-version": "value",
|
|
33037
|
+
workflow: "value",
|
|
33038
|
+
run: "value",
|
|
33039
|
+
scopes: "value",
|
|
33040
|
+
config: "value"
|
|
33041
|
+
},
|
|
33042
|
+
positionalInput: false
|
|
33043
|
+
},
|
|
33044
|
+
{
|
|
33045
|
+
command: "entra lifecycle run task-processing-result list",
|
|
33046
|
+
flags: {
|
|
33047
|
+
help: "boolean",
|
|
33048
|
+
profile: "value",
|
|
33049
|
+
"api-version": "value",
|
|
33050
|
+
workflow: "value",
|
|
33051
|
+
run: "value",
|
|
33052
|
+
limit: "value",
|
|
33053
|
+
all: "boolean",
|
|
33054
|
+
filter: "value",
|
|
33055
|
+
select: "value",
|
|
33056
|
+
fields: "value",
|
|
33057
|
+
full: "boolean",
|
|
33058
|
+
cursor: "value",
|
|
33059
|
+
scopes: "value",
|
|
33060
|
+
config: "value"
|
|
33061
|
+
},
|
|
33062
|
+
positionalInput: false
|
|
33063
|
+
},
|
|
33064
|
+
{
|
|
33065
|
+
command: "entra lifecycle run task-processing-result show",
|
|
33066
|
+
flags: {
|
|
33067
|
+
help: "boolean",
|
|
33068
|
+
profile: "value",
|
|
33069
|
+
"api-version": "value",
|
|
33070
|
+
workflow: "value",
|
|
33071
|
+
run: "value",
|
|
33072
|
+
id: "value",
|
|
33073
|
+
fields: "value",
|
|
33074
|
+
full: "boolean",
|
|
33075
|
+
scopes: "value",
|
|
33076
|
+
config: "value"
|
|
33077
|
+
},
|
|
33078
|
+
positionalInput: false
|
|
33079
|
+
},
|
|
33080
|
+
{
|
|
33081
|
+
command: "entra lifecycle run task-processing-result count",
|
|
33082
|
+
flags: {
|
|
33083
|
+
help: "boolean",
|
|
33084
|
+
profile: "value",
|
|
33085
|
+
"api-version": "value",
|
|
33086
|
+
workflow: "value",
|
|
33087
|
+
run: "value",
|
|
33088
|
+
scopes: "value",
|
|
33089
|
+
config: "value"
|
|
33090
|
+
},
|
|
33091
|
+
positionalInput: false
|
|
33092
|
+
},
|
|
33093
|
+
{
|
|
33094
|
+
command: "api get",
|
|
33095
|
+
flags: {
|
|
33096
|
+
help: "boolean",
|
|
33097
|
+
profile: "value",
|
|
33098
|
+
"api-version": "value",
|
|
33099
|
+
odata: "value",
|
|
33100
|
+
cursor: "value",
|
|
33101
|
+
scopes: "value",
|
|
33102
|
+
limit: "value",
|
|
33103
|
+
all: "boolean",
|
|
33104
|
+
full: "boolean",
|
|
33105
|
+
config: "value"
|
|
33106
|
+
},
|
|
33107
|
+
positionalInput: {
|
|
33108
|
+
name: "path",
|
|
33109
|
+
description: "Server-relative Graph path, e.g. /users",
|
|
33110
|
+
required: true
|
|
33111
|
+
}
|
|
33112
|
+
},
|
|
33113
|
+
{
|
|
33114
|
+
command: "login",
|
|
33115
|
+
flags: {
|
|
33116
|
+
help: "boolean",
|
|
33117
|
+
profile: "value",
|
|
33118
|
+
method: "value",
|
|
33119
|
+
scopes: "value",
|
|
33120
|
+
config: "value"
|
|
33121
|
+
},
|
|
33122
|
+
positionalInput: false
|
|
33123
|
+
},
|
|
33124
|
+
{
|
|
33125
|
+
command: "config path",
|
|
33126
|
+
flags: {
|
|
33127
|
+
help: "boolean",
|
|
33128
|
+
config: "value"
|
|
33129
|
+
},
|
|
33130
|
+
positionalInput: false
|
|
33131
|
+
},
|
|
33132
|
+
{
|
|
33133
|
+
command: "auth status",
|
|
33134
|
+
flags: {
|
|
33135
|
+
help: "boolean",
|
|
33136
|
+
profile: "value",
|
|
33137
|
+
config: "value"
|
|
33138
|
+
},
|
|
33139
|
+
positionalInput: false
|
|
33140
|
+
},
|
|
33141
|
+
{
|
|
33142
|
+
command: "auth logout",
|
|
33143
|
+
flags: {
|
|
33144
|
+
help: "boolean",
|
|
33145
|
+
profile: "value",
|
|
33146
|
+
config: "value"
|
|
33147
|
+
},
|
|
33148
|
+
positionalInput: false
|
|
33149
|
+
}
|
|
33150
|
+
]
|
|
33151
|
+
};
|
|
33152
|
+
|
|
33153
|
+
// tools/inventories/ldap-axi.json
|
|
33154
|
+
var ldap_axi_default = {
|
|
33155
|
+
generatedBy: "scripts/ldap-inventory.mjs",
|
|
33156
|
+
tool: "ldap-axi",
|
|
33157
|
+
version: "0.3.0",
|
|
33158
|
+
integrity: "sha512-QVectHNsRxYWNBf0im5DjeN78mcgK0Te0Sxh7uXGNb+AhQjsS5ywiCrnKAk0/INA/oxiZ1TiXaDX7jHAg5OvDg==",
|
|
33159
|
+
parserEvidence: "Installed pinned command schemas and reviewed CLI globals and entry routes",
|
|
33160
|
+
sources: [
|
|
33161
|
+
{
|
|
33162
|
+
path: "package.json",
|
|
33163
|
+
sha256: "9fa26acd15443dad0857c7468f570164e436f7b25aef3df733da3c4d859917a9"
|
|
33164
|
+
},
|
|
33165
|
+
{
|
|
33166
|
+
path: "README.md",
|
|
33167
|
+
sha256: "cd05d13da53b80aa651a5207b680e7fa6a0fb0c975244e4cc135d26b13391204"
|
|
33168
|
+
},
|
|
33169
|
+
{
|
|
33170
|
+
path: "axi-credential.schema.json",
|
|
33171
|
+
sha256: "76b9f5f449d844dcd4365b966ed907515582f72fc920b936dae825ebf1b7cc53"
|
|
33172
|
+
},
|
|
33173
|
+
{
|
|
33174
|
+
path: "dist/src/cli.js",
|
|
33175
|
+
sha256: "2cb024b2848c2c9e27c292205b3ed86a829cfed21d52e8fea06ef544a039ec2a"
|
|
33176
|
+
},
|
|
33177
|
+
{
|
|
33178
|
+
path: "dist/src/schema.js",
|
|
33179
|
+
sha256: "ba2285cbda6e5994c536b2f9de65736df1b43b0b10c5d5b7a1c2d7124ab198a0"
|
|
33180
|
+
},
|
|
33181
|
+
{
|
|
33182
|
+
path: "dist/src/config.js",
|
|
33183
|
+
sha256: "cbc48584b6ff2a2a70375e9e8e6242a87543a3e6e6f7e1c055a2d29c42b677f9"
|
|
33184
|
+
},
|
|
33185
|
+
{
|
|
33186
|
+
path: "dist/src/secrets.js",
|
|
33187
|
+
sha256: "9f2ccf86515cec1dd65f2dd5850188232374535f7fe56a788fdc7b94d91c8532"
|
|
33188
|
+
},
|
|
33189
|
+
{
|
|
33190
|
+
path: "dist/src/directory/auth.js",
|
|
33191
|
+
sha256: "64885ea4bc5067c58dcb4d432610f99eedfa9af65fa46273b68d503d26ec3214"
|
|
33192
|
+
},
|
|
33193
|
+
{
|
|
33194
|
+
path: "dist/src/directory/policy.js",
|
|
33195
|
+
sha256: "a697dd78990493f7f1c19d22278ebb922c997e9cf88a51b12adfaca30fa8a01d"
|
|
33196
|
+
}
|
|
33197
|
+
],
|
|
33198
|
+
credentialSchema: {
|
|
33199
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
33200
|
+
title: "ldap-axi profile",
|
|
33201
|
+
type: "object",
|
|
33202
|
+
additionalProperties: false,
|
|
33203
|
+
required: [
|
|
33204
|
+
"url"
|
|
33205
|
+
],
|
|
33206
|
+
properties: {
|
|
33207
|
+
url: {
|
|
33208
|
+
type: "string",
|
|
33209
|
+
pattern: "^ldaps?://",
|
|
33210
|
+
description: "LDAP URL without userinfo; use the server FQDN for ambient authentication"
|
|
33211
|
+
},
|
|
33212
|
+
auth: {
|
|
33213
|
+
enum: [
|
|
33214
|
+
"auto",
|
|
33215
|
+
"gssapi",
|
|
33216
|
+
"simple"
|
|
33217
|
+
],
|
|
33218
|
+
default: "auto"
|
|
33219
|
+
},
|
|
33220
|
+
bindDn: {
|
|
33221
|
+
type: "string",
|
|
33222
|
+
minLength: 1,
|
|
33223
|
+
description: "Simple-bind identity, required for simple authentication"
|
|
33224
|
+
},
|
|
33225
|
+
bindPassword: {
|
|
33226
|
+
"x-secret": true,
|
|
33227
|
+
description: "Simple-bind password reference; defaults to env LDAP_AXI_BIND_PASSWORD. No stored secrets.",
|
|
33228
|
+
oneOf: [
|
|
33229
|
+
{
|
|
33230
|
+
type: "object",
|
|
33231
|
+
additionalProperties: false,
|
|
33232
|
+
required: [
|
|
33233
|
+
"env"
|
|
33234
|
+
],
|
|
33235
|
+
properties: {
|
|
33236
|
+
env: {
|
|
33237
|
+
type: "string",
|
|
33238
|
+
pattern: "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
33239
|
+
}
|
|
33240
|
+
}
|
|
33241
|
+
},
|
|
33242
|
+
{
|
|
33243
|
+
type: "object",
|
|
33244
|
+
additionalProperties: false,
|
|
33245
|
+
required: [
|
|
33246
|
+
"file"
|
|
33247
|
+
],
|
|
33248
|
+
properties: {
|
|
33249
|
+
file: {
|
|
33250
|
+
type: "string",
|
|
33251
|
+
pattern: "^(?:/|[A-Za-z]:[\\\\/])",
|
|
33252
|
+
description: "Absolute local path to a private UTF-8 password file; UNC/device paths are forbidden on Windows"
|
|
33253
|
+
}
|
|
33254
|
+
}
|
|
33255
|
+
}
|
|
33256
|
+
]
|
|
33257
|
+
},
|
|
33258
|
+
base: {
|
|
33259
|
+
type: "string"
|
|
33260
|
+
},
|
|
33261
|
+
pageSize: {
|
|
33262
|
+
type: "integer",
|
|
33263
|
+
minimum: 1,
|
|
33264
|
+
maximum: 1e3
|
|
33265
|
+
},
|
|
33266
|
+
caFile: {
|
|
33267
|
+
type: "string",
|
|
33268
|
+
minLength: 1
|
|
33269
|
+
},
|
|
33270
|
+
startTls: {
|
|
33271
|
+
type: "boolean",
|
|
33272
|
+
default: false
|
|
33273
|
+
},
|
|
33274
|
+
tlsMaxVersion: {
|
|
33275
|
+
const: "1.2"
|
|
33276
|
+
},
|
|
33277
|
+
flavor: {
|
|
33278
|
+
enum: [
|
|
33279
|
+
"ad",
|
|
33280
|
+
"adlds",
|
|
33281
|
+
"ldapv3"
|
|
33282
|
+
]
|
|
33283
|
+
},
|
|
33284
|
+
gssapiService: {
|
|
33285
|
+
type: "string",
|
|
33286
|
+
minLength: 1
|
|
33287
|
+
},
|
|
33288
|
+
gssapiProtection: {
|
|
33289
|
+
enum: [
|
|
33290
|
+
"none",
|
|
33291
|
+
"confidentiality"
|
|
33292
|
+
]
|
|
33293
|
+
}
|
|
33294
|
+
}
|
|
33295
|
+
},
|
|
33296
|
+
adapterBoundary: {
|
|
33297
|
+
unsafeOverrides: [
|
|
33298
|
+
"config",
|
|
33299
|
+
"url",
|
|
33300
|
+
"start-tls",
|
|
33301
|
+
"ca-file",
|
|
33302
|
+
"ca-only",
|
|
33303
|
+
"tls-no-verify",
|
|
33304
|
+
"tls-max-version",
|
|
33305
|
+
"insecure-plaintext",
|
|
33306
|
+
"anonymous",
|
|
33307
|
+
"profile",
|
|
33308
|
+
"auth",
|
|
33309
|
+
"gssapi-service",
|
|
33310
|
+
"gssapi-protection"
|
|
33311
|
+
],
|
|
33312
|
+
blockedCommands: [
|
|
33313
|
+
"config",
|
|
33314
|
+
"profile",
|
|
33315
|
+
"setup"
|
|
33316
|
+
],
|
|
33317
|
+
sensitiveFlags: [
|
|
33318
|
+
"base",
|
|
33319
|
+
"filter",
|
|
33320
|
+
"name",
|
|
33321
|
+
"sam",
|
|
33322
|
+
"upn",
|
|
33323
|
+
"uid"
|
|
33324
|
+
],
|
|
33325
|
+
authentication: "Stored simple-bind identity over verified LDAPS or StartTLS; no ambient ticket or keytab",
|
|
33326
|
+
inputs: {
|
|
33327
|
+
stdin: "unsupported",
|
|
33328
|
+
files: "unsupported",
|
|
33329
|
+
caFile: "stored PEM materialized privately by host"
|
|
33330
|
+
},
|
|
33331
|
+
resources: {
|
|
33332
|
+
nodeHeapMiB: 128
|
|
33333
|
+
},
|
|
33334
|
+
nativeWrites: "read-only upstream design"
|
|
33335
|
+
},
|
|
33336
|
+
discovery: {
|
|
33337
|
+
commands: [
|
|
33338
|
+
"entry",
|
|
33339
|
+
"user",
|
|
33340
|
+
"group",
|
|
33341
|
+
"computer",
|
|
33342
|
+
"auth status",
|
|
33343
|
+
"server"
|
|
33344
|
+
],
|
|
33345
|
+
example: [
|
|
33346
|
+
"user",
|
|
33347
|
+
"list",
|
|
33348
|
+
"--limit",
|
|
33349
|
+
"1"
|
|
33350
|
+
],
|
|
33351
|
+
help: "List user accounts.\nLDAPv3 users are inetOrgPerson or posixAccount entries; use ldap-axi entry search for account + simpleSecurityObject service accounts.\nUsage: ldap-axi user list [flags]\nFlags:\n --help show this help\n --base <dn> search base (default: environment, config, or server naming contexts)\n --disabled include disabled accounts (LDAPv3: permanent ppolicy locks)\n --enabled include enabled accounts (LDAPv3: exclude permanent ppolicy locks)\n --locked include current AD locks or recorded LDAPv3 ppolicy lock candidates\n --all read all pages up to --max-rows or --limit\n --name <pattern> match cn\n --sam <pattern> AD only: match sAMAccountName\n --upn <pattern> AD only: match userPrincipalName\n --uid <pattern> LDAPv3 only: match uid\n --filter <RFC4515> add a raw LDAP filter\n --scope <base|one|sub> search scope (default: sub)\n --max-rows <n> maximum output rows\n --page-size <1..1000> LDAP page size (default: AD 1000, LDAPv3 500; config overrides)\n --limit <n> alias for bounded list output\n --fields <name,...> select output fields\n --attributes <name,...> request and emit raw attributes\nActive Directory fields: sam, upn, name, dn, enabled, locked, last_logon, object_sid, when_created, description, display_name, memberOf\nActive Directory defaults: sam, name, enabled, last_logon\nLDAPv3 fields: uid, name, mail, enabled, locked, account_state, dn, entry_uuid, when_created\nLDAPv3 defaults: uid, name, mail, enabled, locked, account_state\nExamples:\n ldap-axi user list --disabled --max-rows 25\n ldap-axi user list --name Alice --fields name,dn --limit 50"
|
|
33352
|
+
},
|
|
33353
|
+
suggestionFields: [
|
|
33354
|
+
"help"
|
|
33355
|
+
],
|
|
33356
|
+
format: "TOON",
|
|
33357
|
+
commands: [
|
|
33358
|
+
{
|
|
33359
|
+
command: "home",
|
|
33360
|
+
flags: {
|
|
33361
|
+
help: "boolean",
|
|
33362
|
+
config: "value",
|
|
33363
|
+
url: "value",
|
|
33364
|
+
base: "value",
|
|
33365
|
+
"start-tls": "boolean",
|
|
33366
|
+
"ca-file": "value",
|
|
33367
|
+
"ca-only": "boolean",
|
|
33368
|
+
"tls-no-verify": "boolean",
|
|
33369
|
+
"tls-max-version": "value",
|
|
33370
|
+
"insecure-plaintext": "boolean",
|
|
33371
|
+
anonymous: "boolean",
|
|
33372
|
+
profile: "value",
|
|
33373
|
+
auth: "value",
|
|
33374
|
+
"gssapi-service": "value",
|
|
33375
|
+
"gssapi-protection": "value"
|
|
33376
|
+
},
|
|
33377
|
+
positionalInput: false
|
|
33378
|
+
},
|
|
33379
|
+
{
|
|
33380
|
+
command: "auth status",
|
|
33644
33381
|
flags: {
|
|
33645
33382
|
help: "boolean",
|
|
33383
|
+
config: "value",
|
|
33384
|
+
url: "value",
|
|
33385
|
+
base: "value",
|
|
33386
|
+
"start-tls": "boolean",
|
|
33387
|
+
"ca-file": "value",
|
|
33388
|
+
"ca-only": "boolean",
|
|
33389
|
+
"tls-no-verify": "boolean",
|
|
33390
|
+
"tls-max-version": "value",
|
|
33391
|
+
"insecure-plaintext": "boolean",
|
|
33392
|
+
anonymous: "boolean",
|
|
33646
33393
|
profile: "value",
|
|
33647
|
-
|
|
33648
|
-
|
|
33649
|
-
|
|
33650
|
-
|
|
33651
|
-
config: "value"
|
|
33394
|
+
auth: "value",
|
|
33395
|
+
"gssapi-service": "value",
|
|
33396
|
+
"gssapi-protection": "value",
|
|
33397
|
+
offline: "boolean"
|
|
33652
33398
|
},
|
|
33653
33399
|
positionalInput: false
|
|
33654
33400
|
},
|
|
33655
33401
|
{
|
|
33656
|
-
command: "
|
|
33402
|
+
command: "server",
|
|
33657
33403
|
flags: {
|
|
33658
33404
|
help: "boolean",
|
|
33405
|
+
config: "value",
|
|
33406
|
+
url: "value",
|
|
33407
|
+
base: "value",
|
|
33408
|
+
"start-tls": "boolean",
|
|
33409
|
+
"ca-file": "value",
|
|
33410
|
+
"ca-only": "boolean",
|
|
33411
|
+
"tls-no-verify": "boolean",
|
|
33412
|
+
"tls-max-version": "value",
|
|
33413
|
+
"insecure-plaintext": "boolean",
|
|
33414
|
+
anonymous: "boolean",
|
|
33659
33415
|
profile: "value",
|
|
33660
|
-
|
|
33661
|
-
|
|
33662
|
-
|
|
33663
|
-
limit: "value",
|
|
33664
|
-
all: "boolean",
|
|
33665
|
-
filter: "value",
|
|
33666
|
-
fields: "value",
|
|
33667
|
-
full: "boolean",
|
|
33668
|
-
cursor: "value",
|
|
33669
|
-
scopes: "value",
|
|
33670
|
-
config: "value"
|
|
33416
|
+
auth: "value",
|
|
33417
|
+
"gssapi-service": "value",
|
|
33418
|
+
"gssapi-protection": "value"
|
|
33671
33419
|
},
|
|
33672
33420
|
positionalInput: false
|
|
33673
33421
|
},
|
|
33674
33422
|
{
|
|
33675
|
-
command: "
|
|
33423
|
+
command: "entry search",
|
|
33676
33424
|
flags: {
|
|
33677
33425
|
help: "boolean",
|
|
33426
|
+
config: "value",
|
|
33427
|
+
url: "value",
|
|
33428
|
+
base: "value",
|
|
33429
|
+
"start-tls": "boolean",
|
|
33430
|
+
"ca-file": "value",
|
|
33431
|
+
"ca-only": "boolean",
|
|
33432
|
+
"tls-no-verify": "boolean",
|
|
33433
|
+
"tls-max-version": "value",
|
|
33434
|
+
"insecure-plaintext": "boolean",
|
|
33435
|
+
anonymous: "boolean",
|
|
33678
33436
|
profile: "value",
|
|
33679
|
-
|
|
33680
|
-
|
|
33681
|
-
|
|
33682
|
-
|
|
33683
|
-
|
|
33684
|
-
|
|
33685
|
-
|
|
33686
|
-
|
|
33437
|
+
auth: "value",
|
|
33438
|
+
"gssapi-service": "value",
|
|
33439
|
+
"gssapi-protection": "value",
|
|
33440
|
+
filter: "value",
|
|
33441
|
+
scope: "value",
|
|
33442
|
+
attributes: "value",
|
|
33443
|
+
"page-size": "value",
|
|
33444
|
+
"max-rows": "value",
|
|
33445
|
+
all: "boolean"
|
|
33687
33446
|
},
|
|
33688
33447
|
positionalInput: false
|
|
33689
33448
|
},
|
|
33690
33449
|
{
|
|
33691
|
-
command: "
|
|
33450
|
+
command: "entry show",
|
|
33692
33451
|
flags: {
|
|
33693
33452
|
help: "boolean",
|
|
33453
|
+
config: "value",
|
|
33454
|
+
url: "value",
|
|
33455
|
+
base: "value",
|
|
33456
|
+
"start-tls": "boolean",
|
|
33457
|
+
"ca-file": "value",
|
|
33458
|
+
"ca-only": "boolean",
|
|
33459
|
+
"tls-no-verify": "boolean",
|
|
33460
|
+
"tls-max-version": "value",
|
|
33461
|
+
"insecure-plaintext": "boolean",
|
|
33462
|
+
anonymous: "boolean",
|
|
33694
33463
|
profile: "value",
|
|
33695
|
-
|
|
33696
|
-
|
|
33697
|
-
|
|
33698
|
-
|
|
33699
|
-
|
|
33464
|
+
auth: "value",
|
|
33465
|
+
"gssapi-service": "value",
|
|
33466
|
+
"gssapi-protection": "value",
|
|
33467
|
+
attributes: "value",
|
|
33468
|
+
"page-size": "value"
|
|
33700
33469
|
},
|
|
33701
|
-
positionalInput:
|
|
33470
|
+
positionalInput: true
|
|
33702
33471
|
},
|
|
33703
33472
|
{
|
|
33704
|
-
command: "
|
|
33473
|
+
command: "user list",
|
|
33705
33474
|
flags: {
|
|
33706
33475
|
help: "boolean",
|
|
33476
|
+
config: "value",
|
|
33477
|
+
url: "value",
|
|
33478
|
+
base: "value",
|
|
33479
|
+
"start-tls": "boolean",
|
|
33480
|
+
"ca-file": "value",
|
|
33481
|
+
"ca-only": "boolean",
|
|
33482
|
+
"tls-no-verify": "boolean",
|
|
33483
|
+
"tls-max-version": "value",
|
|
33484
|
+
"insecure-plaintext": "boolean",
|
|
33485
|
+
anonymous: "boolean",
|
|
33707
33486
|
profile: "value",
|
|
33708
|
-
|
|
33709
|
-
|
|
33710
|
-
|
|
33711
|
-
|
|
33487
|
+
auth: "value",
|
|
33488
|
+
"gssapi-service": "value",
|
|
33489
|
+
"gssapi-protection": "value",
|
|
33490
|
+
disabled: "boolean",
|
|
33491
|
+
enabled: "boolean",
|
|
33492
|
+
locked: "boolean",
|
|
33712
33493
|
all: "boolean",
|
|
33494
|
+
name: "value",
|
|
33495
|
+
sam: "value",
|
|
33496
|
+
upn: "value",
|
|
33497
|
+
uid: "value",
|
|
33713
33498
|
filter: "value",
|
|
33714
|
-
|
|
33499
|
+
scope: "value",
|
|
33500
|
+
"max-rows": "value",
|
|
33501
|
+
"page-size": "value",
|
|
33502
|
+
limit: "value",
|
|
33715
33503
|
fields: "value",
|
|
33716
|
-
|
|
33717
|
-
cursor: "value",
|
|
33718
|
-
scopes: "value",
|
|
33719
|
-
config: "value"
|
|
33504
|
+
attributes: "value"
|
|
33720
33505
|
},
|
|
33721
33506
|
positionalInput: false
|
|
33722
33507
|
},
|
|
33723
33508
|
{
|
|
33724
|
-
command: "
|
|
33509
|
+
command: "user show",
|
|
33725
33510
|
flags: {
|
|
33726
33511
|
help: "boolean",
|
|
33512
|
+
config: "value",
|
|
33513
|
+
url: "value",
|
|
33514
|
+
base: "value",
|
|
33515
|
+
"start-tls": "boolean",
|
|
33516
|
+
"ca-file": "value",
|
|
33517
|
+
"ca-only": "boolean",
|
|
33518
|
+
"tls-no-verify": "boolean",
|
|
33519
|
+
"tls-max-version": "value",
|
|
33520
|
+
"insecure-plaintext": "boolean",
|
|
33521
|
+
anonymous: "boolean",
|
|
33727
33522
|
profile: "value",
|
|
33728
|
-
|
|
33729
|
-
|
|
33730
|
-
|
|
33731
|
-
id: "value",
|
|
33523
|
+
auth: "value",
|
|
33524
|
+
"gssapi-service": "value",
|
|
33525
|
+
"gssapi-protection": "value",
|
|
33732
33526
|
fields: "value",
|
|
33733
|
-
|
|
33734
|
-
scopes: "value",
|
|
33735
|
-
config: "value"
|
|
33527
|
+
attributes: "value"
|
|
33736
33528
|
},
|
|
33737
|
-
positionalInput:
|
|
33529
|
+
positionalInput: true
|
|
33738
33530
|
},
|
|
33739
33531
|
{
|
|
33740
|
-
command: "
|
|
33532
|
+
command: "user groups",
|
|
33741
33533
|
flags: {
|
|
33742
33534
|
help: "boolean",
|
|
33535
|
+
config: "value",
|
|
33536
|
+
url: "value",
|
|
33537
|
+
base: "value",
|
|
33538
|
+
"start-tls": "boolean",
|
|
33539
|
+
"ca-file": "value",
|
|
33540
|
+
"ca-only": "boolean",
|
|
33541
|
+
"tls-no-verify": "boolean",
|
|
33542
|
+
"tls-max-version": "value",
|
|
33543
|
+
"insecure-plaintext": "boolean",
|
|
33544
|
+
anonymous: "boolean",
|
|
33743
33545
|
profile: "value",
|
|
33744
|
-
|
|
33745
|
-
|
|
33746
|
-
|
|
33747
|
-
|
|
33748
|
-
|
|
33546
|
+
auth: "value",
|
|
33547
|
+
"gssapi-service": "value",
|
|
33548
|
+
"gssapi-protection": "value",
|
|
33549
|
+
nested: "boolean",
|
|
33550
|
+
"max-rows": "value",
|
|
33551
|
+
"page-size": "value",
|
|
33552
|
+
fields: "value"
|
|
33749
33553
|
},
|
|
33750
|
-
positionalInput:
|
|
33554
|
+
positionalInput: true
|
|
33751
33555
|
},
|
|
33752
33556
|
{
|
|
33753
|
-
command: "
|
|
33557
|
+
command: "group list",
|
|
33754
33558
|
flags: {
|
|
33755
33559
|
help: "boolean",
|
|
33560
|
+
config: "value",
|
|
33561
|
+
url: "value",
|
|
33562
|
+
base: "value",
|
|
33563
|
+
"start-tls": "boolean",
|
|
33564
|
+
"ca-file": "value",
|
|
33565
|
+
"ca-only": "boolean",
|
|
33566
|
+
"tls-no-verify": "boolean",
|
|
33567
|
+
"tls-max-version": "value",
|
|
33568
|
+
"insecure-plaintext": "boolean",
|
|
33569
|
+
anonymous: "boolean",
|
|
33756
33570
|
profile: "value",
|
|
33757
|
-
|
|
33758
|
-
|
|
33759
|
-
|
|
33760
|
-
scopes: "value",
|
|
33761
|
-
limit: "value",
|
|
33571
|
+
auth: "value",
|
|
33572
|
+
"gssapi-service": "value",
|
|
33573
|
+
"gssapi-protection": "value",
|
|
33762
33574
|
all: "boolean",
|
|
33763
|
-
|
|
33764
|
-
|
|
33575
|
+
name: "value",
|
|
33576
|
+
sam: "value",
|
|
33577
|
+
filter: "value",
|
|
33578
|
+
scope: "value",
|
|
33579
|
+
"max-rows": "value",
|
|
33580
|
+
"page-size": "value",
|
|
33581
|
+
limit: "value",
|
|
33582
|
+
fields: "value",
|
|
33583
|
+
attributes: "value"
|
|
33765
33584
|
},
|
|
33766
|
-
positionalInput:
|
|
33767
|
-
name: "path",
|
|
33768
|
-
description: "Server-relative Graph path, e.g. /users",
|
|
33769
|
-
required: true
|
|
33770
|
-
}
|
|
33585
|
+
positionalInput: false
|
|
33771
33586
|
},
|
|
33772
33587
|
{
|
|
33773
|
-
command: "
|
|
33588
|
+
command: "group show",
|
|
33774
33589
|
flags: {
|
|
33775
33590
|
help: "boolean",
|
|
33591
|
+
config: "value",
|
|
33592
|
+
url: "value",
|
|
33593
|
+
base: "value",
|
|
33594
|
+
"start-tls": "boolean",
|
|
33595
|
+
"ca-file": "value",
|
|
33596
|
+
"ca-only": "boolean",
|
|
33597
|
+
"tls-no-verify": "boolean",
|
|
33598
|
+
"tls-max-version": "value",
|
|
33599
|
+
"insecure-plaintext": "boolean",
|
|
33600
|
+
anonymous: "boolean",
|
|
33776
33601
|
profile: "value",
|
|
33777
|
-
|
|
33778
|
-
|
|
33779
|
-
|
|
33602
|
+
auth: "value",
|
|
33603
|
+
"gssapi-service": "value",
|
|
33604
|
+
"gssapi-protection": "value",
|
|
33605
|
+
fields: "value",
|
|
33606
|
+
attributes: "value"
|
|
33780
33607
|
},
|
|
33781
|
-
positionalInput:
|
|
33608
|
+
positionalInput: true
|
|
33782
33609
|
},
|
|
33783
33610
|
{
|
|
33784
|
-
command: "
|
|
33611
|
+
command: "group members",
|
|
33785
33612
|
flags: {
|
|
33786
33613
|
help: "boolean",
|
|
33787
|
-
config: "value"
|
|
33614
|
+
config: "value",
|
|
33615
|
+
url: "value",
|
|
33616
|
+
base: "value",
|
|
33617
|
+
"start-tls": "boolean",
|
|
33618
|
+
"ca-file": "value",
|
|
33619
|
+
"ca-only": "boolean",
|
|
33620
|
+
"tls-no-verify": "boolean",
|
|
33621
|
+
"tls-max-version": "value",
|
|
33622
|
+
"insecure-plaintext": "boolean",
|
|
33623
|
+
anonymous: "boolean",
|
|
33624
|
+
profile: "value",
|
|
33625
|
+
auth: "value",
|
|
33626
|
+
"gssapi-service": "value",
|
|
33627
|
+
"gssapi-protection": "value",
|
|
33628
|
+
nested: "boolean",
|
|
33629
|
+
"max-rows": "value",
|
|
33630
|
+
"page-size": "value",
|
|
33631
|
+
fields: "value"
|
|
33788
33632
|
},
|
|
33789
|
-
positionalInput:
|
|
33633
|
+
positionalInput: true
|
|
33790
33634
|
},
|
|
33791
33635
|
{
|
|
33792
|
-
command: "
|
|
33636
|
+
command: "computer list",
|
|
33793
33637
|
flags: {
|
|
33794
33638
|
help: "boolean",
|
|
33639
|
+
config: "value",
|
|
33640
|
+
url: "value",
|
|
33641
|
+
base: "value",
|
|
33642
|
+
"start-tls": "boolean",
|
|
33643
|
+
"ca-file": "value",
|
|
33644
|
+
"ca-only": "boolean",
|
|
33645
|
+
"tls-no-verify": "boolean",
|
|
33646
|
+
"tls-max-version": "value",
|
|
33647
|
+
"insecure-plaintext": "boolean",
|
|
33648
|
+
anonymous: "boolean",
|
|
33795
33649
|
profile: "value",
|
|
33796
|
-
|
|
33650
|
+
auth: "value",
|
|
33651
|
+
"gssapi-service": "value",
|
|
33652
|
+
"gssapi-protection": "value",
|
|
33653
|
+
all: "boolean",
|
|
33654
|
+
name: "value",
|
|
33655
|
+
sam: "value",
|
|
33656
|
+
filter: "value",
|
|
33657
|
+
scope: "value",
|
|
33658
|
+
"max-rows": "value",
|
|
33659
|
+
"page-size": "value",
|
|
33660
|
+
limit: "value",
|
|
33661
|
+
fields: "value",
|
|
33662
|
+
attributes: "value"
|
|
33797
33663
|
},
|
|
33798
33664
|
positionalInput: false
|
|
33799
33665
|
},
|
|
33800
33666
|
{
|
|
33801
|
-
command: "
|
|
33667
|
+
command: "computer show",
|
|
33802
33668
|
flags: {
|
|
33803
33669
|
help: "boolean",
|
|
33670
|
+
config: "value",
|
|
33671
|
+
url: "value",
|
|
33672
|
+
base: "value",
|
|
33673
|
+
"start-tls": "boolean",
|
|
33674
|
+
"ca-file": "value",
|
|
33675
|
+
"ca-only": "boolean",
|
|
33676
|
+
"tls-no-verify": "boolean",
|
|
33677
|
+
"tls-max-version": "value",
|
|
33678
|
+
"insecure-plaintext": "boolean",
|
|
33679
|
+
anonymous: "boolean",
|
|
33804
33680
|
profile: "value",
|
|
33805
|
-
|
|
33681
|
+
auth: "value",
|
|
33682
|
+
"gssapi-service": "value",
|
|
33683
|
+
"gssapi-protection": "value",
|
|
33684
|
+
fields: "value",
|
|
33685
|
+
attributes: "value"
|
|
33806
33686
|
},
|
|
33807
|
-
positionalInput:
|
|
33687
|
+
positionalInput: true
|
|
33808
33688
|
}
|
|
33809
33689
|
]
|
|
33810
33690
|
};
|
|
@@ -34879,8 +34759,8 @@ var ado_axi_default = {
|
|
|
34879
34759
|
var awx_axi_default = {
|
|
34880
34760
|
generatedBy: "scripts/awx-inventory.mjs",
|
|
34881
34761
|
tool: "awx-axi",
|
|
34882
|
-
version: "0.1.
|
|
34883
|
-
integrity: "sha512-
|
|
34762
|
+
version: "0.1.8",
|
|
34763
|
+
integrity: "sha512-tkheZgSTjs6nZT3KWo0e/+SH43ZacfvZpo7COktmpIs8lNr8VLhUtrGARz+mvwj8pov4zscdfmxAHL/8V025Bw==",
|
|
34884
34764
|
parserEvidence: "Published domain registry, reviewed plan effects and transport safety gates",
|
|
34885
34765
|
sources: [
|
|
34886
34766
|
{
|
|
@@ -34893,7 +34773,7 @@ var awx_axi_default = {
|
|
|
34893
34773
|
},
|
|
34894
34774
|
{
|
|
34895
34775
|
path: "dist/commands/auth.js",
|
|
34896
|
-
sha256: "
|
|
34776
|
+
sha256: "cf8e52f33d6acb5091d009c23df4957da3d208d4e9417bdcbba547f4d7c8b690"
|
|
34897
34777
|
},
|
|
34898
34778
|
{
|
|
34899
34779
|
path: "dist/commands/home.js",
|
|
@@ -34917,7 +34797,7 @@ var awx_axi_default = {
|
|
|
34917
34797
|
},
|
|
34918
34798
|
{
|
|
34919
34799
|
path: "dist/core/flags.js",
|
|
34920
|
-
sha256: "
|
|
34800
|
+
sha256: "60d5c58ab68c3cc61e57c249b93db544d619469c6fbd1e3082ee573ed1b50498"
|
|
34921
34801
|
},
|
|
34922
34802
|
{
|
|
34923
34803
|
path: "dist/core/mutations.js",
|
|
@@ -34925,11 +34805,11 @@ var awx_axi_default = {
|
|
|
34925
34805
|
},
|
|
34926
34806
|
{
|
|
34927
34807
|
path: "dist/core/output.js",
|
|
34928
|
-
sha256: "
|
|
34808
|
+
sha256: "7406df524ee329a3e2eb1f2b37295d8699de678e687525c8d55a3ce67d78dd0a"
|
|
34929
34809
|
},
|
|
34930
34810
|
{
|
|
34931
34811
|
path: "dist/core/paginate.js",
|
|
34932
|
-
sha256: "
|
|
34812
|
+
sha256: "d952bc390a4ac2da263b1d98c24f05e416652335904de37b26379576632059a3"
|
|
34933
34813
|
},
|
|
34934
34814
|
{
|
|
34935
34815
|
path: "dist/core/poll.js",
|
|
@@ -34937,19 +34817,19 @@ var awx_axi_default = {
|
|
|
34937
34817
|
},
|
|
34938
34818
|
{
|
|
34939
34819
|
path: "dist/core/private-file.js",
|
|
34940
|
-
sha256: "
|
|
34820
|
+
sha256: "30f44672d91f74b232ae6f7884b7daee6bd12ce6702ca57b3213a8a5da4bf992"
|
|
34941
34821
|
},
|
|
34942
34822
|
{
|
|
34943
34823
|
path: "dist/core/profiles.js",
|
|
34944
|
-
sha256: "
|
|
34824
|
+
sha256: "c3ac1d2a531115d253ed83020d88e3763108249a4a03ca710da40833db05bc7d"
|
|
34945
34825
|
},
|
|
34946
34826
|
{
|
|
34947
34827
|
path: "dist/core/redact.js",
|
|
34948
|
-
sha256: "
|
|
34828
|
+
sha256: "4fa205b30a3165738578c01ecfa5787bb6993ee11b07dbcb74b6401d4441679f"
|
|
34949
34829
|
},
|
|
34950
34830
|
{
|
|
34951
34831
|
path: "dist/core/registry.js",
|
|
34952
|
-
sha256: "
|
|
34832
|
+
sha256: "89d3983928dd3a63712e9c78a4959c2e9c950097a3d200f6d1ccf2c3327bbdfd"
|
|
34953
34833
|
},
|
|
34954
34834
|
{
|
|
34955
34835
|
path: "dist/core/resolve.js",
|
|
@@ -34965,95 +34845,95 @@ var awx_axi_default = {
|
|
|
34965
34845
|
},
|
|
34966
34846
|
{
|
|
34967
34847
|
path: "dist/domains/activity-stream/index.js",
|
|
34968
|
-
sha256: "
|
|
34848
|
+
sha256: "633995f66b7e24cb4c6d98341e943a7e8d61b3b271503cb1b191b161b3fb927f"
|
|
34969
34849
|
},
|
|
34970
34850
|
{
|
|
34971
34851
|
path: "dist/domains/ad-hoc/index.js",
|
|
34972
|
-
sha256: "
|
|
34852
|
+
sha256: "92f5395f74f449bb6fde43276764dfe965eaa8afb491a8f5e13323dc9a366084"
|
|
34973
34853
|
},
|
|
34974
34854
|
{
|
|
34975
34855
|
path: "dist/domains/approval/index.js",
|
|
34976
|
-
sha256: "
|
|
34856
|
+
sha256: "741282a1143b776ba0850cd8cc0ec3da913e1d354cc08f671b51cdea58621b1b"
|
|
34977
34857
|
},
|
|
34978
34858
|
{
|
|
34979
34859
|
path: "dist/domains/credential/index.js",
|
|
34980
|
-
sha256: "
|
|
34860
|
+
sha256: "00e5171e9b653f8266722cc53302748bbd54c874c07e60e2967f95797c7bcf05"
|
|
34981
34861
|
},
|
|
34982
34862
|
{
|
|
34983
34863
|
path: "dist/domains/execution-environment/index.js",
|
|
34984
|
-
sha256: "
|
|
34864
|
+
sha256: "0038065d8d51b9fe370e8e517ddcebfdb8ccf0b3ee512a89147eea413e918685"
|
|
34985
34865
|
},
|
|
34986
34866
|
{
|
|
34987
34867
|
path: "dist/domains/group/index.js",
|
|
34988
|
-
sha256: "
|
|
34868
|
+
sha256: "7fdd83edd141372fcc5486ba07968137f913ac9a73147aa748127b523c4cc785"
|
|
34989
34869
|
},
|
|
34990
34870
|
{
|
|
34991
34871
|
path: "dist/domains/host/index.js",
|
|
34992
|
-
sha256: "
|
|
34872
|
+
sha256: "478ff268a6a6a8452aa206be7671e402782fbfde8504808d9cc4fe10205b6707"
|
|
34993
34873
|
},
|
|
34994
34874
|
{
|
|
34995
34875
|
path: "dist/domains/inventory-source/index.js",
|
|
34996
|
-
sha256: "
|
|
34876
|
+
sha256: "56d8f203514f688eb734c29c2db45930dcddb96bdb82424bf8cc835c493cb279"
|
|
34997
34877
|
},
|
|
34998
34878
|
{
|
|
34999
34879
|
path: "dist/domains/inventory/index.js",
|
|
35000
|
-
sha256: "
|
|
34880
|
+
sha256: "0352fc474d38aed258ab069a6a80da83d3acf00c9cccd37c3d26b16e8b6d8e2d"
|
|
35001
34881
|
},
|
|
35002
34882
|
{
|
|
35003
34883
|
path: "dist/domains/job/index.js",
|
|
35004
|
-
sha256: "
|
|
34884
|
+
sha256: "db22aa5cd3c15da799d7aaea4430c9a6aa5e04e7f5fa1a5cacb340799f34f38c"
|
|
35005
34885
|
},
|
|
35006
34886
|
{
|
|
35007
34887
|
path: "dist/domains/notification-template/index.js",
|
|
35008
|
-
sha256: "
|
|
34888
|
+
sha256: "c3ddb6e7abcdc57583bc1ada57f30302f63b01a559381c2be196b7ee3bbfdc9b"
|
|
35009
34889
|
},
|
|
35010
34890
|
{
|
|
35011
34891
|
path: "dist/domains/notification/index.js",
|
|
35012
|
-
sha256: "
|
|
34892
|
+
sha256: "d9c46319aabe8187e3417710c3ebeda5650b55463f84fa9baa3d6fe91edc1ced"
|
|
35013
34893
|
},
|
|
35014
34894
|
{
|
|
35015
34895
|
path: "dist/domains/organization/index.js",
|
|
35016
|
-
sha256: "
|
|
34896
|
+
sha256: "65072b9afb1706b67b1f7c37c9d96bf12104d8ec56a214f06a512e6283fb0229"
|
|
35017
34897
|
},
|
|
35018
34898
|
{
|
|
35019
34899
|
path: "dist/domains/project/index.js",
|
|
35020
|
-
sha256: "
|
|
34900
|
+
sha256: "eafb98f7148e2a5e8c194af16ebbaa7569ddf74344e367531ba9f6946a39ef46"
|
|
35021
34901
|
},
|
|
35022
34902
|
{
|
|
35023
34903
|
path: "dist/domains/role/index.js",
|
|
35024
|
-
sha256: "
|
|
34904
|
+
sha256: "0e5ee47acb703d2f202f01450eb87330140b97c430440eff31c4f33bab28a647"
|
|
35025
34905
|
},
|
|
35026
34906
|
{
|
|
35027
34907
|
path: "dist/domains/schedule/index.js",
|
|
35028
|
-
sha256: "
|
|
34908
|
+
sha256: "d3267a27432a6911027a2d5dc04177eb46db703ea012cc6d1cfe33c19be49694"
|
|
35029
34909
|
},
|
|
35030
34910
|
{
|
|
35031
34911
|
path: "dist/domains/system-job-template/index.js",
|
|
35032
|
-
sha256: "
|
|
34912
|
+
sha256: "8f485966f9f290399dfaf2eedf21b4182d2dd712bb6833e1df377eabb53ebb04"
|
|
35033
34913
|
},
|
|
35034
34914
|
{
|
|
35035
34915
|
path: "dist/domains/system-job/index.js",
|
|
35036
|
-
sha256: "
|
|
34916
|
+
sha256: "25bae07068cd93cf705c2bebcd8a4f6e5f6071c6b41951edb62527630e2c678f"
|
|
35037
34917
|
},
|
|
35038
34918
|
{
|
|
35039
34919
|
path: "dist/domains/team/index.js",
|
|
35040
|
-
sha256: "
|
|
34920
|
+
sha256: "eb3a4b5cff91f8ef1b07b64a934a3b9d9bc025cf2eb476f6aafa92086b9c07b6"
|
|
35041
34921
|
},
|
|
35042
34922
|
{
|
|
35043
34923
|
path: "dist/domains/template/index.js",
|
|
35044
|
-
sha256: "
|
|
34924
|
+
sha256: "92dd83d5adbba8b572b2bcec6090630a34d572b4a1346906dafdc8499d6f7941"
|
|
35045
34925
|
},
|
|
35046
34926
|
{
|
|
35047
34927
|
path: "dist/domains/user/index.js",
|
|
35048
|
-
sha256: "
|
|
34928
|
+
sha256: "dc2de36112a32b61f34d631f642a134b317255a5f5a1c1f2da6f3cf6d09e7cf3"
|
|
35049
34929
|
},
|
|
35050
34930
|
{
|
|
35051
34931
|
path: "dist/domains/workflow/index.js",
|
|
35052
|
-
sha256: "
|
|
34932
|
+
sha256: "811a3b1df2bfa7a2f76f6fb1c3464de91ed2b7c171788bc82ae4cd991ce4c52a"
|
|
35053
34933
|
},
|
|
35054
34934
|
{
|
|
35055
34935
|
path: "dist/skill.js",
|
|
35056
|
-
sha256: "
|
|
34936
|
+
sha256: "c7280e3093b0f547c577d54dc1f861cac4ce13ec70afabf7a3d1d55e3dbd6247"
|
|
35057
34937
|
}
|
|
35058
34938
|
],
|
|
35059
34939
|
credentialSchema: {
|
|
@@ -35145,7 +35025,7 @@ var awx_axi_default = {
|
|
|
35145
35025
|
}
|
|
35146
35026
|
}
|
|
35147
35027
|
},
|
|
35148
|
-
skillSha256: "
|
|
35028
|
+
skillSha256: "71f03eed887e2a5189b1b08b692fc5fd7a4acfd274102bd925c27d1dd16177ce",
|
|
35149
35029
|
adapterBoundary: {
|
|
35150
35030
|
unsafeOverrides: [
|
|
35151
35031
|
"config",
|
|
@@ -35218,7 +35098,9 @@ var awx_axi_default = {
|
|
|
35218
35098
|
template: "value",
|
|
35219
35099
|
failed: "boolean",
|
|
35220
35100
|
since: "value",
|
|
35221
|
-
limit: "value"
|
|
35101
|
+
limit: "value",
|
|
35102
|
+
all: "boolean",
|
|
35103
|
+
"max-rows": "value"
|
|
35222
35104
|
},
|
|
35223
35105
|
positionals: {
|
|
35224
35106
|
names: [],
|
|
@@ -35263,7 +35145,9 @@ var awx_axi_default = {
|
|
|
35263
35145
|
failed: "boolean",
|
|
35264
35146
|
host: "value",
|
|
35265
35147
|
task: "value",
|
|
35266
|
-
limit: "value"
|
|
35148
|
+
limit: "value",
|
|
35149
|
+
all: "boolean",
|
|
35150
|
+
"max-rows": "value"
|
|
35267
35151
|
},
|
|
35268
35152
|
positionals: {
|
|
35269
35153
|
names: [
|
|
@@ -35276,7 +35160,10 @@ var awx_axi_default = {
|
|
|
35276
35160
|
command: "job hosts",
|
|
35277
35161
|
effect: "read",
|
|
35278
35162
|
flags: {
|
|
35279
|
-
help: "boolean"
|
|
35163
|
+
help: "boolean",
|
|
35164
|
+
limit: "value",
|
|
35165
|
+
all: "boolean",
|
|
35166
|
+
"max-rows": "value"
|
|
35280
35167
|
},
|
|
35281
35168
|
positionals: {
|
|
35282
35169
|
names: [
|
|
@@ -35366,7 +35253,9 @@ var awx_axi_default = {
|
|
|
35366
35253
|
effect: "read",
|
|
35367
35254
|
flags: {
|
|
35368
35255
|
help: "boolean",
|
|
35369
|
-
limit: "value"
|
|
35256
|
+
limit: "value",
|
|
35257
|
+
all: "boolean",
|
|
35258
|
+
"max-rows": "value"
|
|
35370
35259
|
},
|
|
35371
35260
|
positionals: {
|
|
35372
35261
|
names: [
|
|
@@ -35593,7 +35482,9 @@ var awx_axi_default = {
|
|
|
35593
35482
|
help: "boolean",
|
|
35594
35483
|
project: "value",
|
|
35595
35484
|
search: "value",
|
|
35596
|
-
limit: "value"
|
|
35485
|
+
limit: "value",
|
|
35486
|
+
all: "boolean",
|
|
35487
|
+
"max-rows": "value"
|
|
35597
35488
|
},
|
|
35598
35489
|
positionals: {
|
|
35599
35490
|
names: [],
|
|
@@ -35658,7 +35549,9 @@ var awx_axi_default = {
|
|
|
35658
35549
|
effect: "read",
|
|
35659
35550
|
flags: {
|
|
35660
35551
|
help: "boolean",
|
|
35661
|
-
limit: "value"
|
|
35552
|
+
limit: "value",
|
|
35553
|
+
all: "boolean",
|
|
35554
|
+
"max-rows": "value"
|
|
35662
35555
|
},
|
|
35663
35556
|
positionals: {
|
|
35664
35557
|
names: [
|
|
@@ -36019,7 +35912,9 @@ var awx_axi_default = {
|
|
|
36019
35912
|
flags: {
|
|
36020
35913
|
help: "boolean",
|
|
36021
35914
|
search: "value",
|
|
36022
|
-
limit: "value"
|
|
35915
|
+
limit: "value",
|
|
35916
|
+
all: "boolean",
|
|
35917
|
+
"max-rows": "value"
|
|
36023
35918
|
},
|
|
36024
35919
|
positionals: {
|
|
36025
35920
|
names: [],
|
|
@@ -36076,7 +35971,10 @@ var awx_axi_default = {
|
|
|
36076
35971
|
command: "workflow nodes",
|
|
36077
35972
|
effect: "read",
|
|
36078
35973
|
flags: {
|
|
36079
|
-
help: "boolean"
|
|
35974
|
+
help: "boolean",
|
|
35975
|
+
limit: "value",
|
|
35976
|
+
all: "boolean",
|
|
35977
|
+
"max-rows": "value"
|
|
36080
35978
|
},
|
|
36081
35979
|
positionals: {
|
|
36082
35980
|
names: [
|
|
@@ -36090,7 +35988,9 @@ var awx_axi_default = {
|
|
|
36090
35988
|
effect: "read",
|
|
36091
35989
|
flags: {
|
|
36092
35990
|
help: "boolean",
|
|
36093
|
-
limit: "value"
|
|
35991
|
+
limit: "value",
|
|
35992
|
+
all: "boolean",
|
|
35993
|
+
"max-rows": "value"
|
|
36094
35994
|
},
|
|
36095
35995
|
positionals: {
|
|
36096
35996
|
names: [
|
|
@@ -36103,8 +36003,7 @@ var awx_axi_default = {
|
|
|
36103
36003
|
command: "workflow template-node",
|
|
36104
36004
|
effect: "read",
|
|
36105
36005
|
flags: {
|
|
36106
|
-
help: "boolean"
|
|
36107
|
-
limit: "value"
|
|
36006
|
+
help: "boolean"
|
|
36108
36007
|
},
|
|
36109
36008
|
positionals: {
|
|
36110
36009
|
names: [
|
|
@@ -36430,7 +36329,9 @@ var awx_axi_default = {
|
|
|
36430
36329
|
flags: {
|
|
36431
36330
|
help: "boolean",
|
|
36432
36331
|
search: "value",
|
|
36433
|
-
limit: "value"
|
|
36332
|
+
limit: "value",
|
|
36333
|
+
all: "boolean",
|
|
36334
|
+
"max-rows": "value"
|
|
36434
36335
|
},
|
|
36435
36336
|
positionals: {
|
|
36436
36337
|
names: [],
|
|
@@ -36472,7 +36373,9 @@ var awx_axi_default = {
|
|
|
36472
36373
|
flags: {
|
|
36473
36374
|
help: "boolean",
|
|
36474
36375
|
search: "value",
|
|
36475
|
-
limit: "value"
|
|
36376
|
+
limit: "value",
|
|
36377
|
+
all: "boolean",
|
|
36378
|
+
"max-rows": "value"
|
|
36476
36379
|
},
|
|
36477
36380
|
positionals: {
|
|
36478
36381
|
names: [],
|
|
@@ -36515,7 +36418,9 @@ var awx_axi_default = {
|
|
|
36515
36418
|
search: "value",
|
|
36516
36419
|
template: "value",
|
|
36517
36420
|
status: "value",
|
|
36518
|
-
limit: "value"
|
|
36421
|
+
limit: "value",
|
|
36422
|
+
all: "boolean",
|
|
36423
|
+
"max-rows": "value"
|
|
36519
36424
|
},
|
|
36520
36425
|
positionals: {
|
|
36521
36426
|
names: [],
|
|
@@ -36543,7 +36448,9 @@ var awx_axi_default = {
|
|
|
36543
36448
|
failed: "boolean",
|
|
36544
36449
|
host: "value",
|
|
36545
36450
|
task: "value",
|
|
36546
|
-
limit: "value"
|
|
36451
|
+
limit: "value",
|
|
36452
|
+
all: "boolean",
|
|
36453
|
+
"max-rows": "value"
|
|
36547
36454
|
},
|
|
36548
36455
|
positionals: {
|
|
36549
36456
|
names: [
|
|
@@ -36557,7 +36464,9 @@ var awx_axi_default = {
|
|
|
36557
36464
|
effect: "read",
|
|
36558
36465
|
flags: {
|
|
36559
36466
|
help: "boolean",
|
|
36560
|
-
limit: "value"
|
|
36467
|
+
limit: "value",
|
|
36468
|
+
all: "boolean",
|
|
36469
|
+
"max-rows": "value"
|
|
36561
36470
|
},
|
|
36562
36471
|
positionals: {
|
|
36563
36472
|
names: [
|
|
@@ -36571,7 +36480,9 @@ var awx_axi_default = {
|
|
|
36571
36480
|
effect: "read",
|
|
36572
36481
|
flags: {
|
|
36573
36482
|
help: "boolean",
|
|
36574
|
-
limit: "value"
|
|
36483
|
+
limit: "value",
|
|
36484
|
+
all: "boolean",
|
|
36485
|
+
"max-rows": "value"
|
|
36575
36486
|
},
|
|
36576
36487
|
positionals: {
|
|
36577
36488
|
names: [
|
|
@@ -36658,7 +36569,9 @@ var awx_axi_default = {
|
|
|
36658
36569
|
help: "boolean",
|
|
36659
36570
|
search: "value",
|
|
36660
36571
|
organization: "value",
|
|
36661
|
-
limit: "value"
|
|
36572
|
+
limit: "value",
|
|
36573
|
+
all: "boolean",
|
|
36574
|
+
"max-rows": "value"
|
|
36662
36575
|
},
|
|
36663
36576
|
positionals: {
|
|
36664
36577
|
names: [],
|
|
@@ -36684,7 +36597,9 @@ var awx_axi_default = {
|
|
|
36684
36597
|
flags: {
|
|
36685
36598
|
help: "boolean",
|
|
36686
36599
|
"include-decided": "boolean",
|
|
36687
|
-
limit: "value"
|
|
36600
|
+
limit: "value",
|
|
36601
|
+
all: "boolean",
|
|
36602
|
+
"max-rows": "value"
|
|
36688
36603
|
},
|
|
36689
36604
|
positionals: {
|
|
36690
36605
|
names: [],
|
|
@@ -36766,7 +36681,9 @@ var awx_axi_default = {
|
|
|
36766
36681
|
flags: {
|
|
36767
36682
|
help: "boolean",
|
|
36768
36683
|
search: "value",
|
|
36769
|
-
limit: "value"
|
|
36684
|
+
limit: "value",
|
|
36685
|
+
all: "boolean",
|
|
36686
|
+
"max-rows": "value"
|
|
36770
36687
|
},
|
|
36771
36688
|
positionals: {
|
|
36772
36689
|
names: [],
|
|
@@ -36793,7 +36710,9 @@ var awx_axi_default = {
|
|
|
36793
36710
|
help: "boolean",
|
|
36794
36711
|
host: "value",
|
|
36795
36712
|
task: "value",
|
|
36796
|
-
limit: "value"
|
|
36713
|
+
limit: "value",
|
|
36714
|
+
all: "boolean",
|
|
36715
|
+
"max-rows": "value"
|
|
36797
36716
|
},
|
|
36798
36717
|
positionals: {
|
|
36799
36718
|
names: [
|
|
@@ -36932,7 +36851,9 @@ var awx_axi_default = {
|
|
|
36932
36851
|
flags: {
|
|
36933
36852
|
help: "boolean",
|
|
36934
36853
|
search: "value",
|
|
36935
|
-
limit: "value"
|
|
36854
|
+
limit: "value",
|
|
36855
|
+
all: "boolean",
|
|
36856
|
+
"max-rows": "value"
|
|
36936
36857
|
},
|
|
36937
36858
|
positionals: {
|
|
36938
36859
|
names: [],
|
|
@@ -36970,7 +36891,9 @@ var awx_axi_default = {
|
|
|
36970
36891
|
effect: "read",
|
|
36971
36892
|
flags: {
|
|
36972
36893
|
help: "boolean",
|
|
36973
|
-
limit: "value"
|
|
36894
|
+
limit: "value",
|
|
36895
|
+
all: "boolean",
|
|
36896
|
+
"max-rows": "value"
|
|
36974
36897
|
},
|
|
36975
36898
|
positionals: {
|
|
36976
36899
|
names: [
|
|
@@ -36983,7 +36906,10 @@ var awx_axi_default = {
|
|
|
36983
36906
|
command: "project roles",
|
|
36984
36907
|
effect: "read",
|
|
36985
36908
|
flags: {
|
|
36986
|
-
help: "boolean"
|
|
36909
|
+
help: "boolean",
|
|
36910
|
+
limit: "value",
|
|
36911
|
+
all: "boolean",
|
|
36912
|
+
"max-rows": "value"
|
|
36987
36913
|
},
|
|
36988
36914
|
positionals: {
|
|
36989
36915
|
names: [
|
|
@@ -37415,7 +37341,9 @@ var awx_axi_default = {
|
|
|
37415
37341
|
flags: {
|
|
37416
37342
|
help: "boolean",
|
|
37417
37343
|
search: "value",
|
|
37418
|
-
limit: "value"
|
|
37344
|
+
limit: "value",
|
|
37345
|
+
all: "boolean",
|
|
37346
|
+
"max-rows": "value"
|
|
37419
37347
|
},
|
|
37420
37348
|
positionals: {
|
|
37421
37349
|
names: [],
|
|
@@ -37441,7 +37369,9 @@ var awx_axi_default = {
|
|
|
37441
37369
|
flags: {
|
|
37442
37370
|
help: "boolean",
|
|
37443
37371
|
search: "value",
|
|
37444
|
-
limit: "value"
|
|
37372
|
+
limit: "value",
|
|
37373
|
+
all: "boolean",
|
|
37374
|
+
"max-rows": "value"
|
|
37445
37375
|
},
|
|
37446
37376
|
positionals: {
|
|
37447
37377
|
names: [
|
|
@@ -37457,6 +37387,8 @@ var awx_axi_default = {
|
|
|
37457
37387
|
help: "boolean",
|
|
37458
37388
|
search: "value",
|
|
37459
37389
|
limit: "value",
|
|
37390
|
+
all: "boolean",
|
|
37391
|
+
"max-rows": "value",
|
|
37460
37392
|
facts: "boolean"
|
|
37461
37393
|
},
|
|
37462
37394
|
positionals: {
|
|
@@ -37472,7 +37404,9 @@ var awx_axi_default = {
|
|
|
37472
37404
|
flags: {
|
|
37473
37405
|
help: "boolean",
|
|
37474
37406
|
search: "value",
|
|
37475
|
-
limit: "value"
|
|
37407
|
+
limit: "value",
|
|
37408
|
+
all: "boolean",
|
|
37409
|
+
"max-rows": "value"
|
|
37476
37410
|
},
|
|
37477
37411
|
positionals: {
|
|
37478
37412
|
names: [
|
|
@@ -37503,7 +37437,9 @@ var awx_axi_default = {
|
|
|
37503
37437
|
flags: {
|
|
37504
37438
|
help: "boolean",
|
|
37505
37439
|
search: "value",
|
|
37506
|
-
limit: "value"
|
|
37440
|
+
limit: "value",
|
|
37441
|
+
all: "boolean",
|
|
37442
|
+
"max-rows": "value"
|
|
37507
37443
|
},
|
|
37508
37444
|
positionals: {
|
|
37509
37445
|
names: [],
|
|
@@ -37531,7 +37467,9 @@ var awx_axi_default = {
|
|
|
37531
37467
|
search: "value",
|
|
37532
37468
|
name: "value",
|
|
37533
37469
|
inventory: "value",
|
|
37534
|
-
limit: "value"
|
|
37470
|
+
limit: "value",
|
|
37471
|
+
all: "boolean",
|
|
37472
|
+
"max-rows": "value"
|
|
37535
37473
|
},
|
|
37536
37474
|
positionals: {
|
|
37537
37475
|
names: [],
|
|
@@ -37559,7 +37497,9 @@ var awx_axi_default = {
|
|
|
37559
37497
|
search: "value",
|
|
37560
37498
|
name: "value",
|
|
37561
37499
|
inventory: "value",
|
|
37562
|
-
limit: "value"
|
|
37500
|
+
limit: "value",
|
|
37501
|
+
all: "boolean",
|
|
37502
|
+
"max-rows": "value"
|
|
37563
37503
|
},
|
|
37564
37504
|
positionals: {
|
|
37565
37505
|
names: [],
|
|
@@ -37589,7 +37529,9 @@ var awx_axi_default = {
|
|
|
37589
37529
|
inventory: "value",
|
|
37590
37530
|
source: "value",
|
|
37591
37531
|
status: "value",
|
|
37592
|
-
limit: "value"
|
|
37532
|
+
limit: "value",
|
|
37533
|
+
all: "boolean",
|
|
37534
|
+
"max-rows": "value"
|
|
37593
37535
|
},
|
|
37594
37536
|
positionals: {
|
|
37595
37537
|
names: [],
|
|
@@ -37781,7 +37723,9 @@ var awx_axi_default = {
|
|
|
37781
37723
|
template: "value",
|
|
37782
37724
|
enabled: "boolean",
|
|
37783
37725
|
disabled: "boolean",
|
|
37784
|
-
limit: "value"
|
|
37726
|
+
limit: "value",
|
|
37727
|
+
all: "boolean",
|
|
37728
|
+
"max-rows": "value"
|
|
37785
37729
|
},
|
|
37786
37730
|
positionals: {
|
|
37787
37731
|
names: [],
|
|
@@ -37882,7 +37826,9 @@ var awx_axi_default = {
|
|
|
37882
37826
|
search: "value",
|
|
37883
37827
|
organization: "value",
|
|
37884
37828
|
type: "value",
|
|
37885
|
-
limit: "value"
|
|
37829
|
+
limit: "value",
|
|
37830
|
+
all: "boolean",
|
|
37831
|
+
"max-rows": "value"
|
|
37886
37832
|
},
|
|
37887
37833
|
positionals: {
|
|
37888
37834
|
names: [],
|
|
@@ -38000,7 +37946,9 @@ var awx_axi_default = {
|
|
|
38000
37946
|
flags: {
|
|
38001
37947
|
help: "boolean",
|
|
38002
37948
|
search: "value",
|
|
38003
|
-
limit: "value"
|
|
37949
|
+
limit: "value",
|
|
37950
|
+
all: "boolean",
|
|
37951
|
+
"max-rows": "value"
|
|
38004
37952
|
},
|
|
38005
37953
|
positionals: {
|
|
38006
37954
|
names: [],
|
|
@@ -38034,7 +37982,9 @@ var awx_axi_default = {
|
|
|
38034
37982
|
"inventory-update": "value",
|
|
38035
37983
|
"ad-hoc": "value",
|
|
38036
37984
|
"system-job": "value",
|
|
38037
|
-
limit: "value"
|
|
37985
|
+
limit: "value",
|
|
37986
|
+
all: "boolean",
|
|
37987
|
+
"max-rows": "value"
|
|
38038
37988
|
},
|
|
38039
37989
|
positionals: {
|
|
38040
37990
|
names: [],
|
|
@@ -38152,7 +38102,9 @@ var awx_axi_default = {
|
|
|
38152
38102
|
search: "value",
|
|
38153
38103
|
type: "value",
|
|
38154
38104
|
organization: "value",
|
|
38155
|
-
limit: "value"
|
|
38105
|
+
limit: "value",
|
|
38106
|
+
all: "boolean",
|
|
38107
|
+
"max-rows": "value"
|
|
38156
38108
|
},
|
|
38157
38109
|
positionals: {
|
|
38158
38110
|
names: [],
|
|
@@ -38189,7 +38141,9 @@ var awx_axi_default = {
|
|
|
38189
38141
|
team: "value",
|
|
38190
38142
|
user: "value",
|
|
38191
38143
|
credential: "value",
|
|
38192
|
-
limit: "value"
|
|
38144
|
+
limit: "value",
|
|
38145
|
+
all: "boolean",
|
|
38146
|
+
"max-rows": "value"
|
|
38193
38147
|
},
|
|
38194
38148
|
positionals: {
|
|
38195
38149
|
names: [],
|
|
@@ -38317,7 +38271,9 @@ var awx_axi_default = {
|
|
|
38317
38271
|
help: "boolean",
|
|
38318
38272
|
search: "value",
|
|
38319
38273
|
organization: "value",
|
|
38320
|
-
limit: "value"
|
|
38274
|
+
limit: "value",
|
|
38275
|
+
all: "boolean",
|
|
38276
|
+
"max-rows": "value"
|
|
38321
38277
|
},
|
|
38322
38278
|
positionals: {
|
|
38323
38279
|
names: [],
|
|
@@ -38342,7 +38298,9 @@ var awx_axi_default = {
|
|
|
38342
38298
|
effect: "read",
|
|
38343
38299
|
flags: {
|
|
38344
38300
|
help: "boolean",
|
|
38345
|
-
limit: "value"
|
|
38301
|
+
limit: "value",
|
|
38302
|
+
all: "boolean",
|
|
38303
|
+
"max-rows": "value"
|
|
38346
38304
|
},
|
|
38347
38305
|
positionals: {
|
|
38348
38306
|
names: [
|
|
@@ -38356,7 +38314,9 @@ var awx_axi_default = {
|
|
|
38356
38314
|
effect: "read",
|
|
38357
38315
|
flags: {
|
|
38358
38316
|
help: "boolean",
|
|
38359
|
-
limit: "value"
|
|
38317
|
+
limit: "value",
|
|
38318
|
+
all: "boolean",
|
|
38319
|
+
"max-rows": "value"
|
|
38360
38320
|
},
|
|
38361
38321
|
positionals: {
|
|
38362
38322
|
names: [
|
|
@@ -38370,7 +38330,9 @@ var awx_axi_default = {
|
|
|
38370
38330
|
effect: "read",
|
|
38371
38331
|
flags: {
|
|
38372
38332
|
help: "boolean",
|
|
38373
|
-
limit: "value"
|
|
38333
|
+
limit: "value",
|
|
38334
|
+
all: "boolean",
|
|
38335
|
+
"max-rows": "value"
|
|
38374
38336
|
},
|
|
38375
38337
|
positionals: {
|
|
38376
38338
|
names: [
|
|
@@ -38384,7 +38346,9 @@ var awx_axi_default = {
|
|
|
38384
38346
|
effect: "read",
|
|
38385
38347
|
flags: {
|
|
38386
38348
|
help: "boolean",
|
|
38387
|
-
limit: "value"
|
|
38349
|
+
limit: "value",
|
|
38350
|
+
all: "boolean",
|
|
38351
|
+
"max-rows": "value"
|
|
38388
38352
|
},
|
|
38389
38353
|
positionals: {
|
|
38390
38354
|
names: [
|
|
@@ -38398,7 +38362,9 @@ var awx_axi_default = {
|
|
|
38398
38362
|
effect: "read",
|
|
38399
38363
|
flags: {
|
|
38400
38364
|
help: "boolean",
|
|
38401
|
-
limit: "value"
|
|
38365
|
+
limit: "value",
|
|
38366
|
+
all: "boolean",
|
|
38367
|
+
"max-rows": "value"
|
|
38402
38368
|
},
|
|
38403
38369
|
positionals: {
|
|
38404
38370
|
names: [
|
|
@@ -38412,7 +38378,9 @@ var awx_axi_default = {
|
|
|
38412
38378
|
effect: "read",
|
|
38413
38379
|
flags: {
|
|
38414
38380
|
help: "boolean",
|
|
38415
|
-
limit: "value"
|
|
38381
|
+
limit: "value",
|
|
38382
|
+
all: "boolean",
|
|
38383
|
+
"max-rows": "value"
|
|
38416
38384
|
},
|
|
38417
38385
|
positionals: {
|
|
38418
38386
|
names: [
|
|
@@ -38462,7 +38430,9 @@ var awx_axi_default = {
|
|
|
38462
38430
|
help: "boolean",
|
|
38463
38431
|
search: "value",
|
|
38464
38432
|
type: "value",
|
|
38465
|
-
limit: "value"
|
|
38433
|
+
limit: "value",
|
|
38434
|
+
all: "boolean",
|
|
38435
|
+
"max-rows": "value"
|
|
38466
38436
|
},
|
|
38467
38437
|
positionals: {
|
|
38468
38438
|
names: [],
|
|
@@ -38487,7 +38457,9 @@ var awx_axi_default = {
|
|
|
38487
38457
|
effect: "read",
|
|
38488
38458
|
flags: {
|
|
38489
38459
|
help: "boolean",
|
|
38490
|
-
limit: "value"
|
|
38460
|
+
limit: "value",
|
|
38461
|
+
all: "boolean",
|
|
38462
|
+
"max-rows": "value"
|
|
38491
38463
|
},
|
|
38492
38464
|
positionals: {
|
|
38493
38465
|
names: [
|
|
@@ -38501,7 +38473,9 @@ var awx_axi_default = {
|
|
|
38501
38473
|
effect: "read",
|
|
38502
38474
|
flags: {
|
|
38503
38475
|
help: "boolean",
|
|
38504
|
-
limit: "value"
|
|
38476
|
+
limit: "value",
|
|
38477
|
+
all: "boolean",
|
|
38478
|
+
"max-rows": "value"
|
|
38505
38479
|
},
|
|
38506
38480
|
positionals: {
|
|
38507
38481
|
names: [
|
|
@@ -38515,7 +38489,9 @@ var awx_axi_default = {
|
|
|
38515
38489
|
effect: "read",
|
|
38516
38490
|
flags: {
|
|
38517
38491
|
help: "boolean",
|
|
38518
|
-
limit: "value"
|
|
38492
|
+
limit: "value",
|
|
38493
|
+
all: "boolean",
|
|
38494
|
+
"max-rows": "value"
|
|
38519
38495
|
},
|
|
38520
38496
|
positionals: {
|
|
38521
38497
|
names: [
|
|
@@ -38529,7 +38505,9 @@ var awx_axi_default = {
|
|
|
38529
38505
|
effect: "read",
|
|
38530
38506
|
flags: {
|
|
38531
38507
|
help: "boolean",
|
|
38532
|
-
limit: "value"
|
|
38508
|
+
limit: "value",
|
|
38509
|
+
all: "boolean",
|
|
38510
|
+
"max-rows": "value"
|
|
38533
38511
|
},
|
|
38534
38512
|
positionals: {
|
|
38535
38513
|
names: [
|
|
@@ -38640,8 +38618,1210 @@ var awx_axi_default = {
|
|
|
38640
38618
|
]
|
|
38641
38619
|
};
|
|
38642
38620
|
|
|
38621
|
+
// tools/inventories/tenable-axi.json
|
|
38622
|
+
var tenable_axi_default = {
|
|
38623
|
+
generatedBy: "scripts/tenable-inventory.mjs",
|
|
38624
|
+
tool: "tenable-axi",
|
|
38625
|
+
version: "0.1.0",
|
|
38626
|
+
integrity: "sha512-nw1HLOmUZdeo/x1po1uOmFQhZsg0rP1eMGrcwLj+Pd2UkdwKodAQjDCjgBdl5DNLIqaafkUEV6mPMJmkFLQpzw==",
|
|
38627
|
+
parserEvidence: "Published command catalogue, mutation registry and reviewed native parsers and transport gates",
|
|
38628
|
+
sources: [
|
|
38629
|
+
{
|
|
38630
|
+
path: "dist/src/attack-catalogue.js",
|
|
38631
|
+
sha256: "022f9d46c0e0a76b62ed528b17552fccae9634208698e541146f8af2f6107316"
|
|
38632
|
+
},
|
|
38633
|
+
{
|
|
38634
|
+
path: "dist/src/attack-export-catalogue.js",
|
|
38635
|
+
sha256: "7127a33fdbb01db34886b2c91b36bdc174131819b5753c1201c56999389584ee"
|
|
38636
|
+
},
|
|
38637
|
+
{
|
|
38638
|
+
path: "dist/src/attack-export.js",
|
|
38639
|
+
sha256: "38adf6d13ab1afe4f8d0123803257c2f10a1c47b9a7f9b216ee9107ea30368c8"
|
|
38640
|
+
},
|
|
38641
|
+
{
|
|
38642
|
+
path: "dist/src/attack.js",
|
|
38643
|
+
sha256: "76905fe54d1038ffbaa6b4a82b4cb4fadb6473462d28679319a98ab7cdd08650"
|
|
38644
|
+
},
|
|
38645
|
+
{
|
|
38646
|
+
path: "dist/src/catalogue.js",
|
|
38647
|
+
sha256: "d05c8dfebce3219c2ee0a305888fa336e62db5fc3b3b4bc95a27c0588943587b"
|
|
38648
|
+
},
|
|
38649
|
+
{
|
|
38650
|
+
path: "dist/src/cli.js",
|
|
38651
|
+
sha256: "df6dfee98019af2da15ac7a3c4d1ea7b3860c73021cbf2f08ac52386a64f441c"
|
|
38652
|
+
},
|
|
38653
|
+
{
|
|
38654
|
+
path: "dist/src/export-file.js",
|
|
38655
|
+
sha256: "2eb4f73e2d9a3361283a62e887c6cf95de70d5d3f353441bcd4de738377d57df"
|
|
38656
|
+
},
|
|
38657
|
+
{
|
|
38658
|
+
path: "dist/src/exposure-contracts.js",
|
|
38659
|
+
sha256: "febe68635d243ce801607d76af753d21f2ff30712c0efe9c3a2805209cc4b915"
|
|
38660
|
+
},
|
|
38661
|
+
{
|
|
38662
|
+
path: "dist/src/exposure.js",
|
|
38663
|
+
sha256: "0278853a917eb583c721c69d10c5e466aed9d18c8d910f20991dcfe33faac738"
|
|
38664
|
+
},
|
|
38665
|
+
{
|
|
38666
|
+
path: "dist/src/hook-install.js",
|
|
38667
|
+
sha256: "74fce246ea8fd1ee83bc89f06ab71b3bbf10b2b6ebce0701d24c95eae7755668"
|
|
38668
|
+
},
|
|
38669
|
+
{
|
|
38670
|
+
path: "dist/src/inventory-catalogue.js",
|
|
38671
|
+
sha256: "2a4b4338917af9060b6859eaa2cfc94cc5ccb936bf96f744b51755d4d92d98a7"
|
|
38672
|
+
},
|
|
38673
|
+
{
|
|
38674
|
+
path: "dist/src/inventory-export-catalogue.js",
|
|
38675
|
+
sha256: "a85ef57098bdec74dccd587b7065ebb4c84b3902043fc87c8aedd878d74b375f"
|
|
38676
|
+
},
|
|
38677
|
+
{
|
|
38678
|
+
path: "dist/src/inventory-export.js",
|
|
38679
|
+
sha256: "5422b59008eecad8476d8c0ce5f287188a2f1ad4fcfe763450ac187423d7d0f2"
|
|
38680
|
+
},
|
|
38681
|
+
{
|
|
38682
|
+
path: "dist/src/inventory.js",
|
|
38683
|
+
sha256: "12ad8effb2728fea7791e5f62716d079484b377c56f8b9cdb83d500842258b7d"
|
|
38684
|
+
},
|
|
38685
|
+
{
|
|
38686
|
+
path: "dist/src/inventory/schema.js",
|
|
38687
|
+
sha256: "1dc7cf0f1fb0e07dcf79bcac7e41450e1394345fc4fcd410119ab639064926af"
|
|
38688
|
+
},
|
|
38689
|
+
{
|
|
38690
|
+
path: "dist/src/local-commands.js",
|
|
38691
|
+
sha256: "4bb2769049b72126c47857f850b3cd008a371f952c479e0b288d5279d7aaa77a"
|
|
38692
|
+
},
|
|
38693
|
+
{
|
|
38694
|
+
path: "dist/src/platform-tag-catalogue.js",
|
|
38695
|
+
sha256: "9c887c06dd1179a877696deae8873ffce5e3b3e001f2c61ae7968f883eafe314"
|
|
38696
|
+
},
|
|
38697
|
+
{
|
|
38698
|
+
path: "dist/src/platform-tag.js",
|
|
38699
|
+
sha256: "ff31eb9a454ba20d2e378403fd4cb29b097e8de4b8b241b3af13197598a66972"
|
|
38700
|
+
},
|
|
38701
|
+
{
|
|
38702
|
+
path: "dist/src/private-file.js",
|
|
38703
|
+
sha256: "a5f01182fe09394ecf508deb46d54c9fb0b39c9fd205094d155ace212bbd1c8b"
|
|
38704
|
+
},
|
|
38705
|
+
{
|
|
38706
|
+
path: "dist/src/profiles.js",
|
|
38707
|
+
sha256: "12defbf234e4da8584e1f6ba601eb3826733ff85c76445197b0162ac52299b4a"
|
|
38708
|
+
},
|
|
38709
|
+
{
|
|
38710
|
+
path: "dist/src/redact.js",
|
|
38711
|
+
sha256: "e88631746e63a7fc08f206b58ddf3754ecea6f0ec21011c37ded0114dfbb6830"
|
|
38712
|
+
},
|
|
38713
|
+
{
|
|
38714
|
+
path: "dist/src/response-catalogue.js",
|
|
38715
|
+
sha256: "6f0eb3f6ba860e59e7bfd764a0d3932b52101e4013acea4ee5aa63081a1f83db"
|
|
38716
|
+
},
|
|
38717
|
+
{
|
|
38718
|
+
path: "dist/src/response.js",
|
|
38719
|
+
sha256: "44277f2a0c28b3e6801c47578603270ed59c76aac5214c6428fd2dbf8a83f1d4"
|
|
38720
|
+
},
|
|
38721
|
+
{
|
|
38722
|
+
path: "dist/src/setup.js",
|
|
38723
|
+
sha256: "2e9c8430b4fbf0f95e0e31267ba828107fd054e9d525a5c970f7c9c2e20d5348"
|
|
38724
|
+
},
|
|
38725
|
+
{
|
|
38726
|
+
path: "dist/src/transport-core.js",
|
|
38727
|
+
sha256: "db13c1c33aa1716bc8a32e3ebc6459421c64f078ea4641f248e552c5b74a621d"
|
|
38728
|
+
},
|
|
38729
|
+
{
|
|
38730
|
+
path: "dist/src/transport.js",
|
|
38731
|
+
sha256: "c3639f96d71c80217da15fe7449b586ee797c94e9f4f6b3f22d0472613d28ee1"
|
|
38732
|
+
},
|
|
38733
|
+
{
|
|
38734
|
+
path: "dist/src/writes-core.js",
|
|
38735
|
+
sha256: "55a76961512751653c8d14778b6b74094318ba1527b50dedf2167127f1e7c1f9"
|
|
38736
|
+
},
|
|
38737
|
+
{
|
|
38738
|
+
path: "dist/src/writes.js",
|
|
38739
|
+
sha256: "43099c373b451991102515f0f583c9a7678edb89a5b6bc9ad7e261a1c1f4a5dd"
|
|
38740
|
+
}
|
|
38741
|
+
],
|
|
38742
|
+
credentialSchema: {
|
|
38743
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
38744
|
+
$id: "https://github.com/knowttl/tenable-axi/axi-credential.schema.json",
|
|
38745
|
+
title: "Tenable AXI credential profile",
|
|
38746
|
+
type: "object",
|
|
38747
|
+
additionalProperties: false,
|
|
38748
|
+
properties: {
|
|
38749
|
+
origin: {
|
|
38750
|
+
const: "https://cloud.tenable.com",
|
|
38751
|
+
default: "https://cloud.tenable.com"
|
|
38752
|
+
},
|
|
38753
|
+
accessKey: {
|
|
38754
|
+
$ref: "#/$defs/secretRef",
|
|
38755
|
+
"x-secret": true,
|
|
38756
|
+
default: {
|
|
38757
|
+
env: "TENABLE_AXI_ACCESS_KEY"
|
|
38758
|
+
}
|
|
38759
|
+
},
|
|
38760
|
+
secretKey: {
|
|
38761
|
+
$ref: "#/$defs/secretRef",
|
|
38762
|
+
"x-secret": true,
|
|
38763
|
+
default: {
|
|
38764
|
+
env: "TENABLE_AXI_SECRET_KEY"
|
|
38765
|
+
}
|
|
38766
|
+
},
|
|
38767
|
+
writes: {
|
|
38768
|
+
type: "object",
|
|
38769
|
+
additionalProperties: false,
|
|
38770
|
+
required: [
|
|
38771
|
+
"allowWrites",
|
|
38772
|
+
"operations"
|
|
38773
|
+
],
|
|
38774
|
+
default: {
|
|
38775
|
+
allowWrites: false,
|
|
38776
|
+
operations: []
|
|
38777
|
+
},
|
|
38778
|
+
properties: {
|
|
38779
|
+
allowWrites: {
|
|
38780
|
+
type: "boolean"
|
|
38781
|
+
},
|
|
38782
|
+
operations: {
|
|
38783
|
+
type: "array",
|
|
38784
|
+
items: {
|
|
38785
|
+
type: "string",
|
|
38786
|
+
pattern: "^[A-Za-z0-9][A-Za-z0-9_-]*$"
|
|
38787
|
+
}
|
|
38788
|
+
}
|
|
38789
|
+
}
|
|
38790
|
+
}
|
|
38791
|
+
},
|
|
38792
|
+
$defs: {
|
|
38793
|
+
secretRef: {
|
|
38794
|
+
oneOf: [
|
|
38795
|
+
{
|
|
38796
|
+
type: "object",
|
|
38797
|
+
additionalProperties: false,
|
|
38798
|
+
required: [
|
|
38799
|
+
"env"
|
|
38800
|
+
],
|
|
38801
|
+
properties: {
|
|
38802
|
+
env: {
|
|
38803
|
+
type: "string",
|
|
38804
|
+
pattern: "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
38805
|
+
}
|
|
38806
|
+
}
|
|
38807
|
+
},
|
|
38808
|
+
{
|
|
38809
|
+
type: "object",
|
|
38810
|
+
additionalProperties: false,
|
|
38811
|
+
required: [
|
|
38812
|
+
"file"
|
|
38813
|
+
],
|
|
38814
|
+
properties: {
|
|
38815
|
+
file: {
|
|
38816
|
+
type: "string",
|
|
38817
|
+
pattern: "^(?:/|[A-Za-z]:[\\\\/])"
|
|
38818
|
+
}
|
|
38819
|
+
}
|
|
38820
|
+
}
|
|
38821
|
+
]
|
|
38822
|
+
}
|
|
38823
|
+
}
|
|
38824
|
+
},
|
|
38825
|
+
skillSha256: "ea35fe90d39fee3982f731ccc3c717c92aabd0799ff2371f6f3cc5e12d7aea9a",
|
|
38826
|
+
nativeWriteSettings: {
|
|
38827
|
+
supportedOperations: [
|
|
38828
|
+
"apa-export-attack-path",
|
|
38829
|
+
"apa-export-attack-technique",
|
|
38830
|
+
"apa-export-mitre-heatmap",
|
|
38831
|
+
"combinations-create",
|
|
38832
|
+
"combinations-delete",
|
|
38833
|
+
"combinations-update",
|
|
38834
|
+
"initiatives-create",
|
|
38835
|
+
"initiatives-delete",
|
|
38836
|
+
"initiatives-update",
|
|
38837
|
+
"inventory-export-assets",
|
|
38838
|
+
"inventory-export-findings",
|
|
38839
|
+
"tags-assign-asset-tags",
|
|
38840
|
+
"tags-create-tag-category",
|
|
38841
|
+
"tags-create-tag-value",
|
|
38842
|
+
"tags-delete-tag-category",
|
|
38843
|
+
"tags-delete-tag-value",
|
|
38844
|
+
"tags-delete-tag-values-bulk",
|
|
38845
|
+
"tags-edit-tag-category",
|
|
38846
|
+
"tags-update-tag-value"
|
|
38847
|
+
]
|
|
38848
|
+
},
|
|
38849
|
+
adapterBoundary: {
|
|
38850
|
+
unsafeOverrides: [
|
|
38851
|
+
"config",
|
|
38852
|
+
"profile",
|
|
38853
|
+
"origin",
|
|
38854
|
+
"output"
|
|
38855
|
+
],
|
|
38856
|
+
inputFileFlags: [
|
|
38857
|
+
"filter-file",
|
|
38858
|
+
"body-file",
|
|
38859
|
+
"ids-file",
|
|
38860
|
+
"asset-ids-file",
|
|
38861
|
+
"tag-ids-file"
|
|
38862
|
+
],
|
|
38863
|
+
blockedCommands: [
|
|
38864
|
+
"setup hooks",
|
|
38865
|
+
"config path",
|
|
38866
|
+
"profile list",
|
|
38867
|
+
"hook",
|
|
38868
|
+
"export attack download",
|
|
38869
|
+
"export inventory download"
|
|
38870
|
+
],
|
|
38871
|
+
inputs: {
|
|
38872
|
+
stdin: "explicit file flag with - only",
|
|
38873
|
+
files: "uploaded leaves only",
|
|
38874
|
+
downloads: "unsupported"
|
|
38875
|
+
},
|
|
38876
|
+
nativeWrites: "native preview, operation allow-list, execute, exact confirm and durable journal"
|
|
38877
|
+
},
|
|
38878
|
+
discovery: {
|
|
38879
|
+
commands: [
|
|
38880
|
+
"asset",
|
|
38881
|
+
"attack-path",
|
|
38882
|
+
"attack-technique",
|
|
38883
|
+
"auth",
|
|
38884
|
+
"card",
|
|
38885
|
+
"combination",
|
|
38886
|
+
"connector",
|
|
38887
|
+
"doctor",
|
|
38888
|
+
"export",
|
|
38889
|
+
"finding",
|
|
38890
|
+
"home",
|
|
38891
|
+
"initiative",
|
|
38892
|
+
"software",
|
|
38893
|
+
"tag"
|
|
38894
|
+
],
|
|
38895
|
+
example: [
|
|
38896
|
+
"card",
|
|
38897
|
+
"list",
|
|
38898
|
+
"--limit",
|
|
38899
|
+
"1"
|
|
38900
|
+
],
|
|
38901
|
+
help: "tenable-axi card list [--limit <n>]\nArtium manages both API keys and the fixed https://cloud.tenable.com origin. Writes and export-job creation require administrator-enabled operations, preview, --execute and exact --confirm. File inputs accept uploaded leaves or explicit stdin (-). Downloads and local configuration are blocked.\n"
|
|
38902
|
+
},
|
|
38903
|
+
suggestionFields: [
|
|
38904
|
+
"help"
|
|
38905
|
+
],
|
|
38906
|
+
format: "TOON",
|
|
38907
|
+
commands: [
|
|
38908
|
+
{
|
|
38909
|
+
command: "asset list",
|
|
38910
|
+
effect: "read",
|
|
38911
|
+
flags: {
|
|
38912
|
+
config: "Config path; default credential precedence",
|
|
38913
|
+
profile: "Profile name; default credential precedence",
|
|
38914
|
+
fields: "Comma-separated display or wire properties; default compact view",
|
|
38915
|
+
full: "Show full text; default false",
|
|
38916
|
+
help: "Show help",
|
|
38917
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
38918
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
38919
|
+
cursor: "Opaque resume cursor; retain the original selectors and filters",
|
|
38920
|
+
query: "Simple query text",
|
|
38921
|
+
filter: "Repeatable: <property> <operator> <JSON string array>",
|
|
38922
|
+
"filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
|
|
38923
|
+
sort: "Wire property:asc|desc",
|
|
38924
|
+
"extra-properties": "Comma-separated extra wire properties",
|
|
38925
|
+
offset: "Starting record; default 0; excludes --cursor",
|
|
38926
|
+
class: "Server-side asset class filter"
|
|
38927
|
+
}
|
|
38928
|
+
},
|
|
38929
|
+
{
|
|
38930
|
+
command: "asset properties",
|
|
38931
|
+
effect: "read",
|
|
38932
|
+
flags: {
|
|
38933
|
+
config: "Config path; default credential precedence",
|
|
38934
|
+
profile: "Profile name; default credential precedence",
|
|
38935
|
+
fields: "Comma-separated display or wire properties; default compact view",
|
|
38936
|
+
full: "Show full text; default false",
|
|
38937
|
+
help: "Show help",
|
|
38938
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
38939
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
38940
|
+
cursor: "Opaque resume cursor; retain the original selectors and filters",
|
|
38941
|
+
"asset-classes": "Comma-separated documented asset classes"
|
|
38942
|
+
}
|
|
38943
|
+
},
|
|
38944
|
+
{
|
|
38945
|
+
command: "asset show",
|
|
38946
|
+
effect: "read",
|
|
38947
|
+
flags: {
|
|
38948
|
+
config: "Config path; default credential precedence",
|
|
38949
|
+
profile: "Profile name; default credential precedence",
|
|
38950
|
+
fields: "Comma-separated display or wire properties; default compact view",
|
|
38951
|
+
full: "Show full text; default false",
|
|
38952
|
+
help: "Show help",
|
|
38953
|
+
id: "Required exact inventory ID",
|
|
38954
|
+
"extra-properties": "Comma-separated extra wire properties"
|
|
38955
|
+
}
|
|
38956
|
+
},
|
|
38957
|
+
{
|
|
38958
|
+
command: "attack-path list",
|
|
38959
|
+
effect: "read",
|
|
38960
|
+
flags: {
|
|
38961
|
+
config: "Config path; default credential precedence",
|
|
38962
|
+
profile: "Profile name; default credential precedence",
|
|
38963
|
+
fields: "Comma-separated display or wire fields; default compact view",
|
|
38964
|
+
full: "Show full text; default false",
|
|
38965
|
+
help: "Show help",
|
|
38966
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
38967
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
38968
|
+
cursor: "Bounded resume cursor; retain original selectors, filters, sort and fields",
|
|
38969
|
+
offset: "Starting record; default 0; excludes --cursor",
|
|
38970
|
+
sort: "Documented wire property:direction",
|
|
38971
|
+
filter: "Repeatable: <property> <operator> <JSON-value>; combines with AND (paths) or and (techniques)",
|
|
38972
|
+
"filter-file": "Documented single or nested JSON filter, at most two logical levels; '-' reads stdin; excludes --filter",
|
|
38973
|
+
"include-resolved": "Include resolved records; default false (exclude_resolved=true)",
|
|
38974
|
+
"run-ai-summarization": "true|false; default false"
|
|
38975
|
+
}
|
|
38976
|
+
},
|
|
38977
|
+
{
|
|
38978
|
+
command: "attack-technique list",
|
|
38979
|
+
effect: "read",
|
|
38980
|
+
flags: {
|
|
38981
|
+
config: "Config path; default credential precedence",
|
|
38982
|
+
profile: "Profile name; default credential precedence",
|
|
38983
|
+
fields: "Comma-separated display or wire fields; default compact view",
|
|
38984
|
+
full: "Show full text; default false",
|
|
38985
|
+
help: "Show help",
|
|
38986
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
38987
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
38988
|
+
cursor: "Bounded resume cursor; retain original selectors, filters, sort and fields",
|
|
38989
|
+
offset: "Starting record; default 0; excludes --cursor",
|
|
38990
|
+
sort: "Documented wire property:direction",
|
|
38991
|
+
filter: "Repeatable: <property> <operator> <JSON-value>; combines with AND (paths) or and (techniques)",
|
|
38992
|
+
"filter-file": "Documented single or nested JSON filter, at most two logical levels; '-' reads stdin; excludes --filter",
|
|
38993
|
+
"include-resolved": "Include resolved records; default false (exclude_resolved=true)"
|
|
38994
|
+
}
|
|
38995
|
+
},
|
|
38996
|
+
{
|
|
38997
|
+
command: "auth status",
|
|
38998
|
+
effect: "read",
|
|
38999
|
+
flags: {
|
|
39000
|
+
config: "Config path; default TENABLE_AXI_CONFIG or platform path",
|
|
39001
|
+
profile: "Profile name; default credential precedence",
|
|
39002
|
+
fields: "Comma-separated output fields; default all",
|
|
39003
|
+
full: "Show full text; default false",
|
|
39004
|
+
help: "Show help; default false"
|
|
39005
|
+
}
|
|
39006
|
+
},
|
|
39007
|
+
{
|
|
39008
|
+
command: "card list",
|
|
39009
|
+
effect: "read",
|
|
39010
|
+
flags: {
|
|
39011
|
+
config: "Config path; default platform path",
|
|
39012
|
+
profile: "Profile name; default credential precedence",
|
|
39013
|
+
fields: "Comma-separated output fields; default compact projection",
|
|
39014
|
+
full: "Full text; default false",
|
|
39015
|
+
help: "Show help; default false",
|
|
39016
|
+
limit: "Output rows; default 100",
|
|
39017
|
+
offset: "Starting record; default 0",
|
|
39018
|
+
cursor: "Resume the same scoped collection",
|
|
39019
|
+
all: "Read up to 10000 rows; incompatible with --limit",
|
|
39020
|
+
global: "true or false; default all cards",
|
|
39021
|
+
query: "Card name search",
|
|
39022
|
+
"sorting-order": "asc or desc; default API order"
|
|
39023
|
+
}
|
|
39024
|
+
},
|
|
39025
|
+
{
|
|
39026
|
+
command: "card show",
|
|
39027
|
+
effect: "read",
|
|
39028
|
+
flags: {
|
|
39029
|
+
config: "Config path; default platform path",
|
|
39030
|
+
profile: "Profile name; default credential precedence",
|
|
39031
|
+
fields: "Comma-separated output fields; default compact projection",
|
|
39032
|
+
full: "Full text; default false",
|
|
39033
|
+
help: "Show help; default false",
|
|
39034
|
+
id: "Required card ID",
|
|
39035
|
+
"trend-start-date": "UTC ISO timestamp",
|
|
39036
|
+
"trend-end-date": "UTC ISO timestamp",
|
|
39037
|
+
"sla-efficiency-start-date": "UTC ISO timestamp",
|
|
39038
|
+
"sla-efficiency-end-date": "UTC ISO timestamp",
|
|
39039
|
+
"sla-breakdown-filter": "ANY, REMEDIATED or NON_REMEDIATED; default ANY",
|
|
39040
|
+
"include-trend-events": "true or false; default false"
|
|
39041
|
+
}
|
|
39042
|
+
},
|
|
39043
|
+
{
|
|
39044
|
+
command: "combination create",
|
|
39045
|
+
effect: "write",
|
|
39046
|
+
flags: {
|
|
39047
|
+
config: "Config path; default credential precedence",
|
|
39048
|
+
profile: "Profile name; default credential precedence",
|
|
39049
|
+
fields: "Comma-separated fields; default compact view",
|
|
39050
|
+
full: "Full text; default false",
|
|
39051
|
+
help: "Show help",
|
|
39052
|
+
execute: "Send once; default preview",
|
|
39053
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39054
|
+
confirm: "Exact preview confirmation; required to execute",
|
|
39055
|
+
"body-file": "Required strict JSON, at most 1 MiB; '-' reads stdin"
|
|
39056
|
+
}
|
|
39057
|
+
},
|
|
39058
|
+
{
|
|
39059
|
+
command: "combination delete",
|
|
39060
|
+
effect: "write",
|
|
39061
|
+
flags: {
|
|
39062
|
+
config: "Config path; default credential precedence",
|
|
39063
|
+
profile: "Profile name; default credential precedence",
|
|
39064
|
+
fields: "Comma-separated fields; default compact view",
|
|
39065
|
+
full: "Full text; default false",
|
|
39066
|
+
help: "Show help",
|
|
39067
|
+
id: "Required exact UUID",
|
|
39068
|
+
execute: "Send once; default preview",
|
|
39069
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39070
|
+
confirm: "Exact preview confirmation; required to execute"
|
|
39071
|
+
}
|
|
39072
|
+
},
|
|
39073
|
+
{
|
|
39074
|
+
command: "combination filters",
|
|
39075
|
+
effect: "read",
|
|
39076
|
+
flags: {
|
|
39077
|
+
config: "Config path; default credential precedence",
|
|
39078
|
+
profile: "Profile name; default credential precedence",
|
|
39079
|
+
fields: "Comma-separated fields; default compact view",
|
|
39080
|
+
full: "Full text; default false",
|
|
39081
|
+
help: "Show help",
|
|
39082
|
+
limit: "Output rows; default 100, maximum 10000",
|
|
39083
|
+
all: "Up to 10000 rows; excludes --limit",
|
|
39084
|
+
cursor: "Re-fetch and resume an unchanged unpaged collection; requires original selectors"
|
|
39085
|
+
}
|
|
39086
|
+
},
|
|
39087
|
+
{
|
|
39088
|
+
command: "combination list",
|
|
39089
|
+
effect: "read",
|
|
39090
|
+
flags: {
|
|
39091
|
+
config: "Config path; default credential precedence",
|
|
39092
|
+
profile: "Profile name; default credential precedence",
|
|
39093
|
+
fields: "Comma-separated fields; default compact view",
|
|
39094
|
+
full: "Full text; default false",
|
|
39095
|
+
help: "Show help",
|
|
39096
|
+
limit: "Output rows; default 100, maximum 10000",
|
|
39097
|
+
all: "Up to 10000 rows; excludes --limit",
|
|
39098
|
+
cursor: "Re-fetch and resume an unchanged unpaged collection; requires original selectors",
|
|
39099
|
+
type: "private, shared or tenable; default all accessible"
|
|
39100
|
+
}
|
|
39101
|
+
},
|
|
39102
|
+
{
|
|
39103
|
+
command: "combination show",
|
|
39104
|
+
effect: "read",
|
|
39105
|
+
flags: {
|
|
39106
|
+
config: "Config path; default credential precedence",
|
|
39107
|
+
profile: "Profile name; default credential precedence",
|
|
39108
|
+
fields: "Comma-separated fields; default compact view",
|
|
39109
|
+
full: "Full text; default false",
|
|
39110
|
+
help: "Show help",
|
|
39111
|
+
id: "Required exact UUID"
|
|
39112
|
+
}
|
|
39113
|
+
},
|
|
39114
|
+
{
|
|
39115
|
+
command: "combination update",
|
|
39116
|
+
effect: "write",
|
|
39117
|
+
flags: {
|
|
39118
|
+
config: "Config path; default credential precedence",
|
|
39119
|
+
profile: "Profile name; default credential precedence",
|
|
39120
|
+
fields: "Comma-separated fields; default compact view",
|
|
39121
|
+
full: "Full text; default false",
|
|
39122
|
+
help: "Show help",
|
|
39123
|
+
id: "Required exact UUID",
|
|
39124
|
+
execute: "Send once; default preview",
|
|
39125
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39126
|
+
confirm: "Exact preview confirmation; required to execute",
|
|
39127
|
+
"body-file": "Required strict JSON, at most 1 MiB; '-' reads stdin"
|
|
39128
|
+
}
|
|
39129
|
+
},
|
|
39130
|
+
{
|
|
39131
|
+
command: "config path",
|
|
39132
|
+
effect: "blocked",
|
|
39133
|
+
flags: {
|
|
39134
|
+
config: "Config path; default TENABLE_AXI_CONFIG or platform path",
|
|
39135
|
+
profile: "Common selector; paths are independent of profile",
|
|
39136
|
+
fields: "Comma-separated output fields; default all",
|
|
39137
|
+
full: "Show full text; default false",
|
|
39138
|
+
help: "Show help; default false"
|
|
39139
|
+
}
|
|
39140
|
+
},
|
|
39141
|
+
{
|
|
39142
|
+
command: "connector logs",
|
|
39143
|
+
effect: "read",
|
|
39144
|
+
flags: {
|
|
39145
|
+
config: "Config path; default credential precedence",
|
|
39146
|
+
profile: "Profile name; default credential precedence",
|
|
39147
|
+
fields: "Comma-separated display or wire fields; default compact view",
|
|
39148
|
+
full: "Show full text; default false",
|
|
39149
|
+
help: "Show help",
|
|
39150
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
39151
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
39152
|
+
cursor: "Bounded resume cursor; retain original selectors, filters, sort and fields",
|
|
39153
|
+
"connector-id": "Nonnegative numeric connector ID",
|
|
39154
|
+
status: "SUCCEEDED|FAILED",
|
|
39155
|
+
"start-date": "Inclusive YYYY-MM-DD; requires --end-date",
|
|
39156
|
+
"end-date": "Exclusive YYYY-MM-DD; requires --start-date"
|
|
39157
|
+
}
|
|
39158
|
+
},
|
|
39159
|
+
{
|
|
39160
|
+
command: "doctor",
|
|
39161
|
+
effect: "read",
|
|
39162
|
+
flags: {
|
|
39163
|
+
config: "Config path; default platform path",
|
|
39164
|
+
profile: "Profile name; default credential precedence",
|
|
39165
|
+
fields: "Comma-separated output fields; default compact projection",
|
|
39166
|
+
full: "Full text; default false",
|
|
39167
|
+
help: "Show help; default false"
|
|
39168
|
+
}
|
|
39169
|
+
},
|
|
39170
|
+
{
|
|
39171
|
+
command: "export asset jobs",
|
|
39172
|
+
effect: "read",
|
|
39173
|
+
flags: {
|
|
39174
|
+
config: "Config path; default platform path",
|
|
39175
|
+
profile: "Profile name; default credential precedence",
|
|
39176
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39177
|
+
full: "Full output; default false",
|
|
39178
|
+
help: "Show help",
|
|
39179
|
+
status: "QUEUED|PROCESSING|FINISHED|ERROR",
|
|
39180
|
+
limit: "1-1000; default 100; last three days only"
|
|
39181
|
+
}
|
|
39182
|
+
},
|
|
39183
|
+
{
|
|
39184
|
+
command: "export asset start",
|
|
39185
|
+
effect: "write",
|
|
39186
|
+
flags: {
|
|
39187
|
+
config: "Config path; default platform path",
|
|
39188
|
+
profile: "Profile name; default credential precedence",
|
|
39189
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39190
|
+
full: "Full output; default false",
|
|
39191
|
+
help: "Show help",
|
|
39192
|
+
"body-file": "Optional strict query/filters JSON file, '-' for stdin; maximum 1 MiB",
|
|
39193
|
+
properties: "Comma-separated property names",
|
|
39194
|
+
"use-readable-name": "true|false; API default true",
|
|
39195
|
+
"max-chunk-file-size": "5242880-104857600 bytes; API default 20971520",
|
|
39196
|
+
sort: "property:asc|desc",
|
|
39197
|
+
"file-format": "JSON|CSV; API default JSON",
|
|
39198
|
+
compress: "true|false; API default false",
|
|
39199
|
+
execute: "Create once; default preview",
|
|
39200
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39201
|
+
confirm: "Exact confirmation from preview",
|
|
39202
|
+
"intent-id": "Unique execution intent for replay protection"
|
|
39203
|
+
}
|
|
39204
|
+
},
|
|
39205
|
+
{
|
|
39206
|
+
command: "export attack download",
|
|
39207
|
+
effect: "blocked",
|
|
39208
|
+
flags: {
|
|
39209
|
+
config: "Config path; default credential precedence",
|
|
39210
|
+
profile: "Profile name; default credential precedence",
|
|
39211
|
+
fields: "Comma-separated metadata fields; default compact view",
|
|
39212
|
+
full: "Full metadata text; default false",
|
|
39213
|
+
help: "Show help",
|
|
39214
|
+
id: "Required attack export UUID",
|
|
39215
|
+
output: "Required new output file; overwrite refused"
|
|
39216
|
+
}
|
|
39217
|
+
},
|
|
39218
|
+
{
|
|
39219
|
+
command: "export attack status",
|
|
39220
|
+
effect: "read",
|
|
39221
|
+
flags: {
|
|
39222
|
+
config: "Config path; default credential precedence",
|
|
39223
|
+
profile: "Profile name; default credential precedence",
|
|
39224
|
+
fields: "Comma-separated metadata fields; default compact view",
|
|
39225
|
+
full: "Full metadata text; default false",
|
|
39226
|
+
help: "Show help",
|
|
39227
|
+
id: "Required attack export UUID",
|
|
39228
|
+
wait: "Poll once per second within 20-second/20-request budgets; default false"
|
|
39229
|
+
}
|
|
39230
|
+
},
|
|
39231
|
+
{
|
|
39232
|
+
command: "export attack-path start",
|
|
39233
|
+
effect: "write",
|
|
39234
|
+
flags: {
|
|
39235
|
+
config: "Config path; default credential precedence",
|
|
39236
|
+
profile: "Profile name; default credential precedence",
|
|
39237
|
+
fields: "Comma-separated metadata fields; default compact view",
|
|
39238
|
+
full: "Full metadata text; default false",
|
|
39239
|
+
help: "Show help",
|
|
39240
|
+
"body-file": "Required strict operation-specific JSON file, at most 1 MiB; '-' reads stdin",
|
|
39241
|
+
execute: "Create the previewed job once; default false",
|
|
39242
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39243
|
+
confirm: "Exact confirmation string from preview; required with --execute"
|
|
39244
|
+
}
|
|
39245
|
+
},
|
|
39246
|
+
{
|
|
39247
|
+
command: "export attack-technique start",
|
|
39248
|
+
effect: "write",
|
|
39249
|
+
flags: {
|
|
39250
|
+
config: "Config path; default credential precedence",
|
|
39251
|
+
profile: "Profile name; default credential precedence",
|
|
39252
|
+
fields: "Comma-separated metadata fields; default compact view",
|
|
39253
|
+
full: "Full metadata text; default false",
|
|
39254
|
+
help: "Show help",
|
|
39255
|
+
"body-file": "Required strict operation-specific JSON file, at most 1 MiB; '-' reads stdin",
|
|
39256
|
+
execute: "Create the previewed job once; default false",
|
|
39257
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39258
|
+
confirm: "Exact confirmation string from preview; required with --execute"
|
|
39259
|
+
}
|
|
39260
|
+
},
|
|
39261
|
+
{
|
|
39262
|
+
command: "export finding jobs",
|
|
39263
|
+
effect: "read",
|
|
39264
|
+
flags: {
|
|
39265
|
+
config: "Config path; default platform path",
|
|
39266
|
+
profile: "Profile name; default credential precedence",
|
|
39267
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39268
|
+
full: "Full output; default false",
|
|
39269
|
+
help: "Show help",
|
|
39270
|
+
status: "QUEUED|PROCESSING|FINISHED|ERROR",
|
|
39271
|
+
limit: "1-1000; default 100; last three days only"
|
|
39272
|
+
}
|
|
39273
|
+
},
|
|
39274
|
+
{
|
|
39275
|
+
command: "export finding start",
|
|
39276
|
+
effect: "write",
|
|
39277
|
+
flags: {
|
|
39278
|
+
config: "Config path; default platform path",
|
|
39279
|
+
profile: "Profile name; default credential precedence",
|
|
39280
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39281
|
+
full: "Full output; default false",
|
|
39282
|
+
help: "Show help",
|
|
39283
|
+
"body-file": "Optional strict query/filters JSON file, '-' for stdin; maximum 1 MiB",
|
|
39284
|
+
properties: "Comma-separated property names",
|
|
39285
|
+
"use-readable-name": "true|false; API default true",
|
|
39286
|
+
"max-chunk-file-size": "5242880-104857600 bytes; API default 20971520",
|
|
39287
|
+
sort: "property:asc|desc",
|
|
39288
|
+
"file-format": "JSON|CSV; API default JSON",
|
|
39289
|
+
compress: "true|false; API default false",
|
|
39290
|
+
execute: "Create once; default preview",
|
|
39291
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39292
|
+
confirm: "Exact confirmation from preview",
|
|
39293
|
+
"intent-id": "Unique execution intent for replay protection"
|
|
39294
|
+
}
|
|
39295
|
+
},
|
|
39296
|
+
{
|
|
39297
|
+
command: "export inventory download",
|
|
39298
|
+
effect: "blocked",
|
|
39299
|
+
flags: {
|
|
39300
|
+
config: "Config path; default platform path",
|
|
39301
|
+
profile: "Profile name; default credential precedence",
|
|
39302
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39303
|
+
full: "Full output; default false",
|
|
39304
|
+
help: "Show help",
|
|
39305
|
+
id: "Required export UUID",
|
|
39306
|
+
chunk: "Required nonnegative chunk number from status",
|
|
39307
|
+
output: "Required new output file; refuses overwrite"
|
|
39308
|
+
}
|
|
39309
|
+
},
|
|
39310
|
+
{
|
|
39311
|
+
command: "export inventory status",
|
|
39312
|
+
effect: "read",
|
|
39313
|
+
flags: {
|
|
39314
|
+
config: "Config path; default platform path",
|
|
39315
|
+
profile: "Profile name; default credential precedence",
|
|
39316
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39317
|
+
full: "Full output; default false",
|
|
39318
|
+
help: "Show help",
|
|
39319
|
+
id: "Required export UUID"
|
|
39320
|
+
}
|
|
39321
|
+
},
|
|
39322
|
+
{
|
|
39323
|
+
command: "export mitre-heatmap start",
|
|
39324
|
+
effect: "write",
|
|
39325
|
+
flags: {
|
|
39326
|
+
config: "Config path; default credential precedence",
|
|
39327
|
+
profile: "Profile name; default credential precedence",
|
|
39328
|
+
fields: "Comma-separated metadata fields; default compact view",
|
|
39329
|
+
full: "Full metadata text; default false",
|
|
39330
|
+
help: "Show help",
|
|
39331
|
+
"body-file": "Required strict operation-specific JSON file, at most 1 MiB; '-' reads stdin",
|
|
39332
|
+
execute: "Create the previewed job once; default false",
|
|
39333
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39334
|
+
confirm: "Exact confirmation string from preview; required with --execute"
|
|
39335
|
+
}
|
|
39336
|
+
},
|
|
39337
|
+
{
|
|
39338
|
+
command: "finding list",
|
|
39339
|
+
effect: "read",
|
|
39340
|
+
flags: {
|
|
39341
|
+
config: "Config path; default credential precedence",
|
|
39342
|
+
profile: "Profile name; default credential precedence",
|
|
39343
|
+
fields: "Comma-separated display or wire properties; default compact view",
|
|
39344
|
+
full: "Show full text; default false",
|
|
39345
|
+
help: "Show help",
|
|
39346
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
39347
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
39348
|
+
cursor: "Opaque resume cursor; retain the original selectors and filters",
|
|
39349
|
+
query: "Simple query text",
|
|
39350
|
+
filter: "Repeatable: <property> <operator> <JSON string array>",
|
|
39351
|
+
"filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
|
|
39352
|
+
sort: "Wire property:asc|desc",
|
|
39353
|
+
"extra-properties": "Comma-separated extra wire properties",
|
|
39354
|
+
offset: "Starting record; default 0; excludes --cursor"
|
|
39355
|
+
}
|
|
39356
|
+
},
|
|
39357
|
+
{
|
|
39358
|
+
command: "finding properties",
|
|
39359
|
+
effect: "read",
|
|
39360
|
+
flags: {
|
|
39361
|
+
config: "Config path; default credential precedence",
|
|
39362
|
+
profile: "Profile name; default credential precedence",
|
|
39363
|
+
fields: "Comma-separated display or wire properties; default compact view",
|
|
39364
|
+
full: "Show full text; default false",
|
|
39365
|
+
help: "Show help",
|
|
39366
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
39367
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
39368
|
+
cursor: "Opaque resume cursor; retain the original selectors and filters"
|
|
39369
|
+
}
|
|
39370
|
+
},
|
|
39371
|
+
{
|
|
39372
|
+
command: "finding show",
|
|
39373
|
+
effect: "read",
|
|
39374
|
+
flags: {
|
|
39375
|
+
config: "Config path; default credential precedence",
|
|
39376
|
+
profile: "Profile name; default credential precedence",
|
|
39377
|
+
fields: "Comma-separated display or wire properties; default compact view",
|
|
39378
|
+
full: "Show full text; default false",
|
|
39379
|
+
help: "Show help",
|
|
39380
|
+
id: "Required exact inventory ID",
|
|
39381
|
+
"extra-properties": "Comma-separated extra wire properties"
|
|
39382
|
+
}
|
|
39383
|
+
},
|
|
39384
|
+
{
|
|
39385
|
+
command: "home",
|
|
39386
|
+
effect: "read",
|
|
39387
|
+
flags: {
|
|
39388
|
+
config: "Config path; default platform path",
|
|
39389
|
+
profile: "Profile name; default credential precedence",
|
|
39390
|
+
fields: "Card fields; default id,name,score",
|
|
39391
|
+
full: "Full text; default false",
|
|
39392
|
+
help: "Show help; default false"
|
|
39393
|
+
}
|
|
39394
|
+
},
|
|
39395
|
+
{
|
|
39396
|
+
command: "hook",
|
|
39397
|
+
effect: "blocked",
|
|
39398
|
+
flags: {
|
|
39399
|
+
config: "Config path; default platform path",
|
|
39400
|
+
profile: "Profile name; default credential precedence",
|
|
39401
|
+
fields: "Comma-separated output fields; default compact projection",
|
|
39402
|
+
full: "Full text; default false",
|
|
39403
|
+
help: "Show help; default false"
|
|
39404
|
+
}
|
|
39405
|
+
},
|
|
39406
|
+
{
|
|
39407
|
+
command: "initiative create",
|
|
39408
|
+
effect: "write",
|
|
39409
|
+
flags: {
|
|
39410
|
+
config: "Config path; default credential precedence",
|
|
39411
|
+
profile: "Profile name; default credential precedence",
|
|
39412
|
+
fields: "Comma-separated fields; default compact view",
|
|
39413
|
+
full: "Full text; default false",
|
|
39414
|
+
help: "Show help",
|
|
39415
|
+
execute: "Send once; default preview",
|
|
39416
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39417
|
+
confirm: "Exact preview confirmation; required to execute",
|
|
39418
|
+
"body-file": "Required strict JSON, at most 1 MiB; '-' reads stdin"
|
|
39419
|
+
}
|
|
39420
|
+
},
|
|
39421
|
+
{
|
|
39422
|
+
command: "initiative delete",
|
|
39423
|
+
effect: "write",
|
|
39424
|
+
flags: {
|
|
39425
|
+
config: "Config path; default credential precedence",
|
|
39426
|
+
profile: "Profile name; default credential precedence",
|
|
39427
|
+
fields: "Comma-separated fields; default compact view",
|
|
39428
|
+
full: "Full text; default false",
|
|
39429
|
+
help: "Show help",
|
|
39430
|
+
id: "Required exact UUID",
|
|
39431
|
+
execute: "Send once; default preview",
|
|
39432
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39433
|
+
confirm: "Exact preview confirmation; required to execute"
|
|
39434
|
+
}
|
|
39435
|
+
},
|
|
39436
|
+
{
|
|
39437
|
+
command: "initiative list",
|
|
39438
|
+
effect: "read",
|
|
39439
|
+
flags: {
|
|
39440
|
+
config: "Config path; default credential precedence",
|
|
39441
|
+
profile: "Profile name; default credential precedence",
|
|
39442
|
+
fields: "Comma-separated fields; default compact view",
|
|
39443
|
+
full: "Full text; default false",
|
|
39444
|
+
help: "Show help",
|
|
39445
|
+
limit: "Output rows; default 100, maximum 10000",
|
|
39446
|
+
all: "Up to 10000 rows; excludes --limit",
|
|
39447
|
+
cursor: "Re-fetch and resume an unchanged unpaged collection; requires original selectors"
|
|
39448
|
+
}
|
|
39449
|
+
},
|
|
39450
|
+
{
|
|
39451
|
+
command: "initiative show",
|
|
39452
|
+
effect: "read",
|
|
39453
|
+
flags: {
|
|
39454
|
+
config: "Config path; default credential precedence",
|
|
39455
|
+
profile: "Profile name; default credential precedence",
|
|
39456
|
+
fields: "Comma-separated fields; default compact view",
|
|
39457
|
+
full: "Full text; default false",
|
|
39458
|
+
help: "Show help",
|
|
39459
|
+
id: "Required exact UUID"
|
|
39460
|
+
}
|
|
39461
|
+
},
|
|
39462
|
+
{
|
|
39463
|
+
command: "initiative update",
|
|
39464
|
+
effect: "write",
|
|
39465
|
+
flags: {
|
|
39466
|
+
config: "Config path; default credential precedence",
|
|
39467
|
+
profile: "Profile name; default credential precedence",
|
|
39468
|
+
fields: "Comma-separated fields; default compact view",
|
|
39469
|
+
full: "Full text; default false",
|
|
39470
|
+
help: "Show help",
|
|
39471
|
+
id: "Required exact UUID",
|
|
39472
|
+
execute: "Send once; default preview",
|
|
39473
|
+
"dry-run": "Preview only; excludes --execute",
|
|
39474
|
+
confirm: "Exact preview confirmation; required to execute",
|
|
39475
|
+
"body-file": "Required strict JSON, at most 1 MiB; '-' reads stdin"
|
|
39476
|
+
}
|
|
39477
|
+
},
|
|
39478
|
+
{
|
|
39479
|
+
command: "profile list",
|
|
39480
|
+
effect: "blocked",
|
|
39481
|
+
flags: {
|
|
39482
|
+
config: "Config path; default TENABLE_AXI_CONFIG or platform path",
|
|
39483
|
+
profile: "Common selector; list still shows all profiles",
|
|
39484
|
+
fields: "Comma-separated output fields; default all",
|
|
39485
|
+
full: "Show full text; default false",
|
|
39486
|
+
help: "Show help; default false"
|
|
39487
|
+
}
|
|
39488
|
+
},
|
|
39489
|
+
{
|
|
39490
|
+
command: "setup hooks",
|
|
39491
|
+
effect: "blocked",
|
|
39492
|
+
flags: {
|
|
39493
|
+
scope: "user or project; default user; project targets the current directory",
|
|
39494
|
+
help: "Show help; default false"
|
|
39495
|
+
}
|
|
39496
|
+
},
|
|
39497
|
+
{
|
|
39498
|
+
command: "software list",
|
|
39499
|
+
effect: "read",
|
|
39500
|
+
flags: {
|
|
39501
|
+
config: "Config path; default credential precedence",
|
|
39502
|
+
profile: "Profile name; default credential precedence",
|
|
39503
|
+
fields: "Comma-separated display or wire properties; default compact view",
|
|
39504
|
+
full: "Show full text; default false",
|
|
39505
|
+
help: "Show help",
|
|
39506
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
39507
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
39508
|
+
cursor: "Opaque resume cursor; retain the original selectors and filters",
|
|
39509
|
+
query: "Simple query text",
|
|
39510
|
+
filter: "Repeatable: <property> <operator> <JSON string array>",
|
|
39511
|
+
"filter-file": "JSON flat array of {property, operator, value: string[]}; '-' reads stdin; excludes --filter",
|
|
39512
|
+
sort: "Wire property:asc|desc",
|
|
39513
|
+
"extra-properties": "Comma-separated extra wire properties",
|
|
39514
|
+
offset: "Starting record; default 0; excludes --cursor"
|
|
39515
|
+
}
|
|
39516
|
+
},
|
|
39517
|
+
{
|
|
39518
|
+
command: "software properties",
|
|
39519
|
+
effect: "read",
|
|
39520
|
+
flags: {
|
|
39521
|
+
config: "Config path; default credential precedence",
|
|
39522
|
+
profile: "Profile name; default credential precedence",
|
|
39523
|
+
fields: "Comma-separated display or wire properties; default compact view",
|
|
39524
|
+
full: "Show full text; default false",
|
|
39525
|
+
help: "Show help",
|
|
39526
|
+
limit: "Maximum emitted rows, 1-10000; default 100",
|
|
39527
|
+
all: "Read up to 10000 rows within invocation budgets; excludes --limit",
|
|
39528
|
+
cursor: "Opaque resume cursor; retain the original selectors and filters"
|
|
39529
|
+
}
|
|
39530
|
+
},
|
|
39531
|
+
{
|
|
39532
|
+
command: "tag asset-filter list",
|
|
39533
|
+
effect: "read",
|
|
39534
|
+
flags: {
|
|
39535
|
+
config: "Config path; default platform path",
|
|
39536
|
+
profile: "Profile name; default credential precedence",
|
|
39537
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39538
|
+
full: "Full text; default false",
|
|
39539
|
+
help: "Show help",
|
|
39540
|
+
limit: "Output rows; default 100; maximum 10000",
|
|
39541
|
+
cursor: "Resume the same scoped collection",
|
|
39542
|
+
all: "Read at most 10000 rows; excludes --limit"
|
|
39543
|
+
}
|
|
39544
|
+
},
|
|
39545
|
+
{
|
|
39546
|
+
command: "tag assignment add",
|
|
39547
|
+
effect: "write",
|
|
39548
|
+
flags: {
|
|
39549
|
+
config: "Config path; default platform path",
|
|
39550
|
+
profile: "Profile name; default credential precedence",
|
|
39551
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39552
|
+
full: "Full text; default false",
|
|
39553
|
+
help: "Show help",
|
|
39554
|
+
execute: "Execute once; default preview",
|
|
39555
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39556
|
+
confirm: "Exact confirmation from preview",
|
|
39557
|
+
"intent-id": "Unique execution intent for replay protection",
|
|
39558
|
+
"asset-ids-file": "Required JSON asset UUID array; '-' for stdin",
|
|
39559
|
+
"tag-ids-file": "Required JSON tag UUID array; '-' for stdin"
|
|
39560
|
+
}
|
|
39561
|
+
},
|
|
39562
|
+
{
|
|
39563
|
+
command: "tag assignment list",
|
|
39564
|
+
effect: "read",
|
|
39565
|
+
flags: {
|
|
39566
|
+
config: "Config path; default platform path",
|
|
39567
|
+
profile: "Profile name; default credential precedence",
|
|
39568
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39569
|
+
full: "Full text; default false",
|
|
39570
|
+
help: "Show help",
|
|
39571
|
+
"asset-id": "Required exact asset UUID",
|
|
39572
|
+
limit: "Output rows; default 100; maximum 10000",
|
|
39573
|
+
cursor: "Resume the same scoped collection",
|
|
39574
|
+
all: "Read at most 10000 rows; excludes --limit"
|
|
39575
|
+
}
|
|
39576
|
+
},
|
|
39577
|
+
{
|
|
39578
|
+
command: "tag assignment remove",
|
|
39579
|
+
effect: "write",
|
|
39580
|
+
flags: {
|
|
39581
|
+
config: "Config path; default platform path",
|
|
39582
|
+
profile: "Profile name; default credential precedence",
|
|
39583
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39584
|
+
full: "Full text; default false",
|
|
39585
|
+
help: "Show help",
|
|
39586
|
+
execute: "Execute once; default preview",
|
|
39587
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39588
|
+
confirm: "Exact confirmation from preview",
|
|
39589
|
+
"intent-id": "Unique execution intent for replay protection",
|
|
39590
|
+
"asset-ids-file": "Required JSON asset UUID array; '-' for stdin",
|
|
39591
|
+
"tag-ids-file": "Required JSON tag UUID array; '-' for stdin"
|
|
39592
|
+
}
|
|
39593
|
+
},
|
|
39594
|
+
{
|
|
39595
|
+
command: "tag category create",
|
|
39596
|
+
effect: "write",
|
|
39597
|
+
flags: {
|
|
39598
|
+
config: "Config path; default platform path",
|
|
39599
|
+
profile: "Profile name; default credential precedence",
|
|
39600
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39601
|
+
full: "Full text; default false",
|
|
39602
|
+
help: "Show help",
|
|
39603
|
+
name: "Required category name, at most 127 characters, no colon",
|
|
39604
|
+
description: "Optional description, at most 3000 characters",
|
|
39605
|
+
execute: "Execute once; default preview",
|
|
39606
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39607
|
+
confirm: "Exact confirmation from preview",
|
|
39608
|
+
"intent-id": "Unique execution intent for replay protection"
|
|
39609
|
+
}
|
|
39610
|
+
},
|
|
39611
|
+
{
|
|
39612
|
+
command: "tag category delete",
|
|
39613
|
+
effect: "write",
|
|
39614
|
+
flags: {
|
|
39615
|
+
config: "Config path; default platform path",
|
|
39616
|
+
profile: "Profile name; default credential precedence",
|
|
39617
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39618
|
+
full: "Full text; default false",
|
|
39619
|
+
help: "Show help",
|
|
39620
|
+
id: "Required exact UUID",
|
|
39621
|
+
execute: "Execute once; default preview",
|
|
39622
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39623
|
+
confirm: "Exact confirmation from preview",
|
|
39624
|
+
"intent-id": "Unique execution intent for replay protection"
|
|
39625
|
+
}
|
|
39626
|
+
},
|
|
39627
|
+
{
|
|
39628
|
+
command: "tag category list",
|
|
39629
|
+
effect: "read",
|
|
39630
|
+
flags: {
|
|
39631
|
+
config: "Config path; default platform path",
|
|
39632
|
+
profile: "Profile name; default credential precedence",
|
|
39633
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39634
|
+
full: "Full text; default false",
|
|
39635
|
+
help: "Show help",
|
|
39636
|
+
limit: "Output rows; default 100; maximum 10000",
|
|
39637
|
+
offset: "Starting record; default 0",
|
|
39638
|
+
cursor: "Resume the same scoped collection",
|
|
39639
|
+
all: "Read at most 10000 rows; excludes --limit",
|
|
39640
|
+
filter: "Repeatable field:operator:value",
|
|
39641
|
+
"filter-type": "and|or; API default and",
|
|
39642
|
+
sort: "Comma-separated field:asc|desc"
|
|
39643
|
+
}
|
|
39644
|
+
},
|
|
39645
|
+
{
|
|
39646
|
+
command: "tag category show",
|
|
39647
|
+
effect: "read",
|
|
39648
|
+
flags: {
|
|
39649
|
+
config: "Config path; default platform path",
|
|
39650
|
+
profile: "Profile name; default credential precedence",
|
|
39651
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39652
|
+
full: "Full text; default false",
|
|
39653
|
+
help: "Show help",
|
|
39654
|
+
id: "Required exact UUID"
|
|
39655
|
+
}
|
|
39656
|
+
},
|
|
39657
|
+
{
|
|
39658
|
+
command: "tag category update",
|
|
39659
|
+
effect: "write",
|
|
39660
|
+
flags: {
|
|
39661
|
+
config: "Config path; default platform path",
|
|
39662
|
+
profile: "Profile name; default credential precedence",
|
|
39663
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39664
|
+
full: "Full text; default false",
|
|
39665
|
+
help: "Show help",
|
|
39666
|
+
id: "Required exact UUID",
|
|
39667
|
+
name: "Required category name, at most 127 characters, no colon",
|
|
39668
|
+
description: "Optional description, at most 3000 characters",
|
|
39669
|
+
execute: "Execute once; default preview",
|
|
39670
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39671
|
+
confirm: "Exact confirmation from preview",
|
|
39672
|
+
"intent-id": "Unique execution intent for replay protection"
|
|
39673
|
+
}
|
|
39674
|
+
},
|
|
39675
|
+
{
|
|
39676
|
+
command: "tag exclusion list",
|
|
39677
|
+
effect: "read",
|
|
39678
|
+
flags: {
|
|
39679
|
+
config: "Config path; default platform path",
|
|
39680
|
+
profile: "Profile name; default credential precedence",
|
|
39681
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39682
|
+
full: "Full text; default false",
|
|
39683
|
+
help: "Show help",
|
|
39684
|
+
limit: "Output rows; default 100; maximum 10000",
|
|
39685
|
+
offset: "Starting record; default 0",
|
|
39686
|
+
cursor: "Resume the same scoped collection",
|
|
39687
|
+
all: "Read at most 10000 rows; excludes --limit",
|
|
39688
|
+
"tag-id": "Required exact dynamic tag UUID",
|
|
39689
|
+
"target-type": "assets; API default assets"
|
|
39690
|
+
}
|
|
39691
|
+
},
|
|
39692
|
+
{
|
|
39693
|
+
command: "tag list",
|
|
39694
|
+
effect: "read",
|
|
39695
|
+
flags: {
|
|
39696
|
+
config: "Config path; default platform path",
|
|
39697
|
+
profile: "Profile name; default credential precedence",
|
|
39698
|
+
fields: "Comma-separated output fields; default compact projection",
|
|
39699
|
+
full: "Full text; default false",
|
|
39700
|
+
help: "Show help; default false",
|
|
39701
|
+
limit: "Output rows; default 100",
|
|
39702
|
+
offset: "Starting record; default 0",
|
|
39703
|
+
cursor: "Resume the same scoped collection",
|
|
39704
|
+
all: "Read up to 10000 rows; incompatible with --limit",
|
|
39705
|
+
query: "Simple text search",
|
|
39706
|
+
filter: "Repeatable: property operator JSON-array-of-strings",
|
|
39707
|
+
"filter-file": "Strict documented tag filter array; incompatible with --filter",
|
|
39708
|
+
sort: "property:asc or property:desc",
|
|
39709
|
+
"extra-properties": "Comma-separated property names"
|
|
39710
|
+
}
|
|
39711
|
+
},
|
|
39712
|
+
{
|
|
39713
|
+
command: "tag properties",
|
|
39714
|
+
effect: "read",
|
|
39715
|
+
flags: {
|
|
39716
|
+
config: "Config path; default platform path",
|
|
39717
|
+
profile: "Profile name; default credential precedence",
|
|
39718
|
+
fields: "Comma-separated output fields; default compact projection",
|
|
39719
|
+
full: "Full text; default false",
|
|
39720
|
+
help: "Show help; default false"
|
|
39721
|
+
}
|
|
39722
|
+
},
|
|
39723
|
+
{
|
|
39724
|
+
command: "tag value bulk-delete",
|
|
39725
|
+
effect: "write",
|
|
39726
|
+
flags: {
|
|
39727
|
+
config: "Config path; default platform path",
|
|
39728
|
+
profile: "Profile name; default credential precedence",
|
|
39729
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39730
|
+
full: "Full text; default false",
|
|
39731
|
+
help: "Show help",
|
|
39732
|
+
execute: "Execute once; default preview",
|
|
39733
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39734
|
+
confirm: "Exact confirmation from preview",
|
|
39735
|
+
"intent-id": "Unique execution intent for replay protection",
|
|
39736
|
+
"ids-file": "Required JSON UUID array; '-' for stdin; maximum 1 MiB"
|
|
39737
|
+
}
|
|
39738
|
+
},
|
|
39739
|
+
{
|
|
39740
|
+
command: "tag value create",
|
|
39741
|
+
effect: "write",
|
|
39742
|
+
flags: {
|
|
39743
|
+
config: "Config path; default platform path",
|
|
39744
|
+
profile: "Profile name; default credential precedence",
|
|
39745
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39746
|
+
full: "Full text; default false",
|
|
39747
|
+
help: "Show help",
|
|
39748
|
+
"body-file": "Required strict tag JSON; '-' for stdin; maximum 1 MiB; no access_control",
|
|
39749
|
+
execute: "Execute once; default preview",
|
|
39750
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39751
|
+
confirm: "Exact confirmation from preview",
|
|
39752
|
+
"intent-id": "Unique execution intent for replay protection"
|
|
39753
|
+
}
|
|
39754
|
+
},
|
|
39755
|
+
{
|
|
39756
|
+
command: "tag value delete",
|
|
39757
|
+
effect: "write",
|
|
39758
|
+
flags: {
|
|
39759
|
+
config: "Config path; default platform path",
|
|
39760
|
+
profile: "Profile name; default credential precedence",
|
|
39761
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39762
|
+
full: "Full text; default false",
|
|
39763
|
+
help: "Show help",
|
|
39764
|
+
id: "Required exact UUID",
|
|
39765
|
+
execute: "Execute once; default preview",
|
|
39766
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39767
|
+
confirm: "Exact confirmation from preview",
|
|
39768
|
+
"intent-id": "Unique execution intent for replay protection"
|
|
39769
|
+
}
|
|
39770
|
+
},
|
|
39771
|
+
{
|
|
39772
|
+
command: "tag value list",
|
|
39773
|
+
effect: "read",
|
|
39774
|
+
flags: {
|
|
39775
|
+
config: "Config path; default platform path",
|
|
39776
|
+
profile: "Profile name; default credential precedence",
|
|
39777
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39778
|
+
full: "Full text; default false",
|
|
39779
|
+
help: "Show help",
|
|
39780
|
+
limit: "Output rows; default 100; maximum 10000",
|
|
39781
|
+
offset: "Starting record; default 0",
|
|
39782
|
+
cursor: "Resume the same scoped collection",
|
|
39783
|
+
all: "Read at most 10000 rows; excludes --limit",
|
|
39784
|
+
filter: "Repeatable field:operator:value",
|
|
39785
|
+
"filter-type": "and|or; API default and",
|
|
39786
|
+
sort: "Comma-separated field:asc|desc",
|
|
39787
|
+
with: "Wildcard search value (w)",
|
|
39788
|
+
"with-filter": "Comma-separated wildcard fields (wf)"
|
|
39789
|
+
}
|
|
39790
|
+
},
|
|
39791
|
+
{
|
|
39792
|
+
command: "tag value show",
|
|
39793
|
+
effect: "read",
|
|
39794
|
+
flags: {
|
|
39795
|
+
config: "Config path; default platform path",
|
|
39796
|
+
profile: "Profile name; default credential precedence",
|
|
39797
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39798
|
+
full: "Full text; default false",
|
|
39799
|
+
help: "Show help",
|
|
39800
|
+
id: "Required exact UUID"
|
|
39801
|
+
}
|
|
39802
|
+
},
|
|
39803
|
+
{
|
|
39804
|
+
command: "tag value update",
|
|
39805
|
+
effect: "write",
|
|
39806
|
+
flags: {
|
|
39807
|
+
config: "Config path; default platform path",
|
|
39808
|
+
profile: "Profile name; default credential precedence",
|
|
39809
|
+
fields: "Comma-separated output fields; default compact view",
|
|
39810
|
+
full: "Full text; default false",
|
|
39811
|
+
help: "Show help",
|
|
39812
|
+
id: "Required exact UUID",
|
|
39813
|
+
"body-file": "Required strict tag JSON; '-' for stdin; maximum 1 MiB; no access_control",
|
|
39814
|
+
execute: "Execute once; default preview",
|
|
39815
|
+
"dry-run": "Explicit preview; excludes --execute",
|
|
39816
|
+
confirm: "Exact confirmation from preview",
|
|
39817
|
+
"intent-id": "Unique execution intent for replay protection"
|
|
39818
|
+
}
|
|
39819
|
+
}
|
|
39820
|
+
]
|
|
39821
|
+
};
|
|
39822
|
+
|
|
38643
39823
|
// src/shared/tool-manifests.ts
|
|
38644
|
-
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 };
|
|
39824
|
+
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 };
|
|
38645
39825
|
|
|
38646
39826
|
// node_modules/.pnpm/@toon-format+toon@2.3.1/node_modules/@toon-format/toon/dist/index.mjs
|
|
38647
39827
|
var NULL_LITERAL = "null";
|
|
@@ -40009,6 +41189,7 @@ function resolveDecodeOptions(options) {
|
|
|
40009
41189
|
|
|
40010
41190
|
// src/cli/rewrite.ts
|
|
40011
41191
|
var managedFlags = {
|
|
41192
|
+
"tenable-axi": tenable_axi_default.adapterBoundary.unsafeOverrides,
|
|
40012
41193
|
"awx-axi": awx_axi_default.adapterBoundary.unsafeOverrides,
|
|
40013
41194
|
"falcon-axi": falcon_axi_default.unsafeOverrides,
|
|
40014
41195
|
"vectra-axi": vectra_axi_default.adapterBoundary.unsafeOverrides,
|
|
@@ -40071,6 +41252,13 @@ function rewriteSuggestions(output3, tool, truncated = false) {
|
|
|
40071
41252
|
try {
|
|
40072
41253
|
const json2 = output3.trimStart().startsWith("{");
|
|
40073
41254
|
let parsed = json2 ? jsonHelp(output3) : toonHelp(output3);
|
|
41255
|
+
if (tool === "tenable-axi" && parsed.document.commands) {
|
|
41256
|
+
return encode3({
|
|
41257
|
+
description: "Investigate Tenable One with managed API keys.",
|
|
41258
|
+
commands: tenable_axi_default.commands.filter((route) => route.effect !== "blocked").map((route) => route.command),
|
|
41259
|
+
help: [tenable_axi_default.discovery.help.replaceAll("tenable-axi ", "artium-axi tenable-axi ")]
|
|
41260
|
+
}) + "\n";
|
|
41261
|
+
}
|
|
40074
41262
|
if (tool === "ldap-axi" && parsed.document.description === "Read Active Directory and LDAPv3 directories safely with ldap-axi (read-only)" && Array.isArray(parsed.document.commands) && parsed.spans.length) {
|
|
40075
41263
|
const home = {
|
|
40076
41264
|
...parsed.document,
|
|
@@ -40166,9 +41354,14 @@ function managedFlagRanges(command, tool) {
|
|
|
40166
41354
|
return ranges;
|
|
40167
41355
|
}
|
|
40168
41356
|
function hostedHelp(help, tool, flags, commands2) {
|
|
41357
|
+
if (tool === "tenable-axi") {
|
|
41358
|
+
help = help.split("\n").filter((line) => !/TENABLE_AXI_|SecretRefs|tenable-axi (?:setup|config|profile|hook)|export (?:attack|inventory) download/.test(line)).join("\n");
|
|
41359
|
+
const guidance = "Artium manages both API keys and the fixed origin. Administrators enable write operations; native preview, execute, exact confirmation and journal gates remain required. Downloads are unavailable.";
|
|
41360
|
+
if (commands2 && !help.includes(guidance)) help = help.trimEnd() + "\n" + guidance + "\n";
|
|
41361
|
+
}
|
|
40169
41362
|
if (tool === "awx-axi") {
|
|
40170
41363
|
const guidance = "Artium manages the controller origin, verified TLS and token. Operational writes require administrator allowWrites and --confirm; configuration, deletion and security writes are blocked. No stdin or files. Ask an administrator to update the managed credential.";
|
|
40171
|
-
help = help.split("\n").filter((line) => !/(?:\bAWX_AXI_[A-Z_]+\b|\bawx-axi (?:auth (?:login|logout)|setup|config|profile|update)\b|--(?:origin|profile|config|verify-ssl|allow-http)\b)/.test(line)).filter((line) => !/^(?:Run|Use) .*\bawx-axi job stdout\b.*--download\b/.test(line)).map((line) => (/^(?:artium-axi )?awx-axi job stdout\b/.test(line) ? line.replace(/ \[--(?:full|ansi)\]| \[--download <path>\]/g, "") : line).replace(/--timeout (?:600|3600)/g, "--timeout 50")).join("\n");
|
|
41364
|
+
help = help.split("\n").filter((line) => !/(?:\bAWX_AXI_[A-Z_]+\b|\bawx-axi (?:auth (?:login|logout)|setup|config|profile|update)\b|--(?:origin|profile|config|verify-ssl|allow-http)\b)/.test(line)).filter((line) => !/^(?:Run|Use) .*\bawx-axi job stdout\b.*--download\b/.test(line)).map((line) => (/^(?:artium-axi )?awx-axi job stdout\b/.test(line) ? line.replace(/ \[--(?:full|ansi)\]| \[--download <path>\]/g, "") : line).replace(/^((?:artium-axi )?awx-axi job list\b[^\n]*) \[--fields <fields>\]/, "$1").replace(/--timeout (?:600|3600)/g, "--timeout 50")).join("\n");
|
|
40172
41365
|
if (!help.trim()) help = guidance;
|
|
40173
41366
|
else if (commands2 && !help.includes(guidance)) help = help.trimEnd() + "\n" + guidance + "\n";
|
|
40174
41367
|
}
|
|
@@ -40198,7 +41391,8 @@ function hostedHelp(help, tool, flags, commands2) {
|
|
|
40198
41391
|
const filtered = help.replace(
|
|
40199
41392
|
/^([ \t]*(?:(?:Flags|Globals|Global flags|Selector flags on every command|[Vv]alid flags for `[^`]+`): |(?=--)))([^\r\n]*)(\r?\n|$)/gm,
|
|
40200
41393
|
(_, label, listed, ending) => {
|
|
40201
|
-
const
|
|
41394
|
+
const entries = label.trim() || /^--[\w-]+(?: <[^>]+>)?(?:, --[\w-]+(?: <[^>]+>)?)*\.?$/.test(listed) ? listed.split(", ") : [listed];
|
|
41395
|
+
const retained = entries.filter((flag) => !flags.includes(/^--([\w-]+)/.exec(flag)?.[1] ?? "")).join(", ");
|
|
40202
41396
|
if (!retained && !label.trim()) return "";
|
|
40203
41397
|
return label + retained + (listed.endsWith(".") && !retained.endsWith(".") ? "." : "") + ending;
|
|
40204
41398
|
}
|
|
@@ -40321,9 +41515,16 @@ function identityView(user, server) {
|
|
|
40321
41515
|
return `user: ${JSON.stringify(user.username)}
|
|
40322
41516
|
server: ${JSON.stringify(server)}
|
|
40323
41517
|
roles[${user.roles.length}]: ${user.roles.map((role) => JSON.stringify(role)).join(",")}
|
|
40324
|
-
|
|
41518
|
+
sessionExpiresAt: ${sessionExpiryView(user.sessionExpiresAt)}
|
|
41519
|
+
accessExpiresAt: ${sessionExpiryView(user.accessExpiresAt)}
|
|
41520
|
+
note: Access tokens refresh automatically when a refresh token is available.
|
|
40325
41521
|
`;
|
|
40326
41522
|
}
|
|
41523
|
+
function sessionExpiryView(expiresAt, now = Date.now()) {
|
|
41524
|
+
const minutes = Math.max(0, Math.floor((expiresAt - now) / 6e4));
|
|
41525
|
+
const remaining = expiresAt <= now ? "expired" : `in ${Math.floor(minutes / 60)}h ${minutes % 60}m`;
|
|
41526
|
+
return `${new Date(expiresAt).toISOString().replace(".000Z", "Z")} (${remaining})`;
|
|
41527
|
+
}
|
|
40327
41528
|
function toolsView(tools) {
|
|
40328
41529
|
if (!tools.length) return "tools: 0 available\nreason: No enabled runtime tool is available through your assigned roles.\ncontact: Ask an administrator to check your role assignments and enabled tools.\nnext[1]:\n - artium-axi whoami\n";
|
|
40329
41530
|
return `tools[${tools.length}]{name,status,version,readOnly}:
|
|
@@ -40348,11 +41549,268 @@ upstreamHelp: ${JSON.stringify(help)}
|
|
|
40348
41549
|
`;
|
|
40349
41550
|
}
|
|
40350
41551
|
|
|
41552
|
+
// src/cli/doctor.ts
|
|
41553
|
+
var DIAGNOSTIC_REQUEST_DEADLINE_MS = 5e3;
|
|
41554
|
+
async function doctor(createClient = (deadline) => new Client(process.env, void 0, deadline), write = (text2) => {
|
|
41555
|
+
process.stdout.write(text2);
|
|
41556
|
+
}) {
|
|
41557
|
+
let failure2;
|
|
41558
|
+
const line = (name, pass, detail, error62) => {
|
|
41559
|
+
if (!pass) failure2 ??= error62 ?? new ArtiumError("INVALID_RESPONSE");
|
|
41560
|
+
write(`${pass ? "pass" : "fail"}: ${name}${detail ? ` (${detail})` : ""}
|
|
41561
|
+
`);
|
|
41562
|
+
};
|
|
41563
|
+
let client;
|
|
41564
|
+
try {
|
|
41565
|
+
client = createClient(DIAGNOSTIC_REQUEST_DEADLINE_MS);
|
|
41566
|
+
} catch (error62) {
|
|
41567
|
+
for (const name of ["server address", "certificate", "token", "CLI version"]) line(name, false, "CLIENT_CONFIG_INVALID");
|
|
41568
|
+
throw error62;
|
|
41569
|
+
}
|
|
41570
|
+
let addressOk = false;
|
|
41571
|
+
try {
|
|
41572
|
+
const live = await client.request("/health/live", "GET");
|
|
41573
|
+
addressOk = !!live && typeof live === "object" && "status" in live && live.status === "ok";
|
|
41574
|
+
line("server address", addressOk, client.serverUrlSource);
|
|
41575
|
+
line("certificate", client.certificateVerified, client.certificateVerified ? void 0 : "test HTTP", new ArtiumError("CLIENT_CONFIG_INVALID"));
|
|
41576
|
+
} catch (error62) {
|
|
41577
|
+
const cause = error62 instanceof ArtiumError ? error62 : new ArtiumError("INVALID_RESPONSE");
|
|
41578
|
+
line("server address", cause.code === "CERTIFICATE_INVALID", `${client.serverUrlSource}: ${cause.code}`, cause);
|
|
41579
|
+
line("certificate", client.certificateVerified, client.certificateVerified ? void 0 : cause.code, cause);
|
|
41580
|
+
}
|
|
41581
|
+
if (!addressOk && failure2) throw failure2;
|
|
41582
|
+
let versionOk = true;
|
|
41583
|
+
let versionError;
|
|
41584
|
+
try {
|
|
41585
|
+
await client.request("/v1/me", "GET");
|
|
41586
|
+
} catch (error62) {
|
|
41587
|
+
versionOk = error62 instanceof ArtiumError && error62.code === "TOKEN_INVALID";
|
|
41588
|
+
if (!versionOk) versionError = error62 instanceof ArtiumError ? error62 : new ArtiumError("INVALID_RESPONSE");
|
|
41589
|
+
}
|
|
41590
|
+
let tokenOk = false;
|
|
41591
|
+
let tokenError;
|
|
41592
|
+
let tokenDetail;
|
|
41593
|
+
try {
|
|
41594
|
+
const parsed = meResponseSchema.safeParse(await client.authenticated("/v1/me", "GET"));
|
|
41595
|
+
tokenOk = parsed.success;
|
|
41596
|
+
if (parsed.success) tokenDetail = `session expires ${sessionExpiryView(parsed.data.sessionExpiresAt)}`;
|
|
41597
|
+
} catch (error62) {
|
|
41598
|
+
tokenError = error62 instanceof ArtiumError ? error62 : new ArtiumError("INVALID_RESPONSE");
|
|
41599
|
+
}
|
|
41600
|
+
line("token", tokenOk, tokenDetail, tokenError);
|
|
41601
|
+
line("CLI version", versionOk, void 0, versionError);
|
|
41602
|
+
if (tokenOk && versionOk) {
|
|
41603
|
+
try {
|
|
41604
|
+
const parsed = toolsResponseSchema.safeParse(await client.authenticated("/v1/tools", "GET"));
|
|
41605
|
+
if (!parsed.success) throw new ArtiumError("INVALID_RESPONSE");
|
|
41606
|
+
for (const tool of parsed.data.tools) line(
|
|
41607
|
+
tool.name,
|
|
41608
|
+
tool.status === "ok",
|
|
41609
|
+
tool.status,
|
|
41610
|
+
new ArtiumError(tool.status === "unconfigured" ? "CREDENTIAL_NOT_CONFIGURED" : tool.status === "error" ? "TOOL_FAILED" : tool.status === "disabled" ? "TOOL_DISABLED" : "SERVER_UNAVAILABLE")
|
|
41611
|
+
);
|
|
41612
|
+
} catch (error62) {
|
|
41613
|
+
const cause = error62 instanceof ArtiumError ? error62 : new ArtiumError("INVALID_RESPONSE");
|
|
41614
|
+
line("tools", false, cause.code, cause);
|
|
41615
|
+
}
|
|
41616
|
+
}
|
|
41617
|
+
if (failure2) throw failure2;
|
|
41618
|
+
}
|
|
41619
|
+
|
|
41620
|
+
// src/cli/help.ts
|
|
41621
|
+
var commands = {
|
|
41622
|
+
home: { usage: "artium-axi [tools [show <tool>]|whoami|login|passwd|logout|doctor|setup|update|<tool> <args>]", purpose: "Show your identity, roles and available tools.", flags: ["--version (default false; print the client package version and exit)"], example: "artium-axi" },
|
|
41623
|
+
setup: {
|
|
41624
|
+
usage: "artium-axi setup --host <claude|codex|opencode|pi> [--hook] [--force]",
|
|
41625
|
+
purpose: "Install skills for your signed-in account\u2019s granted tools and an optional Claude Code session hook.",
|
|
41626
|
+
flags: ["--host <claude|codex|opencode|pi> (required)", "--hook (default false; Claude Code only)", "--force (default false; explicitly replace an edited skill)"],
|
|
41627
|
+
example: "artium-axi setup --host claude --hook"
|
|
41628
|
+
},
|
|
41629
|
+
tools: { usage: "artium-axi tools", purpose: "List available tools with their status and pinned version.", flags: [], example: "artium-axi tools" },
|
|
41630
|
+
"tools show": { usage: "artium-axi tools show <tool>", purpose: "Show one available tool and its vetted upstream help.", flags: [], example: "artium-axi tools show falcon-axi" },
|
|
41631
|
+
whoami: { usage: "artium-axi whoami", purpose: "Show your identity, roles, session expiry and server.", flags: [], example: "artium-axi whoami" },
|
|
41632
|
+
login: {
|
|
41633
|
+
usage: "artium-axi login --sso | --username <username> [--password-stdin]",
|
|
41634
|
+
purpose: "Sign in through browser SSO (8-hour session) or with a local account.",
|
|
41635
|
+
flags: ["--sso (default false; open the displayed URL in any browser and approve your terminal code; no password flags)", "--username <username> (required for local sign-in)", "--password-stdin (default false; local only; otherwise ARTIUM_AXI_PASSWORD or a terminal prompt)"],
|
|
41636
|
+
example: "artium-axi login --sso"
|
|
41637
|
+
},
|
|
41638
|
+
passwd: {
|
|
41639
|
+
usage: "artium-axi passwd [--password-stdin]",
|
|
41640
|
+
purpose: "Change your password, then sign in again.",
|
|
41641
|
+
flags: ["--password-stdin (default false; otherwise a terminal prompt; current password uses ARTIUM_AXI_CURRENT_PASSWORD or a terminal prompt)"],
|
|
41642
|
+
example: "artium-axi passwd --password-stdin"
|
|
41643
|
+
},
|
|
41644
|
+
logout: { usage: "artium-axi logout", purpose: "Remove local tokens and revoke the server session.", flags: [], example: "artium-axi logout" },
|
|
41645
|
+
doctor: { usage: "artium-axi doctor", purpose: "Check the server, certificate, token, CLI version and cached tool health.", flags: [], example: "artium-axi doctor" },
|
|
41646
|
+
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" },
|
|
41647
|
+
"falcon-axi": {
|
|
41648
|
+
usage: "artium-axi falcon-axi [<args>]",
|
|
41649
|
+
purpose: "Run Falcon commands with your managed credentials.",
|
|
41650
|
+
flags: ["Arguments after falcon-axi are forwarded upstream, including --help."],
|
|
41651
|
+
example: `artium-axi falcon-axi ${falcon_axi_default.discovery.example.join(" ")}`
|
|
41652
|
+
},
|
|
41653
|
+
"vectra-axi": {
|
|
41654
|
+
usage: "artium-axi vectra-axi [<args>]",
|
|
41655
|
+
purpose: "Run Vectra commands with your managed credentials.",
|
|
41656
|
+
flags: ["Arguments after vectra-axi are forwarded upstream, including --help."],
|
|
41657
|
+
example: `artium-axi vectra-axi ${vectra_axi_default.discovery.example.join(" ")}`
|
|
41658
|
+
},
|
|
41659
|
+
"ldap-axi": {
|
|
41660
|
+
usage: "artium-axi ldap-axi [<args>]",
|
|
41661
|
+
purpose: "Read directory data with the managed LDAP bind identity.",
|
|
41662
|
+
flags: ["Arguments after ldap-axi are forwarded upstream, including --help."],
|
|
41663
|
+
example: `artium-axi ldap-axi ${ldap_axi_default.discovery.example.join(" ")}`
|
|
41664
|
+
},
|
|
41665
|
+
"ado-axi": {
|
|
41666
|
+
usage: "artium-axi ado-axi [<args>]",
|
|
41667
|
+
purpose: "Run Azure DevOps commands with managed credentials.",
|
|
41668
|
+
flags: ["Arguments after ado-axi include --help. Organization and credentials are managed by Artium; api is GET only; writes are off by default."],
|
|
41669
|
+
example: "artium-axi ado-axi project list --limit 1"
|
|
41670
|
+
},
|
|
41671
|
+
"awx-axi": {
|
|
41672
|
+
usage: "artium-axi awx-axi [<args>]",
|
|
41673
|
+
purpose: "Inspect AWX automation with managed credentials.",
|
|
41674
|
+
flags: ["Arguments after awx-axi include --help. Operational writes are off by default; configuration, deletion and security writes are blocked."],
|
|
41675
|
+
example: "artium-axi awx-axi job list --limit 1"
|
|
41676
|
+
},
|
|
41677
|
+
"tenable-axi": {
|
|
41678
|
+
usage: "artium-axi tenable-axi [<args>]",
|
|
41679
|
+
purpose: "Investigate Tenable One with managed API keys.",
|
|
41680
|
+
flags: ["Writes and export jobs are off by default and require administrator-enabled operations, preview, --execute and exact --confirm. Downloads are blocked."],
|
|
41681
|
+
example: "artium-axi tenable-axi card list --limit 1"
|
|
41682
|
+
},
|
|
41683
|
+
"az-axi": {
|
|
41684
|
+
usage: "artium-axi az-axi [<args>]",
|
|
41685
|
+
purpose: "Run Azure commands with your managed identity.",
|
|
41686
|
+
flags: ["Arguments after az-axi are forwarded upstream, including --help."],
|
|
41687
|
+
example: "artium-axi az-axi sub list"
|
|
41688
|
+
},
|
|
41689
|
+
"mg-axi": {
|
|
41690
|
+
usage: "artium-axi mg-axi [<args>]",
|
|
41691
|
+
purpose: "Run Microsoft Graph commands with your managed identity.",
|
|
41692
|
+
flags: ["Arguments after mg-axi are forwarded upstream, including --help."],
|
|
41693
|
+
example: "artium-axi mg-axi entra user list"
|
|
41694
|
+
},
|
|
41695
|
+
"managed-session": {
|
|
41696
|
+
usage: "artium-axi --managed-session <command> [<args>]",
|
|
41697
|
+
purpose: "Let a caller supply and persist sessions through private pipes.",
|
|
41698
|
+
flags: [],
|
|
41699
|
+
example: "artium-axi --managed-session whoami"
|
|
41700
|
+
}
|
|
41701
|
+
};
|
|
41702
|
+
function commandHelp(command) {
|
|
41703
|
+
const entry = commands[command];
|
|
41704
|
+
const flags = [
|
|
41705
|
+
toolSchema.safeParse(command).success ? "--help before the tool name (default false)" : "--help (default false)",
|
|
41706
|
+
...entry.flags,
|
|
41707
|
+
...command === "update" ? [] : ["--managed-session before the command (default false; caller-owned sessions; see artium-axi --managed-session --help)"]
|
|
41708
|
+
];
|
|
41709
|
+
const protocol = [
|
|
41710
|
+
"Session JSON on inherited pipe fd 3, new sessions and rotations as JSON lines on private pipe fd 4; no session file.",
|
|
41711
|
+
"Managed input: {serverUrl, accessToken, refreshToken?}; close fd 3 after JSON (64 KiB maximum). Output: {serverUrl, status, accessToken, refreshToken, accessExpiresAt, familyExpiresAt} per rotation, before retry, including on later failure.",
|
|
41712
|
+
"Managed login: fd 3 is unused; fd 4 must be a writable private pipe/socket. Local sign-in requires --username <username> --password-stdin with protected inherited stdin; password argv and ARTIUM_AXI_PASSWORD are refused. SSO uses login --sso and displays browser approval instructions immediately. New sessions use the rotation envelope; password-change-required returns {serverUrl, status, passwordChangeToken, passwordChangeExpiresAt} on fd 4 and exits 1.",
|
|
41713
|
+
"Managed exits: 0 success; 2 invalid JSON/descriptors or refused passwd/logout/setup/update; 1 authentication/transport failure; tool exit codes pass through. Only TOKEN_EXPIRED permits one refresh/retry; without refreshToken or on refusal, return control to the caller."
|
|
41714
|
+
];
|
|
41715
|
+
const purposes = command === "home" ? `commands[${Object.keys(commands).length - 2}]{command,purpose}:
|
|
41716
|
+
${Object.entries(commands).filter(([name]) => name !== "home" && name !== "managed-session").map(([name, value]) => ` ${name},${JSON.stringify(value.purpose)}`).join("\n")}
|
|
41717
|
+
` : "";
|
|
41718
|
+
return `purpose: ${entry.purpose}
|
|
41719
|
+
usage: ${entry.usage}
|
|
41720
|
+
${purposes}flags[${flags.length}]:
|
|
41721
|
+
${flags.map((flag) => ` - ${JSON.stringify(flag)}`).join("\n")}
|
|
41722
|
+
example: ${entry.example}
|
|
41723
|
+
` + (command === "login" || command === "managed-session" ? `managedSession[${protocol.length}]:
|
|
41724
|
+
${protocol.map((line) => ` - ${JSON.stringify(line)}`).join("\n")}
|
|
41725
|
+
` : "");
|
|
41726
|
+
}
|
|
41727
|
+
function validateArguments(args, prefixHelp) {
|
|
41728
|
+
const command = args[0];
|
|
41729
|
+
if (command === "tools") args = [...args.filter((arg) => arg !== "--help"), ...args.filter((arg) => arg === "--help")];
|
|
41730
|
+
const rootFlags = "--help, --version, --managed-session (before the command)";
|
|
41731
|
+
const rootCommands = Object.keys(commands).filter((name) => name !== "home" && name !== "managed-session" && name !== "tools show").join(", ");
|
|
41732
|
+
function fail(token, level2, choices2) {
|
|
41733
|
+
const kind = token?.startsWith("-") ? "flag" : "argument";
|
|
41734
|
+
const message = token === void 0 ? `Missing argument for ${level2}.` : command === "login" || command === "passwd" ? `Unexpected argument at position ${args.indexOf(token) + 1} for ${level2}. Password arguments are refused.` : `Unknown or unexpected ${kind} ${JSON.stringify(kind === "flag" ? token.split("=")[0] : token)} for ${level2}.`;
|
|
41735
|
+
throw new ArtiumError("INVALID_INPUT", message, choices2);
|
|
41736
|
+
}
|
|
41737
|
+
if (!command) return;
|
|
41738
|
+
if (command === "--version" && args.length === 1) return;
|
|
41739
|
+
if (!Object.hasOwn(commands, command) || command === "home" || command === "managed-session" || command === "tools show") {
|
|
41740
|
+
fail(command, "artium-axi", `Valid commands: ${rootCommands}. Valid flags: ${rootFlags}.`);
|
|
41741
|
+
}
|
|
41742
|
+
if (toolSchema.safeParse(command).success) {
|
|
41743
|
+
if (prefixHelp && args.length > 1) fail(args[1], command, `Use artium-axi --help ${command} for local help; artium-axi ${command} --help for upstream flags.`);
|
|
41744
|
+
return;
|
|
41745
|
+
}
|
|
41746
|
+
let level = command;
|
|
41747
|
+
let start = 1;
|
|
41748
|
+
if (command === "tools" && args[1] === "show") {
|
|
41749
|
+
level = "tools show";
|
|
41750
|
+
start = 2;
|
|
41751
|
+
}
|
|
41752
|
+
const entry = commands[level];
|
|
41753
|
+
const validFlags = ["--help", ...entry.flags.map((flag) => flag.split(" ")[0])];
|
|
41754
|
+
const choices = `Valid flags for ${level}: ${validFlags.join(", ")}.` + (level === "tools" ? " Valid subcommands: show <tool>." : level === "tools show" ? ` Valid tools: ${toolSchema.options.join(", ")}.` : "");
|
|
41755
|
+
let tool = false;
|
|
41756
|
+
const seen = /* @__PURE__ */ new Set();
|
|
41757
|
+
for (let index = start; index < args.length; index++) {
|
|
41758
|
+
const token = args[index];
|
|
41759
|
+
if (level === "tools show" && !token.startsWith("-") && !tool) {
|
|
41760
|
+
if (!toolSchema.safeParse(token).success) fail(token, level, choices);
|
|
41761
|
+
tool = true;
|
|
41762
|
+
} else {
|
|
41763
|
+
if (!validFlags.includes(token) || seen.has(token)) fail(token, level, choices);
|
|
41764
|
+
seen.add(token);
|
|
41765
|
+
if (token === "--username" || token === "--host") {
|
|
41766
|
+
const value = args[index + 1];
|
|
41767
|
+
if (!value) fail(value, `${level} ${token}`, `Supply ${token} ${token === "--host" ? "<claude|codex|opencode|pi>" : "<username>"}. ${choices}`);
|
|
41768
|
+
if (token === "--host" && !["claude", "codex", "opencode", "pi"].includes(value)) fail(value, `${level} --host`, `Valid hosts: claude, codex, opencode, pi. Use ${entry.usage}.`);
|
|
41769
|
+
index++;
|
|
41770
|
+
}
|
|
41771
|
+
}
|
|
41772
|
+
}
|
|
41773
|
+
if (level === "tools show" && !tool && !seen.has("--help") && !prefixHelp) fail(void 0, level, choices);
|
|
41774
|
+
}
|
|
41775
|
+
function helpCommand(args, prefixHelp = false) {
|
|
41776
|
+
if (args[0] === "setup" && args.includes("--help")) {
|
|
41777
|
+
const path2 = args.filter((arg) => arg !== "--help");
|
|
41778
|
+
for (let index = 1; index < path2.length; index++) {
|
|
41779
|
+
if (path2[index] === "--host" && ["claude", "codex", "opencode", "pi"].includes(path2[index + 1])) index++;
|
|
41780
|
+
else if (path2[index] !== "--hook" && path2[index] !== "--force") return void 0;
|
|
41781
|
+
}
|
|
41782
|
+
return "setup";
|
|
41783
|
+
}
|
|
41784
|
+
if (toolSchema.safeParse(args[0]).success) return prefixHelp && args.length === 2 ? args[0] : void 0;
|
|
41785
|
+
if (args[0] === "login" || args[0] === "passwd") {
|
|
41786
|
+
if (args[0] === "login" && args.length === 3 && args.includes("--sso") && args.includes("--help")) return "login";
|
|
41787
|
+
let requested = false;
|
|
41788
|
+
let username = false;
|
|
41789
|
+
let stdin = false;
|
|
41790
|
+
for (let index = 1; index < args.length; index++) {
|
|
41791
|
+
const option = args[index];
|
|
41792
|
+
if (option === "--username" && args[0] === "login" && !username && args[index + 1] !== void 0) {
|
|
41793
|
+
username = true;
|
|
41794
|
+
index++;
|
|
41795
|
+
} else if (option === "--password-stdin" && !stdin) stdin = true;
|
|
41796
|
+
else if (option === "--help" && !requested) requested = true;
|
|
41797
|
+
else return void 0;
|
|
41798
|
+
}
|
|
41799
|
+
return requested ? args[0] : void 0;
|
|
41800
|
+
}
|
|
41801
|
+
if (!args.includes("--help")) return void 0;
|
|
41802
|
+
const path = args.filter((arg) => arg !== "--help");
|
|
41803
|
+
if (path.length === 0) return "home";
|
|
41804
|
+
if (path[0] === "tools" && path[1] === "show" && (path.length === 2 || path.length === 3 && toolSchema.safeParse(path[2]).success)) return "tools show";
|
|
41805
|
+
if (path.length === 1 && path[0] !== "home" && Object.hasOwn(commands, path[0])) return path[0];
|
|
41806
|
+
return void 0;
|
|
41807
|
+
}
|
|
41808
|
+
|
|
40351
41809
|
// src/cli/setup.ts
|
|
40352
41810
|
import { createHash, randomUUID as randomUUID2 } from "node:crypto";
|
|
40353
41811
|
import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync as readFileSync3, renameSync as renameSync2, rmSync as rmSync2, statSync as statSync2, writeFileSync as writeFileSync2 } from "node:fs";
|
|
40354
41812
|
import { homedir as homedir2 } from "node:os";
|
|
40355
|
-
import { dirname as dirname2, join as join2, resolve } from "node:path";
|
|
41813
|
+
import { dirname as dirname2, join as join2, resolve as resolve2 } from "node:path";
|
|
40356
41814
|
|
|
40357
41815
|
// skill/artium-axi/SKILL.md
|
|
40358
41816
|
var SKILL_default = "---\nname: artium-axi\ndescription: Discover and run managed commands through Artium, using the signed-in account and its granted tools.\n---\n\nUse artium-axi tools first for requests involving data from Artium-managed tools.\nRun `artium-axi tools` to discover the tools available to this account before choosing a tool.\nRun `artium-axi tools show <tool>` for its commands and a vetted example, then run `artium-axi <tool> <args>`.\nFollow the returned next commands; they already include the Artium prefix.\nKeep upstream arguments intact and use the managed credentials rather than configuring an upstream CLI directly.\n\nIf artium-axi is absent from PATH, use the installed command below in place of `artium-axi` in every example:\n\n<!-- artium-axi executable -->\nThe setup command records the standalone bundle's Node invocation here.\n<!-- /artium-axi executable -->\n\nIf sign-in is required, ask the user to follow `artium-axi login --help` for their SSO or local account.\nNever request or print tokens or put passwords in arguments.\nAn empty tool list means no enabled runtime tool is available through the account's roles; ask an administrator to check grants and enabled tools.\nUse `artium-axi doctor` for connection or cached health diagnostics.\nDo not retry an uncertain command outcome, especially a write.\n";
|
|
@@ -40451,7 +41909,7 @@ async function setup(args) {
|
|
|
40451
41909
|
if (hook && host !== "claude") {
|
|
40452
41910
|
throw new ArtiumError("INVALID_INPUT", `Hook installation is unsupported for ${host}: this installer has no verified ${host} hook implementation. No files were written.`, `Install the skill with artium-axi setup --host ${host} without --hook; Claude Code supports --hook.`);
|
|
40453
41911
|
}
|
|
40454
|
-
const executable =
|
|
41912
|
+
const executable = resolve2(process.argv[1]);
|
|
40455
41913
|
const invocation = process.platform === "win32" ? `& '${process.execPath.replaceAll("'", "''")}' '${executable.replaceAll("'", "''")}'` : `${quote(process.execPath)} ${quote(executable)}`;
|
|
40456
41914
|
const executableBlock = `<!-- artium-axi executable -->
|
|
40457
41915
|
|
|
@@ -40461,7 +41919,7 @@ ${invocation}
|
|
|
40461
41919
|
|
|
40462
41920
|
<!-- /artium-axi executable -->`;
|
|
40463
41921
|
const content = SKILL_default.replace(/<!-- artium-axi executable -->[\s\S]*?<!-- \/artium-axi executable -->/, () => executableBlock);
|
|
40464
|
-
const hostDirectory = host === "claude" && process.env.CLAUDE_CONFIG_DIR ?
|
|
41922
|
+
const hostDirectory = host === "claude" && process.env.CLAUDE_CONFIG_DIR ? resolve2(process.env.CLAUDE_CONFIG_DIR) : host === "pi" && process.env.PI_CODING_AGENT_DIR ? resolve2(process.env.PI_CODING_AGENT_DIR.replace(/^~(?=\/|$)/, () => homedir2())) : join2(homedir2(), ...hosts[host]);
|
|
40465
41923
|
const client = new Client();
|
|
40466
41924
|
const response = skillsResponseSchema.safeParse(await client.authenticated("/v1/skills", "GET"));
|
|
40467
41925
|
if (!response.success) throw new ArtiumError("INVALID_RESPONSE");
|
|
@@ -40580,6 +42038,7 @@ expires: ${new Date(device.expiresAt).toISOString()}
|
|
|
40580
42038
|
if (managed2) await managed2.emit(client.serverUrl, session);
|
|
40581
42039
|
else await client.sessions.locked(async () => {
|
|
40582
42040
|
client.sessions.write(session);
|
|
42041
|
+
client.sessions.writeClientConfig(client.caFile);
|
|
40583
42042
|
});
|
|
40584
42043
|
const message = `status: authenticated
|
|
40585
42044
|
session-ends: ${new Date(session.familyExpiresAt).toISOString()}
|
|
@@ -40734,9 +42193,9 @@ var ManagedSession = class _ManagedSession {
|
|
|
40734
42193
|
if (session.status === "authenticated") this.protect(session.accessToken, session.refreshToken);
|
|
40735
42194
|
else this.protect(session.passwordChangeToken);
|
|
40736
42195
|
try {
|
|
40737
|
-
await new Promise((
|
|
42196
|
+
await new Promise((resolve4, reject) => {
|
|
40738
42197
|
this.channel.write(`${JSON.stringify({ serverUrl, ...session })}
|
|
40739
|
-
`, (error62) => error62 ? reject(error62) :
|
|
42198
|
+
`, (error62) => error62 ? reject(error62) : resolve4());
|
|
40740
42199
|
});
|
|
40741
42200
|
} catch {
|
|
40742
42201
|
throw new ArtiumError(
|
|
@@ -40760,9 +42219,45 @@ var ManagedSession = class _ManagedSession {
|
|
|
40760
42219
|
}
|
|
40761
42220
|
};
|
|
40762
42221
|
|
|
42222
|
+
// src/cli/update.ts
|
|
42223
|
+
import { createHash as createHash2, randomUUID as randomUUID3 } from "node:crypto";
|
|
42224
|
+
import { copyFileSync, existsSync as existsSync3, readFileSync as readFileSync4, realpathSync, renameSync as renameSync3, rmSync as rmSync3, statSync as statSync3, writeFileSync as writeFileSync3 } from "node:fs";
|
|
42225
|
+
import { dirname as dirname3, join as join3 } from "node:path";
|
|
42226
|
+
async function update() {
|
|
42227
|
+
const executable = realpathSync(process.argv[1]);
|
|
42228
|
+
const metadata = join3(dirname3(executable), "..", "package.json");
|
|
42229
|
+
if (existsSync3(metadata) && JSON.parse(readFileSync4(metadata, "utf8")).name === "@knowttl/artium-axi") {
|
|
42230
|
+
throw new ArtiumError("INVALID_INPUT", "This client was installed from npm.", "Run npm install -g @knowttl/artium-axi@latest.");
|
|
42231
|
+
}
|
|
42232
|
+
const client = new Client();
|
|
42233
|
+
const bundle = await client.request("/cli/artium-axi.mjs", "GET", void 0, void 0, true);
|
|
42234
|
+
const checksum2 = await client.request("/cli/artium-axi.mjs.sha256", "GET", void 0, void 0, true);
|
|
42235
|
+
const digest = checksum2.toString("utf8").trim().split(/\s+/)[0];
|
|
42236
|
+
if (!/^[a-fA-F0-9]{64}$/.test(digest) || createHash2("sha256").update(bundle).digest("hex") !== digest.toLowerCase()) {
|
|
42237
|
+
throw new ArtiumError("INVALID_RESPONSE", "The downloaded client failed SHA-256 verification.", "Run artium-axi update again after checking the server bundle and checksum.");
|
|
42238
|
+
}
|
|
42239
|
+
const temporary = `${executable}.${randomUUID3()}.tmp`;
|
|
42240
|
+
try {
|
|
42241
|
+
writeFileSync3(temporary, bundle, { flag: "wx", mode: statSync3(executable).mode & 511 });
|
|
42242
|
+
copyFileSync(executable, `${executable}.bak`);
|
|
42243
|
+
renameSync3(temporary, executable);
|
|
42244
|
+
} catch {
|
|
42245
|
+
throw new ArtiumError("INTERNAL_ERROR", "The client could not be replaced.", "Check write permissions for the client file and its directory, then run artium-axi update.");
|
|
42246
|
+
} finally {
|
|
42247
|
+
rmSync3(temporary, { force: true });
|
|
42248
|
+
}
|
|
42249
|
+
return "status: updated\nnext: artium-axi --version\n";
|
|
42250
|
+
}
|
|
42251
|
+
|
|
40763
42252
|
// src/cli/main.ts
|
|
40764
42253
|
var managed;
|
|
42254
|
+
for (const stream of [process.stdout, process.stderr]) {
|
|
42255
|
+
stream.on("error", (error62) => {
|
|
42256
|
+
if (error62.code !== "EPIPE") throw error62;
|
|
42257
|
+
});
|
|
42258
|
+
}
|
|
40765
42259
|
function output2(stream, text2) {
|
|
42260
|
+
if (process[stream].destroyed) return;
|
|
40766
42261
|
if (managed) managed.write(stream, text2);
|
|
40767
42262
|
else process[stream].write(text2);
|
|
40768
42263
|
}
|
|
@@ -40790,7 +42285,7 @@ async function main(args) {
|
|
|
40790
42285
|
return;
|
|
40791
42286
|
}
|
|
40792
42287
|
if (managedMode) {
|
|
40793
|
-
if (["passwd", "logout", "setup"].includes(args[0])) {
|
|
42288
|
+
if (["passwd", "logout", "setup", "update"].includes(args[0])) {
|
|
40794
42289
|
throw new ArtiumError(
|
|
40795
42290
|
"INVALID_INPUT",
|
|
40796
42291
|
"This command is unavailable in managed session mode.",
|
|
@@ -40799,6 +42294,10 @@ async function main(args) {
|
|
|
40799
42294
|
}
|
|
40800
42295
|
managed = await ManagedSession.read(args[0] === "login");
|
|
40801
42296
|
}
|
|
42297
|
+
if (command === "update") {
|
|
42298
|
+
output2("stdout", await update());
|
|
42299
|
+
return;
|
|
42300
|
+
}
|
|
40802
42301
|
if (command === "setup") {
|
|
40803
42302
|
output2("stdout", await setup(args.slice(1)));
|
|
40804
42303
|
return;
|
|
@@ -40853,7 +42352,10 @@ async function main(args) {
|
|
|
40853
42352
|
const parsed = loginResponseSchema.safeParse(await client2.request("/v1/auth/login", "POST", { username, password }));
|
|
40854
42353
|
if (!parsed.success) throw new ArtiumError("INVALID_RESPONSE");
|
|
40855
42354
|
if (managed) await managed.emit(client2.serverUrl, parsed.data);
|
|
40856
|
-
else
|
|
42355
|
+
else {
|
|
42356
|
+
client2.sessions.write(parsed.data);
|
|
42357
|
+
client2.sessions.writeClientConfig(client2.caFile);
|
|
42358
|
+
}
|
|
40857
42359
|
return parsed.data;
|
|
40858
42360
|
};
|
|
40859
42361
|
const session = await (managed ? signIn() : client2.sessions.locked(signIn));
|
|
@@ -40915,7 +42417,7 @@ remoteRevocation: ${verified ? "verified" : "unverified"}
|
|
|
40915
42417
|
if (home) {
|
|
40916
42418
|
const tools = toolsResponseSchema.safeParse(await client.authenticated("/v1/tools", "GET", void 0, homeSession));
|
|
40917
42419
|
if (!tools.success) throw new ArtiumError("INVALID_RESPONSE");
|
|
40918
|
-
const executable =
|
|
42420
|
+
const executable = resolve3(process.argv[1]);
|
|
40919
42421
|
const local = relative(homedir3(), executable);
|
|
40920
42422
|
const bin = local && !isAbsolute(local) && !local.startsWith(`..${sep}`) && local !== ".." ? `~${sep}${local}` : executable;
|
|
40921
42423
|
view = `bin: ${JSON.stringify(bin)}
|
|
@@ -40949,11 +42451,11 @@ ${Object.entries(response.error).map(([key, value]) => ` ${key}: ${JSON.stringi
|
|
|
40949
42451
|
`);
|
|
40950
42452
|
process.exitCode = errors[response.error.code].exitCode;
|
|
40951
42453
|
}
|
|
40952
|
-
main(process.argv.slice(2)).catch((error62) => printError(errorResponse(error62 instanceof ArtiumError ? error62 : new ArtiumError("INTERNAL_ERROR"),
|
|
42454
|
+
main(process.argv.slice(2)).catch((error62) => printError(errorResponse(error62 instanceof ArtiumError ? error62 : new ArtiumError("INTERNAL_ERROR"), randomUUID4()))).then(() => {
|
|
40953
42455
|
try {
|
|
40954
42456
|
managed?.flush();
|
|
40955
42457
|
} catch {
|
|
40956
42458
|
managed = void 0;
|
|
40957
|
-
printError(errorResponse(new ArtiumError("SECRET_IN_OUTPUT"),
|
|
42459
|
+
printError(errorResponse(new ArtiumError("SECRET_IN_OUTPUT"), randomUUID4()));
|
|
40958
42460
|
}
|
|
40959
42461
|
});
|