@rockcarver/frodo-cli 0.19.3 → 0.19.5-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/CHANGELOG.md +9 -1
- package/esm/cli/conn/conn-save.js +2 -2
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/info/info.js +31 -20
- package/esm/cli/info/info.js.map +1 -1
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.19.5-0] - 2023-01-12
|
|
11
|
+
|
|
12
|
+
## [0.19.4] - 2023-01-09
|
|
13
|
+
|
|
10
14
|
## [0.19.3] - 2023-01-07
|
|
11
15
|
|
|
12
16
|
## [0.19.3-3] - 2023-01-07
|
|
@@ -841,7 +845,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
841
845
|
- Fixed problem with adding connection profiles
|
|
842
846
|
- Miscellaneous bug fixes
|
|
843
847
|
|
|
844
|
-
[Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.19.
|
|
848
|
+
[Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.19.5-0...HEAD
|
|
849
|
+
|
|
850
|
+
[0.19.5-0]: https://github.com/rockcarver/frodo-cli/compare/v0.19.4...v0.19.5-0
|
|
851
|
+
|
|
852
|
+
[0.19.4]: https://github.com/rockcarver/frodo-cli/compare/v0.19.3...v0.19.4
|
|
845
853
|
|
|
846
854
|
[0.19.3]: https://github.com/rockcarver/frodo-cli/compare/v0.19.3-3...v0.19.3
|
|
847
855
|
|
|
@@ -28,7 +28,7 @@ async (host, user, password, key, secret, options, command) => {
|
|
|
28
28
|
state.setAuthenticationHeaderOverrides(JSON.parse(options.authenticationHeaderOverrides));
|
|
29
29
|
}
|
|
30
30
|
if (options.validate && (await getTokens()) || !options.validate) {
|
|
31
|
-
verboseMessage(`Saving connection profile for tenant ${state.
|
|
31
|
+
verboseMessage(`Saving connection profile for tenant ${state.getHost()}...`);
|
|
32
32
|
// if cloud deployment add service account
|
|
33
33
|
if (options.validate && state.getDeploymentType() === constants.CLOUD_DEPLOYMENT_TYPE_KEY && options.sa && (await isServiceAccountsFeatureAvailable())) {
|
|
34
34
|
// validate and add existing service account
|
|
@@ -57,7 +57,7 @@ async (host, user, password, key, secret, options, command) => {
|
|
|
57
57
|
addExistingServiceAccount(options.saId, options.saJwkFile, options.validate);
|
|
58
58
|
}
|
|
59
59
|
if (await saveConnectionProfile(host)) {
|
|
60
|
-
printMessage(`Saved connection profile ${state.
|
|
60
|
+
printMessage(`Saved connection profile ${state.getHost()}`);
|
|
61
61
|
} else {
|
|
62
62
|
process.exitCode = 1;
|
|
63
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conn-save.js","names":["FrodoCommand","Option","apiKeyArgument","apiSecretArgument","Authenticate","ConnectionProfile","ServiceAccount","state","constants","verboseMessage","printMessage","addExistingServiceAccount","getTokens","saveConnectionProfile","addNewServiceAccount","isServiceAccountsFeatureAvailable","program","alias","description","addArgument","addOption","action","host","user","password","key","secret","options","command","handleDefaultArgsAndOpts","setLogApiKey","setLogApiSecret","authenticationService","setAuthenticationService","authenticationHeaderOverrides","setAuthenticationHeaderOverrides","JSON","parse","validate","
|
|
1
|
+
{"version":3,"file":"conn-save.js","names":["FrodoCommand","Option","apiKeyArgument","apiSecretArgument","Authenticate","ConnectionProfile","ServiceAccount","state","constants","verboseMessage","printMessage","addExistingServiceAccount","getTokens","saveConnectionProfile","addNewServiceAccount","isServiceAccountsFeatureAvailable","program","alias","description","addArgument","addOption","action","host","user","password","key","secret","options","command","handleDefaultArgsAndOpts","setLogApiKey","setLogApiSecret","authenticationService","setAuthenticationService","authenticationHeaderOverrides","setAuthenticationHeaderOverrides","JSON","parse","validate","getHost","getDeploymentType","CLOUD_DEPLOYMENT_TYPE_KEY","sa","saId","saJwkFile","getServiceAccountId","name","_id","error","response","data","message","process","exitCode"],"sources":["cli/conn/conn-save.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { apiKeyArgument, apiSecretArgument } from './conn';\nimport {\n Authenticate,\n ConnectionProfile,\n ServiceAccount,\n state,\n constants,\n} from '@rockcarver/frodo-lib';\nimport { verboseMessage, printMessage } from '../../utils/Console';\nimport { addExistingServiceAccount } from '../../ops/ConnectionProfileOps.js';\n\nconst { getTokens } = Authenticate;\nconst { saveConnectionProfile, addNewServiceAccount } = ConnectionProfile;\nconst { isServiceAccountsFeatureAvailable } = ServiceAccount;\n\nconst program = new FrodoCommand('frodo conn save', ['realm']);\n\nprogram\n .alias('add')\n .description('Save connection profiles.')\n .addArgument(apiKeyArgument)\n .addArgument(apiSecretArgument)\n .addOption(\n new Option(\n '--sa-id <uuid>',\n \"Service account's uuid. If specified, must also include --sa-jwk-file. Ignored with --no-sa.\"\n )\n )\n .addOption(\n new Option(\n '--sa-jwk-file <file>',\n \"File containing the service account's java web key (jwk). Jwk must contain private key! If specified, must also include --sa-id. Ignored with --no-sa.\"\n )\n )\n .addOption(new Option('--no-sa', 'Do not add service account.'))\n .addOption(new Option('--no-validate', 'Do not validate connection.'))\n .addOption(\n new Option(\n '--authentication-service [service]',\n 'Name of the authentication service/tree to use.'\n )\n )\n .addOption(\n new Option(\n '--authentication-header-overrides [headers]',\n 'Map of headers: {\"host\":\"am.example.com:8081\"}.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, user, password, key, secret, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n user,\n password,\n key,\n secret,\n options,\n command\n );\n state.setLogApiKey(key);\n state.setLogApiSecret(secret);\n if (options.authenticationService) {\n state.setAuthenticationService(options.authenticationService);\n }\n if (options.authenticationHeaderOverrides) {\n state.setAuthenticationHeaderOverrides(\n JSON.parse(options.authenticationHeaderOverrides)\n );\n }\n if ((options.validate && (await getTokens())) || !options.validate) {\n verboseMessage(\n `Saving connection profile for tenant ${state.getHost()}...`\n );\n // if cloud deployment add service account\n if (\n options.validate &&\n state.getDeploymentType() === constants.CLOUD_DEPLOYMENT_TYPE_KEY &&\n options.sa &&\n (await isServiceAccountsFeatureAvailable())\n ) {\n // validate and add existing service account\n if (options.saId && options.saJwkFile) {\n verboseMessage(`Validating and adding service account...`);\n if (\n await addExistingServiceAccount(\n options.saId,\n options.saJwkFile,\n options.validate\n )\n ) {\n printMessage(\n `Validated and added service account with id ${options.saId} to profile.`\n );\n }\n }\n // add new service account if none already exists in the profile\n else if (!state.getServiceAccountId()) {\n try {\n verboseMessage(`Creating service account...`);\n const sa = await addNewServiceAccount();\n printMessage(\n `Created and added service account ${sa.name} with id ${sa._id} to profile.`\n );\n } catch (error) {\n printMessage(error.response?.data, 'error');\n printMessage(\n `Error creating service account: ${error.response?.data?.message}`,\n 'error'\n );\n process.exitCode = 1;\n }\n }\n }\n // add existing service account without validation\n else if (\n !options.validate &&\n options.saId &&\n options.saJwkFile &&\n options.sa\n ) {\n addExistingServiceAccount(\n options.saId,\n options.saJwkFile,\n options.validate\n );\n }\n if (await saveConnectionProfile(host)) {\n printMessage(`Saved connection profile ${state.getHost()}`);\n } else {\n process.exitCode = 1;\n }\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
|
package/esm/cli/info/info.js
CHANGED
|
@@ -1,38 +1,49 @@
|
|
|
1
1
|
import { FrodoCommand } from '../FrodoCommand';
|
|
2
2
|
import { Option } from 'commander';
|
|
3
|
-
import { Authenticate, state } from '@rockcarver/frodo-lib';
|
|
4
|
-
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
3
|
+
import { Authenticate, Info, state } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { createObjectTable, printMessage, verboseMessage } from '../../utils/Console';
|
|
5
5
|
const {
|
|
6
6
|
getTokens
|
|
7
7
|
} = Authenticate;
|
|
8
|
+
const {
|
|
9
|
+
getInfo
|
|
10
|
+
} = Info;
|
|
8
11
|
export default function setup() {
|
|
9
12
|
const info = new FrodoCommand('info', ['realm']);
|
|
10
13
|
info.description('Print versions and tokens.').addOption(new Option('-s, --scriptFriendly', 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other commands. User messages/warnings are output to STDERR, and are not piped. For example, to only get bearer token: \n<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>').default(false, 'Output as plain text')).action(async (host, user, password, options, command) => {
|
|
11
14
|
command.handleDefaultArgsAndOpts(host, user, password, options, command);
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
if (
|
|
15
|
-
|
|
15
|
+
if (await getTokens()) {
|
|
16
|
+
const info = await getInfo();
|
|
17
|
+
if (!options.scriptFriendly) {
|
|
18
|
+
verboseMessage('Printing info, versions, and tokens...');
|
|
19
|
+
delete info.sessionToken;
|
|
20
|
+
delete info.bearerToken;
|
|
21
|
+
const labels = {
|
|
22
|
+
amVersion: 'AM Version',
|
|
23
|
+
authenticatedSubject: 'Subject (Type)',
|
|
24
|
+
config_promotion_done: 'Promotion Done',
|
|
25
|
+
cookieName: 'Cookie Name',
|
|
26
|
+
deploymentType: 'Deployment Type',
|
|
27
|
+
host: 'Host URL',
|
|
28
|
+
immutable: 'Immutable',
|
|
29
|
+
locked: 'Locked',
|
|
30
|
+
placeholder_management: 'Placeholder Management',
|
|
31
|
+
region: 'Region',
|
|
32
|
+
tier: 'Tier'
|
|
33
|
+
};
|
|
34
|
+
const table = createObjectTable(info, labels);
|
|
35
|
+
printMessage(`\n${table.toString()}`);
|
|
16
36
|
if (state.getCookieValue()) {
|
|
17
|
-
printMessage(
|
|
37
|
+
printMessage(`\nSession token:`, 'info');
|
|
38
|
+
printMessage(`${state.getCookieValue()}`);
|
|
18
39
|
}
|
|
19
40
|
if (state.getBearerToken()) {
|
|
20
|
-
printMessage(
|
|
41
|
+
printMessage(`\nBearer token:`, 'info');
|
|
42
|
+
printMessage(`${state.getBearerToken()}`);
|
|
21
43
|
}
|
|
22
44
|
} else {
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
} else if (await getTokens()) {
|
|
26
|
-
const output = {
|
|
27
|
-
cookieName: state.getCookieName()
|
|
28
|
-
};
|
|
29
|
-
if (state.getCookieValue()) {
|
|
30
|
-
output['sessionToken'] = state.getCookieValue();
|
|
31
|
-
}
|
|
32
|
-
if (state.getBearerToken()) {
|
|
33
|
-
output['bearerToken'] = state.getBearerToken();
|
|
45
|
+
printMessage(JSON.stringify(info, null, 2), 'data');
|
|
34
46
|
}
|
|
35
|
-
printMessage(JSON.stringify(output, null, 2), 'data');
|
|
36
47
|
} else {
|
|
37
48
|
process.exitCode = 1;
|
|
38
49
|
}
|
package/esm/cli/info/info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","names":["FrodoCommand","Option","Authenticate","state","printMessage","verboseMessage","getTokens","setup","info","description","addOption","default","action","host","user","password","options","command","handleDefaultArgsAndOpts","scriptFriendly","
|
|
1
|
+
{"version":3,"file":"info.js","names":["FrodoCommand","Option","Authenticate","Info","state","createObjectTable","printMessage","verboseMessage","getTokens","getInfo","setup","info","description","addOption","default","action","host","user","password","options","command","handleDefaultArgsAndOpts","scriptFriendly","sessionToken","bearerToken","labels","amVersion","authenticatedSubject","config_promotion_done","cookieName","deploymentType","immutable","locked","placeholder_management","region","tier","table","toString","getCookieValue","getBearerToken","JSON","stringify","process","exitCode","showHelpAfterError"],"sources":["cli/info/info.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, Info, state } from '@rockcarver/frodo-lib';\nimport {\n createObjectTable,\n printMessage,\n verboseMessage,\n} from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst { getInfo } = Info;\n\nexport default function setup() {\n const info = new FrodoCommand('info', ['realm']);\n info\n .description('Print versions and tokens.')\n .addOption(\n new Option(\n '-s, --scriptFriendly',\n 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other commands. User messages/warnings are output to STDERR, and are not piped. For example, to only get bearer token: \\n<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>'\n ).default(false, 'Output as plain text')\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n if (await getTokens()) {\n const info = await getInfo();\n if (!options.scriptFriendly) {\n verboseMessage('Printing info, versions, and tokens...');\n delete info.sessionToken;\n delete info.bearerToken;\n const labels = {\n amVersion: 'AM Version',\n authenticatedSubject: 'Subject (Type)',\n config_promotion_done: 'Promotion Done',\n cookieName: 'Cookie Name',\n deploymentType: 'Deployment Type',\n host: 'Host URL',\n immutable: 'Immutable',\n locked: 'Locked',\n placeholder_management: 'Placeholder Management',\n region: 'Region',\n tier: 'Tier',\n };\n const table = createObjectTable(info, labels);\n printMessage(`\\n${table.toString()}`);\n if (state.getCookieValue()) {\n printMessage(`\\nSession token:`, 'info');\n printMessage(`${state.getCookieValue()}`);\n }\n if (state.getBearerToken()) {\n printMessage(`\\nBearer token:`, 'info');\n printMessage(`${state.getBearerToken()}`);\n }\n } else {\n printMessage(JSON.stringify(info, null, 2), 'data');\n }\n } else {\n process.exitCode = 1;\n }\n });\n info.showHelpAfterError();\n return info;\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,IAAI,EAAEC,KAAK,QAAQ,uBAAuB;AACjE,SACEC,iBAAiB,EACjBC,YAAY,EACZC,cAAc,QACT,qBAAqB;AAE5B,MAAM;EAAEC;AAAU,CAAC,GAAGN,YAAY;AAClC,MAAM;EAAEO;AAAQ,CAAC,GAAGN,IAAI;AAExB,eAAe,SAASO,KAAK,GAAG;EAC9B,MAAMC,IAAI,GAAG,IAAIX,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;EAChDW,IAAI,CACDC,WAAW,CAAC,4BAA4B,CAAC,CACzCC,SAAS,CACR,IAAIZ,MAAM,CACR,sBAAsB,EACtB,uRAAuR,CACxR,CAACa,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CACzC,CACAC,MAAM,CAAC,OAAOC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;IACxDA,OAAO,CAACC,wBAAwB,CAACL,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,CAAC;IACxE,IAAI,MAAMZ,SAAS,EAAE,EAAE;MACrB,MAAMG,IAAI,GAAG,MAAMF,OAAO,EAAE;MAC5B,IAAI,CAACU,OAAO,CAACG,cAAc,EAAE;QAC3Bf,cAAc,CAAC,wCAAwC,CAAC;QACxD,OAAOI,IAAI,CAACY,YAAY;QACxB,OAAOZ,IAAI,CAACa,WAAW;QACvB,MAAMC,MAAM,GAAG;UACbC,SAAS,EAAE,YAAY;UACvBC,oBAAoB,EAAE,gBAAgB;UACtCC,qBAAqB,EAAE,gBAAgB;UACvCC,UAAU,EAAE,aAAa;UACzBC,cAAc,EAAE,iBAAiB;UACjCd,IAAI,EAAE,UAAU;UAChBe,SAAS,EAAE,WAAW;UACtBC,MAAM,EAAE,QAAQ;UAChBC,sBAAsB,EAAE,wBAAwB;UAChDC,MAAM,EAAE,QAAQ;UAChBC,IAAI,EAAE;QACR,CAAC;QACD,MAAMC,KAAK,GAAG/B,iBAAiB,CAACM,IAAI,EAAEc,MAAM,CAAC;QAC7CnB,YAAY,CAAE,KAAI8B,KAAK,CAACC,QAAQ,EAAG,EAAC,CAAC;QACrC,IAAIjC,KAAK,CAACkC,cAAc,EAAE,EAAE;UAC1BhC,YAAY,CAAE,kBAAiB,EAAE,MAAM,CAAC;UACxCA,YAAY,CAAE,GAAEF,KAAK,CAACkC,cAAc,EAAG,EAAC,CAAC;QAC3C;QACA,IAAIlC,KAAK,CAACmC,cAAc,EAAE,EAAE;UAC1BjC,YAAY,CAAE,iBAAgB,EAAE,MAAM,CAAC;UACvCA,YAAY,CAAE,GAAEF,KAAK,CAACmC,cAAc,EAAG,EAAC,CAAC;QAC3C;MACF,CAAC,MAAM;QACLjC,YAAY,CAACkC,IAAI,CAACC,SAAS,CAAC9B,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;MACrD;IACF,CAAC,MAAM;MACL+B,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF,CAAC,CAAC;EACJhC,IAAI,CAACiC,kBAAkB,EAAE;EACzB,OAAOjC,IAAI;AACb"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rockcarver/frodo-cli",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.5-0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A command line interface to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
|
|
6
6
|
"keywords": [
|
|
@@ -39,6 +39,9 @@
|
|
|
39
39
|
"build:binary": "npx tsc && npx gulp build-binary",
|
|
40
40
|
"watch": "npx gulp watch"
|
|
41
41
|
},
|
|
42
|
+
"jest": {
|
|
43
|
+
"testTimeout": 30000
|
|
44
|
+
},
|
|
42
45
|
"contributors": [
|
|
43
46
|
{
|
|
44
47
|
"name": "Sandeep Chaturvedi",
|
|
@@ -100,7 +103,7 @@
|
|
|
100
103
|
]
|
|
101
104
|
},
|
|
102
105
|
"dependencies": {
|
|
103
|
-
"@rockcarver/frodo-lib": "0.17.
|
|
106
|
+
"@rockcarver/frodo-lib": "0.17.8-1",
|
|
104
107
|
"cli-progress": "^3.11.2",
|
|
105
108
|
"cli-table3": "^0.6.3",
|
|
106
109
|
"colors": "^1.4.0",
|