@rockcarver/frodo-cli 0.18.2-13 → 0.18.2-15

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 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.18.2-15] - 2022-12-12
11
+
12
+ ## [0.18.2-14] - 2022-12-10
13
+
10
14
  ## [0.18.2-13] - 2022-12-01
11
15
 
12
16
  ## [0.18.2-12] - 2022-11-29
@@ -740,7 +744,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
740
744
  - Fixed problem with adding connection profiles
741
745
  - Miscellaneous bug fixes
742
746
 
743
- [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-13...HEAD
747
+ [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-15...HEAD
748
+
749
+ [0.18.2-15]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-14...v0.18.2-15
750
+
751
+ [0.18.2-14]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-13...v0.18.2-14
744
752
 
745
753
  [0.18.2-13]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-12...v0.18.2-13
746
754
 
package/esm/app.js CHANGED
@@ -28,7 +28,7 @@ const {
28
28
  try {
29
29
  const program = new Command('frodo').version(await getVersions(false), '-v, --version');
30
30
  printMessage(await getVersions(true), 'text', false);
31
- initConnectionProfiles();
31
+ await initConnectionProfiles();
32
32
  program.addCommand(admin());
33
33
  program.addCommand(agent());
34
34
  program.addCommand(app());
package/esm/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","names":["ConnectionProfile","Command","admin","agent","app","conn","email","esv","idm","idp","info","journey","logging","realm","saml","script","service","theme","printMessage","getVersions","initConnectionProfiles","program","version","addCommand","showHelpAfterError","enablePositionalOptions","parse","e"],"sources":["app.ts"],"sourcesContent":["#!/usr/bin/env -S node --no-warnings --enable-source-maps --experimental-specifier-resolution=node\n\nimport { ConnectionProfile } from '@rockcarver/frodo-lib';\nimport { Command } from 'commander';\n\n// commands\nimport admin from './cli/admin/admin';\nimport agent from './cli/agent/agent';\nimport app from './cli/app/app';\nimport conn from './cli/conn/conn';\nimport email from './cli/email/email';\nimport esv from './cli/esv/esv';\nimport idm from './cli/idm/idm';\nimport idp from './cli/idp/idp';\nimport info from './cli/info/info';\nimport journey from './cli/journey/journey';\nimport logging from './cli/logging/logs';\nimport realm from './cli/realm/realm';\nimport saml from './cli/saml/saml';\nimport script from './cli/script/script';\nimport service from './cli/service/service';\nimport theme from './cli/theme/theme';\nimport { printMessage } from './utils/Console';\nimport { getVersions } from './utils/Version';\n\nconst { initConnectionProfiles } = ConnectionProfile;\n\n(async () => {\n try {\n const program = new Command('frodo').version(\n await getVersions(false),\n '-v, --version'\n );\n\n printMessage(await getVersions(true), 'text', false);\n\n initConnectionProfiles();\n\n program.addCommand(admin());\n program.addCommand(agent());\n program.addCommand(app());\n program.addCommand(conn());\n program.addCommand(email());\n program.addCommand(esv());\n program.addCommand(idm());\n program.addCommand(idp());\n program.addCommand(info());\n program.addCommand(journey());\n program.addCommand(logging());\n program.addCommand(realm());\n program.addCommand(saml());\n program.addCommand(script());\n program.addCommand(service());\n program.addCommand(theme());\n\n program.showHelpAfterError();\n program.enablePositionalOptions();\n program.parse();\n } catch (e) {\n printMessage(`ERROR: exception running frodo - ${e}`, 'error');\n }\n})();\n"],"mappings":"AAAA;AAEA,SAASA,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,OAAO,QAAQ,WAAW;;AAEnC;AACA,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,OAAO,MAAM,uBAAuB;AAC3C,OAAOC,OAAO,MAAM,oBAAoB;AACxC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,OAAO,MAAM,uBAAuB;AAC3C,OAAOC,KAAK,MAAM,mBAAmB;AACrC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,MAAM;EAAEC;AAAuB,CAAC,GAAGpB,iBAAiB;AAEpD,CAAC,YAAY;EACX,IAAI;IACF,MAAMqB,OAAO,GAAG,IAAIpB,OAAO,CAAC,OAAO,CAAC,CAACqB,OAAO,CAC1C,MAAMH,WAAW,CAAC,KAAK,CAAC,EACxB,eAAe,CAChB;IAEDD,YAAY,CAAC,MAAMC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;IAEpDC,sBAAsB,EAAE;IAExBC,OAAO,CAACE,UAAU,CAACrB,KAAK,EAAE,CAAC;IAC3BmB,OAAO,CAACE,UAAU,CAACpB,KAAK,EAAE,CAAC;IAC3BkB,OAAO,CAACE,UAAU,CAACnB,GAAG,EAAE,CAAC;IACzBiB,OAAO,CAACE,UAAU,CAAClB,IAAI,EAAE,CAAC;IAC1BgB,OAAO,CAACE,UAAU,CAACjB,KAAK,EAAE,CAAC;IAC3Be,OAAO,CAACE,UAAU,CAAChB,GAAG,EAAE,CAAC;IACzBc,OAAO,CAACE,UAAU,CAACf,GAAG,EAAE,CAAC;IACzBa,OAAO,CAACE,UAAU,CAACd,GAAG,EAAE,CAAC;IACzBY,OAAO,CAACE,UAAU,CAACb,IAAI,EAAE,CAAC;IAC1BW,OAAO,CAACE,UAAU,CAACZ,OAAO,EAAE,CAAC;IAC7BU,OAAO,CAACE,UAAU,CAACX,OAAO,EAAE,CAAC;IAC7BS,OAAO,CAACE,UAAU,CAACV,KAAK,EAAE,CAAC;IAC3BQ,OAAO,CAACE,UAAU,CAACT,IAAI,EAAE,CAAC;IAC1BO,OAAO,CAACE,UAAU,CAACR,MAAM,EAAE,CAAC;IAC5BM,OAAO,CAACE,UAAU,CAACP,OAAO,EAAE,CAAC;IAC7BK,OAAO,CAACE,UAAU,CAACN,KAAK,EAAE,CAAC;IAE3BI,OAAO,CAACG,kBAAkB,EAAE;IAC5BH,OAAO,CAACI,uBAAuB,EAAE;IACjCJ,OAAO,CAACK,KAAK,EAAE;EACjB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVT,YAAY,CAAE,oCAAmCS,CAAE,EAAC,EAAE,OAAO,CAAC;EAChE;AACF,CAAC,GAAG"}
1
+ {"version":3,"file":"app.js","names":["ConnectionProfile","Command","admin","agent","app","conn","email","esv","idm","idp","info","journey","logging","realm","saml","script","service","theme","printMessage","getVersions","initConnectionProfiles","program","version","addCommand","showHelpAfterError","enablePositionalOptions","parse","e"],"sources":["app.ts"],"sourcesContent":["#!/usr/bin/env -S node --no-warnings --enable-source-maps --experimental-specifier-resolution=node\n\nimport { ConnectionProfile } from '@rockcarver/frodo-lib';\nimport { Command } from 'commander';\n\n// commands\nimport admin from './cli/admin/admin';\nimport agent from './cli/agent/agent';\nimport app from './cli/app/app';\nimport conn from './cli/conn/conn';\nimport email from './cli/email/email';\nimport esv from './cli/esv/esv';\nimport idm from './cli/idm/idm';\nimport idp from './cli/idp/idp';\nimport info from './cli/info/info';\nimport journey from './cli/journey/journey';\nimport logging from './cli/logging/logs';\nimport realm from './cli/realm/realm';\nimport saml from './cli/saml/saml';\nimport script from './cli/script/script';\nimport service from './cli/service/service';\nimport theme from './cli/theme/theme';\nimport { printMessage } from './utils/Console';\nimport { getVersions } from './utils/Version';\n\nconst { initConnectionProfiles } = ConnectionProfile;\n\n(async () => {\n try {\n const program = new Command('frodo').version(\n await getVersions(false),\n '-v, --version'\n );\n\n printMessage(await getVersions(true), 'text', false);\n\n await initConnectionProfiles();\n\n program.addCommand(admin());\n program.addCommand(agent());\n program.addCommand(app());\n program.addCommand(conn());\n program.addCommand(email());\n program.addCommand(esv());\n program.addCommand(idm());\n program.addCommand(idp());\n program.addCommand(info());\n program.addCommand(journey());\n program.addCommand(logging());\n program.addCommand(realm());\n program.addCommand(saml());\n program.addCommand(script());\n program.addCommand(service());\n program.addCommand(theme());\n\n program.showHelpAfterError();\n program.enablePositionalOptions();\n program.parse();\n } catch (e) {\n printMessage(`ERROR: exception running frodo - ${e}`, 'error');\n }\n})();\n"],"mappings":"AAAA;AAEA,SAASA,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,OAAO,QAAQ,WAAW;;AAEnC;AACA,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,OAAO,MAAM,uBAAuB;AAC3C,OAAOC,OAAO,MAAM,oBAAoB;AACxC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,OAAO,MAAM,uBAAuB;AAC3C,OAAOC,KAAK,MAAM,mBAAmB;AACrC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,MAAM;EAAEC;AAAuB,CAAC,GAAGpB,iBAAiB;AAEpD,CAAC,YAAY;EACX,IAAI;IACF,MAAMqB,OAAO,GAAG,IAAIpB,OAAO,CAAC,OAAO,CAAC,CAACqB,OAAO,CAC1C,MAAMH,WAAW,CAAC,KAAK,CAAC,EACxB,eAAe,CAChB;IAEDD,YAAY,CAAC,MAAMC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;IAEpD,MAAMC,sBAAsB,EAAE;IAE9BC,OAAO,CAACE,UAAU,CAACrB,KAAK,EAAE,CAAC;IAC3BmB,OAAO,CAACE,UAAU,CAACpB,KAAK,EAAE,CAAC;IAC3BkB,OAAO,CAACE,UAAU,CAACnB,GAAG,EAAE,CAAC;IACzBiB,OAAO,CAACE,UAAU,CAAClB,IAAI,EAAE,CAAC;IAC1BgB,OAAO,CAACE,UAAU,CAACjB,KAAK,EAAE,CAAC;IAC3Be,OAAO,CAACE,UAAU,CAAChB,GAAG,EAAE,CAAC;IACzBc,OAAO,CAACE,UAAU,CAACf,GAAG,EAAE,CAAC;IACzBa,OAAO,CAACE,UAAU,CAACd,GAAG,EAAE,CAAC;IACzBY,OAAO,CAACE,UAAU,CAACb,IAAI,EAAE,CAAC;IAC1BW,OAAO,CAACE,UAAU,CAACZ,OAAO,EAAE,CAAC;IAC7BU,OAAO,CAACE,UAAU,CAACX,OAAO,EAAE,CAAC;IAC7BS,OAAO,CAACE,UAAU,CAACV,KAAK,EAAE,CAAC;IAC3BQ,OAAO,CAACE,UAAU,CAACT,IAAI,EAAE,CAAC;IAC1BO,OAAO,CAACE,UAAU,CAACR,MAAM,EAAE,CAAC;IAC5BM,OAAO,CAACE,UAAU,CAACP,OAAO,EAAE,CAAC;IAC7BK,OAAO,CAACE,UAAU,CAACN,KAAK,EAAE,CAAC;IAE3BI,OAAO,CAACG,kBAAkB,EAAE;IAC5BH,OAAO,CAACI,uBAAuB,EAAE;IACjCJ,OAAO,CAACK,KAAK,EAAE;EACjB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVT,YAAY,CAAE,oCAAmCS,CAAE,EAAC,EAAE,OAAO,CAAC;EAChE;AACF,CAAC,GAAG"}
@@ -0,0 +1,78 @@
1
+ import { Command, Option } from 'commander';
2
+ import { Authenticate, ConnectionProfile, ServiceAccount, state, constants } from '@rockcarver/frodo-lib';
3
+ import * as common from '../cmd_common.js';
4
+ import { verboseMessage, printMessage } from '../../utils/Console';
5
+ import { addExistingServiceAccount } from '../../ops/ConnectionProfileOps.js';
6
+ const {
7
+ getTokens
8
+ } = Authenticate;
9
+ const {
10
+ saveConnectionProfile,
11
+ addNewServiceAccount
12
+ } = ConnectionProfile;
13
+ const {
14
+ isServiceAccountsFeatureAvailable
15
+ } = ServiceAccount;
16
+ const program = new Command('frodo conn save');
17
+ program.alias('add').description('Save connection profiles.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).addArgument(common.apiKeyArgument).addArgument(common.apiSecretArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(new Option('--sa-id <uuid>', "Service account's uuid. If specified, must also include --sa-jwk-file. Ignored with --no-sa.")).addOption(new Option('--sa-jwk-file <file>', "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.")).addOption(new Option('--no-sa', 'Do not add service account.')).addOption(new Option('--no-validate', 'Do not validate connection.')).addOption(new Option('--authentication-service [service]', 'Name of the authentication service/tree to use.')).addOption(new Option('--authentication-header-overrides [headers]', 'Map of headers: {"host":"am.example.com:8081"}.')).action(
18
+ // implement command logic inside action handler
19
+ async (host, user, password, key, secret, options) => {
20
+ state.default.session.setTenant(host);
21
+ state.default.session.setUsername(user);
22
+ state.default.session.setPassword(password);
23
+ state.default.session.setLogApiKey(key);
24
+ state.default.session.setLogApiSecret(secret);
25
+ state.default.session.setDeploymentType(options.type);
26
+ state.default.session.setAllowInsecureConnection(options.insecure);
27
+ state.default.session.setVerbose(options.verbose);
28
+ state.default.session.setDebug(options.debug);
29
+ state.default.session.setCurlirize(options.curlirize);
30
+ if (options.authenticationService) {
31
+ state.default.session.setAuthenticationService(options.authenticationService);
32
+ }
33
+ if (options.authenticationHeaderOverrides) {
34
+ state.default.session.setAuthenticationHeaderOverrides(JSON.parse(options.authenticationHeaderOverrides));
35
+ }
36
+ if (options.validate && (await getTokens()) || !options.validate) {
37
+ verboseMessage(`Saving connection profile for tenant ${state.default.session.getTenant()}...`);
38
+ // if cloud deployment add service account
39
+ if (options.validate && state.default.session.getDeploymentType() === constants.CLOUD_DEPLOYMENT_TYPE_KEY && options.sa && (await isServiceAccountsFeatureAvailable())) {
40
+ // validate and add existing service account
41
+ if (options.saId && options.saJwkFile) {
42
+ verboseMessage(`Validating and adding service account...`);
43
+ if (await addExistingServiceAccount(options.saId, options.saJwkFile, options.validate)) {
44
+ printMessage(`Validated and added service account with id ${options.saId} to profile.`);
45
+ }
46
+ }
47
+ // add new service account if none already exists in the profile
48
+ else if (!state.default.session.getServiceAccountId()) {
49
+ try {
50
+ verboseMessage(`Creating service account...`);
51
+ const sa = await addNewServiceAccount();
52
+ printMessage(`Created and added service account ${sa.name} with id ${sa._id} to profile.`);
53
+ } catch (error) {
54
+ var _error$response, _error$response2, _error$response2$data;
55
+ printMessage((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data, 'error');
56
+ printMessage(`Error creating service account: ${(_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.message}`, 'error');
57
+ process.exitCode = 1;
58
+ }
59
+ }
60
+ }
61
+ // add existing service account without validation
62
+ else if (!options.validate && options.saId && options.saJwkFile && options.sa) {
63
+ addExistingServiceAccount(options.saId, options.saJwkFile, options.validate);
64
+ }
65
+ if (await saveConnectionProfile(host)) {
66
+ printMessage(`Saved connection profile ${state.default.session.getTenant()}`);
67
+ } else {
68
+ process.exitCode = 1;
69
+ }
70
+ } else {
71
+ process.exitCode = 1;
72
+ }
73
+ }
74
+ // end command logic inside action handler
75
+ );
76
+
77
+ program.parse();
78
+ //# sourceMappingURL=conn-save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conn-save.js","names":["Command","Option","Authenticate","ConnectionProfile","ServiceAccount","state","constants","common","verboseMessage","printMessage","addExistingServiceAccount","getTokens","saveConnectionProfile","addNewServiceAccount","isServiceAccountsFeatureAvailable","program","alias","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","apiKeyArgument","apiSecretArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","user","password","key","secret","options","default","session","setTenant","setUsername","setPassword","setLogApiKey","setLogApiSecret","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","authenticationService","setAuthenticationService","authenticationHeaderOverrides","setAuthenticationHeaderOverrides","JSON","parse","validate","getTenant","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 { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n ServiceAccount,\n state,\n constants,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\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 Command('frodo conn save');\n\nprogram\n .alias('add')\n .description('Save connection profiles.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addArgument(common.apiKeyArgument)\n .addArgument(common.apiSecretArgument)\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\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) => {\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setLogApiKey(key);\n state.default.session.setLogApiSecret(secret);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (options.authenticationService) {\n state.default.session.setAuthenticationService(\n options.authenticationService\n );\n }\n if (options.authenticationHeaderOverrides) {\n state.default.session.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.default.session.getTenant()}...`\n );\n // if cloud deployment add service account\n if (\n options.validate &&\n state.default.session.getDeploymentType() ===\n 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.default.session.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(\n `Saved connection profile ${state.default.session.getTenant()}`\n );\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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"}
@@ -6,7 +6,7 @@ export default function setup() {
6
6
  const program = new Command('conn').alias('connection')
7
7
  // for backwards compatibility
8
8
  .alias('connections').helpOption('-h, --help', 'Help').description('Manage connection profiles.').executableDir(__dirname);
9
- program.command('add', 'Add connection profiles.').showHelpAfterError();
9
+ program.command('save', 'Save connection profiles.').alias('add').showHelpAfterError();
10
10
  program.command('delete', 'Delete connection profiles.').showHelpAfterError();
11
11
  program.command('describe', 'Describe connection profiles.').showHelpAfterError();
12
12
  program.command('list', 'List connection profiles.').showHelpAfterError();
@@ -1 +1 @@
1
- {"version":3,"file":"conn.js","names":["Command","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","alias","helpOption","description","executableDir","command","showHelpAfterError"],"sources":["cli/conn/conn.ts"],"sourcesContent":["import { Command } from 'commander';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new Command('conn')\n .alias('connection')\n // for backwards compatibility\n .alias('connections')\n .helpOption('-h, --help', 'Help')\n .description('Manage connection profiles.')\n .executableDir(__dirname);\n\n program.command('add', 'Add connection profiles.').showHelpAfterError();\n\n program.command('delete', 'Delete connection profiles.').showHelpAfterError();\n\n program\n .command('describe', 'Describe connection profiles.')\n .showHelpAfterError();\n\n program.command('list', 'List connection profiles.').showHelpAfterError();\n\n program.showHelpAfterError();\n return program;\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAW;AACnC,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAO,CAACF,aAAa,CAACG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAK,GAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIT,OAAO,CAAC,MAAM,CAAC,CAChCU,KAAK,CAAC,YAAY;EACnB;EAAA,CACCA,KAAK,CAAC,aAAa,CAAC,CACpBC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,WAAW,CAAC,6BAA6B,CAAC,CAC1CC,aAAa,CAACV,SAAS,CAAC;EAE3BM,OAAO,CAACK,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAACC,kBAAkB,EAAE;EAEvEN,OAAO,CAACK,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAACC,kBAAkB,EAAE;EAE7EN,OAAO,CACJK,OAAO,CAAC,UAAU,EAAE,+BAA+B,CAAC,CACpDC,kBAAkB,EAAE;EAEvBN,OAAO,CAACK,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAACC,kBAAkB,EAAE;EAEzEN,OAAO,CAACM,kBAAkB,EAAE;EAC5B,OAAON,OAAO;AAChB"}
1
+ {"version":3,"file":"conn.js","names":["Command","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","alias","helpOption","description","executableDir","command","showHelpAfterError"],"sources":["cli/conn/conn.ts"],"sourcesContent":["import { Command } from 'commander';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new Command('conn')\n .alias('connection')\n // for backwards compatibility\n .alias('connections')\n .helpOption('-h, --help', 'Help')\n .description('Manage connection profiles.')\n .executableDir(__dirname);\n\n program\n .command('save', 'Save connection profiles.')\n .alias('add')\n .showHelpAfterError();\n\n program.command('delete', 'Delete connection profiles.').showHelpAfterError();\n\n program\n .command('describe', 'Describe connection profiles.')\n .showHelpAfterError();\n\n program.command('list', 'List connection profiles.').showHelpAfterError();\n\n program.showHelpAfterError();\n return program;\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAW;AACnC,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAO,CAACF,aAAa,CAACG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAK,GAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIT,OAAO,CAAC,MAAM,CAAC,CAChCU,KAAK,CAAC,YAAY;EACnB;EAAA,CACCA,KAAK,CAAC,aAAa,CAAC,CACpBC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,WAAW,CAAC,6BAA6B,CAAC,CAC1CC,aAAa,CAACV,SAAS,CAAC;EAE3BM,OAAO,CACJK,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAC5CJ,KAAK,CAAC,KAAK,CAAC,CACZK,kBAAkB,EAAE;EAEvBN,OAAO,CAACK,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAACC,kBAAkB,EAAE;EAE7EN,OAAO,CACJK,OAAO,CAAC,UAAU,EAAE,+BAA+B,CAAC,CACpDC,kBAAkB,EAAE;EAEvBN,OAAO,CAACK,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAACC,kBAAkB,EAAE;EAEzEN,OAAO,CAACM,kBAAkB,EAAE;EAC5B,OAAON,OAAO;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"idm-import.js","names":["Command","Option","Authenticate","state","common","printMessage","verboseMessage","importAllConfigEntities","importAllRawConfigEntities","importConfigEntity","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","name","getRealm","file","allSeparate","directory","entitiesFile","envFile","help","parse"],"sources":["cli/idm/idm-import.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importAllConfigEntities,\n importAllRawConfigEntities,\n importConfigEntity,\n} from '../../ops/IdmOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo idm import');\n\ninterface IdmImportOptions {\n type?: string;\n insecure?: string;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n name?: string;\n file?: string;\n entitiesFile?: string;\n envFile?: string;\n all?: string;\n allSeparate?: string;\n directory?: string;\n}\n\nprogram\n .description('Import IDM configuration objects.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.realmArgument)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all IDM configuration objects into separate JSON files in directory -D. Ignored with -N, and -a.'\n )\n )\n .addOption(\n new Option(\n '-D, --directory <directory>',\n 'Import directory. Required with and ignored without -a/-A.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: IdmImportOptions\n ) => {\n state.default.session.setTenant(host);\n state.default.session.setRealm(realm);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n // import by id/name\n if (options.name && (await getTokens())) {\n verboseMessage(\n `Importing object \"${\n options.name\n }\" to realm \"${state.default.session.getRealm()}\"...`\n );\n await importConfigEntity(options.name, options.file);\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.directory &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`\n );\n await importAllConfigEntities(\n options.directory,\n options.entitiesFile,\n options.envFile\n );\n }\n // --all-separate -A without variable replacement\n else if (\n options.allSeparate &&\n options.directory &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing all IDM configuration objects into separate files in ${options.directory}...`\n );\n await importAllRawConfigEntities(options.directory);\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"idm-import.js","names":["Command","Option","Authenticate","state","common","printMessage","verboseMessage","importAllConfigEntities","importAllRawConfigEntities","importConfigEntity","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","name","getRealm","file","allSeparate","directory","entitiesFile","envFile","help","parse"],"sources":["cli/idm/idm-import.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importAllConfigEntities,\n importAllRawConfigEntities,\n importConfigEntity,\n} from '../../ops/IdmOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo idm import');\n\ninterface IdmImportOptions {\n type?: string;\n insecure?: boolean;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n name?: string;\n file?: string;\n entitiesFile?: string;\n envFile?: string;\n all?: string;\n allSeparate?: string;\n directory?: string;\n}\n\nprogram\n .description('Import IDM configuration objects.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.realmArgument)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all IDM configuration objects into separate JSON files in directory -D. Ignored with -N, and -a.'\n )\n )\n .addOption(\n new Option(\n '-D, --directory <directory>',\n 'Import directory. Required with and ignored without -a/-A.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: IdmImportOptions\n ) => {\n state.default.session.setTenant(host);\n state.default.session.setRealm(realm);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n // import by id/name\n if (options.name && (await getTokens())) {\n verboseMessage(\n `Importing object \"${\n options.name\n }\" to realm \"${state.default.session.getRealm()}\"...`\n );\n await importConfigEntity(options.name, options.file);\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.directory &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`\n );\n await importAllConfigEntities(\n options.directory,\n options.entitiesFile,\n options.envFile\n );\n }\n // --all-separate -A without variable replacement\n else if (\n options.allSeparate &&\n options.directory &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing all IDM configuration objects into separate files in ${options.directory}...`\n );\n await importAllRawConfigEntities(options.directory);\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -8,33 +8,36 @@ const {
8
8
  export default function setup() {
9
9
  const info = new Command('info');
10
10
  info.addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).helpOption('-h, --help', 'Help').addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(common.scriptFriendlyOption).description('Print versions and tokens.').action(async (host, user, password, options) => {
11
- state.default.session.setTenant(host);
12
- state.default.session.setUsername(user);
13
- state.default.session.setPassword(password);
14
- state.default.session.setDeploymentType(options.type);
15
- state.default.session.setAllowInsecureConnection(options.insecure);
16
- state.default.session.setVerbose(options.verbose);
17
- state.default.session.setDebug(options.debug);
18
- state.default.session.setCurlirize(options.curlirize);
19
- state.default.session.setItem('scriptFriendly', options.scriptFriendly);
11
+ state.setHost(host);
12
+ state.setUsername(user);
13
+ state.setPassword(password);
14
+ state.setDeploymentType(options.type);
15
+ state.setAllowInsecureConnection(options.insecure);
16
+ state.setVerbose(options.verbose);
17
+ state.setDebug(options.debug);
18
+ state.setCurlirize(options.curlirize);
20
19
  if (!options.scriptFriendly) {
21
20
  verboseMessage('Printing versions and tokens...');
22
21
  if (await getTokens()) {
23
- printMessage(`Cookie name: ${state.default.session.getCookieName()}`);
24
- printMessage(`Session token: ${state.default.session.getCookieValue()}`);
25
- if (state.default.session.getBearerToken()) {
26
- printMessage(`Bearer token: ${state.default.session.getBearerToken()}`);
22
+ printMessage(`Cookie name: ${state.getCookieName()}`);
23
+ if (state.getCookieValue()) {
24
+ printMessage(`Session token: ${state.getCookieValue()}`);
25
+ }
26
+ if (state.getBearerToken()) {
27
+ printMessage(`Bearer token: ${state.getBearerToken()}`);
27
28
  }
28
29
  } else {
29
30
  process.exitCode = 1;
30
31
  }
31
32
  } else if (await getTokens()) {
32
33
  const output = {
33
- cookieName: state.default.session.getCookieName(),
34
- sessionToken: state.default.session.getCookieValue()
34
+ cookieName: state.getCookieName()
35
35
  };
36
- if (state.default.session.getBearerToken()) {
37
- output['bearerToken'] = state.default.session.getBearerToken();
36
+ if (state.getCookieValue()) {
37
+ output['sessionToken'] = state.getCookieValue();
38
+ }
39
+ if (state.getBearerToken()) {
40
+ output['bearerToken'] = state.getBearerToken();
38
41
  }
39
42
  printMessage(JSON.stringify(output, null, 2), 'data');
40
43
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","names":["Command","Authenticate","state","common","printMessage","verboseMessage","getTokens","setup","info","addArgument","hostArgumentM","userArgument","passwordArgument","helpOption","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","scriptFriendlyOption","description","action","host","user","password","options","default","session","setTenant","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","setItem","scriptFriendly","getCookieName","getCookieValue","getBearerToken","process","exitCode","output","cookieName","sessionToken","JSON","stringify","showHelpAfterError"],"sources":["cli/info/info.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { Authenticate, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport { printMessage, verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\n\nexport default function setup() {\n const info = new Command('info');\n info\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .helpOption('-h, --help', 'Help')\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(common.scriptFriendlyOption)\n .description('Print versions and tokens.')\n .action(async (host, user, password, options) => {\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n state.default.session.setItem('scriptFriendly', options.scriptFriendly);\n if (!options.scriptFriendly) {\n verboseMessage('Printing versions and tokens...');\n if (await getTokens()) {\n printMessage(`Cookie name: ${state.default.session.getCookieName()}`);\n printMessage(\n `Session token: ${state.default.session.getCookieValue()}`\n );\n if (state.default.session.getBearerToken()) {\n printMessage(\n `Bearer token: ${state.default.session.getBearerToken()}`\n );\n }\n } else {\n process.exitCode = 1;\n }\n } else if (await getTokens()) {\n const output = {\n cookieName: state.default.session.getCookieName(),\n sessionToken: state.default.session.getCookieValue(),\n };\n if (state.default.session.getBearerToken()) {\n output['bearerToken'] = state.default.session.getBearerToken();\n }\n printMessage(JSON.stringify(output, null, 2), 'data');\n } else {\n process.exitCode = 1;\n }\n });\n info.showHelpAfterError();\n return info;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"info.js","names":["Command","Authenticate","state","common","printMessage","verboseMessage","getTokens","setup","info","addArgument","hostArgumentM","userArgument","passwordArgument","helpOption","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","scriptFriendlyOption","description","action","host","user","password","options","setHost","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","scriptFriendly","getCookieName","getCookieValue","getBearerToken","process","exitCode","output","cookieName","JSON","stringify","showHelpAfterError"],"sources":["cli/info/info.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { Authenticate, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport { printMessage, verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\n\nexport default function setup() {\n const info = new Command('info');\n info\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .helpOption('-h, --help', 'Help')\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(common.scriptFriendlyOption)\n .description('Print versions and tokens.')\n .action(async (host, user, password, options) => {\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setDeploymentType(options.type);\n state.setAllowInsecureConnection(options.insecure);\n state.setVerbose(options.verbose);\n state.setDebug(options.debug);\n state.setCurlirize(options.curlirize);\n if (!options.scriptFriendly) {\n verboseMessage('Printing versions and tokens...');\n if (await getTokens()) {\n printMessage(`Cookie name: ${state.getCookieName()}`);\n if (state.getCookieValue()) {\n printMessage(`Session token: ${state.getCookieValue()}`);\n }\n if (state.getBearerToken()) {\n printMessage(`Bearer token: ${state.getBearerToken()}`);\n }\n } else {\n process.exitCode = 1;\n }\n } else if (await getTokens()) {\n const output = {\n cookieName: state.getCookieName(),\n };\n if (state.getCookieValue()) {\n output['sessionToken'] = state.getCookieValue();\n }\n if (state.getBearerToken()) {\n output['bearerToken'] = state.getBearerToken();\n }\n printMessage(JSON.stringify(output, null, 2), 'data');\n } else {\n process.exitCode = 1;\n }\n });\n info.showHelpAfterError();\n return info;\n}\n"],"mappings":"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"}
@@ -38,10 +38,10 @@ Cannot be more than 30 days in the past. If not specified, logs from one hour ag
38
38
  state.default.session.setCurlirize(options.curlirize);
39
39
  const conn = await getConnectionProfile();
40
40
  state.default.session.setTenant(conn.tenant);
41
- if (conn.key != null && conn.secret != null) {
41
+ if (conn.logApiKey != null && conn.logApiSecret != null) {
42
42
  credsFromParameters = false;
43
- state.default.session.setLogApiKey(conn.key);
44
- state.default.session.setLogApiSecret(conn.secret);
43
+ state.default.session.setLogApiKey(conn.logApiKey);
44
+ state.default.session.setLogApiSecret(conn.logApiSecret);
45
45
  } else {
46
46
  if (conn.username == null && conn.password == null) {
47
47
  if (!state.default.session.getUsername() && !state.default.session.getPassword()) {
@@ -87,7 +87,7 @@ Cannot be more than 30 days in the past. If not specified, logs from one hour ag
87
87
  }
88
88
  let intermediateEndTs = 0;
89
89
  printMessage(`Fetching ID Cloud logs from the following sources: ${command.opts().sources} and levels [${resolveLevel(command.opts().level)}]...`);
90
- if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI
90
+ if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI
91
91
 
92
92
  do {
93
93
  intermediateEndTs = beginTs + LOG_TIME_WINDOW_INCREMENT;
@@ -1 +1 @@
1
- {"version":3,"file":"logs-fetch.js","names":["Command","Option","Authenticate","ConnectionProfile","Log","state","common","config","printMessage","provisionCreds","fetchLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","verboseOption","debugOption","curlirizeOption","sourcesOptionM","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","credsFromParameters","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","now","Date","beginTimestamp","tempStartDate","setTime","toISOString","tempEndDate","endTimestamp","beginTs","parse","intermediateEndTs","opts","sources","level","transactionId","searchString","getNoiseFilters","defaults"],"sources":["cli/logging/logs-fetch.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\n\nconst { provisionCreds, fetchLogs, resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = SECONDS_IN_1_HOUR;\n\nconst program = new Command('frodo logs fetch');\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(common.sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \\\n(-e is ignored)'\n )\n )\n .addOption(\n new Option(\n '-e, --end-timestamp <endTs>',\n 'End timestamp for period. Default: \"now\"'\n )\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n const now = Date.now() / 1000;\n if (\n typeof options.beginTimestamp === 'undefined' ||\n !options.beginTimestamp\n ) {\n // no beginTimestamp value specified, default is 1 hour ago\n const tempStartDate = new Date();\n tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);\n options.beginTimestamp = tempStartDate.toISOString();\n // also override endTimestamp to now\n const tempEndDate = new Date();\n tempEndDate.setTime(now * 1000);\n options.endTimestamp = tempEndDate;\n printMessage(\n 'No timestamps specified, defaulting to logs from 1 hour ago',\n 'info'\n );\n }\n if (typeof options.endTimestamp === 'undefined' || !options.endTimestamp) {\n // no endTimestamp value specified, default is now\n options.endTimestamp = now * 1000;\n printMessage(\n 'No end timestamp specified, defaulting end timestamp to \"now\"',\n 'info'\n );\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n if (Date.parse(options.endTimestamp) / 1000 < beginTs) {\n printMessage('End timestamp can not be before begin timestamp', 'error');\n return;\n }\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n return;\n }\n let intermediateEndTs = 0;\n printMessage(\n `Fetching ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}]...`\n );\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n\n do {\n intermediateEndTs = beginTs + LOG_TIME_WINDOW_INCREMENT;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < Date.parse(options.endTimestamp) / 1000);\n });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"logs-fetch.js","names":["Command","Option","Authenticate","ConnectionProfile","Log","state","common","config","printMessage","provisionCreds","fetchLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","verboseOption","debugOption","curlirizeOption","sourcesOptionM","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","credsFromParameters","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","conn","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","now","Date","beginTimestamp","tempStartDate","setTime","toISOString","tempEndDate","endTimestamp","beginTs","parse","intermediateEndTs","opts","sources","level","transactionId","searchString","getNoiseFilters","defaults"],"sources":["cli/logging/logs-fetch.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\n\nconst { provisionCreds, fetchLogs, resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = SECONDS_IN_1_HOUR;\n\nconst program = new Command('frodo logs fetch');\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(common.sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \\\n(-e is ignored)'\n )\n )\n .addOption(\n new Option(\n '-e, --end-timestamp <endTs>',\n 'End timestamp for period. Default: \"now\"'\n )\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.logApiKey != null && conn.logApiSecret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.logApiKey);\n state.default.session.setLogApiSecret(conn.logApiSecret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n const now = Date.now() / 1000;\n if (\n typeof options.beginTimestamp === 'undefined' ||\n !options.beginTimestamp\n ) {\n // no beginTimestamp value specified, default is 1 hour ago\n const tempStartDate = new Date();\n tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);\n options.beginTimestamp = tempStartDate.toISOString();\n // also override endTimestamp to now\n const tempEndDate = new Date();\n tempEndDate.setTime(now * 1000);\n options.endTimestamp = tempEndDate;\n printMessage(\n 'No timestamps specified, defaulting to logs from 1 hour ago',\n 'info'\n );\n }\n if (typeof options.endTimestamp === 'undefined' || !options.endTimestamp) {\n // no endTimestamp value specified, default is now\n options.endTimestamp = now * 1000;\n printMessage(\n 'No end timestamp specified, defaulting end timestamp to \"now\"',\n 'info'\n );\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n if (Date.parse(options.endTimestamp) / 1000 < beginTs) {\n printMessage('End timestamp can not be before begin timestamp', 'error');\n return;\n }\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n return;\n }\n let intermediateEndTs = 0;\n printMessage(\n `Fetching ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}]...`\n );\n if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI\n\n do {\n intermediateEndTs = beginTs + LOG_TIME_WINDOW_INCREMENT;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < Date.parse(options.endTimestamp) / 1000);\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -26,10 +26,10 @@ program.description('List available ID Cloud log sources.').helpOption('-h, --he
26
26
  printMessage('Listing available ID Cloud log sources...');
27
27
  const conn = await getConnectionProfile();
28
28
  state.default.session.setTenant(conn.tenant);
29
- if (conn.key != null && conn.secret != null) {
29
+ if (conn.logApiKey != null && conn.logApiSecret != null) {
30
30
  credsFromParameters = false;
31
- state.default.session.setLogApiKey(conn.key);
32
- state.default.session.setLogApiSecret(conn.secret);
31
+ state.default.session.setLogApiKey(conn.logApiKey);
32
+ state.default.session.setLogApiSecret(conn.logApiSecret);
33
33
  } else {
34
34
  if (conn.username == null && conn.password == null) {
35
35
  if (!state.default.session.getUsername() && !state.default.session.getPassword()) {
@@ -51,7 +51,7 @@ program.description('List available ID Cloud log sources.').helpOption('-h, --he
51
51
  if (sources.length === 0) {
52
52
  printMessage("Can't get sources, possible cause - wrong API key or secret", 'error');
53
53
  } else {
54
- if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI
54
+ if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI
55
55
  printMessage('Available log sources:');
56
56
  sources.forEach(source => {
57
57
  printMessage(`${source}`, 'info');
@@ -1 +1 @@
1
- {"version":3,"file":"logs-list.js","names":["Authenticate","ConnectionProfile","Log","state","Command","printMessage","common","provisionCreds","getLogSources","getConnectionProfile","saveConnectionProfile","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","user","password","options","credsFromParameters","default","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","sources","length","forEach","source","parse"],"sources":["cli/logging/logs-list.ts"],"sourcesContent":["import {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport { Command } from 'commander';\nimport { printMessage } from '../../utils/Console';\nimport * as common from '../cmd_common';\n\nconst { provisionCreds, getLogSources } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo logs list');\nprogram\n .description('List available ID Cloud log sources.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .action(async (host, user, password, options) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n printMessage('Listing available ID Cloud log sources...');\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n\n const sources = await getLogSources();\n if (sources.length === 0) {\n printMessage(\n \"Can't get sources, possible cause - wrong API key or secret\",\n 'error'\n );\n } else {\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n printMessage('Available log sources:');\n sources.forEach((source) => {\n printMessage(`${source}`, 'info');\n });\n printMessage('You can use any combination of comma separated sources.');\n printMessage('For example:');\n printMessage(`$ frodo logs tail -c am-core,idm-core ${host}`, 'info');\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"logs-list.js","names":["Authenticate","ConnectionProfile","Log","state","Command","printMessage","common","provisionCreds","getLogSources","getConnectionProfile","saveConnectionProfile","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","user","password","options","credsFromParameters","default","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","conn","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","sources","length","forEach","source","parse"],"sources":["cli/logging/logs-list.ts"],"sourcesContent":["import {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport { Command } from 'commander';\nimport { printMessage } from '../../utils/Console';\nimport * as common from '../cmd_common';\n\nconst { provisionCreds, getLogSources } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo logs list');\nprogram\n .description('List available ID Cloud log sources.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .action(async (host, user, password, options) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n printMessage('Listing available ID Cloud log sources...');\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.logApiKey != null && conn.logApiSecret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.logApiKey);\n state.default.session.setLogApiSecret(conn.logApiSecret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n\n const sources = await getLogSources();\n if (sources.length === 0) {\n printMessage(\n \"Can't get sources, possible cause - wrong API key or secret\",\n 'error'\n );\n } else {\n if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI\n printMessage('Available log sources:');\n sources.forEach((source) => {\n printMessage(`${source}`, 'info');\n });\n printMessage('You can use any combination of comma separated sources.');\n printMessage('For example:');\n printMessage(`$ frodo logs tail -c am-core,idm-core ${host}`, 'info');\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -31,10 +31,10 @@ Following values are possible (values on the same line are equivalent): \
31
31
  state.default.session.setCurlirize(options.curlirize);
32
32
  const conn = await getConnectionProfile();
33
33
  state.default.session.setTenant(conn.tenant);
34
- if (conn.key != null && conn.secret != null) {
34
+ if (conn.logApiKey != null && conn.logApiSecret != null) {
35
35
  credsFromParameters = false;
36
- state.default.session.setLogApiKey(conn.key);
37
- state.default.session.setLogApiSecret(conn.secret);
36
+ state.default.session.setLogApiKey(conn.logApiKey);
37
+ state.default.session.setLogApiSecret(conn.logApiSecret);
38
38
  } else {
39
39
  if (conn.username == null && conn.password == null) {
40
40
  if (!state.default.session.getUsername() && !state.default.session.getPassword()) {
@@ -53,7 +53,7 @@ Following values are possible (values on the same line are equivalent): \
53
53
  }
54
54
  }
55
55
  printMessage(`Tailing ID Cloud logs from the following sources: ${command.opts().sources} and levels [${resolveLevel(command.opts().level)}]...`);
56
- if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI
56
+ if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI
57
57
  await tailLogs(command.opts().sources, resolveLevel(command.opts().level), command.opts().transactionId, null, config.getNoiseFilters(options.defaults));
58
58
  });
59
59
  program.parse();
@@ -1 +1 @@
1
- {"version":3,"file":"logs-tail.js","names":["Command","Option","Authenticate","ConnectionProfile","Log","state","common","config","printMessage","provisionCreds","tailLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","verboseOption","debugOption","curlirizeOption","sourcesOptionM","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","credsFromParameters","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","opts","sources","level","transactionId","getNoiseFilters","defaults","parse"],"sources":["cli/logging/logs-tail.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\n\nconst { provisionCreds, tailLogs, resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo logs tail');\nprogram\n .description('Tail Identity Cloud logs.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(common.sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n printMessage(\n `Tailing ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}]...`\n );\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n await tailLogs(\n command.opts().sources,\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n null,\n config.getNoiseFilters(options.defaults)\n );\n });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"logs-tail.js","names":["Command","Option","Authenticate","ConnectionProfile","Log","state","common","config","printMessage","provisionCreds","tailLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","verboseOption","debugOption","curlirizeOption","sourcesOptionM","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","credsFromParameters","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","conn","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","opts","sources","level","transactionId","getNoiseFilters","defaults","parse"],"sources":["cli/logging/logs-tail.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\n\nconst { provisionCreds, tailLogs, resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo logs tail');\nprogram\n .description('Tail Identity Cloud logs.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(common.sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.logApiKey != null && conn.logApiSecret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.logApiKey);\n state.default.session.setLogApiSecret(conn.logApiSecret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n printMessage(\n `Tailing ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}]...`\n );\n if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI\n await tailLogs(\n command.opts().sources,\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n null,\n config.getNoiseFilters(options.defaults)\n );\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ const {
6
6
  getTokens
7
7
  } = Authenticate;
8
8
  const program = new Command('frodo service delete');
9
- program.description('Delete AM services.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(new Option('-i, --id <id>', 'Id of Service to be deleted.')).addOption(new Option('-a, --all', 'Delete all services. Ignored with -i.')).action(async (host, realm, user, password, options) => {
9
+ program.description('Delete AM services.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(new Option('-i, --id <id>', 'Id of Service to be deleted.')).addOption(new Option('-a, --all', 'Delete all services. Ignored with -i.')).addOption(new Option('-g, --global', 'List global services.')).action(async (host, realm, user, password, options) => {
10
10
  state.default.session.setTenant(host);
11
11
  state.default.session.setRealm(realm);
12
12
  state.default.session.setUsername(user);
@@ -16,10 +16,11 @@ program.description('Delete AM services.').helpOption('-h, --help', 'Help').show
16
16
  state.default.session.setVerbose(options.verbose);
17
17
  state.default.session.setDebug(options.debug);
18
18
  state.default.session.setCurlirize(options.curlirize);
19
+ const globalConfig = options.global ?? false;
19
20
  if (options.id && (await getTokens())) {
20
- await deleteService(options.id);
21
+ await deleteService(options.id, globalConfig);
21
22
  } else if (options.all && (await getTokens())) {
22
- await deleteServices();
23
+ await deleteServices(globalConfig);
23
24
  } else {
24
25
  program.help();
25
26
  }