@codiac.io/codiac-cli 1.3.180 → 1.3.182
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 +1 -1
- package/dist/apis/codiac-api/gen/client.d.ts +5 -1
- package/dist/apis/codiac-api/gen/client.js +12 -0
- package/dist/apis/codiac-api/gen/client.js.map +1 -1
- package/dist/apis/codiac-api/gen/contracts/types.gen.d.ts +25 -0
- package/dist/apis/codiac-api/gen/contracts/types.gen.js.map +1 -1
- package/dist/apis/codiac-api/i-client.d.ts +4 -0
- package/dist/apis/codiac-api-nats/gen/client.d.ts +4 -0
- package/dist/apis/codiac-api-nats/gen/client.js +17 -1
- package/dist/apis/codiac-api-nats/gen/client.js.map +1 -1
- package/dist/apis/codiac-api-nats/gen/contracts/types.gen.d.ts +25 -0
- package/dist/apis/codiac-api-nats/gen/contracts/types.gen.js.map +1 -1
- package/dist/apis/codiac-relay/gen/client.d.ts +16 -3
- package/dist/apis/codiac-relay/gen/client.js +58 -1
- package/dist/apis/codiac-relay/gen/client.js.map +1 -1
- package/dist/apis/codiac-relay/gen/contracts/types.gen.d.ts +173 -7
- package/dist/apis/codiac-relay/gen/contracts/types.gen.js.map +1 -1
- package/dist/apis/codiac-relay/i-client.d.ts +8 -0
- package/dist/apis/codiac-relay-nats/gen/client.d.ts +15 -7
- package/dist/apis/codiac-relay-nats/gen/client.js +86 -19
- package/dist/apis/codiac-relay-nats/gen/client.js.map +1 -1
- package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.d.ts +151 -15
- package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js +4 -4
- package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js.map +1 -1
- package/dist/apis/codiac-relay-nats/gen/contracts.ng.d.ts +6 -0
- package/dist/apis/codiac-relay-nats/gen/contracts.ng.js +1 -0
- package/dist/apis/codiac-relay-nats/gen/contracts.ng.js.map +1 -1
- package/dist/bootstrapper-for-api-clients.js +14 -2
- package/dist/bootstrapper-for-api-clients.js.map +1 -1
- package/dist/cli-common/built-in-cli-user-input.d.ts +2 -1
- package/dist/cli-common/built-in-cli-user-input.js +52 -1
- package/dist/cli-common/built-in-cli-user-input.js.map +1 -1
- package/dist/cli-common/entities/prompt-choice.d.ts +2 -7
- package/dist/cli-common/mock-ui.d.ts +2 -1
- package/dist/cli-common/mock-ui.js +3 -0
- package/dist/cli-common/mock-ui.js.map +1 -1
- package/dist/codiac-constants.d.ts +3 -0
- package/dist/codiac-constants.js +3 -0
- package/dist/codiac-constants.js.map +1 -1
- package/dist/command-base-enterprise.d.ts +23 -2
- package/dist/command-base-enterprise.js +82 -26
- package/dist/command-base-enterprise.js.map +1 -1
- package/dist/command-base-exec.js +4 -2
- package/dist/command-base-exec.js.map +1 -1
- package/dist/commands/asset/deploy.d.ts +2 -1
- package/dist/commands/asset/deploy.js +3 -2
- package/dist/commands/asset/deploy.js.map +1 -1
- package/dist/commands/asset/list.d.ts +26 -7
- package/dist/commands/asset/list.js +127 -112
- package/dist/commands/asset/list.js.map +1 -1
- package/dist/commands/asset/probe/create.d.ts +26 -5
- package/dist/commands/asset/probe/create.js +182 -164
- package/dist/commands/asset/probe/create.js.map +1 -1
- package/dist/commands/asset/recycle.js +3 -4
- package/dist/commands/asset/recycle.js.map +1 -1
- package/dist/commands/asset/undeploy.d.ts +24 -9
- package/dist/commands/asset/undeploy.js +162 -161
- package/dist/commands/asset/undeploy.js.map +1 -1
- package/dist/commands/asset/view.js +1 -1
- package/dist/commands/asset/view.js.map +1 -1
- package/dist/commands/asset/volume/create.d.ts +25 -13
- package/dist/commands/asset/volume/create.js +177 -156
- package/dist/commands/asset/volume/create.js.map +1 -1
- package/dist/commands/asset/volume/delete.d.ts +23 -7
- package/dist/commands/asset/volume/delete.js +131 -98
- package/dist/commands/asset/volume/delete.js.map +1 -1
- package/dist/commands/asset/volume/list.d.ts +24 -8
- package/dist/commands/asset/volume/list.js +101 -54
- package/dist/commands/asset/volume/list.js.map +1 -1
- package/dist/commands/cabinet/cluster/attach.d.ts +32 -0
- package/dist/commands/cabinet/cluster/attach.js +144 -0
- package/dist/commands/cabinet/cluster/attach.js.map +1 -0
- package/dist/commands/cabinet/create.d.ts +1 -0
- package/dist/commands/cabinet/create.js +5 -1
- package/dist/commands/cabinet/create.js.map +1 -1
- package/dist/commands/cabinet/list.d.ts +27 -6
- package/dist/commands/cabinet/list.js +130 -121
- package/dist/commands/cabinet/list.js.map +1 -1
- package/dist/commands/cabinet/obliterate.d.ts +1 -0
- package/dist/commands/cabinet/obliterate.js +5 -1
- package/dist/commands/cabinet/obliterate.js.map +1 -1
- package/dist/commands/cabinet/restore.d.ts +36 -0
- package/dist/commands/cabinet/restore.js +186 -0
- package/dist/commands/cabinet/restore.js.map +1 -0
- package/dist/commands/cluster/agent/configure.d.ts +47 -0
- package/dist/commands/cluster/agent/configure.js +320 -0
- package/dist/commands/cluster/agent/configure.js.map +1 -0
- package/dist/commands/cluster/agent/install.d.ts +32 -0
- package/dist/commands/cluster/agent/install.js +152 -0
- package/dist/commands/cluster/agent/install.js.map +1 -0
- package/dist/commands/cluster/agent/uninstall.d.ts +29 -0
- package/dist/commands/cluster/agent/uninstall.js +130 -0
- package/dist/commands/cluster/agent/uninstall.js.map +1 -0
- package/dist/commands/cluster/bootstrap.d.ts +50 -0
- package/dist/commands/cluster/bootstrap.js +310 -0
- package/dist/commands/cluster/bootstrap.js.map +1 -0
- package/dist/commands/cluster/connect.d.ts +0 -5
- package/dist/commands/cluster/connect.js +1 -26
- package/dist/commands/cluster/connect.js.map +1 -1
- package/dist/commands/cluster/install.d.ts +45 -0
- package/dist/commands/cluster/install.js +224 -0
- package/dist/commands/cluster/install.js.map +1 -0
- package/dist/commands/cluster/stack/capture.js +0 -2
- package/dist/commands/cluster/stack/capture.js.map +1 -1
- package/dist/commands/cluster/stack/install.d.ts +40 -0
- package/dist/commands/cluster/stack/install.js +196 -0
- package/dist/commands/cluster/stack/install.js.map +1 -0
- package/dist/commands/cluster/start.d.ts +0 -5
- package/dist/commands/cluster/start.js +1 -27
- package/dist/commands/cluster/start.js.map +1 -1
- package/dist/commands/cluster/stop.d.ts +0 -5
- package/dist/commands/cluster/stop.js +1 -27
- package/dist/commands/cluster/stop.js.map +1 -1
- package/dist/commands/config/add.d.ts +9 -11
- package/dist/commands/config/add.js +59 -125
- package/dist/commands/config/add.js.map +1 -1
- package/dist/commands/config/delete.d.ts +22 -11
- package/dist/commands/config/delete.js +28 -83
- package/dist/commands/config/delete.js.map +1 -1
- package/dist/commands/config/deploy.d.ts +26 -8
- package/dist/commands/config/deploy.js +169 -198
- package/dist/commands/config/deploy.js.map +1 -1
- package/dist/commands/config/import.d.ts +27 -22
- package/dist/commands/config/import.js +222 -253
- package/dist/commands/config/import.js.map +1 -1
- package/dist/commands/config/settings/get.d.ts +25 -14
- package/dist/commands/config/settings/get.js +30 -123
- package/dist/commands/config/settings/get.js.map +1 -1
- package/dist/commands/config/view.d.ts +26 -6
- package/dist/commands/config/view.js +112 -95
- package/dist/commands/config/view.js.map +1 -1
- package/dist/commands/csp/logout.d.ts +23 -6
- package/dist/commands/csp/logout.js +86 -63
- package/dist/commands/csp/logout.js.map +1 -1
- package/dist/commands/deploy.d.ts +31 -14
- package/dist/commands/deploy.js +264 -385
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/enterprise/list.d.ts +22 -4
- package/dist/commands/enterprise/list.js +97 -67
- package/dist/commands/enterprise/list.js.map +1 -1
- package/dist/commands/env/add.d.ts +26 -7
- package/dist/commands/env/add.js +182 -179
- package/dist/commands/env/add.js.map +1 -1
- package/dist/commands/environment/cluster/attach.d.ts +1 -0
- package/dist/commands/environment/cluster/attach.js +5 -1
- package/dist/commands/environment/cluster/attach.js.map +1 -1
- package/dist/commands/environment/cluster/detach.d.ts +1 -0
- package/dist/commands/environment/cluster/detach.js +5 -1
- package/dist/commands/environment/cluster/detach.js.map +1 -1
- package/dist/commands/environment/create.d.ts +1 -0
- package/dist/commands/environment/create.js +5 -1
- package/dist/commands/environment/create.js.map +1 -1
- package/dist/commands/environment/delete.d.ts +39 -0
- package/dist/commands/environment/delete.js +135 -0
- package/dist/commands/environment/delete.js.map +1 -0
- package/dist/commands/environment/list.d.ts +28 -9
- package/dist/commands/environment/list.js +128 -167
- package/dist/commands/environment/list.js.map +1 -1
- package/dist/commands/host/map.d.ts +29 -19
- package/dist/commands/host/map.js +263 -324
- package/dist/commands/host/map.js.map +1 -1
- package/dist/commands/imageRegistry/capture.d.ts +12 -11
- package/dist/commands/imageRegistry/capture.js +49 -113
- package/dist/commands/imageRegistry/capture.js.map +1 -1
- package/dist/commands/imageRegistry/forget.d.ts +12 -11
- package/dist/commands/imageRegistry/forget.js +53 -114
- package/dist/commands/imageRegistry/forget.js.map +1 -1
- package/dist/commands/imageRegistry/pullSecret/set.d.ts +21 -11
- package/dist/commands/imageRegistry/pullSecret/set.js +184 -278
- package/dist/commands/imageRegistry/pullSecret/set.js.map +1 -1
- package/dist/commands/imageRegistry/pullSecret/unset.d.ts +19 -11
- package/dist/commands/imageRegistry/pullSecret/unset.js +117 -190
- package/dist/commands/imageRegistry/pullSecret/unset.js.map +1 -1
- package/dist/commands/images/add.d.ts +19 -6
- package/dist/commands/images/add.js +63 -53
- package/dist/commands/images/add.js.map +1 -1
- package/dist/commands/kit/create.d.ts +22 -10
- package/dist/commands/kit/create.js +119 -121
- package/dist/commands/kit/create.js.map +1 -1
- package/dist/commands/logout.d.ts +21 -5
- package/dist/commands/logout.js +44 -25
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/noc/cluster/create.js +22 -10
- package/dist/commands/noc/cluster/create.js.map +1 -1
- package/dist/commands/noc/cluster/credentials-set.d.ts +38 -0
- package/dist/commands/noc/cluster/credentials-set.js +174 -0
- package/dist/commands/noc/cluster/credentials-set.js.map +1 -0
- package/dist/commands/noc/cluster/define.d.ts +46 -0
- package/dist/commands/noc/cluster/define.js +305 -0
- package/dist/commands/noc/cluster/define.js.map +1 -0
- package/dist/commands/noc/cluster/deinit.d.ts +22 -5
- package/dist/commands/noc/cluster/deinit.js +99 -106
- package/dist/commands/noc/cluster/deinit.js.map +1 -1
- package/dist/commands/noc/cluster/forget.js +2 -4
- package/dist/commands/noc/cluster/forget.js.map +1 -1
- package/dist/commands/noc/cluster/grant.d.ts +20 -11
- package/dist/commands/noc/cluster/grant.js +94 -132
- package/dist/commands/noc/cluster/grant.js.map +1 -1
- package/dist/commands/noc/cluster/init.d.ts +25 -7
- package/dist/commands/noc/cluster/init.js +121 -133
- package/dist/commands/noc/cluster/init.js.map +1 -1
- package/dist/commands/noc/cluster/journal.d.ts +0 -5
- package/dist/commands/noc/cluster/journal.js +1 -26
- package/dist/commands/noc/cluster/journal.js.map +1 -1
- package/dist/commands/noc/cluster/list.d.ts +23 -5
- package/dist/commands/noc/cluster/list.js +107 -111
- package/dist/commands/noc/cluster/list.js.map +1 -1
- package/dist/commands/noc/cluster/restore.d.ts +36 -0
- package/dist/commands/noc/cluster/restore.js +196 -0
- package/dist/commands/noc/cluster/restore.js.map +1 -0
- package/dist/commands/portal.d.ts +21 -5
- package/dist/commands/portal.js +37 -36
- package/dist/commands/portal.js.map +1 -1
- package/dist/commands/secretStore/capture.d.ts +13 -11
- package/dist/commands/secretStore/capture.js +63 -123
- package/dist/commands/secretStore/capture.js.map +1 -1
- package/dist/commands/secretStore/forget.d.ts +13 -11
- package/dist/commands/secretStore/forget.js +55 -111
- package/dist/commands/secretStore/forget.js.map +1 -1
- package/dist/commands/shell/init.d.ts +15 -0
- package/dist/commands/shell/init.js +96 -0
- package/dist/commands/shell/init.js.map +1 -0
- package/dist/commands/snapshot/deploy.d.ts +22 -42
- package/dist/commands/snapshot/deploy.js +173 -269
- package/dist/commands/snapshot/deploy.js.map +1 -1
- package/dist/commands/snapshot/list.d.ts +26 -5
- package/dist/commands/snapshot/list.js +116 -109
- package/dist/commands/snapshot/list.js.map +1 -1
- package/dist/commands/tenant/create.d.ts +18 -13
- package/dist/commands/tenant/create.js +69 -69
- package/dist/commands/tenant/create.js.map +1 -1
- package/dist/commands/tenant/switch.d.ts +18 -12
- package/dist/commands/tenant/switch.js +65 -59
- package/dist/commands/tenant/switch.js.map +1 -1
- package/dist/commands/whereami.d.ts +18 -8
- package/dist/commands/whereami.js +67 -102
- package/dist/commands/whereami.js.map +1 -1
- package/dist/commands/whoami.d.ts +19 -3
- package/dist/commands/whoami.js +44 -13
- package/dist/commands/whoami.js.map +1 -1
- package/dist/ops/i-user-input-provider.d.ts +20 -1
- package/dist/ops/i-user-input-provider.js.map +1 -1
- package/dist/ops/test/mock-ui.d.ts +2 -1
- package/dist/ops/test/mock-ui.js +3 -0
- package/dist/ops/test/mock-ui.js.map +1 -1
- package/dist/ops/throwing-user-input-provider.d.ts +2 -1
- package/dist/ops/throwing-user-input-provider.js +3 -0
- package/dist/ops/throwing-user-input-provider.js.map +1 -1
- package/dist/relay/relay-container.js +1 -1
- package/dist/uilogic/lrp-watcher-predef.d.ts +2 -1
- package/dist/uilogic/lrp-watcher-predef.js +31 -17
- package/dist/uilogic/lrp-watcher-predef.js.map +1 -1
- package/dist/uilogic/lrp-watcher-utils.d.ts +2 -0
- package/dist/uilogic/lrp-watcher-utils.js +2 -0
- package/dist/uilogic/lrp-watcher-utils.js.map +1 -1
- package/dist/uilogic/rootmap-ui-utils.d.ts +18 -1
- package/dist/uilogic/rootmap-ui-utils.js +30 -0
- package/dist/uilogic/rootmap-ui-utils.js.map +1 -1
- package/dist/uilogic/tenant-contextualizer.js +11 -1
- package/dist/uilogic/tenant-contextualizer.js.map +1 -1
- package/dist/user-context-loader.d.ts +12 -7
- package/dist/user-context-loader.js +89 -43
- package/dist/user-context-loader.js.map +1 -1
- package/oclif.manifest.json +3991 -1444
- package/package.json +2 -2
- package/dist/commands/noc/cluster/recreate.d.ts +0 -28
- package/dist/commands/noc/cluster/recreate.js +0 -197
- package/dist/commands/noc/cluster/recreate.js.map +0 -1
|
@@ -4,18 +4,18 @@ exports.PROMPT_ME_DESIGNATOR = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
require("reflect-metadata");
|
|
6
6
|
const core_1 = require("@oclif/core");
|
|
7
|
-
const _ = require("lodash");
|
|
8
7
|
const dom = require("@codiac.io/codiac-domain");
|
|
9
|
-
const
|
|
8
|
+
const command_base_exec_1 = require("../../command-base-exec");
|
|
10
9
|
const output_format_enum_1 = require("../../cli-entities/output-format-enum");
|
|
11
10
|
const config_ui_utils_1 = require("../../uilogic/config-ui-utils");
|
|
12
11
|
const type_safety_utils_1 = require("../../uilogic/type-safety-utils");
|
|
13
12
|
const codiac_utils_1 = require("../../codiac-utils");
|
|
13
|
+
const config_ui_utils_2 = require("../../uilogic/config-ui-utils");
|
|
14
14
|
/** The value provided as input that indicates
|
|
15
15
|
* a user's desire to be prompted with a list from which choose the value(s),
|
|
16
16
|
* instead of entering them manually or taking a default. */
|
|
17
17
|
exports.PROMPT_ME_DESIGNATOR = "?";
|
|
18
|
-
class ConfigView extends
|
|
18
|
+
class ConfigView extends command_base_exec_1.CommandBaseExec {
|
|
19
19
|
// --------------------------------------------------------------------
|
|
20
20
|
// Lazy-loaded properties
|
|
21
21
|
get configUtils() {
|
|
@@ -29,114 +29,131 @@ class ConfigView extends command_base_enterprise_1.CommandBaseEnterprise {
|
|
|
29
29
|
super.bootstrap();
|
|
30
30
|
this.ioc.bind(config_ui_utils_1.ConfigUiUtils).toSelf();
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
var _a, _b
|
|
32
|
+
captureArgs() {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const { flags } = yield this.parse(ConfigView);
|
|
36
|
+
let partial = {};
|
|
37
|
+
if (flags.enterprise)
|
|
38
|
+
partial.enterprise = flags.enterprise;
|
|
39
|
+
if (flags.cabinet)
|
|
40
|
+
partial.cabinetName = flags.cabinet;
|
|
41
|
+
const interactionMode = (this.pipedInput) ? config_ui_utils_2.InteractionModes.silent : (_b = (_a = undefined !== null && undefined !== void 0 ? undefined : (flags.echo ? config_ui_utils_2.InteractionModes.echo : undefined)) !== null && _a !== void 0 ? _a : (flags["to-script"] ? config_ui_utils_2.InteractionModes.toscript : undefined)) !== null && _b !== void 0 ? _b : (flags.silent ? config_ui_utils_2.InteractionModes.silent : undefined);
|
|
42
|
+
return [partial, interactionMode, false];
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
buildCandidate_silently(partial, rootMap) {
|
|
46
|
+
var _a;
|
|
47
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
if (!partial.cabinetName)
|
|
49
|
+
throw new Error("Cabinet name (--cabinet or -c) is required in silent mode.");
|
|
50
|
+
if (!partial.assetName)
|
|
51
|
+
throw new Error("Asset name (--asset or -a) is required in silent mode.");
|
|
52
|
+
if (!partial.configName)
|
|
53
|
+
throw new Error("Config file (--file or -f) is required in silent mode.");
|
|
54
|
+
return {
|
|
55
|
+
enterprise: partial.enterprise,
|
|
56
|
+
assetName: partial.assetName,
|
|
57
|
+
cabinetName: partial.cabinetName,
|
|
58
|
+
configName: partial.configName,
|
|
59
|
+
outputFormat: (_a = partial.outputFormat) !== null && _a !== void 0 ? _a : output_format_enum_1.OutputFormatEnum.auto,
|
|
60
|
+
thisMachine: partial.thisMachine,
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
buildCandidate_interactively(partial, rootMap, takeDefaults) {
|
|
65
|
+
var _a, _b;
|
|
34
66
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
this.bootstrap();
|
|
36
67
|
const { args, flags } = yield this.parse(ConfigView);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
[assetName, assetChanged, assetType] = yield this.configUtils.promptForAsset(enterprise.assets, flags.asset);
|
|
49
|
-
// let asset = await this.promptForAsset(enterprise.code);
|
|
50
|
-
// assetName = asset.name;
|
|
51
|
-
}
|
|
52
|
-
else if (flags.asset) {
|
|
53
|
-
[assetName, assetChanged, assetType] = yield this.configUtils.promptForAsset(enterprise.assets, flags.asset);
|
|
54
|
-
// let asset = await this.promptForAsset(enterprise.code, flags.asset);
|
|
55
|
-
// assetName = asset.name;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
// Update sync codiac with what we've got here in the project.
|
|
59
|
-
let requestedAssets = yield this.establishAssetContext(enterprise, flags.silent);
|
|
60
|
-
assetName = requestedAssets[0];
|
|
61
|
-
// let versions = await this.declareAssetVersions(requestedAssets, enterpriseCode);
|
|
62
|
-
// // We've updated Codiac. Now trigger the deploy.
|
|
63
|
-
// assetVersions = requestedAssets.map(a => {
|
|
64
|
-
// let version = versions.find(v => v.assetName == a);
|
|
65
|
-
// return { a: a, v: version ? version.assetVersion : undefined };
|
|
66
|
-
// });
|
|
67
|
-
}
|
|
68
|
-
// let aCntx = await this.establishAssetContext(enterprise, true);
|
|
69
|
-
// let selectedFile = (await this.enterpriseContextor.promptForTargetFile(enterprise.code, assetName, flags.file))!;
|
|
70
|
-
let selectedFile = flags.file;
|
|
71
|
-
let configType = flags.type ? type_safety_utils_1.TypeSafetyUtils.toEnum(dom.SpecialConfigTypesEnum, flags.type) : undefined;
|
|
72
|
-
let settings;
|
|
73
|
-
let typeFileChanged;
|
|
74
|
-
// let existingSettings: ScopedSetting[] | undefined;
|
|
75
|
-
const isInfrxEnterprise = codiac_utils_1.CodiacUtils.isInfrxEnterprise(enterprise.name);
|
|
76
|
-
[configType, selectedFile, settings, typeFileChanged] = yield this.configUtils.promptForTypeAndFile(enterprise.name, assetName, assetType, configType, selectedFile, undefined, false, false, undefined, isInfrxEnterprise);
|
|
77
|
-
/** The value of the targetFile property on the entity record.
|
|
78
|
-
*
|
|
79
|
-
* TODO: CHANGE this structure to treat file config types like any other config type. (we're currently abusing this field bc of legacy design)
|
|
80
|
-
*/
|
|
81
|
-
let targetFileValue = selectedFile !== null && selectedFile !== void 0 ? selectedFile : `[${configType}]`;
|
|
82
|
-
// let cab = await this.establishCabinet(flags.cabinet, flags.silent);
|
|
83
|
-
let [cab, enviro] = yield this.configUtils.promptForCabinet(enterprise.name, rootMap, flags.cabinet, true);
|
|
84
|
-
// if (flags.cabinet != undefined) {
|
|
85
|
-
// await this.renderCabinetConfig(selectedFile, cab.enterpriseCode, cab.name, assetName, outputFormat);
|
|
86
|
-
let outputFormat = (_a = type_safety_utils_1.TypeSafetyUtils.toEnum(output_format_enum_1.OutputFormatEnum, flags.output)) !== null && _a !== void 0 ? _a : output_format_enum_1.OutputFormatEnum.auto;
|
|
87
|
-
let result = yield this.genRelayClient.Call.GetRenderedCabinetConfig({
|
|
88
|
-
configName: targetFileValue,
|
|
89
|
-
enterprise: enterprise.name,
|
|
90
|
-
cabinetName: cab.name,
|
|
91
|
-
assetName: assetName,
|
|
92
|
-
outputFormat: outputFormat
|
|
93
|
-
}, { thisMachine: cab.thisMachine });
|
|
94
|
-
if (result.success && result.output !== undefined) {
|
|
95
|
-
this._ui.userMessage(`${this._styler.hilite(targetFileValue)} for ${this._styler.hilite(enterprise.name)}/${this._styler.hilite(assetName)} in cabinet: [${this._styler.hilite(cab.name)}]`);
|
|
96
|
-
this._ui.userMessage(result.output);
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
this._ui.userMessage((_d = (_b = result.message) !== null && _b !== void 0 ? _b : (_c = result.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : "Failed rendering");
|
|
100
|
-
}
|
|
101
|
-
// } else {
|
|
102
|
-
// await this.renderLocalConfig(selectedFile, args.setting, flags.prompt, outputFormat);
|
|
103
|
-
// }
|
|
104
|
-
return;
|
|
68
|
+
const enterprise = rootMap.enterprises.find(e => e.name === partial.enterprise);
|
|
69
|
+
if (!enterprise)
|
|
70
|
+
throw new Error(`Enterprise "${partial.enterprise}" not found.`);
|
|
71
|
+
const isInfrxEnterprise = codiac_utils_1.CodiacUtils.isInfrxEnterprise(partial.enterprise);
|
|
72
|
+
// Determine which asset
|
|
73
|
+
let assetName;
|
|
74
|
+
let assetType;
|
|
75
|
+
if (flags.asset === exports.PROMPT_ME_DESIGNATOR || flags.asset) {
|
|
76
|
+
const [resolvedName, , resolvedType] = yield this.configUtils.promptForAsset(enterprise.assets, flags.asset);
|
|
77
|
+
assetName = resolvedName;
|
|
78
|
+
assetType = resolvedType;
|
|
105
79
|
}
|
|
106
|
-
|
|
107
|
-
this.
|
|
108
|
-
|
|
80
|
+
else {
|
|
81
|
+
const requestedAssets = yield this.establishAssetContext(enterprise, (_a = flags.silent) !== null && _a !== void 0 ? _a : false);
|
|
82
|
+
assetName = requestedAssets[0];
|
|
83
|
+
}
|
|
84
|
+
// Determine config type and file
|
|
85
|
+
let selectedFile = flags.file;
|
|
86
|
+
let configType = flags.type
|
|
87
|
+
? type_safety_utils_1.TypeSafetyUtils.toEnum(dom.SpecialConfigTypesEnum, flags.type)
|
|
88
|
+
: undefined;
|
|
89
|
+
const [resolvedConfigType, resolvedFile] = yield this.configUtils.promptForTypeAndFile(partial.enterprise, assetName, assetType, configType, selectedFile, undefined, false, false, undefined, isInfrxEnterprise);
|
|
90
|
+
const configName = resolvedFile !== null && resolvedFile !== void 0 ? resolvedFile : `[${resolvedConfigType}]`;
|
|
91
|
+
// Determine cabinet
|
|
92
|
+
const [cab] = yield this.configUtils.promptForCabinet(partial.enterprise, rootMap, flags.cabinet, true);
|
|
93
|
+
const outputFormat = (_b = type_safety_utils_1.TypeSafetyUtils.toEnum(output_format_enum_1.OutputFormatEnum, flags.output)) !== null && _b !== void 0 ? _b : output_format_enum_1.OutputFormatEnum.auto;
|
|
94
|
+
return {
|
|
95
|
+
enterprise: partial.enterprise,
|
|
96
|
+
assetName,
|
|
97
|
+
cabinetName: cab.name,
|
|
98
|
+
configName,
|
|
99
|
+
outputFormat,
|
|
100
|
+
thisMachine: cab.thisMachine,
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
buildCommandString(candidate, cmd) {
|
|
105
|
+
cmd.push("-e", candidate.enterprise);
|
|
106
|
+
cmd.push("-a", candidate.assetName);
|
|
107
|
+
cmd.push("-c", candidate.cabinetName);
|
|
108
|
+
cmd.push("-f", candidate.configName);
|
|
109
|
+
cmd.push("-o", candidate.outputFormat);
|
|
110
|
+
cmd.push("--silent");
|
|
111
|
+
return cmd;
|
|
112
|
+
}
|
|
113
|
+
executeTask(candidate) {
|
|
114
|
+
var _a, _b, _c;
|
|
115
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
const result = yield this.genRelayClient.Call.GetRenderedCabinetConfig({
|
|
117
|
+
configName: candidate.configName,
|
|
118
|
+
enterprise: candidate.enterprise,
|
|
119
|
+
cabinetName: candidate.cabinetName,
|
|
120
|
+
assetName: candidate.assetName,
|
|
121
|
+
outputFormat: candidate.outputFormat
|
|
122
|
+
}, { thisMachine: candidate.thisMachine });
|
|
123
|
+
if (result.success && result.output !== undefined) {
|
|
124
|
+
this._ui.userMessage(`${this._styler.hilite(candidate.configName)} for ${this._styler.hilite(candidate.enterprise)}/${this._styler.hilite(candidate.assetName)} in cabinet: [${this._styler.hilite(candidate.cabinetName)}]`);
|
|
125
|
+
this._ui.userMessage(result.output);
|
|
109
126
|
}
|
|
110
|
-
|
|
111
|
-
|
|
127
|
+
else {
|
|
128
|
+
this._ui.userMessage((_c = (_a = result.message) !== null && _a !== void 0 ? _a : (_b = result.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : "Failed rendering");
|
|
112
129
|
}
|
|
113
130
|
});
|
|
114
131
|
}
|
|
115
132
|
}
|
|
116
133
|
exports.default = ConfigView;
|
|
117
|
-
ConfigView.description = 'Retrieves a pre-deploy preview of the
|
|
134
|
+
ConfigView.description = 'Retrieves a pre-deploy preview of the ultimate configuration file contents for the given cabinet (with all inline variables and source references resolved).';
|
|
118
135
|
ConfigView.aliases = ['config:preview', 'cfg:preview'];
|
|
119
136
|
ConfigView.flags = {
|
|
120
137
|
help: core_1.Flags.help({ char: 'h' }),
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
cabinet: core_1.Flags.string({ char: 'c', exclusive: ["enterprise", "environment"], description: 'The name of the cabinet to assemble the configuration for.' }),
|
|
138
|
+
enterprise: core_1.Flags.string({ char: 'e', required: false, description: 'The name of the enterprise that contains the asset (defaults to the current enterprise context).' }),
|
|
139
|
+
asset: core_1.Flags.string({ char: 'a', required: false, description: `Name of the asset to view configs for (use ${exports.PROMPT_ME_DESIGNATOR} to be prompted).` }),
|
|
140
|
+
cabinet: core_1.Flags.string({ char: 'c', description: 'The name of the cabinet to assemble the configuration for.' }),
|
|
125
141
|
file: core_1.Flags.string({ char: 'f', required: false, default: 'app-config.json', description: 'The relative pathname of the config file to view (relative to the root of the codiac project).' }),
|
|
126
|
-
type: core_1.Flags.string({ char: 't', exclusive: ["file"], options: Object.keys(dom.SpecialConfigTypesEnum), description: '
|
|
127
|
-
|
|
128
|
-
|
|
142
|
+
type: core_1.Flags.string({ char: 't', exclusive: ["file"], options: Object.keys(dom.SpecialConfigTypesEnum), description: 'The type of settings to view (env: OS environment variables, footprint: container footprint specs, helm: helm chart settings, label: container meta labels, annotation: container platform key-value pairs).' }),
|
|
143
|
+
output: core_1.Flags.string({ char: 'o', required: false, default: output_format_enum_1.OutputFormatEnum.auto, options: [output_format_enum_1.OutputFormatEnum.pretty, output_format_enum_1.OutputFormatEnum.json, output_format_enum_1.OutputFormatEnum.yaml, output_format_enum_1.OutputFormatEnum.auto], description: "Output format of the actual settings data document." }),
|
|
144
|
+
prompt: core_1.Flags.boolean({ char: 'p', default: false, description: 'Forces a prompt to select from the existing settings.' }),
|
|
145
|
+
silent: core_1.Flags.boolean({ exclusive: ["echo", "to-script"], description: 'Executes without any user interaction; fails on missing or invalid arguments.' }),
|
|
146
|
+
echo: core_1.Flags.boolean({ exclusive: ["to-script", "silent"], description: 'Renders the equivalent non-interactive command for future use before executing.' }),
|
|
147
|
+
"to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Renders the equivalent non-interactive command without executing it.' }),
|
|
129
148
|
};
|
|
130
|
-
// enterpriseCode: flags.string({ char: 'e', required: false, description: `Code (name) of the enterprise of the owner asset` }),
|
|
131
149
|
ConfigView.args = {
|
|
132
|
-
setting: core_1.Args.string({ description: '(optional) Name of specific setting
|
|
150
|
+
setting: core_1.Args.string({ description: '(optional) Name of a specific setting to view; omit to show all.', required: false })
|
|
133
151
|
};
|
|
134
152
|
ConfigView.examples = [
|
|
135
|
-
|
|
136
|
-
'
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
'$ cod config:view -c dev2 -a myapi -t footprint'
|
|
153
|
+
{ description: "View config for the current asset interactively.", command: "<%= config.bin %> <%= command.id %>" },
|
|
154
|
+
{ description: "View a specific cabinet's config in pretty format.", command: "<%= config.bin %> <%= command.id %> -c dev2 -f settings.json -o pretty" },
|
|
155
|
+
{ description: "View a specific non-file config type.", command: "<%= config.bin %> <%= command.id %> -c dev2 -a myapi -t footprint" },
|
|
156
|
+
{ description: "Non-interactive (scripted) invocation.", command: "<%= config.bin %> <%= command.id %> -e myEnterprise -a myApi -c dev --silent" },
|
|
157
|
+
{ description: "Renders the equivalent silent command without executing.", command: "<%= config.bin %> <%= command.id %> -e myEnterprise -a myApi -c dev --to-script" },
|
|
141
158
|
];
|
|
142
159
|
//# sourceMappingURL=view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":";;;;AAAA,4BAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,34 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
1
2
|
import { CloudProviderEnum } from '../../apis/codiac-relay/contracts';
|
|
2
|
-
import {
|
|
3
|
-
|
|
3
|
+
import { CommandBaseExecTenant } from '../../command-base-exec-tenant';
|
|
4
|
+
import { ICspAccountFilter } from '../../sdk';
|
|
5
|
+
import { RootMap } from '../../apis/codiac-api/contracts';
|
|
6
|
+
import { InteractionModes } from '../../uilogic/config-ui-utils';
|
|
7
|
+
type CspLogoutRequest = {
|
|
8
|
+
provider: CloudProviderEnum;
|
|
9
|
+
cspAcct: ICspAccountFilter;
|
|
10
|
+
suppressConfirmations: boolean;
|
|
11
|
+
};
|
|
12
|
+
export default class CspLogout extends CommandBaseExecTenant<CspLogoutRequest> {
|
|
4
13
|
static description: string;
|
|
5
|
-
static
|
|
14
|
+
private static _allPvds;
|
|
15
|
+
static get allPvds(): CloudProviderEnum[];
|
|
6
16
|
static flags: {
|
|
17
|
+
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
7
18
|
subscriptionId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
19
|
tenantId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
20
|
silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
22
|
+
"to-script": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
23
|
};
|
|
11
|
-
private static _allPvds;
|
|
12
|
-
static get allPvds(): CloudProviderEnum[];
|
|
13
24
|
static args: {
|
|
14
25
|
provider: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
|
|
15
26
|
};
|
|
16
|
-
|
|
27
|
+
static examples: Command.Example[];
|
|
28
|
+
captureArgs(): Promise<[Partial<CspLogoutRequest>, InteractionModes | undefined, boolean]>;
|
|
29
|
+
buildCandidate_silently(partial: Partial<CspLogoutRequest>, rootMap: RootMap): Promise<CspLogoutRequest | undefined>;
|
|
30
|
+
buildCandidate_interactively(partial: Partial<CspLogoutRequest>, takeDefaults: boolean, rootMap: RootMap): Promise<CspLogoutRequest | undefined>;
|
|
31
|
+
buildCommandString(candidate: CspLogoutRequest, cmd: string[]): string[];
|
|
32
|
+
executeTask(candidate: CspLogoutRequest): Promise<void>;
|
|
17
33
|
}
|
|
34
|
+
export {};
|
|
@@ -1,92 +1,115 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
const tslib_1 = require("tslib");
|
|
5
4
|
const core_1 = require("@oclif/core");
|
|
6
5
|
const contracts_1 = require("../../apis/codiac-relay/contracts");
|
|
7
|
-
const
|
|
6
|
+
const command_base_exec_tenant_1 = require("../../command-base-exec-tenant");
|
|
8
7
|
const _ = require("lodash");
|
|
9
8
|
const type_safety_utils_1 = require("../../uilogic/type-safety-utils");
|
|
10
|
-
|
|
9
|
+
const config_ui_utils_1 = require("../../uilogic/config-ui-utils");
|
|
10
|
+
class CspLogout extends command_base_exec_tenant_1.CommandBaseExecTenant {
|
|
11
11
|
static get allPvds() {
|
|
12
12
|
if (this._allPvds == undefined) {
|
|
13
|
-
this._allPvds = Object.values(contracts_1.CloudProviderEnum);
|
|
13
|
+
this._allPvds = Object.values(contracts_1.CloudProviderEnum);
|
|
14
14
|
_.remove(this._allPvds, x => x == contracts_1.CloudProviderEnum.other);
|
|
15
15
|
_.remove(this._allPvds, x => x == contracts_1.CloudProviderEnum.localMachine);
|
|
16
16
|
}
|
|
17
17
|
return this._allPvds;
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
captureArgs() {
|
|
20
|
+
var _a, _b;
|
|
20
21
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
cspAcct.tenantId = cspTenant.cspTenantId;
|
|
48
|
-
// remove an invalid user-provided subscriptionId
|
|
49
|
-
if (cspAcct.subscriptionId && !((_b = cspTenant.subscriptionIds) === null || _b === void 0 ? void 0 : _b.includes(cspAcct.subscriptionId))) {
|
|
50
|
-
delete cspAcct.subscriptionId;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
// interactive sign-out flow
|
|
54
|
-
try {
|
|
55
|
-
let username = yield this.cspContextualizer.promptToLogout(this.ioc, provider, cspAcct, suppressConfirmations);
|
|
56
|
-
this._ui.userMessage(`${this._styler.colorGood("Success!")} Signed out from ${this._styler.hilite(provider)}.`);
|
|
57
|
-
}
|
|
58
|
-
catch (err) {
|
|
59
|
-
this._ui.userMessage(`${this._styler.colorCritical("FAILED")} ${(_c = err.name) !== null && _c !== void 0 ? _c : ""} ${(_d = err.message) !== null && _d !== void 0 ? _d : ""}`);
|
|
60
|
-
}
|
|
61
|
-
resolve();
|
|
62
|
-
}
|
|
63
|
-
catch (err) {
|
|
64
|
-
this.logger.error(err);
|
|
65
|
-
this._ui.userMessage(`${this._styler.colorCritical("ERROR")} ${(_e = err.name) !== null && _e !== void 0 ? _e : ""} ${(_f = err.message) !== null && _f !== void 0 ? _f : ""}`);
|
|
66
|
-
resolve();
|
|
22
|
+
const { args, flags } = yield this.parse(CspLogout);
|
|
23
|
+
let partial = {};
|
|
24
|
+
if (args.provider) {
|
|
25
|
+
const pvdAsEnum = type_safety_utils_1.TypeSafetyUtils.toEnum(contracts_1.CloudProviderEnum, args.provider);
|
|
26
|
+
if (pvdAsEnum != undefined)
|
|
27
|
+
partial.provider = pvdAsEnum;
|
|
28
|
+
}
|
|
29
|
+
partial.cspAcct = { subscriptionId: flags.subscriptionId, tenantId: flags.tenantId };
|
|
30
|
+
const interactionMode = (this.pipedInput) ? config_ui_utils_1.InteractionModes.silent : (_b = (_a = undefined !== null && undefined !== void 0 ? undefined : (flags.echo ? config_ui_utils_1.InteractionModes.echo : undefined)) !== null && _a !== void 0 ? _a : (flags["to-script"] ? config_ui_utils_1.InteractionModes.toscript : undefined)) !== null && _b !== void 0 ? _b : (flags.silent ? config_ui_utils_1.InteractionModes.silent : undefined);
|
|
31
|
+
return [partial, interactionMode, false];
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
buildCandidate_silently(partial, rootMap) {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
if (!partial.provider)
|
|
38
|
+
throw new Error(`You must specify a cloud provider.`);
|
|
39
|
+
const pvdAsEnum = type_safety_utils_1.TypeSafetyUtils.toEnum(contracts_1.CloudProviderEnum, partial.provider);
|
|
40
|
+
if (pvdAsEnum == undefined)
|
|
41
|
+
throw new Error("Unrecognized cloud provider.");
|
|
42
|
+
let cspAcct = (_a = partial.cspAcct) !== null && _a !== void 0 ? _a : {};
|
|
43
|
+
const cspTenant = yield this.cspContextualizer.ensureCspTenant(pvdAsEnum, this._codiacApi, cspAcct, false);
|
|
44
|
+
if (cspTenant) {
|
|
45
|
+
cspAcct.tenantId = cspTenant.cspTenantId;
|
|
46
|
+
if (cspAcct.subscriptionId && !((_b = cspTenant.subscriptionIds) === null || _b === void 0 ? void 0 : _b.includes(cspAcct.subscriptionId))) {
|
|
47
|
+
delete cspAcct.subscriptionId;
|
|
67
48
|
}
|
|
68
|
-
|
|
69
|
-
|
|
49
|
+
}
|
|
50
|
+
return { provider: pvdAsEnum, cspAcct, suppressConfirmations: true };
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
buildCandidate_interactively(partial, takeDefaults, rootMap) {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
let provider;
|
|
57
|
+
if (partial.provider) {
|
|
58
|
+
provider = partial.provider;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
provider = yield this.cspContextualizer.promptForCloudProvider(CspLogout.allPvds, undefined);
|
|
62
|
+
}
|
|
63
|
+
let cspAcct = (_a = partial.cspAcct) !== null && _a !== void 0 ? _a : {};
|
|
64
|
+
const cspTenant = yield this.cspContextualizer.ensureCspTenant(provider, this._codiacApi, cspAcct, false);
|
|
65
|
+
if (cspTenant) {
|
|
66
|
+
cspAcct.tenantId = cspTenant.cspTenantId;
|
|
67
|
+
if (cspAcct.subscriptionId && !((_b = cspTenant.subscriptionIds) === null || _b === void 0 ? void 0 : _b.includes(cspAcct.subscriptionId))) {
|
|
68
|
+
delete cspAcct.subscriptionId;
|
|
70
69
|
}
|
|
71
|
-
}
|
|
70
|
+
}
|
|
71
|
+
return { provider, cspAcct, suppressConfirmations: false };
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
buildCommandString(candidate, cmd) {
|
|
75
|
+
cmd.push(candidate.provider);
|
|
76
|
+
if (candidate.cspAcct.subscriptionId)
|
|
77
|
+
cmd.push("-s", candidate.cspAcct.subscriptionId);
|
|
78
|
+
if (candidate.cspAcct.tenantId)
|
|
79
|
+
cmd.push("-t", candidate.cspAcct.tenantId);
|
|
80
|
+
cmd.push("--silent");
|
|
81
|
+
return cmd;
|
|
82
|
+
}
|
|
83
|
+
executeTask(candidate) {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
try {
|
|
87
|
+
yield this.cspContextualizer.promptToLogout(this.ioc, candidate.provider, candidate.cspAcct, candidate.suppressConfirmations);
|
|
88
|
+
this._ui.userMessage(`${this._styler.colorGood("Success!")} Signed out from ${this._styler.hilite(candidate.provider)}.`);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
this._ui.userMessage(`${this._styler.colorCritical("FAILED")} ${(_a = err.name) !== null && _a !== void 0 ? _a : ""} ${(_b = err.message) !== null && _b !== void 0 ? _b : ""}`);
|
|
92
|
+
}
|
|
72
93
|
});
|
|
73
94
|
}
|
|
74
95
|
}
|
|
75
96
|
exports.default = CspLogout;
|
|
76
|
-
_a = CspLogout;
|
|
77
97
|
CspLogout.description = 'Closes session with the given Cloud Service Provider (CSP), eg: aws, azure, docker. Use this command to clear the local cache for your security account at that provider.';
|
|
78
|
-
CspLogout.examples = [
|
|
79
|
-
'cod csp logout',
|
|
80
|
-
'cod csp logout docker',
|
|
81
|
-
'cod csp logout --silent azure',
|
|
82
|
-
];
|
|
83
|
-
// static dependsOn = ["provider"]; // this isnt the whole of the requirements
|
|
84
98
|
CspLogout.flags = {
|
|
99
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
85
100
|
subscriptionId: core_1.Flags.string({ char: 's', description: '(in silent mode, either this or tenantId is required if you have more than one tenant profile on a given cloud provider) The Id of the cloud provider subscription under which to logout.' }),
|
|
86
101
|
tenantId: core_1.Flags.string({ char: 't', description: '(in silent mode, either this or subscriptionId is required if you have more than one tenant profile on a given cloud provider) The Id of the cloud provider tenant under which to logout.' }),
|
|
87
|
-
silent: core_1.Flags.boolean({
|
|
102
|
+
silent: core_1.Flags.boolean({ exclusive: ["echo", "to-script"], description: 'Executes without any user interaction; fails on missing or invalid arguments.' }),
|
|
103
|
+
echo: core_1.Flags.boolean({ exclusive: ["to-script", "silent"], description: 'Renders the equivalent non-interactive command for future use before executing.' }),
|
|
104
|
+
"to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Renders the equivalent non-interactive command without executing it.' }),
|
|
88
105
|
};
|
|
89
106
|
CspLogout.args = {
|
|
90
|
-
provider: core_1.Args.string({ required: false, options:
|
|
107
|
+
provider: core_1.Args.string({ required: false, options: CspLogout.allPvds, description: 'Code indicating the Cloud Service Provider (CSP) being logged out of.' })
|
|
91
108
|
};
|
|
109
|
+
CspLogout.examples = [
|
|
110
|
+
{ description: "Log out interactively.", command: "<%= config.bin %> <%= command.id %>" },
|
|
111
|
+
{ description: "Log out of a specific provider.", command: "<%= config.bin %> <%= command.id %> docker" },
|
|
112
|
+
{ description: "Non-interactive invocation.", command: "<%= config.bin %> <%= command.id %> --silent azure" },
|
|
113
|
+
{ description: "Renders the equivalent silent command without executing.", command: "<%= config.bin %> <%= command.id %> azure --to-script" },
|
|
114
|
+
];
|
|
92
115
|
//# sourceMappingURL=logout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/commands/csp/logout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/commands/csp/logout.ts"],"names":[],"mappings":"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"}
|