opal-security 3.1.1-beta.72a6ae5 → 3.1.1-beta.756584f
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 +18 -18
- package/lib/lib/requests.js +26 -20
- package/lib/utils/displays.js +17 -13
- package/oclif.manifest.json +30 -30
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ $ npm install -g opal-security
|
|
|
22
22
|
$ opal COMMAND
|
|
23
23
|
running command...
|
|
24
24
|
$ opal (--version)
|
|
25
|
-
opal-security/3.1.1-beta.
|
|
25
|
+
opal-security/3.1.1-beta.756584f linux-x64 node-v20.19.1
|
|
26
26
|
$ opal --help [COMMAND]
|
|
27
27
|
USAGE
|
|
28
28
|
$ opal COMMAND
|
|
@@ -101,7 +101,7 @@ EXAMPLES
|
|
|
101
101
|
$ opal aws:identity
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
_See code: [src/commands/aws/identity.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
104
|
+
_See code: [src/commands/aws/identity.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/aws/identity.ts)_
|
|
105
105
|
|
|
106
106
|
## `opal clear-auth-provider`
|
|
107
107
|
|
|
@@ -121,7 +121,7 @@ EXAMPLES
|
|
|
121
121
|
$ opal clear-auth-provider
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
_See code: [src/commands/clear-auth-provider.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
124
|
+
_See code: [src/commands/clear-auth-provider.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/clear-auth-provider.ts)_
|
|
125
125
|
|
|
126
126
|
## `opal curl-example`
|
|
127
127
|
|
|
@@ -138,7 +138,7 @@ DESCRIPTION
|
|
|
138
138
|
Prints out an example cURL command containing the parameters the CLI uses to query the Opal server.
|
|
139
139
|
```
|
|
140
140
|
|
|
141
|
-
_See code: [src/commands/curl-example.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
141
|
+
_See code: [src/commands/curl-example.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/curl-example.ts)_
|
|
142
142
|
|
|
143
143
|
## `opal groups get`
|
|
144
144
|
|
|
@@ -159,7 +159,7 @@ EXAMPLES
|
|
|
159
159
|
$ opal groups:get --id 54052a3e-5375-4392-aeaf-0c6c44c131d4
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
-
_See code: [src/commands/groups/get.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
162
|
+
_See code: [src/commands/groups/get.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/groups/get.ts)_
|
|
163
163
|
|
|
164
164
|
## `opal help [COMMANDS]`
|
|
165
165
|
|
|
@@ -209,7 +209,7 @@ EXAMPLES
|
|
|
209
209
|
$ opal iam-roles:start --id 51f7176b-0464-4a6f-8369-e951e187b398 --profileName "custom-profile"
|
|
210
210
|
```
|
|
211
211
|
|
|
212
|
-
_See code: [src/commands/iam-roles/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
212
|
+
_See code: [src/commands/iam-roles/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/iam-roles/start.ts)_
|
|
213
213
|
|
|
214
214
|
## `opal kube-roles start`
|
|
215
215
|
|
|
@@ -240,7 +240,7 @@ EXAMPLES
|
|
|
240
240
|
$ opal kube-roles:start --id 51f7176b-0464-4a6f-8369-e951e187b398 --accessLevelRemoteId "arn:aws:iam::712234975475:role/acme-eks-cluster-admin-role"
|
|
241
241
|
```
|
|
242
242
|
|
|
243
|
-
_See code: [src/commands/kube-roles/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
243
|
+
_See code: [src/commands/kube-roles/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/kube-roles/start.ts)_
|
|
244
244
|
|
|
245
245
|
## `opal login`
|
|
246
246
|
|
|
@@ -261,7 +261,7 @@ EXAMPLES
|
|
|
261
261
|
$ opal login
|
|
262
262
|
```
|
|
263
263
|
|
|
264
|
-
_See code: [src/commands/login.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
264
|
+
_See code: [src/commands/login.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/login.ts)_
|
|
265
265
|
|
|
266
266
|
## `opal logout`
|
|
267
267
|
|
|
@@ -281,7 +281,7 @@ EXAMPLES
|
|
|
281
281
|
$ opal logout
|
|
282
282
|
```
|
|
283
283
|
|
|
284
|
-
_See code: [src/commands/logout.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
284
|
+
_See code: [src/commands/logout.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/logout.ts)_
|
|
285
285
|
|
|
286
286
|
## `opal postgres-instances start`
|
|
287
287
|
|
|
@@ -318,7 +318,7 @@ EXAMPLES
|
|
|
318
318
|
$ opal postgres-instances:start --id 51f7176b-0464-4a6f-8369-e951e187b398 --accessLevelRemoteId fullaccess --action view
|
|
319
319
|
```
|
|
320
320
|
|
|
321
|
-
_See code: [src/commands/postgres-instances/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
321
|
+
_See code: [src/commands/postgres-instances/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/postgres-instances/start.ts)_
|
|
322
322
|
|
|
323
323
|
## `opal resources get`
|
|
324
324
|
|
|
@@ -339,7 +339,7 @@ EXAMPLES
|
|
|
339
339
|
$ opal resources:get --id 54052a3e-5375-4392-aeaf-0c6c44c131d4
|
|
340
340
|
```
|
|
341
341
|
|
|
342
|
-
_See code: [src/commands/resources/get.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
342
|
+
_See code: [src/commands/resources/get.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/resources/get.ts)_
|
|
343
343
|
|
|
344
344
|
## `opal set-auth-provider`
|
|
345
345
|
|
|
@@ -365,7 +365,7 @@ EXAMPLES
|
|
|
365
365
|
$ opal set-auth-provider --clientID 1234asdf --issuerUrl https://auth.example.com
|
|
366
366
|
```
|
|
367
367
|
|
|
368
|
-
_See code: [src/commands/set-auth-provider.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
368
|
+
_See code: [src/commands/set-auth-provider.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/set-auth-provider.ts)_
|
|
369
369
|
|
|
370
370
|
## `opal set-custom-header`
|
|
371
371
|
|
|
@@ -386,7 +386,7 @@ EXAMPLES
|
|
|
386
386
|
$ opal set-custom-header --header 'cf-access-token: $TOKEN'
|
|
387
387
|
```
|
|
388
388
|
|
|
389
|
-
_See code: [src/commands/set-custom-header.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
389
|
+
_See code: [src/commands/set-custom-header.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/set-custom-header.ts)_
|
|
390
390
|
|
|
391
391
|
## `opal set-token`
|
|
392
392
|
|
|
@@ -406,7 +406,7 @@ EXAMPLES
|
|
|
406
406
|
$ opal set-token
|
|
407
407
|
```
|
|
408
408
|
|
|
409
|
-
_See code: [src/commands/set-token.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
409
|
+
_See code: [src/commands/set-token.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/set-token.ts)_
|
|
410
410
|
|
|
411
411
|
## `opal set-url [URL]`
|
|
412
412
|
|
|
@@ -430,7 +430,7 @@ EXAMPLES
|
|
|
430
430
|
$ opal set-url
|
|
431
431
|
```
|
|
432
432
|
|
|
433
|
-
_See code: [src/commands/set-url.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
433
|
+
_See code: [src/commands/set-url.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/set-url.ts)_
|
|
434
434
|
|
|
435
435
|
## `opal ssh copyFrom`
|
|
436
436
|
|
|
@@ -461,7 +461,7 @@ EXAMPLES
|
|
|
461
461
|
$ opal ssh:copyFrom --src instance/dir --dest my/dir --id 51f7176b-0464-4a6f-8369-e951e187b398
|
|
462
462
|
```
|
|
463
463
|
|
|
464
|
-
_See code: [src/commands/ssh/copyFrom.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
464
|
+
_See code: [src/commands/ssh/copyFrom.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/ssh/copyFrom.ts)_
|
|
465
465
|
|
|
466
466
|
## `opal ssh copyTo`
|
|
467
467
|
|
|
@@ -492,7 +492,7 @@ EXAMPLES
|
|
|
492
492
|
$ opal ssh:copyTo --src my/dir --dest instance/dir --id 51f7176b-0464-4a6f-8369-e951e187b398
|
|
493
493
|
```
|
|
494
494
|
|
|
495
|
-
_See code: [src/commands/ssh/copyTo.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
495
|
+
_See code: [src/commands/ssh/copyTo.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/ssh/copyTo.ts)_
|
|
496
496
|
|
|
497
497
|
## `opal ssh start`
|
|
498
498
|
|
|
@@ -519,7 +519,7 @@ EXAMPLES
|
|
|
519
519
|
$ opal ssh:start --id 51f7176b-0464-4a6f-8369-e951e187b398
|
|
520
520
|
```
|
|
521
521
|
|
|
522
|
-
_See code: [src/commands/ssh/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.
|
|
522
|
+
_See code: [src/commands/ssh/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.756584f/src/commands/ssh/start.ts)_
|
|
523
523
|
|
|
524
524
|
## `opal version`
|
|
525
525
|
|
package/lib/lib/requests.js
CHANGED
|
@@ -12,6 +12,7 @@ exports.submitFinalRequest = submitFinalRequest;
|
|
|
12
12
|
const inquirer = require("inquirer");
|
|
13
13
|
const graphql_1 = require("../graphql");
|
|
14
14
|
inquirer.registerPrompt("autocomplete", require("inquirer-autocomplete-prompt"));
|
|
15
|
+
const { AutoComplete } = require("enquirer");
|
|
15
16
|
function createEmptyRequestMetadata() {
|
|
16
17
|
// Initialize with empty defaults
|
|
17
18
|
const requestDefaults = {
|
|
@@ -81,10 +82,11 @@ async function queryRequestableApps(cmd, client, input) {
|
|
|
81
82
|
}
|
|
82
83
|
const label = `${edge.node.displayName} (${type})`;
|
|
83
84
|
return {
|
|
84
|
-
|
|
85
|
+
message: label,
|
|
85
86
|
value: {
|
|
86
87
|
id: edge.node.id,
|
|
87
88
|
name: label,
|
|
89
|
+
toString: () => label,
|
|
88
90
|
},
|
|
89
91
|
};
|
|
90
92
|
});
|
|
@@ -153,7 +155,7 @@ async function queryRequestableAssets(cmd, client, appId, input) {
|
|
|
153
155
|
const type = ((_e = item.resource) === null || _e === void 0 ? void 0 : _e.__typename) || ((_f = item.group) === null || _f === void 0 ? void 0 : _f.__typename);
|
|
154
156
|
const label = `${name} (${type})`;
|
|
155
157
|
return {
|
|
156
|
-
|
|
158
|
+
message: label,
|
|
157
159
|
value: {
|
|
158
160
|
name: label,
|
|
159
161
|
id: id,
|
|
@@ -273,18 +275,18 @@ async function queryRequestDefaults(cmd, client, requestedResources, requestedGr
|
|
|
273
275
|
}
|
|
274
276
|
// Helper functions
|
|
275
277
|
async function selectRequestableItems(cmd, client, requestMap) {
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
pageSize: 15,
|
|
278
|
+
const initialChoices = (await queryRequestableApps(cmd, client, "")) || [];
|
|
279
|
+
const appPrompt = new AutoComplete({
|
|
280
|
+
name: "App",
|
|
281
|
+
message: "Select an app:",
|
|
282
|
+
limit: 15,
|
|
283
|
+
choices: initialChoices,
|
|
284
|
+
async suggest(input) {
|
|
285
|
+
const filteredChoices = await queryRequestableApps(cmd, client, input || "");
|
|
286
|
+
return filteredChoices || initialChoices;
|
|
286
287
|
},
|
|
287
|
-
|
|
288
|
+
});
|
|
289
|
+
const App = await appPrompt.run();
|
|
288
290
|
// Set the app in the requestMap and call choose assets step
|
|
289
291
|
if (!(App.id in requestMap)) {
|
|
290
292
|
requestMap[App.id] = {
|
|
@@ -295,13 +297,16 @@ async function selectRequestableItems(cmd, client, requestMap) {
|
|
|
295
297
|
await chooseAssets(cmd, client, App.id, requestMap);
|
|
296
298
|
}
|
|
297
299
|
async function chooseAssets(cmd, client, appId, requestMap) {
|
|
298
|
-
|
|
299
|
-
const
|
|
300
|
+
const initialChoices = queryRequestableAssets(cmd, client, appId, "") || [];
|
|
301
|
+
const assetPrompt = new AutoComplete({
|
|
300
302
|
name: "Assets",
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
choices
|
|
303
|
+
message: "Select one or more assets:",
|
|
304
|
+
limit: 15,
|
|
305
|
+
multiple: true,
|
|
306
|
+
async choices(input) {
|
|
307
|
+
const filteredChoices = await queryRequestableAssets(cmd, client, appId, input);
|
|
308
|
+
return filteredChoices || initialChoices;
|
|
309
|
+
},
|
|
305
310
|
validate: (answer) => {
|
|
306
311
|
if (answer.length < 1) {
|
|
307
312
|
return "You must select at least one item.";
|
|
@@ -309,10 +314,11 @@ async function chooseAssets(cmd, client, appId, requestMap) {
|
|
|
309
314
|
return true;
|
|
310
315
|
},
|
|
311
316
|
});
|
|
317
|
+
const Assets = await assetPrompt.run();
|
|
312
318
|
const entry = requestMap[appId];
|
|
313
319
|
for (const asset of Assets) {
|
|
314
320
|
if (entry === undefined) {
|
|
315
|
-
throw new Error(`
|
|
321
|
+
throw new Error(`Error formatting app ${appId} in request`);
|
|
316
322
|
}
|
|
317
323
|
if (!(asset.id in entry.assets)) {
|
|
318
324
|
entry.assets[asset.id] = {
|
package/lib/utils/displays.js
CHANGED
|
@@ -74,19 +74,23 @@ function displayRequestDetails(cmd, requestResp) {
|
|
|
74
74
|
cmd.log(`Request Details ${chalk_1.default.cyan(requestResp.data.request.request.id)}`);
|
|
75
75
|
cmd.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
76
76
|
const status = requestResp.data.request.request.status;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
77
|
+
switch (status) {
|
|
78
|
+
case "PENDING": {
|
|
79
|
+
cmd.log(`${chalk_1.default.bold("Status:")} ${chalk_1.default.blueBright(status)}`);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case "APPROVED": {
|
|
83
|
+
cmd.log(`${chalk_1.default.bold("Status:")} ${chalk_1.default.greenBright(status)}`);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
case "DENIED": {
|
|
87
|
+
cmd.log(`${chalk_1.default.bold("Status:")} ${chalk_1.default.redBright(status)}`);
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
case "CANCELED": {
|
|
91
|
+
cmd.log(`${chalk_1.default.bold("Status:")} ${chalk_1.default.redBright(status)}`);
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
90
94
|
}
|
|
91
95
|
// Request users "Requested by: <requester> -> Requested for: <targetUser>"
|
|
92
96
|
const requester = (_a = requestResp.data.request.request.requester) === null || _a === void 0 ? void 0 : _a.displayName;
|
package/oclif.manifest.json
CHANGED
|
@@ -388,14 +388,14 @@
|
|
|
388
388
|
"get.js"
|
|
389
389
|
]
|
|
390
390
|
},
|
|
391
|
-
"
|
|
391
|
+
"kube-roles:start": {
|
|
392
392
|
"aliases": [],
|
|
393
393
|
"args": {},
|
|
394
|
-
"description": "Starts a session to assume
|
|
394
|
+
"description": "Starts a session to assume a Kubernetes cluster IAM role.",
|
|
395
395
|
"examples": [
|
|
396
|
-
"opal
|
|
397
|
-
"opal
|
|
398
|
-
"opal
|
|
396
|
+
"opal kube-roles:start",
|
|
397
|
+
"opal kube-roles:start --id 51f7176b-0464-4a6f-8369-e951e187b398",
|
|
398
|
+
"opal kube-roles:start --id 51f7176b-0464-4a6f-8369-e951e187b398 --accessLevelRemoteId \"arn:aws:iam::712234975475:role/acme-eks-cluster-admin-role\""
|
|
399
399
|
],
|
|
400
400
|
"flags": {
|
|
401
401
|
"help": {
|
|
@@ -413,6 +413,14 @@
|
|
|
413
413
|
"multiple": false,
|
|
414
414
|
"type": "option"
|
|
415
415
|
},
|
|
416
|
+
"accessLevelRemoteId": {
|
|
417
|
+
"char": "a",
|
|
418
|
+
"description": "The remote ID of the access level with which to access the resource.",
|
|
419
|
+
"name": "accessLevelRemoteId",
|
|
420
|
+
"hasDynamicHelp": false,
|
|
421
|
+
"multiple": false,
|
|
422
|
+
"type": "option"
|
|
423
|
+
},
|
|
416
424
|
"sessionId": {
|
|
417
425
|
"char": "s",
|
|
418
426
|
"description": "The Opal ID of the session to connect to. Uses an existing session that was created via the web flow.",
|
|
@@ -427,18 +435,11 @@
|
|
|
427
435
|
"name": "refresh",
|
|
428
436
|
"allowNo": false,
|
|
429
437
|
"type": "boolean"
|
|
430
|
-
},
|
|
431
|
-
"profileName": {
|
|
432
|
-
"description": "Uses a custom AWS profile name for the IAM role. Default value is the role's name.",
|
|
433
|
-
"name": "profileName",
|
|
434
|
-
"hasDynamicHelp": false,
|
|
435
|
-
"multiple": false,
|
|
436
|
-
"type": "option"
|
|
437
438
|
}
|
|
438
439
|
},
|
|
439
440
|
"hasDynamicHelp": false,
|
|
440
441
|
"hiddenAliases": [],
|
|
441
|
-
"id": "
|
|
442
|
+
"id": "kube-roles:start",
|
|
442
443
|
"pluginAlias": "opal-security",
|
|
443
444
|
"pluginName": "opal-security",
|
|
444
445
|
"pluginType": "core",
|
|
@@ -448,18 +449,18 @@
|
|
|
448
449
|
"relativePath": [
|
|
449
450
|
"lib",
|
|
450
451
|
"commands",
|
|
451
|
-
"
|
|
452
|
+
"kube-roles",
|
|
452
453
|
"start.js"
|
|
453
454
|
]
|
|
454
455
|
},
|
|
455
|
-
"
|
|
456
|
+
"iam-roles:start": {
|
|
456
457
|
"aliases": [],
|
|
457
458
|
"args": {},
|
|
458
|
-
"description": "Starts a session to assume
|
|
459
|
+
"description": "Starts a session to assume an IAM role.",
|
|
459
460
|
"examples": [
|
|
460
|
-
"opal
|
|
461
|
-
"opal
|
|
462
|
-
"opal
|
|
461
|
+
"opal iam-roles:start",
|
|
462
|
+
"opal iam-roles:start --id 51f7176b-0464-4a6f-8369-e951e187b398",
|
|
463
|
+
"opal iam-roles:start --id 51f7176b-0464-4a6f-8369-e951e187b398 --profileName \"custom-profile\""
|
|
463
464
|
],
|
|
464
465
|
"flags": {
|
|
465
466
|
"help": {
|
|
@@ -477,14 +478,6 @@
|
|
|
477
478
|
"multiple": false,
|
|
478
479
|
"type": "option"
|
|
479
480
|
},
|
|
480
|
-
"accessLevelRemoteId": {
|
|
481
|
-
"char": "a",
|
|
482
|
-
"description": "The remote ID of the access level with which to access the resource.",
|
|
483
|
-
"name": "accessLevelRemoteId",
|
|
484
|
-
"hasDynamicHelp": false,
|
|
485
|
-
"multiple": false,
|
|
486
|
-
"type": "option"
|
|
487
|
-
},
|
|
488
481
|
"sessionId": {
|
|
489
482
|
"char": "s",
|
|
490
483
|
"description": "The Opal ID of the session to connect to. Uses an existing session that was created via the web flow.",
|
|
@@ -499,11 +492,18 @@
|
|
|
499
492
|
"name": "refresh",
|
|
500
493
|
"allowNo": false,
|
|
501
494
|
"type": "boolean"
|
|
495
|
+
},
|
|
496
|
+
"profileName": {
|
|
497
|
+
"description": "Uses a custom AWS profile name for the IAM role. Default value is the role's name.",
|
|
498
|
+
"name": "profileName",
|
|
499
|
+
"hasDynamicHelp": false,
|
|
500
|
+
"multiple": false,
|
|
501
|
+
"type": "option"
|
|
502
502
|
}
|
|
503
503
|
},
|
|
504
504
|
"hasDynamicHelp": false,
|
|
505
505
|
"hiddenAliases": [],
|
|
506
|
-
"id": "
|
|
506
|
+
"id": "iam-roles:start",
|
|
507
507
|
"pluginAlias": "opal-security",
|
|
508
508
|
"pluginName": "opal-security",
|
|
509
509
|
"pluginType": "core",
|
|
@@ -513,7 +513,7 @@
|
|
|
513
513
|
"relativePath": [
|
|
514
514
|
"lib",
|
|
515
515
|
"commands",
|
|
516
|
-
"
|
|
516
|
+
"iam-roles",
|
|
517
517
|
"start.js"
|
|
518
518
|
]
|
|
519
519
|
},
|
|
@@ -971,5 +971,5 @@
|
|
|
971
971
|
]
|
|
972
972
|
}
|
|
973
973
|
},
|
|
974
|
-
"version": "3.1.1-beta.
|
|
974
|
+
"version": "3.1.1-beta.756584f"
|
|
975
975
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opal-security",
|
|
3
3
|
"description": "Opal allows you to centrally manage access to all of your sensitive systems.",
|
|
4
|
-
"version": "3.1.1-beta.
|
|
4
|
+
"version": "3.1.1-beta.756584f",
|
|
5
5
|
"author": "Stephen Cobbe",
|
|
6
6
|
"bin": {
|
|
7
7
|
"opal": "./bin/run"
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"argon2": "^0.40.1",
|
|
17
17
|
"chalk": "^2.4.2",
|
|
18
18
|
"cli-table3": "^0.6.5",
|
|
19
|
+
"enquirer": "^2.4.1",
|
|
19
20
|
"graphql": "^15.5.0",
|
|
20
21
|
"inquirer": "^8.2.6",
|
|
21
22
|
"inquirer-autocomplete-prompt": "^2.0.1",
|