pax8-cta 0.1.0
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/LICENSE +200 -0
- package/README.md +659 -0
- package/demo-data/solutions/ProductQADemo_1_0_0_2_managed.zip +0 -0
- package/dist/commands/analyze.d.ts +28 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +571 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/auth.d.ts +18 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +171 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/config.d.ts +34 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +299 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/demo.d.ts +33 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +362 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/deploy.d.ts +18 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +1186 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/deployments/helpers.d.ts +68 -0
- package/dist/commands/deployments/helpers.d.ts.map +1 -0
- package/dist/commands/deployments/helpers.js +414 -0
- package/dist/commands/deployments/helpers.js.map +1 -0
- package/dist/commands/deployments/index.d.ts +24 -0
- package/dist/commands/deployments/index.d.ts.map +1 -0
- package/dist/commands/deployments/index.js +47 -0
- package/dist/commands/deployments/index.js.map +1 -0
- package/dist/commands/deployments/list.d.ts +18 -0
- package/dist/commands/deployments/list.d.ts.map +1 -0
- package/dist/commands/deployments/list.js +97 -0
- package/dist/commands/deployments/list.js.map +1 -0
- package/dist/commands/deployments/show.d.ts +18 -0
- package/dist/commands/deployments/show.d.ts.map +1 -0
- package/dist/commands/deployments/show.js +81 -0
- package/dist/commands/deployments/show.js.map +1 -0
- package/dist/commands/deployments/undo.d.ts +18 -0
- package/dist/commands/deployments/undo.d.ts.map +1 -0
- package/dist/commands/deployments/undo.js +295 -0
- package/dist/commands/deployments/undo.js.map +1 -0
- package/dist/commands/export.d.ts +18 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +133 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +18 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +129 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/init-config.d.ts +26 -0
- package/dist/commands/init-config.d.ts.map +1 -0
- package/dist/commands/init-config.js +123 -0
- package/dist/commands/init-config.js.map +1 -0
- package/dist/commands/init-validation.d.ts +47 -0
- package/dist/commands/init-validation.d.ts.map +1 -0
- package/dist/commands/init-validation.js +339 -0
- package/dist/commands/init-validation.js.map +1 -0
- package/dist/commands/init-wizard.d.ts +25 -0
- package/dist/commands/init-wizard.d.ts.map +1 -0
- package/dist/commands/init-wizard.js +433 -0
- package/dist/commands/init-wizard.js.map +1 -0
- package/dist/commands/init.d.ts +18 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +46 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/resolve-url.d.ts +18 -0
- package/dist/commands/resolve-url.d.ts.map +1 -0
- package/dist/commands/resolve-url.js +126 -0
- package/dist/commands/resolve-url.js.map +1 -0
- package/dist/commands/setup.d.ts +18 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +239 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/solutions/drift-analysis.d.ts +73 -0
- package/dist/commands/solutions/drift-analysis.d.ts.map +1 -0
- package/dist/commands/solutions/drift-analysis.js +416 -0
- package/dist/commands/solutions/drift-analysis.js.map +1 -0
- package/dist/commands/solutions/drift.d.ts +32 -0
- package/dist/commands/solutions/drift.d.ts.map +1 -0
- package/dist/commands/solutions/drift.js +641 -0
- package/dist/commands/solutions/drift.js.map +1 -0
- package/dist/commands/solutions/fix-planner.d.ts +48 -0
- package/dist/commands/solutions/fix-planner.d.ts.map +1 -0
- package/dist/commands/solutions/fix-planner.js +43 -0
- package/dist/commands/solutions/fix-planner.js.map +1 -0
- package/dist/commands/solutions/helpers.d.ts +35 -0
- package/dist/commands/solutions/helpers.d.ts.map +1 -0
- package/dist/commands/solutions/helpers.js +54 -0
- package/dist/commands/solutions/helpers.js.map +1 -0
- package/dist/commands/solutions/index.d.ts +18 -0
- package/dist/commands/solutions/index.d.ts.map +1 -0
- package/dist/commands/solutions/index.js +30 -0
- package/dist/commands/solutions/index.js.map +1 -0
- package/dist/commands/solutions/list.d.ts +18 -0
- package/dist/commands/solutions/list.d.ts.map +1 -0
- package/dist/commands/solutions/list.js +174 -0
- package/dist/commands/solutions/list.js.map +1 -0
- package/dist/commands/solutions/remove.d.ts +18 -0
- package/dist/commands/solutions/remove.d.ts.map +1 -0
- package/dist/commands/solutions/remove.js +137 -0
- package/dist/commands/solutions/remove.js.map +1 -0
- package/dist/commands/solutions/risk-calculator.d.ts +33 -0
- package/dist/commands/solutions/risk-calculator.d.ts.map +1 -0
- package/dist/commands/solutions/risk-calculator.js +79 -0
- package/dist/commands/solutions/risk-calculator.js.map +1 -0
- package/dist/commands/solutions/show.d.ts +18 -0
- package/dist/commands/solutions/show.d.ts.map +1 -0
- package/dist/commands/solutions/show.js +165 -0
- package/dist/commands/solutions/show.js.map +1 -0
- package/dist/commands/status.d.ts +18 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +573 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/telemetry.d.ts +18 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +85 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/tenants/health.d.ts +18 -0
- package/dist/commands/tenants/health.d.ts.map +1 -0
- package/dist/commands/tenants/health.js +172 -0
- package/dist/commands/tenants/health.js.map +1 -0
- package/dist/commands/tenants/helpers.d.ts +44 -0
- package/dist/commands/tenants/helpers.d.ts.map +1 -0
- package/dist/commands/tenants/helpers.js +72 -0
- package/dist/commands/tenants/helpers.js.map +1 -0
- package/dist/commands/tenants/index.d.ts +19 -0
- package/dist/commands/tenants/index.d.ts.map +1 -0
- package/dist/commands/tenants/index.js +39 -0
- package/dist/commands/tenants/index.js.map +1 -0
- package/dist/commands/tenants/inspect.d.ts +18 -0
- package/dist/commands/tenants/inspect.d.ts.map +1 -0
- package/dist/commands/tenants/inspect.js +176 -0
- package/dist/commands/tenants/inspect.js.map +1 -0
- package/dist/commands/tenants/list.d.ts +18 -0
- package/dist/commands/tenants/list.d.ts.map +1 -0
- package/dist/commands/tenants/list.js +144 -0
- package/dist/commands/tenants/list.js.map +1 -0
- package/dist/commands/tenants/manage.d.ts +20 -0
- package/dist/commands/tenants/manage.d.ts.map +1 -0
- package/dist/commands/tenants/manage.js +206 -0
- package/dist/commands/tenants/manage.js.map +1 -0
- package/dist/commands/tenants/show.d.ts +18 -0
- package/dist/commands/tenants/show.d.ts.map +1 -0
- package/dist/commands/tenants/show.js +191 -0
- package/dist/commands/tenants/show.js.map +1 -0
- package/dist/commands/validate.d.ts +18 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +536 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +258 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.ts +51 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +153 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/banner.d.ts +19 -0
- package/dist/lib/banner.d.ts.map +1 -0
- package/dist/lib/banner.js +78 -0
- package/dist/lib/banner.js.map +1 -0
- package/dist/lib/command-wrapper.d.ts +56 -0
- package/dist/lib/command-wrapper.d.ts.map +1 -0
- package/dist/lib/command-wrapper.js +71 -0
- package/dist/lib/command-wrapper.js.map +1 -0
- package/dist/lib/credentials.d.ts +56 -0
- package/dist/lib/credentials.d.ts.map +1 -0
- package/dist/lib/credentials.js +146 -0
- package/dist/lib/credentials.js.map +1 -0
- package/dist/lib/demo-banner.d.ts +15 -0
- package/dist/lib/demo-banner.d.ts.map +1 -0
- package/dist/lib/demo-banner.js +33 -0
- package/dist/lib/demo-banner.js.map +1 -0
- package/dist/lib/error-handler.d.ts +51 -0
- package/dist/lib/error-handler.d.ts.map +1 -0
- package/dist/lib/error-handler.js +458 -0
- package/dist/lib/error-handler.js.map +1 -0
- package/dist/lib/errors.d.ts +61 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +168 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/formatters.d.ts +55 -0
- package/dist/lib/formatters.d.ts.map +1 -0
- package/dist/lib/formatters.js +163 -0
- package/dist/lib/formatters.js.map +1 -0
- package/dist/lib/graph-client.d.ts +74 -0
- package/dist/lib/graph-client.d.ts.map +1 -0
- package/dist/lib/graph-client.js +231 -0
- package/dist/lib/graph-client.js.map +1 -0
- package/dist/lib/input.d.ts +22 -0
- package/dist/lib/input.d.ts.map +1 -0
- package/dist/lib/input.js +120 -0
- package/dist/lib/input.js.map +1 -0
- package/dist/lib/interactive-wizard.d.ts +26 -0
- package/dist/lib/interactive-wizard.d.ts.map +1 -0
- package/dist/lib/interactive-wizard.js +550 -0
- package/dist/lib/interactive-wizard.js.map +1 -0
- package/dist/lib/oss-surface.d.ts +21 -0
- package/dist/lib/oss-surface.d.ts.map +1 -0
- package/dist/lib/oss-surface.js +29 -0
- package/dist/lib/oss-surface.js.map +1 -0
- package/dist/lib/output.d.ts +74 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +156 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/picker.d.ts +75 -0
- package/dist/lib/picker.d.ts.map +1 -0
- package/dist/lib/picker.js +115 -0
- package/dist/lib/picker.js.map +1 -0
- package/dist/lib/repl.d.ts +19 -0
- package/dist/lib/repl.d.ts.map +1 -0
- package/dist/lib/repl.js +158 -0
- package/dist/lib/repl.js.map +1 -0
- package/dist/lib/spinner.d.ts +41 -0
- package/dist/lib/spinner.d.ts.map +1 -0
- package/dist/lib/spinner.js +126 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/telemetry.d.ts +96 -0
- package/dist/lib/telemetry.d.ts.map +1 -0
- package/dist/lib/telemetry.js +367 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Command } from "commander";
|
|
17
|
+
import chalk from "chalk";
|
|
18
|
+
import { isTelemetryEnabled, enableTelemetry, disableTelemetry } from "../lib/telemetry.js";
|
|
19
|
+
export const telemetryCommand = new Command("telemetry")
|
|
20
|
+
.description("Manage anonymous usage telemetry")
|
|
21
|
+
.action(() => {
|
|
22
|
+
// Default action: show status
|
|
23
|
+
showStatus();
|
|
24
|
+
});
|
|
25
|
+
telemetryCommand
|
|
26
|
+
.command("status")
|
|
27
|
+
.description("Show telemetry status")
|
|
28
|
+
.action(() => {
|
|
29
|
+
showStatus();
|
|
30
|
+
});
|
|
31
|
+
telemetryCommand
|
|
32
|
+
.command("on")
|
|
33
|
+
.description("Enable anonymous telemetry")
|
|
34
|
+
.action(() => {
|
|
35
|
+
enableTelemetry();
|
|
36
|
+
console.log(chalk.green("✓ Telemetry enabled"));
|
|
37
|
+
console.log();
|
|
38
|
+
console.log(chalk.gray("Thank you for helping improve Pax8 CTA CLI!"));
|
|
39
|
+
console.log(chalk.gray("We collect only anonymous usage data - never any personal or tenant information."));
|
|
40
|
+
});
|
|
41
|
+
telemetryCommand
|
|
42
|
+
.command("off")
|
|
43
|
+
.description("Disable telemetry")
|
|
44
|
+
.action(() => {
|
|
45
|
+
disableTelemetry();
|
|
46
|
+
console.log(chalk.yellow("✓ Telemetry disabled"));
|
|
47
|
+
console.log();
|
|
48
|
+
console.log(chalk.gray("No usage data will be collected."));
|
|
49
|
+
console.log(chalk.gray("You can re-enable anytime with 'telemetry on'"));
|
|
50
|
+
});
|
|
51
|
+
function showStatus() {
|
|
52
|
+
const enabled = isTelemetryEnabled();
|
|
53
|
+
console.log(chalk.bold("Telemetry Status"));
|
|
54
|
+
console.log("─".repeat(50));
|
|
55
|
+
console.log();
|
|
56
|
+
if (enabled) {
|
|
57
|
+
console.log(` Status: ${chalk.green("Enabled")}`);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.log(` Status: ${chalk.yellow("Disabled")}`);
|
|
61
|
+
}
|
|
62
|
+
console.log();
|
|
63
|
+
console.log(chalk.bold("What we collect:"));
|
|
64
|
+
console.log(chalk.gray(" • Command names (e.g., 'deploy', 'fleet list')"));
|
|
65
|
+
console.log(chalk.gray(" • Success/failure status"));
|
|
66
|
+
console.log(chalk.gray(" • Execution duration"));
|
|
67
|
+
console.log(chalk.gray(" • CLI version and OS"));
|
|
68
|
+
console.log();
|
|
69
|
+
console.log(chalk.bold("What we NEVER collect:"));
|
|
70
|
+
console.log(chalk.gray(" • Tenant IDs, names, or data"));
|
|
71
|
+
console.log(chalk.gray(" • Solution names or file paths"));
|
|
72
|
+
console.log(chalk.gray(" • Configuration values"));
|
|
73
|
+
console.log(chalk.gray(" • Any personally identifiable information"));
|
|
74
|
+
console.log();
|
|
75
|
+
console.log(chalk.gray("Learn more: https://github.com/pax8labs/pax8-cta/tree/main/packages/cli#telemetry"));
|
|
76
|
+
console.log();
|
|
77
|
+
if (enabled) {
|
|
78
|
+
console.log(chalk.gray("To disable: telemetry off"));
|
|
79
|
+
console.log(chalk.gray(" Or set: PAX8_CTA_TELEMETRY_DISABLED=1 or DO_NOT_TRACK=1"));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.log(chalk.gray("To enable: telemetry on"));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/commands/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Command } from "commander";
|
|
17
|
+
export declare const healthCommand: Command;
|
|
18
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/commands/tenants/health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC,eAAO,MAAM,aAAa,SAkKtB,CAAC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Command } from "commander";
|
|
17
|
+
import chalk from "chalk";
|
|
18
|
+
import { createSpinner, isQuietMode } from "../../lib/spinner.js";
|
|
19
|
+
import { DEMO_TENANTS, generateMockHealthCheck } from "@pax8-cta/core";
|
|
20
|
+
import { withResolvedConfig } from "../../lib/command-wrapper.js";
|
|
21
|
+
import { findTenant } from "./helpers.js";
|
|
22
|
+
import { CliError, handleCommandError } from "../../lib/errors.js";
|
|
23
|
+
import { output, resolveFormat } from "../../lib/output.js";
|
|
24
|
+
import { showDemoBanner } from "../../lib/demo-banner.js";
|
|
25
|
+
const checkIcon = (passed) => (passed ? chalk.green("✓") : chalk.red("✗"));
|
|
26
|
+
const HEALTH_COLUMNS = [
|
|
27
|
+
{ key: "tenant", header: "Tenant" },
|
|
28
|
+
{ key: "gdap", header: "GDAP", format: (_v, row) => checkIcon(row.gdapPassed) },
|
|
29
|
+
{ key: "api", header: "API", format: (_v, row) => checkIcon(row.apiPassed) },
|
|
30
|
+
{ key: "dataverse", header: "Dataverse", format: (_v, row) => checkIcon(row.dataversePassed) },
|
|
31
|
+
{ key: "license", header: "License", format: (_v, row) => checkIcon(row.licensePassed) },
|
|
32
|
+
{
|
|
33
|
+
key: "status",
|
|
34
|
+
header: "Status",
|
|
35
|
+
format: (_v, row) => {
|
|
36
|
+
const text = row.healthy ? chalk.green("Healthy") : chalk.yellow("Degraded");
|
|
37
|
+
return row.reason ? `${text} (${row.reason})` : text;
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
export const healthCommand = new Command("health")
|
|
42
|
+
.argument("[tenant]", "Optional tenant name, ID, or URL fragment")
|
|
43
|
+
.description("View tenant health status")
|
|
44
|
+
.option("-c, --config <path>", "Path to config file", "./config/tenants.yaml")
|
|
45
|
+
.option("-t, --tag <tags...>", "Filter by tags")
|
|
46
|
+
.option("--watch", "Continuously monitor (refresh every 30s)")
|
|
47
|
+
.option("--json", "Output as JSON")
|
|
48
|
+
.option("--quiet", "Suppress all output")
|
|
49
|
+
.addHelpText("after", `
|
|
50
|
+
Examples:
|
|
51
|
+
tenants health Show fleet-wide health summary
|
|
52
|
+
tenants health Pax8CTA-Test2 Check health for a specific tenant
|
|
53
|
+
tenants health --json Output health data as JSON
|
|
54
|
+
`)
|
|
55
|
+
.action(async (tenantQuery, options, cmd) => {
|
|
56
|
+
// Merge local options with global flags (--json, --quiet, --ids-only) from root program
|
|
57
|
+
const opts = { ...options, ...cmd.optsWithGlobals() };
|
|
58
|
+
const spinner = createSpinner("Checking health...").start();
|
|
59
|
+
try {
|
|
60
|
+
// Get tenant list
|
|
61
|
+
const tenants = await withResolvedConfig(opts, () => {
|
|
62
|
+
spinner.stop();
|
|
63
|
+
if (!isQuietMode()) {
|
|
64
|
+
showDemoBanner();
|
|
65
|
+
}
|
|
66
|
+
return DEMO_TENANTS;
|
|
67
|
+
}, (config) => {
|
|
68
|
+
spinner.stop();
|
|
69
|
+
return config.tenants;
|
|
70
|
+
});
|
|
71
|
+
const fmt = resolveFormat(opts);
|
|
72
|
+
// ──────────────────────────────────────────────────────────────────────
|
|
73
|
+
// Per-tenant health (tenant arg supplied)
|
|
74
|
+
// ──────────────────────────────────────────────────────────────────────
|
|
75
|
+
if (tenantQuery) {
|
|
76
|
+
const tenant = findTenant(tenants, tenantQuery);
|
|
77
|
+
if (!tenant) {
|
|
78
|
+
// Route through handleCommandError so --json/non-TTY callers get the
|
|
79
|
+
// structured error envelope instead of bare colored stdout.
|
|
80
|
+
throw new CliError(`Tenant '${tenantQuery}' not found. ` +
|
|
81
|
+
`Run 'tenants list' to see all configured tenants.`);
|
|
82
|
+
}
|
|
83
|
+
const health = generateMockHealthCheck(tenant.tenantId);
|
|
84
|
+
if (fmt === "json") {
|
|
85
|
+
console.log(JSON.stringify({ tenant: tenant.name, ...health }, null, 2));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (fmt === "quiet")
|
|
89
|
+
return;
|
|
90
|
+
// table (default for TTY)
|
|
91
|
+
console.log(chalk.bold(`${tenant.name} - Health Details`));
|
|
92
|
+
console.log("━".repeat(50));
|
|
93
|
+
console.log(`Status: ${health.healthy ? chalk.green("Healthy") : chalk.red("Degraded")}`);
|
|
94
|
+
console.log();
|
|
95
|
+
console.log("Checks:");
|
|
96
|
+
health.checks.forEach((check) => {
|
|
97
|
+
const icon = check.passed ? chalk.green("✓") : chalk.red("✗");
|
|
98
|
+
const msg = check.message ? chalk.gray(` - ${check.message}`) : "";
|
|
99
|
+
console.log(` ${icon} ${check.name}${msg}`);
|
|
100
|
+
});
|
|
101
|
+
console.log();
|
|
102
|
+
console.log(chalk.gray("Last Checked: just now"));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
// ──────────────────────────────────────────────────────────────────────
|
|
106
|
+
// Fleet-wide health summary
|
|
107
|
+
// ──────────────────────────────────────────────────────────────────────
|
|
108
|
+
let filtered = tenants.filter((t) => t.enabled);
|
|
109
|
+
if (opts.tag && opts.tag.length > 0) {
|
|
110
|
+
filtered = filtered.filter((t) => opts.tag.some((tag) => t.tags?.includes(tag)));
|
|
111
|
+
}
|
|
112
|
+
const results = filtered.map((tenant) => ({
|
|
113
|
+
tenant,
|
|
114
|
+
health: generateMockHealthCheck(tenant.tenantId),
|
|
115
|
+
}));
|
|
116
|
+
if (fmt === "json") {
|
|
117
|
+
console.log(JSON.stringify({
|
|
118
|
+
summary: {
|
|
119
|
+
total: results.length,
|
|
120
|
+
healthy: results.filter((r) => r.health.healthy).length,
|
|
121
|
+
unhealthy: results.filter((r) => !r.health.healthy).length,
|
|
122
|
+
},
|
|
123
|
+
tenants: results.map((r) => ({
|
|
124
|
+
name: r.tenant.name,
|
|
125
|
+
tenantId: r.tenant.tenantId,
|
|
126
|
+
healthy: r.health.healthy,
|
|
127
|
+
checks: r.health.checks,
|
|
128
|
+
})),
|
|
129
|
+
}, null, 2));
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (fmt === "quiet")
|
|
133
|
+
return;
|
|
134
|
+
// Build typed rows and render via output() for table format.
|
|
135
|
+
const rows = results.map(({ tenant, health }) => {
|
|
136
|
+
const gdapCheck = health.checks.find((c) => c.name.includes("Connection") || c.name.includes("GDAP"));
|
|
137
|
+
const apiCheck = health.checks.find((c) => c.name.includes("API"));
|
|
138
|
+
const dataverseCheck = health.checks.find((c) => c.name.includes("Dataverse"));
|
|
139
|
+
const licenseCheck = health.checks.find((c) => c.name.includes("License"));
|
|
140
|
+
const failedCheck = health.checks.find((c) => !c.passed);
|
|
141
|
+
return {
|
|
142
|
+
tenant: tenant.name,
|
|
143
|
+
gdap: "",
|
|
144
|
+
api: "",
|
|
145
|
+
dataverse: "",
|
|
146
|
+
license: "",
|
|
147
|
+
status: "",
|
|
148
|
+
gdapPassed: !!(gdapCheck?.passed ?? dataverseCheck?.passed),
|
|
149
|
+
apiPassed: !!apiCheck?.passed,
|
|
150
|
+
dataversePassed: !!dataverseCheck?.passed,
|
|
151
|
+
licensePassed: !!licenseCheck?.passed,
|
|
152
|
+
healthy: health.healthy,
|
|
153
|
+
reason: failedCheck?.message,
|
|
154
|
+
};
|
|
155
|
+
});
|
|
156
|
+
const healthyCount = results.filter((r) => r.health.healthy).length;
|
|
157
|
+
const healthPercent = results.length ? Math.round((healthyCount / results.length) * 100) : 0;
|
|
158
|
+
console.log(chalk.bold("Fleet Health Summary"));
|
|
159
|
+
console.log("━".repeat(60));
|
|
160
|
+
console.log(`Overall: ${healthyCount}/${results.length} healthy (${healthPercent}%)`);
|
|
161
|
+
console.log();
|
|
162
|
+
output(rows, { format: "table", columns: HEALTH_COLUMNS });
|
|
163
|
+
if (opts.watch) {
|
|
164
|
+
console.log();
|
|
165
|
+
console.log(chalk.gray("Refreshing every 30 seconds... Press Ctrl+C to stop"));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
handleCommandError(error, spinner, "Health check failed");
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
//# sourceMappingURL=health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/commands/tenants/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { TenantConfig } from "@pax8-cta/core";
|
|
17
|
+
export declare function findTenant(tenants: TenantConfig[], query: string): TenantConfig | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Like {@link findTenant} but returns *all* tenants whose name, tenantId, or
|
|
20
|
+
* environmentUrl contains the query (case-insensitive). Callers can use this
|
|
21
|
+
* to detect ambiguous partial matches and surface a "did you mean..." prompt.
|
|
22
|
+
*
|
|
23
|
+
* If the query matches a tenant's name, tenantId, or environmentUrl exactly
|
|
24
|
+
* (case-insensitive), only that tenant is returned — an exact match resolves
|
|
25
|
+
* the ambiguity. This way `-t "Coho Vineyard"` succeeds even though "co"
|
|
26
|
+
* would otherwise be ambiguous.
|
|
27
|
+
*/
|
|
28
|
+
export declare function findTenantMatches(tenants: TenantConfig[], query: string): TenantConfig[];
|
|
29
|
+
/**
|
|
30
|
+
* Get deployed agents for a tenant.
|
|
31
|
+
*
|
|
32
|
+
* Reads from `DEMO_TENANTS[].metadata.deployedSolutions` so the deployed-agent
|
|
33
|
+
* versions match what `solutions drift` and `solutions show --tenants` display.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getDeployedAgentsForTenant(tenantId: string): Array<{
|
|
36
|
+
name: string;
|
|
37
|
+
version: string;
|
|
38
|
+
deployedAt: string;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Check if an agent version is current
|
|
42
|
+
*/
|
|
43
|
+
export declare function isAgentVersionCurrent(agentName: string, version: string): boolean;
|
|
44
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/tenants/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,YAAY,EAKb,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQ3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAiBxF;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAcD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGjF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { DEMO_SOLUTIONS, DEMO_TENANTS, } from "@pax8-cta/core";
|
|
17
|
+
export function findTenant(tenants, query) {
|
|
18
|
+
const q = query.toLowerCase();
|
|
19
|
+
return tenants.find((t) => t.name.toLowerCase().includes(q) ||
|
|
20
|
+
t.tenantId.toLowerCase().includes(q) ||
|
|
21
|
+
t.environmentUrl.toLowerCase().includes(q));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Like {@link findTenant} but returns *all* tenants whose name, tenantId, or
|
|
25
|
+
* environmentUrl contains the query (case-insensitive). Callers can use this
|
|
26
|
+
* to detect ambiguous partial matches and surface a "did you mean..." prompt.
|
|
27
|
+
*
|
|
28
|
+
* If the query matches a tenant's name, tenantId, or environmentUrl exactly
|
|
29
|
+
* (case-insensitive), only that tenant is returned — an exact match resolves
|
|
30
|
+
* the ambiguity. This way `-t "Coho Vineyard"` succeeds even though "co"
|
|
31
|
+
* would otherwise be ambiguous.
|
|
32
|
+
*/
|
|
33
|
+
export function findTenantMatches(tenants, query) {
|
|
34
|
+
const q = query.toLowerCase();
|
|
35
|
+
const exact = tenants.filter((t) => t.name.toLowerCase() === q ||
|
|
36
|
+
t.tenantId.toLowerCase() === q ||
|
|
37
|
+
t.environmentUrl.toLowerCase() === q);
|
|
38
|
+
if (exact.length > 0) {
|
|
39
|
+
return exact;
|
|
40
|
+
}
|
|
41
|
+
return tenants.filter((t) => t.name.toLowerCase().includes(q) ||
|
|
42
|
+
t.tenantId.toLowerCase().includes(q) ||
|
|
43
|
+
t.environmentUrl.toLowerCase().includes(q));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get deployed agents for a tenant.
|
|
47
|
+
*
|
|
48
|
+
* Reads from `DEMO_TENANTS[].metadata.deployedSolutions` so the deployed-agent
|
|
49
|
+
* versions match what `solutions drift` and `solutions show --tenants` display.
|
|
50
|
+
*/
|
|
51
|
+
export function getDeployedAgentsForTenant(tenantId) {
|
|
52
|
+
const tenant = DEMO_TENANTS.find((t) => t.tenantId === tenantId);
|
|
53
|
+
const meta = tenant?.metadata;
|
|
54
|
+
if (!meta?.deployedSolutions) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
return meta.deployedSolutions
|
|
58
|
+
.filter((s) => s.deployedVersion !== null)
|
|
59
|
+
.map((s) => ({
|
|
60
|
+
name: s.uniqueName,
|
|
61
|
+
version: s.deployedVersion,
|
|
62
|
+
deployedAt: s.deployedAt ?? new Date().toISOString(),
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if an agent version is current
|
|
67
|
+
*/
|
|
68
|
+
export function isAgentVersionCurrent(agentName, version) {
|
|
69
|
+
const latestVersion = DEMO_SOLUTIONS.find((s) => s.uniqueName === agentName)?.version;
|
|
70
|
+
return version === latestVersion;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/tenants/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,cAAc,EACd,YAAY,GAGb,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,OAAuB,EAAE,KAAa;IAC/D,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAuB,EAAE,KAAa;IACtE,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;QAC1B,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;QAC9B,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CACvC,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IAKzD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,EAAE,QAA0C,CAAC;IAChE,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC,iBAAiB;SAC1B,MAAM,CAAC,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE,CAAC,CAAC,UAAU;QAClB,OAAO,EAAE,CAAC,CAAC,eAAyB;QACpC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrD,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAiB,EAAE,OAAe;IACtE,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE,OAAO,CAAC;IACtF,OAAO,OAAO,KAAK,aAAa,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Command } from "commander";
|
|
17
|
+
export declare const tenantsCommand: Command;
|
|
18
|
+
export { findTenant, getDeployedAgentsForTenant } from "./helpers.js";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/tenants/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,cAAc,SAE1B,CAAC;AAiBF,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Command } from "commander";
|
|
17
|
+
import { listCommand } from "./list.js";
|
|
18
|
+
import { inspectCommand } from "./inspect.js";
|
|
19
|
+
import { showCommand } from "./show.js";
|
|
20
|
+
import { healthCommand } from "./health.js";
|
|
21
|
+
import { enableCommand, disableCommand, tagCommand } from "./manage.js";
|
|
22
|
+
import { createDriftCommand } from "../solutions/drift.js";
|
|
23
|
+
export const tenantsCommand = new Command("tenants").description("Manage target tenants where agents are deployed");
|
|
24
|
+
// Register subcommands
|
|
25
|
+
tenantsCommand.addCommand(listCommand);
|
|
26
|
+
tenantsCommand.addCommand(inspectCommand);
|
|
27
|
+
tenantsCommand.addCommand(showCommand);
|
|
28
|
+
tenantsCommand.addCommand(healthCommand);
|
|
29
|
+
tenantsCommand.addCommand(enableCommand);
|
|
30
|
+
tenantsCommand.addCommand(disableCommand);
|
|
31
|
+
tenantsCommand.addCommand(tagCommand);
|
|
32
|
+
// `drift` is the canonical name for the per-tenant update-readiness view.
|
|
33
|
+
// `solutions drift` remains as a legacy alias (same handler). The deeper
|
|
34
|
+
// split — actual per-solution drift under `solutions`, tenant-health checks
|
|
35
|
+
// under `tenants health` — is tracked in issue #422.
|
|
36
|
+
tenantsCommand.addCommand(createDriftCommand());
|
|
37
|
+
// Re-export for backwards compatibility
|
|
38
|
+
export { findTenant, getDeployedAgentsForTenant } from "./helpers.js";
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/tenants/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAC9D,iDAAiD,CAClD,CAAC;AAEF,uBAAuB;AACvB,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACvC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC1C,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACvC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACzC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACzC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC1C,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtC,0EAA0E;AAC1E,yEAAyE;AACzE,4EAA4E;AAC5E,qDAAqD;AACrD,cAAc,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAEhD,wCAAwC;AACxC,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2024 Pax8, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Command } from "commander";
|
|
17
|
+
export declare const inspectCommand: Command;
|
|
18
|
+
//# sourceMappingURL=inspect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/commands/tenants/inspect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,cAAc,SA6BvB,CAAC"}
|