@rockcarver/frodo-cli 2.0.0-27 → 2.0.0-29

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/esm/app.js +4 -0
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/FrodoCommand.js +10 -4
  5. package/esm/cli/FrodoCommand.js.map +1 -1
  6. package/esm/cli/admin/admin-get-access-token.js +1 -1
  7. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  8. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +1 -1
  9. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  10. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +1 -1
  11. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  12. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +1 -1
  13. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  14. package/esm/cli/admin/admin-list-static-user-mappings.js +1 -1
  15. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  16. package/esm/cli/authz/authz-policy-delete.js +2 -2
  17. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  18. package/esm/cli/authz/authz-set-delete.js +2 -2
  19. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  20. package/esm/cli/authz/authz-type-delete.js +3 -3
  21. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  22. package/esm/cli/esv/esv-secret-export.js +14 -3
  23. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  24. package/esm/cli/esv/esv-secret.js +1 -2
  25. package/esm/cli/esv/esv-secret.js.map +1 -1
  26. package/esm/cli/esv/esv-variable-delete.js +2 -2
  27. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  28. package/esm/cli/esv/esv-variable-export.js +15 -4
  29. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  30. package/esm/cli/esv/esv-variable.js +1 -2
  31. package/esm/cli/esv/esv-variable.js.map +1 -1
  32. package/esm/cli/journey/journey-describe.js +1 -0
  33. package/esm/cli/journey/journey-describe.js.map +1 -1
  34. package/esm/cli/journey/journey-export.js +11 -1
  35. package/esm/cli/journey/journey-export.js.map +1 -1
  36. package/esm/ops/CirclesOfTrustOps.js +1 -1
  37. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  38. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  39. package/esm/ops/PolicyOps.js +5 -15
  40. package/esm/ops/PolicyOps.js.map +1 -1
  41. package/esm/ops/PolicySetOps.js +11 -10
  42. package/esm/ops/PolicySetOps.js.map +1 -1
  43. package/esm/ops/RealmOps.js +3 -3
  44. package/esm/ops/RealmOps.js.map +1 -1
  45. package/esm/ops/ResourceTypeOps.js +11 -25
  46. package/esm/ops/ResourceTypeOps.js.map +1 -1
  47. package/esm/ops/Saml2Ops.js +2 -2
  48. package/esm/ops/Saml2Ops.js.map +1 -1
  49. package/esm/ops/SecretsOps.js +73 -5
  50. package/esm/ops/SecretsOps.js.map +1 -1
  51. package/esm/ops/VariablesOps.js +82 -8
  52. package/esm/ops/VariablesOps.js.map +1 -1
  53. package/global-jest-setup.js +4 -0
  54. package/package.json +4 -3
package/CHANGELOG.md CHANGED
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - rockcarver/frodo-lib#53: Frodo Library now uses a file-based secure token cache to persist session and access tokens for re-use. The cached tokens are protected by the credential that was used to obtain them. Session tokens are encrypted using the hashed password as the master key, access tokens are encrypted using the hashed JWK private key as the master key. Therefore only users and processes with the correct credentials can access the tokens in the cache.
13
+
14
+ - The new default behavior is for Frodo CLI to use the new token cache for all applicable commands.
15
+ - A new global option `--no-cache` has been added to all commands to allow disabling the cache for indiviual invocations.
16
+ - A new environment variable `FRODO_NO_CACHE` is available to globally turn off token caching.
17
+ - A new environment variable `FRODO_TOKEN_CACHE_PATH` is available to instruct Frodo Library to use a non-default token cache file.
18
+
19
+ - rockcarver/frodo-lib#340: Frodo Library now autotomatically refreshes expired session and access tokens.
20
+
21
+ - The new default behavior is for Frodo CLI to automatically refresh tokens. This will only ever be noticeable during long-running operations like `frodo journey prune` or `frodo esv apply` that can take longer than 15 mins to complete.
22
+
23
+ ### Fixed
24
+
25
+ - \#316: Frodo Library now properly exports scripts referenced by the `Device Match` node if the `Use Custom Matching Script` option is selected.
26
+
27
+ ## [2.0.0-28] - 2023-10-25
28
+
29
+ ## [2.0.0-27] - 2023-10-22
30
+
10
31
  ## [2.0.0-26] - 2023-10-19
11
32
 
12
33
  ## [2.0.0-25] - 2023-10-19
@@ -1367,7 +1388,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1367
1388
  - Fixed problem with adding connection profiles
1368
1389
  - Miscellaneous bug fixes
1369
1390
 
1370
- [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-26...HEAD
1391
+ [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-28...HEAD
1392
+
1393
+ [2.0.0-28]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-27...v2.0.0-28
1394
+
1395
+ [2.0.0-27]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-26...v2.0.0-27
1371
1396
 
1372
1397
  [2.0.0-26]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-25...v2.0.0-26
1373
1398
 
package/esm/app.js CHANGED
@@ -28,11 +28,15 @@ import { getVersions } from './utils/Version';
28
28
  const {
29
29
  initConnectionProfiles
30
30
  } = frodo.conn;
31
+ const {
32
+ initTokenCache
33
+ } = frodo.cache;
31
34
  (async () => {
32
35
  try {
33
36
  const program = new Command('frodo').version(await getVersions(false), '-v, --version');
34
37
  printMessage(await getVersions(true), 'text', false);
35
38
  await initConnectionProfiles();
39
+ await initTokenCache();
36
40
  program.addCommand(admin());
37
41
  program.addCommand(agent());
38
42
  program.addCommand(authz());
package/esm/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","names":["frodo","Command","admin","agent","app","authz","conn","email","esv","idm","idp","info","journey","log","oauth","realm","saml","script","service","shell","theme","printMessage","getVersions","initConnectionProfiles","program","version","addCommand","showHelpAfterError","enablePositionalOptions","parse","e","process","exitCode","stack"],"sources":["../src/app.ts"],"sourcesContent":["import { frodo } 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 authz from './cli/authz/authz';\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 log from './cli/log/log';\nimport oauth from './cli/oauth/oauth';\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 shell from './cli/shell/shell';\n// enable sample command template.\n// import something from './cli/_template/something';\nimport theme from './cli/theme/theme';\nimport { printMessage } from './utils/Console';\nimport { getVersions } from './utils/Version';\n\nconst { initConnectionProfiles } = frodo.conn;\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(authz());\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(log());\n program.addCommand(oauth());\n program.addCommand(realm());\n program.addCommand(saml());\n program.addCommand(script());\n program.addCommand(service());\n program.addCommand(shell());\n program.addCommand(theme());\n // enable sample command template.\n // program.addCommand(something());\n\n program.showHelpAfterError();\n program.enablePositionalOptions();\n program.parse();\n } catch (e) {\n process.exitCode = 1;\n printMessage(`ERROR: exception running frodo - ${e}`, 'error');\n printMessage(e.stack, 'error');\n }\n})();\n"],"mappings":"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"}
1
+ {"version":3,"file":"app.js","names":["frodo","Command","admin","agent","app","authz","conn","email","esv","idm","idp","info","journey","log","oauth","realm","saml","script","service","shell","theme","printMessage","getVersions","initConnectionProfiles","initTokenCache","cache","program","version","addCommand","showHelpAfterError","enablePositionalOptions","parse","e","process","exitCode","stack"],"sources":["../src/app.ts"],"sourcesContent":["import { frodo } 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 authz from './cli/authz/authz';\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 log from './cli/log/log';\nimport oauth from './cli/oauth/oauth';\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 shell from './cli/shell/shell';\n// enable sample command template.\n// import something from './cli/_template/something';\nimport theme from './cli/theme/theme';\nimport { printMessage } from './utils/Console';\nimport { getVersions } from './utils/Version';\n\nconst { initConnectionProfiles } = frodo.conn;\nconst { initTokenCache } = frodo.cache;\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 await initTokenCache();\n\n program.addCommand(admin());\n program.addCommand(agent());\n program.addCommand(authz());\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(log());\n program.addCommand(oauth());\n program.addCommand(realm());\n program.addCommand(saml());\n program.addCommand(script());\n program.addCommand(service());\n program.addCommand(shell());\n program.addCommand(theme());\n // enable sample command template.\n // program.addCommand(something());\n\n program.showHelpAfterError();\n program.enablePositionalOptions();\n program.parse();\n } catch (e) {\n process.exitCode = 1;\n printMessage(`ERROR: exception running frodo - ${e}`, 'error');\n printMessage(e.stack, 'error');\n }\n})();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,OAAO,QAAQ,WAAW;;AAEnC;AACA,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,KAAK,MAAM,mBAAmB;AACrC,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,GAAG,MAAM,eAAe;AAC/B,OAAOC,KAAK,MAAM,mBAAmB;AACrC,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;AACA;AACA,OAAOC,KAAK,MAAM,mBAAmB;AACrC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,MAAM;EAAEC;AAAuB,CAAC,GAAGvB,KAAK,CAACM,IAAI;AAC7C,MAAM;EAAEkB;AAAe,CAAC,GAAGxB,KAAK,CAACyB,KAAK;AAEtC,CAAC,YAAY;EACX,IAAI;IACF,MAAMC,OAAO,GAAG,IAAIzB,OAAO,CAAC,OAAO,CAAC,CAAC0B,OAAO,CAC1C,MAAML,WAAW,CAAC,KAAK,CAAC,EACxB,eACF,CAAC;IAEDD,YAAY,CAAC,MAAMC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;IAEpD,MAAMC,sBAAsB,CAAC,CAAC;IAC9B,MAAMC,cAAc,CAAC,CAAC;IAEtBE,OAAO,CAACE,UAAU,CAAC1B,KAAK,CAAC,CAAC,CAAC;IAC3BwB,OAAO,CAACE,UAAU,CAACzB,KAAK,CAAC,CAAC,CAAC;IAC3BuB,OAAO,CAACE,UAAU,CAACvB,KAAK,CAAC,CAAC,CAAC;IAC3BqB,OAAO,CAACE,UAAU,CAACxB,GAAG,CAAC,CAAC,CAAC;IACzBsB,OAAO,CAACE,UAAU,CAACtB,IAAI,CAAC,CAAC,CAAC;IAC1BoB,OAAO,CAACE,UAAU,CAACrB,KAAK,CAAC,CAAC,CAAC;IAC3BmB,OAAO,CAACE,UAAU,CAACpB,GAAG,CAAC,CAAC,CAAC;IACzBkB,OAAO,CAACE,UAAU,CAACnB,GAAG,CAAC,CAAC,CAAC;IACzBiB,OAAO,CAACE,UAAU,CAAClB,GAAG,CAAC,CAAC,CAAC;IACzBgB,OAAO,CAACE,UAAU,CAACjB,IAAI,CAAC,CAAC,CAAC;IAC1Be,OAAO,CAACE,UAAU,CAAChB,OAAO,CAAC,CAAC,CAAC;IAC7Bc,OAAO,CAACE,UAAU,CAACf,GAAG,CAAC,CAAC,CAAC;IACzBa,OAAO,CAACE,UAAU,CAACd,KAAK,CAAC,CAAC,CAAC;IAC3BY,OAAO,CAACE,UAAU,CAACb,KAAK,CAAC,CAAC,CAAC;IAC3BW,OAAO,CAACE,UAAU,CAACZ,IAAI,CAAC,CAAC,CAAC;IAC1BU,OAAO,CAACE,UAAU,CAACX,MAAM,CAAC,CAAC,CAAC;IAC5BS,OAAO,CAACE,UAAU,CAACV,OAAO,CAAC,CAAC,CAAC;IAC7BQ,OAAO,CAACE,UAAU,CAACT,KAAK,CAAC,CAAC,CAAC;IAC3BO,OAAO,CAACE,UAAU,CAACR,KAAK,CAAC,CAAC,CAAC;IAC3B;IACA;;IAEAM,OAAO,CAACG,kBAAkB,CAAC,CAAC;IAC5BH,OAAO,CAACI,uBAAuB,CAAC,CAAC;IACjCJ,OAAO,CAACK,KAAK,CAAC,CAAC;EACjB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpBb,YAAY,CAAE,oCAAmCW,CAAE,EAAC,EAAE,OAAO,CAAC;IAC9DX,YAAY,CAACW,CAAC,CAACG,KAAK,EAAE,OAAO,CAAC;EAChC;AACF,CAAC,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { state } from '@rockcarver/frodo-lib';
1
+ import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import { Argument, Command, Option } from 'commander';
3
3
  import fs from 'fs';
4
4
  import * as globalConfig from '../storage/StaticStorage';
@@ -23,8 +23,10 @@ const insecureOption = new Option('-k, --insecure', 'Allow insecure connections
23
23
  const verboseOption = new Option('--verbose', 'Verbose output during command execution. If specified, may or may not produce additional output.');
24
24
  const debugOption = new Option('--debug', 'Debug output during command execution. If specified, may or may not produce additional output helpful for troubleshooting.');
25
25
  const curlirizeOption = new Option('--curlirize', 'Output all network calls in curl format.');
26
+ const noCacheOption = new Option('--no-cache', 'Disable token cache for this operation.');
27
+ const flushCacheOption = new Option('--flush-cache', 'Flush token cache.');
26
28
  const defaultArgs = [hostArgument, realmArgument, usernameArgument, passwordArgument];
27
- const defaultOpts = [serviceAccountIdOption, serviceAccountJwkFileOption, deploymentOption, directoryOption, insecureOption, verboseOption, debugOption, curlirizeOption];
29
+ const defaultOpts = [serviceAccountIdOption, serviceAccountJwkFileOption, deploymentOption, directoryOption, insecureOption, verboseOption, debugOption, curlirizeOption, noCacheOption, flushCacheOption];
28
30
  const stateMap = {
29
31
  [hostArgument.name()]: host => state.setHost(host),
30
32
  [realmArgument.name()]: realm => state.setRealm(realm),
@@ -45,7 +47,11 @@ const stateMap = {
45
47
  [insecureOption.attributeName()]: insecure => state.setAllowInsecureConnection(insecure),
46
48
  [verboseOption.attributeName()]: verbose => state.setVerbose(verbose),
47
49
  [debugOption.attributeName()]: debug => state.setDebug(debug),
48
- [curlirizeOption.attributeName()]: curlirize => state.setCurlirize(curlirize)
50
+ [curlirizeOption.attributeName()]: curlirize => state.setCurlirize(curlirize),
51
+ [noCacheOption.attributeName()]: cache => state.setUseTokenCache(cache),
52
+ [flushCacheOption.attributeName()]: flush => {
53
+ if (flush) frodo.cache.flush();
54
+ }
49
55
  };
50
56
 
51
57
  /**
@@ -113,7 +119,7 @@ export class FrodoCommand extends FrodoStubCommand {
113
119
  }
114
120
 
115
121
  // additional help
116
- this.addHelpText('after', `\nEvironment Variables:\n` + ` FRODO_HOST: Access Management base URL. Overrides 'host' argument.\n` + ` FRODO_REALM: Realm. Overrides 'realm' argument.\n` + ` FRODO_USERNAME: Username. Overrides 'username' argument.\n` + ` FRODO_PASSWORD: Password. Overrides 'password' argument.\n` + ` FRODO_SA_ID: Service account uuid. Overrides '--sa-id' option.\n` + ` FRODO_SA_JWK: Service account JWK. Overrides '--sa-jwk-file' option but takes the actual JWK as a value, not a file name.\n` + ('frodo conn save' === this.name() ? ` FRODO_LOG_KEY: Log API key. Overrides '--log-api-key' option.\n` + ` FRODO_LOG_SECRET: Log API secret. Overrides '--log-api-secret' option.\n` : ``) + (this.name().startsWith('frodo log') ? ` FRODO_LOG_KEY: Log API key. Overrides 'username' argument.\n` + ` FRODO_LOG_SECRET: Log API secret. Overrides 'password' argument.\n` : ``) + ` FRODO_CONNECTION_PROFILES_PATH: Use this connection profiles file instead of '~/.frodo/Connections.json'.\n` + ` FRODO_AUTHENTICATION_SERVICE: Name of a login journey to use.\n` + ` FRODO_DEBUG: Set to any value to enable debug output. Same as '--debug'.\n` + ` FRODO_MASTER_KEY_PATH: Use this master key file instead of '~/.frodo/masterkey.key' file.\n` + ` FRODO_MASTER_KEY: Use this master key instead of '~/.frodo/masterkey.key' file. Takes precedence over FRODO_MASTER_KEY_PATH.\n`);
122
+ this.addHelpText('after', `\nEvironment Variables:\n` + ` FRODO_HOST: Access Management base URL. Overrides 'host' argument.\n` + ` FRODO_REALM: Realm. Overrides 'realm' argument.\n` + ` FRODO_USERNAME: Username. Overrides 'username' argument.\n` + ` FRODO_PASSWORD: Password. Overrides 'password' argument.\n` + ` FRODO_SA_ID: Service account uuid. Overrides '--sa-id' option.\n` + ` FRODO_SA_JWK: Service account JWK. Overrides '--sa-jwk-file' option but takes the actual JWK as a value, not a file name.\n` + ` FRODO_NO_CACHE: Disable token cache. Same as '--no-cache' option.\n` + ` FRODO_TOKEN_CACHE_PATH: Use this token cache file instead of '~/.frodo/TokenCache.json'.\n` + ('frodo conn save' === this.name() ? ` FRODO_LOG_KEY: Log API key. Overrides '--log-api-key' option.\n` + ` FRODO_LOG_SECRET: Log API secret. Overrides '--log-api-secret' option.\n` : ``) + (this.name().startsWith('frodo log') ? ` FRODO_LOG_KEY: Log API key. Overrides 'username' argument.\n` + ` FRODO_LOG_SECRET: Log API secret. Overrides 'password' argument.\n` : ``) + ` FRODO_CONNECTION_PROFILES_PATH: Use this connection profiles file instead of '~/.frodo/Connections.json'.\n` + ` FRODO_AUTHENTICATION_SERVICE: Name of a login journey to use.\n` + ` FRODO_DEBUG: Set to any value to enable debug output. Same as '--debug'.\n` + ` FRODO_MASTER_KEY_PATH: Use this master key file instead of '~/.frodo/masterkey.key' file.\n` + ` FRODO_MASTER_KEY: Use this master key instead of what's in '~/.frodo/masterkey.key'. Takes precedence over FRODO_MASTER_KEY_PATH.\n`);
117
123
  }
118
124
 
119
125
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"FrodoCommand.js","names":["state","Argument","Command","Option","fs","globalConfig","createProgressIndicator","curlirizeMessage","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","verboseMessage","hostArgument","realmArgument","default","process","env","FRODO_REALM","DEFAULT_REALM_KEY","usernameArgument","passwordArgument","serviceAccountIdOption","serviceAccountJwkFileOption","deploymentOption","choices","DEPLOYMENT_TYPES","directoryOption","undefined","insecureOption","verboseOption","debugOption","curlirizeOption","defaultArgs","defaultOpts","stateMap","name","host","setHost","realm","setRealm","username","setUsername","password","setPassword","attributeName","saId","setServiceAccountId","file","data","readFileSync","jwk","JSON","parse","toString","setServiceAccountJwk","error","message","type","setDeploymentType","directory","setDirectory","insecure","setAllowInsecureConnection","verbose","setVerbose","debug","setDebug","curlirize","setCurlirize","FrodoStubCommand","constructor","listenerCount","on","_error$config","_error$config2","_error$response","config","method","url","response","stack","exitCode","helpOption","showHelpAfterError","configureHelp","sortSubcommands","sortOptions","setPrintHandler","setVerboseHandler","setDebugHandler","setCurlirizeHandler","setCreateProgressHandler","setUpdateProgressHandler","setStopProgressHandler","FrodoCommand","omits","arg","includes","addArgument","opt","addOption","addHelpText","startsWith","handleDefaultArgsAndOpts","args","command","pop","options","i","v","entries","_args","length","Object","keys","handler","k"],"sources":["../../src/cli/FrodoCommand.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Argument, Command, Option } from 'commander';\nimport fs from 'fs';\n\nimport * as globalConfig from '../storage/StaticStorage';\nimport {\n createProgressIndicator,\n curlirizeMessage,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n verboseMessage,\n} from '../utils/Console.js';\n\nconst hostArgument = new Argument(\n '[host]',\n 'Access Management base URL, e.g.: https://cdk.iam.example.com/am. To use a connection profile, just specify a unique substring.'\n);\n\nconst realmArgument = new Argument(\n '[realm]',\n \"Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise.\"\n).default(\n // must check for FRODO_REALM env variable here because otherwise cli will overwrite realm with default value\n process.env.FRODO_REALM || globalConfig.DEFAULT_REALM_KEY,\n '\"alpha\" for Identity Cloud tenants, \"/\" otherwise.'\n);\n\nconst usernameArgument = new Argument(\n '[username]',\n 'Username to login with. Must be an admin user with appropriate rights to manage authentication journeys/trees.'\n);\n\nconst passwordArgument = new Argument('[password]', 'Password.');\n\nconst serviceAccountIdOption = new Option(\n '--sa-id <sa-id>',\n 'Service account id.'\n);\n\nconst serviceAccountJwkFileOption = new Option(\n '--sa-jwk-file <file>',\n 'File containing the JSON Web Key (JWK) associated with the the service account.'\n);\n\nconst deploymentOption = new Option(\n '-m, --type <type>',\n 'Override auto-detected deployment type. Valid values for type: \\n\\\nclassic: A classic Access Management-only deployment with custom layout and configuration. \\n\\\ncloud: A ForgeRock Identity Cloud environment. \\n\\\nforgeops: A ForgeOps CDK or CDM deployment. \\n\\\nThe detected or provided deployment type controls certain behavior like obtaining an Identity \\\nManagement admin token or not and whether to export/import referenced email templates or how \\\nto walk through the tenant admin login flow of Identity Cloud and handle MFA'\n).choices(globalConfig.DEPLOYMENT_TYPES);\n\nconst directoryOption = new Option(\n '-D, --directory <directory>',\n 'Set the working directory.'\n).default(undefined, 'undefined');\n\nconst insecureOption = new Option(\n '-k, --insecure',\n 'Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https (HTTPS_PROXY=http://<host>:<port>), in that case the proxy must provide this capability.'\n).default(false, \"Don't allow insecure connections\");\n\nconst verboseOption = new Option(\n '--verbose',\n 'Verbose output during command execution. If specified, may or may not produce additional output.'\n);\n\nconst debugOption = new Option(\n '--debug',\n 'Debug output during command execution. If specified, may or may not produce additional output helpful for troubleshooting.'\n);\n\nconst curlirizeOption = new Option(\n '--curlirize',\n 'Output all network calls in curl format.'\n);\n\nconst defaultArgs = [\n hostArgument,\n realmArgument,\n usernameArgument,\n passwordArgument,\n];\n\nconst defaultOpts = [\n serviceAccountIdOption,\n serviceAccountJwkFileOption,\n deploymentOption,\n directoryOption,\n insecureOption,\n verboseOption,\n debugOption,\n curlirizeOption,\n];\n\nconst stateMap = {\n [hostArgument.name()]: (host: string) => state.setHost(host),\n [realmArgument.name()]: (realm: string) => state.setRealm(realm),\n [usernameArgument.name()]: (username: string) => state.setUsername(username),\n [passwordArgument.name()]: (password: string) => state.setPassword(password),\n [serviceAccountIdOption.attributeName()]: (saId: string) =>\n state.setServiceAccountId(saId),\n [serviceAccountJwkFileOption.attributeName()]: (file: string) => {\n try {\n const data = fs.readFileSync(file);\n const jwk = JSON.parse(data.toString());\n state.setServiceAccountJwk(jwk);\n } catch (error) {\n printMessage(\n `Error parsing JWK from file ${file}: ${error.message}`,\n 'error'\n );\n }\n },\n [deploymentOption.attributeName()]: (type: string) =>\n state.setDeploymentType(type),\n [directoryOption.attributeName()]: (directory: string) =>\n state.setDirectory(directory),\n [insecureOption.attributeName()]: (insecure: boolean) =>\n state.setAllowInsecureConnection(insecure),\n [verboseOption.attributeName()]: (verbose: boolean) =>\n state.setVerbose(verbose),\n [debugOption.attributeName()]: (debug: boolean) => state.setDebug(debug),\n [curlirizeOption.attributeName()]: (curlirize: boolean) =>\n state.setCurlirize(curlirize),\n};\n\n/**\n * Command with default options\n */\nexport class FrodoStubCommand extends Command {\n /**\n * Creates a new FrodoCommand instance\n * @param name Name of the command\n * @param omits Array of default argument names and default option names that should not be added to this command\n */\n constructor(name: string) {\n super(name);\n\n if (!process.listenerCount('unhandledRejection')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n process.on('unhandledRejection', (error: any) => {\n printMessage(\n `${error.config?.method ? error.config.method + ' ' : ''}${\n error.config?.url ? error.config.url : ''\n }`,\n 'error'\n );\n printMessage(error.response?.data, 'error');\n printMessage(error.stack, 'error');\n printMessage(\n `Please report this unhandled error here: https://github.com/rockcarver/frodo-cli/issues`,\n 'error'\n );\n process.exitCode = 1;\n });\n }\n\n // other default settings\n this.helpOption('-h, --help', 'Help');\n this.showHelpAfterError();\n this.configureHelp({\n sortSubcommands: true,\n sortOptions: true,\n });\n\n // register default handlers\n state.setPrintHandler(printMessage);\n state.setVerboseHandler(verboseMessage);\n state.setDebugHandler(debugMessage);\n state.setCurlirizeHandler(curlirizeMessage);\n state.setCreateProgressHandler(createProgressIndicator);\n state.setUpdateProgressHandler(updateProgressIndicator);\n state.setStopProgressHandler(stopProgressIndicator);\n }\n}\n\n/**\n * Command with default options\n */\nexport class FrodoCommand extends FrodoStubCommand {\n /**\n * Creates a new FrodoCommand instance\n * @param name Name of the command\n * @param omits Array of default argument names and default option names that should not be added to this command\n */\n constructor(name: string, omits: string[] = []) {\n super(name);\n\n // register default arguments\n for (const arg of defaultArgs) {\n if (!omits.includes(arg.name())) this.addArgument(arg);\n }\n\n // register default options\n for (const opt of defaultOpts) {\n if (!omits.includes(opt.name())) this.addOption(opt);\n }\n\n // additional help\n this.addHelpText(\n 'after',\n `\\nEvironment Variables:\\n` +\n ` FRODO_HOST: Access Management base URL. Overrides 'host' argument.\\n` +\n ` FRODO_REALM: Realm. Overrides 'realm' argument.\\n` +\n ` FRODO_USERNAME: Username. Overrides 'username' argument.\\n` +\n ` FRODO_PASSWORD: Password. Overrides 'password' argument.\\n` +\n ` FRODO_SA_ID: Service account uuid. Overrides '--sa-id' option.\\n` +\n ` FRODO_SA_JWK: Service account JWK. Overrides '--sa-jwk-file' option but takes the actual JWK as a value, not a file name.\\n` +\n ('frodo conn save' === this.name()\n ? ` FRODO_LOG_KEY: Log API key. Overrides '--log-api-key' option.\\n` +\n ` FRODO_LOG_SECRET: Log API secret. Overrides '--log-api-secret' option.\\n`\n : ``) +\n (this.name().startsWith('frodo log')\n ? ` FRODO_LOG_KEY: Log API key. Overrides 'username' argument.\\n` +\n ` FRODO_LOG_SECRET: Log API secret. Overrides 'password' argument.\\n`\n : ``) +\n ` FRODO_CONNECTION_PROFILES_PATH: Use this connection profiles file instead of '~/.frodo/Connections.json'.\\n` +\n ` FRODO_AUTHENTICATION_SERVICE: Name of a login journey to use.\\n` +\n ` FRODO_DEBUG: Set to any value to enable debug output. Same as '--debug'.\\n` +\n ` FRODO_MASTER_KEY_PATH: Use this master key file instead of '~/.frodo/masterkey.key' file.\\n` +\n ` FRODO_MASTER_KEY: Use this master key instead of '~/.frodo/masterkey.key' file. Takes precedence over FRODO_MASTER_KEY_PATH.\\n`\n );\n }\n\n /**\n *\n * @param args\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleDefaultArgsAndOpts(...args: any) {\n const command = args.pop();\n const options = args.pop();\n\n // handle arguments first\n for (const [i, v] of command.args.entries()) {\n if (!command._args[i]) {\n printMessage(\n `${command.args.length} arguments supplied but command only supports ${command._args.length}.`,\n 'warn'\n );\n break;\n }\n const arg = command._args[i].name();\n // handle only default arguments\n if (Object.keys(stateMap).includes(arg)) {\n debugMessage(\n `FrodoCommand.handleDefaultArgsAndOpts: Handling default argument '${arg}'.`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const handler: any = stateMap[arg];\n handler(v);\n } else {\n debugMessage(\n `FrodoCommand.handleDefaultArgsAndOpts: Ignoring non-default argument '${arg}'.`\n );\n }\n }\n\n // handle options\n for (const [k, v] of Object.entries(options)) {\n // handle only default options\n if (Object.keys(stateMap).includes(k)) {\n debugMessage(\n `FrodoCommand.handleDefaultArgsAndOpts: Handling default option '${k}'.`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const handler: any = stateMap[k];\n handler(v);\n } else {\n debugMessage(\n `FrodoCommand.handleDefaultArgsAndOpts: Ignoring non-default option '${k}'.`\n );\n }\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FrodoCommand.js","names":["frodo","state","Argument","Command","Option","fs","globalConfig","createProgressIndicator","curlirizeMessage","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","verboseMessage","hostArgument","realmArgument","default","process","env","FRODO_REALM","DEFAULT_REALM_KEY","usernameArgument","passwordArgument","serviceAccountIdOption","serviceAccountJwkFileOption","deploymentOption","choices","DEPLOYMENT_TYPES","directoryOption","undefined","insecureOption","verboseOption","debugOption","curlirizeOption","noCacheOption","flushCacheOption","defaultArgs","defaultOpts","stateMap","name","host","setHost","realm","setRealm","username","setUsername","password","setPassword","attributeName","saId","setServiceAccountId","file","data","readFileSync","jwk","JSON","parse","toString","setServiceAccountJwk","error","message","type","setDeploymentType","directory","setDirectory","insecure","setAllowInsecureConnection","verbose","setVerbose","debug","setDebug","curlirize","setCurlirize","cache","setUseTokenCache","flush","FrodoStubCommand","constructor","listenerCount","on","_error$config","_error$config2","_error$response","config","method","url","response","stack","exitCode","helpOption","showHelpAfterError","configureHelp","sortSubcommands","sortOptions","setPrintHandler","setVerboseHandler","setDebugHandler","setCurlirizeHandler","setCreateProgressHandler","setUpdateProgressHandler","setStopProgressHandler","FrodoCommand","omits","arg","includes","addArgument","opt","addOption","addHelpText","startsWith","handleDefaultArgsAndOpts","args","command","pop","options","i","v","entries","_args","length","Object","keys","handler","k"],"sources":["../../src/cli/FrodoCommand.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Argument, Command, Option } from 'commander';\nimport fs from 'fs';\n\nimport * as globalConfig from '../storage/StaticStorage';\nimport {\n createProgressIndicator,\n curlirizeMessage,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n verboseMessage,\n} from '../utils/Console.js';\n\nconst hostArgument = new Argument(\n '[host]',\n 'Access Management base URL, e.g.: https://cdk.iam.example.com/am. To use a connection profile, just specify a unique substring.'\n);\n\nconst realmArgument = new Argument(\n '[realm]',\n \"Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise.\"\n).default(\n // must check for FRODO_REALM env variable here because otherwise cli will overwrite realm with default value\n process.env.FRODO_REALM || globalConfig.DEFAULT_REALM_KEY,\n '\"alpha\" for Identity Cloud tenants, \"/\" otherwise.'\n);\n\nconst usernameArgument = new Argument(\n '[username]',\n 'Username to login with. Must be an admin user with appropriate rights to manage authentication journeys/trees.'\n);\n\nconst passwordArgument = new Argument('[password]', 'Password.');\n\nconst serviceAccountIdOption = new Option(\n '--sa-id <sa-id>',\n 'Service account id.'\n);\n\nconst serviceAccountJwkFileOption = new Option(\n '--sa-jwk-file <file>',\n 'File containing the JSON Web Key (JWK) associated with the the service account.'\n);\n\nconst deploymentOption = new Option(\n '-m, --type <type>',\n 'Override auto-detected deployment type. Valid values for type: \\n\\\nclassic: A classic Access Management-only deployment with custom layout and configuration. \\n\\\ncloud: A ForgeRock Identity Cloud environment. \\n\\\nforgeops: A ForgeOps CDK or CDM deployment. \\n\\\nThe detected or provided deployment type controls certain behavior like obtaining an Identity \\\nManagement admin token or not and whether to export/import referenced email templates or how \\\nto walk through the tenant admin login flow of Identity Cloud and handle MFA'\n).choices(globalConfig.DEPLOYMENT_TYPES);\n\nconst directoryOption = new Option(\n '-D, --directory <directory>',\n 'Set the working directory.'\n).default(undefined, 'undefined');\n\nconst insecureOption = new Option(\n '-k, --insecure',\n 'Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https (HTTPS_PROXY=http://<host>:<port>), in that case the proxy must provide this capability.'\n).default(false, \"Don't allow insecure connections\");\n\nconst verboseOption = new Option(\n '--verbose',\n 'Verbose output during command execution. If specified, may or may not produce additional output.'\n);\n\nconst debugOption = new Option(\n '--debug',\n 'Debug output during command execution. If specified, may or may not produce additional output helpful for troubleshooting.'\n);\n\nconst curlirizeOption = new Option(\n '--curlirize',\n 'Output all network calls in curl format.'\n);\n\nconst noCacheOption = new Option(\n '--no-cache',\n 'Disable token cache for this operation.'\n);\n\nconst flushCacheOption = new Option('--flush-cache', 'Flush token cache.');\n\nconst defaultArgs = [\n hostArgument,\n realmArgument,\n usernameArgument,\n passwordArgument,\n];\n\nconst defaultOpts = [\n serviceAccountIdOption,\n serviceAccountJwkFileOption,\n deploymentOption,\n directoryOption,\n insecureOption,\n verboseOption,\n debugOption,\n curlirizeOption,\n noCacheOption,\n flushCacheOption,\n];\n\nconst stateMap = {\n [hostArgument.name()]: (host: string) => state.setHost(host),\n [realmArgument.name()]: (realm: string) => state.setRealm(realm),\n [usernameArgument.name()]: (username: string) => state.setUsername(username),\n [passwordArgument.name()]: (password: string) => state.setPassword(password),\n [serviceAccountIdOption.attributeName()]: (saId: string) =>\n state.setServiceAccountId(saId),\n [serviceAccountJwkFileOption.attributeName()]: (file: string) => {\n try {\n const data = fs.readFileSync(file);\n const jwk = JSON.parse(data.toString());\n state.setServiceAccountJwk(jwk);\n } catch (error) {\n printMessage(\n `Error parsing JWK from file ${file}: ${error.message}`,\n 'error'\n );\n }\n },\n [deploymentOption.attributeName()]: (type: string) =>\n state.setDeploymentType(type),\n [directoryOption.attributeName()]: (directory: string) =>\n state.setDirectory(directory),\n [insecureOption.attributeName()]: (insecure: boolean) =>\n state.setAllowInsecureConnection(insecure),\n [verboseOption.attributeName()]: (verbose: boolean) =>\n state.setVerbose(verbose),\n [debugOption.attributeName()]: (debug: boolean) => state.setDebug(debug),\n [curlirizeOption.attributeName()]: (curlirize: boolean) =>\n state.setCurlirize(curlirize),\n [noCacheOption.attributeName()]: (cache: boolean) =>\n state.setUseTokenCache(cache),\n [flushCacheOption.attributeName()]: (flush: boolean) => {\n if (flush) frodo.cache.flush();\n },\n};\n\n/**\n * Command with default options\n */\nexport class FrodoStubCommand extends Command {\n /**\n * Creates a new FrodoCommand instance\n * @param name Name of the command\n * @param omits Array of default argument names and default option names that should not be added to this command\n */\n constructor(name: string) {\n super(name);\n\n if (!process.listenerCount('unhandledRejection')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n process.on('unhandledRejection', (error: any) => {\n printMessage(\n `${error.config?.method ? error.config.method + ' ' : ''}${\n error.config?.url ? error.config.url : ''\n }`,\n 'error'\n );\n printMessage(error.response?.data, 'error');\n printMessage(error.stack, 'error');\n printMessage(\n `Please report this unhandled error here: https://github.com/rockcarver/frodo-cli/issues`,\n 'error'\n );\n process.exitCode = 1;\n });\n }\n\n // other default settings\n this.helpOption('-h, --help', 'Help');\n this.showHelpAfterError();\n this.configureHelp({\n sortSubcommands: true,\n sortOptions: true,\n });\n\n // register default handlers\n state.setPrintHandler(printMessage);\n state.setVerboseHandler(verboseMessage);\n state.setDebugHandler(debugMessage);\n state.setCurlirizeHandler(curlirizeMessage);\n state.setCreateProgressHandler(createProgressIndicator);\n state.setUpdateProgressHandler(updateProgressIndicator);\n state.setStopProgressHandler(stopProgressIndicator);\n }\n}\n\n/**\n * Command with default options\n */\nexport class FrodoCommand extends FrodoStubCommand {\n /**\n * Creates a new FrodoCommand instance\n * @param name Name of the command\n * @param omits Array of default argument names and default option names that should not be added to this command\n */\n constructor(name: string, omits: string[] = []) {\n super(name);\n\n // register default arguments\n for (const arg of defaultArgs) {\n if (!omits.includes(arg.name())) this.addArgument(arg);\n }\n\n // register default options\n for (const opt of defaultOpts) {\n if (!omits.includes(opt.name())) this.addOption(opt);\n }\n\n // additional help\n this.addHelpText(\n 'after',\n `\\nEvironment Variables:\\n` +\n ` FRODO_HOST: Access Management base URL. Overrides 'host' argument.\\n` +\n ` FRODO_REALM: Realm. Overrides 'realm' argument.\\n` +\n ` FRODO_USERNAME: Username. Overrides 'username' argument.\\n` +\n ` FRODO_PASSWORD: Password. Overrides 'password' argument.\\n` +\n ` FRODO_SA_ID: Service account uuid. Overrides '--sa-id' option.\\n` +\n ` FRODO_SA_JWK: Service account JWK. Overrides '--sa-jwk-file' option but takes the actual JWK as a value, not a file name.\\n` +\n ` FRODO_NO_CACHE: Disable token cache. Same as '--no-cache' option.\\n` +\n ` FRODO_TOKEN_CACHE_PATH: Use this token cache file instead of '~/.frodo/TokenCache.json'.\\n` +\n ('frodo conn save' === this.name()\n ? ` FRODO_LOG_KEY: Log API key. Overrides '--log-api-key' option.\\n` +\n ` FRODO_LOG_SECRET: Log API secret. Overrides '--log-api-secret' option.\\n`\n : ``) +\n (this.name().startsWith('frodo log')\n ? ` FRODO_LOG_KEY: Log API key. Overrides 'username' argument.\\n` +\n ` FRODO_LOG_SECRET: Log API secret. Overrides 'password' argument.\\n`\n : ``) +\n ` FRODO_CONNECTION_PROFILES_PATH: Use this connection profiles file instead of '~/.frodo/Connections.json'.\\n` +\n ` FRODO_AUTHENTICATION_SERVICE: Name of a login journey to use.\\n` +\n ` FRODO_DEBUG: Set to any value to enable debug output. Same as '--debug'.\\n` +\n ` FRODO_MASTER_KEY_PATH: Use this master key file instead of '~/.frodo/masterkey.key' file.\\n` +\n ` FRODO_MASTER_KEY: Use this master key instead of what's in '~/.frodo/masterkey.key'. Takes precedence over FRODO_MASTER_KEY_PATH.\\n`\n );\n }\n\n /**\n *\n * @param args\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleDefaultArgsAndOpts(...args: any) {\n const command = args.pop();\n const options = args.pop();\n\n // handle arguments first\n for (const [i, v] of command.args.entries()) {\n if (!command._args[i]) {\n printMessage(\n `${command.args.length} arguments supplied but command only supports ${command._args.length}.`,\n 'warn'\n );\n break;\n }\n const arg = command._args[i].name();\n // handle only default arguments\n if (Object.keys(stateMap).includes(arg)) {\n debugMessage(\n `FrodoCommand.handleDefaultArgsAndOpts: Handling default argument '${arg}'.`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const handler: any = stateMap[arg];\n handler(v);\n } else {\n debugMessage(\n `FrodoCommand.handleDefaultArgsAndOpts: Ignoring non-default argument '${arg}'.`\n );\n }\n }\n\n // handle options\n for (const [k, v] of Object.entries(options)) {\n // handle only default options\n if (Object.keys(stateMap).includes(k)) {\n debugMessage(\n `FrodoCommand.handleDefaultArgsAndOpts: Handling default option '${k}'.`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const handler: any = stateMap[k];\n handler(v);\n } else {\n debugMessage(\n `FrodoCommand.handleDefaultArgsAndOpts: Ignoring non-default option '${k}'.`\n );\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -15,7 +15,7 @@ async (host, realm, user, password, options, command) => {
15
15
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
16
16
  if (await getTokens()) {
17
17
  printMessage(`Getting an access token using client "${options.clientId}"...`);
18
- const response = (await clientCredentialsGrant(state.getHost(), options.clientId, options.clientSecret, options.scope)).data;
18
+ const response = await clientCredentialsGrant(state.getHost(), options.clientId, options.clientSecret, options.scope);
19
19
  printMessage(`Token: ${response.access_token}`);
20
20
  } else {
21
21
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-get-access-token.js","names":["frodo","state","Option","printMessage","FrodoCommand","getTokens","login","clientCredentialsGrant","oauth2oidc","endpoint","program","description","addOption","makeOptionMandatory","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","clientId","response","getHost","clientSecret","scope","data","access_token","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-get-access-token.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { clientCredentialsGrant } = frodo.oauth2oidc.endpoint;\n\nconst program = new FrodoCommand('frodo admin get-access-token');\n\nprogram\n .description('Get an access token using client credentials grant type.')\n .addOption(\n new Option('-i, --client-id [id]', 'Client id.').makeOptionMandatory()\n )\n .addOption(\n new Option(\n '-s, --client-secret [secret]',\n 'Client secret.'\n ).makeOptionMandatory()\n )\n .addOption(\n new Option('--scope [scope]', 'Request the following scope(s).').default(\n 'fr:idm:*',\n 'fr:idm:*'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Getting an access token using client \"${options.clientId}\"...`\n );\n const response = (\n await clientCredentialsGrant(\n state.getHost(),\n options.clientId,\n options.clientSecret,\n options.scope\n )\n ).data;\n printMessage(`Token: ${response.access_token}`);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AACjC,MAAM;EAAEC;AAAuB,CAAC,GAAGP,KAAK,CAACQ,UAAU,CAACC,QAAQ;AAE5D,MAAMC,OAAO,GAAG,IAAIN,YAAY,CAAC,8BAA8B,CAAC;AAEhEM,OAAO,CACJC,WAAW,CAAC,0DAA0D,CAAC,CACvEC,SAAS,CACR,IAAIV,MAAM,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAACW,mBAAmB,CAAC,CACvE,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CACR,8BAA8B,EAC9B,gBACF,CAAC,CAACW,mBAAmB,CAAC,CACxB,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC,CAACY,OAAO,CACtE,UAAU,EACV,UACF,CACF,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMhB,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,yCAAwCiB,OAAO,CAACG,QAAS,MAC5D,CAAC;IACD,MAAMC,QAAQ,GAAG,CACf,MAAMjB,sBAAsB,CAC1BN,KAAK,CAACwB,OAAO,CAAC,CAAC,EACfL,OAAO,CAACG,QAAQ,EAChBH,OAAO,CAACM,YAAY,EACpBN,OAAO,CAACO,KACV,CAAC,EACDC,IAAI;IACNzB,YAAY,CAAE,UAASqB,QAAQ,CAACK,YAAa,EAAC,CAAC;EACjD,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHrB,OAAO,CAACsB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-get-access-token.js","names":["frodo","state","Option","printMessage","FrodoCommand","getTokens","login","clientCredentialsGrant","oauth2oidc","endpoint","program","description","addOption","makeOptionMandatory","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","clientId","response","getHost","clientSecret","scope","access_token","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-get-access-token.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { clientCredentialsGrant } = frodo.oauth2oidc.endpoint;\n\nconst program = new FrodoCommand('frodo admin get-access-token');\n\nprogram\n .description('Get an access token using client credentials grant type.')\n .addOption(\n new Option('-i, --client-id [id]', 'Client id.').makeOptionMandatory()\n )\n .addOption(\n new Option(\n '-s, --client-secret [secret]',\n 'Client secret.'\n ).makeOptionMandatory()\n )\n .addOption(\n new Option('--scope [scope]', 'Request the following scope(s).').default(\n 'fr:idm:*',\n 'fr:idm:*'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Getting an access token using client \"${options.clientId}\"...`\n );\n const response = await clientCredentialsGrant(\n state.getHost(),\n options.clientId,\n options.clientSecret,\n options.scope\n );\n printMessage(`Token: ${response.access_token}`);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AACjC,MAAM;EAAEC;AAAuB,CAAC,GAAGP,KAAK,CAACQ,UAAU,CAACC,QAAQ;AAE5D,MAAMC,OAAO,GAAG,IAAIN,YAAY,CAAC,8BAA8B,CAAC;AAEhEM,OAAO,CACJC,WAAW,CAAC,0DAA0D,CAAC,CACvEC,SAAS,CACR,IAAIV,MAAM,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAACW,mBAAmB,CAAC,CACvE,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CACR,8BAA8B,EAC9B,gBACF,CAAC,CAACW,mBAAmB,CAAC,CACxB,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC,CAACY,OAAO,CACtE,UAAU,EACV,UACF,CACF,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMhB,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,yCAAwCiB,OAAO,CAACG,QAAS,MAC5D,CAAC;IACD,MAAMC,QAAQ,GAAG,MAAMjB,sBAAsB,CAC3CN,KAAK,CAACwB,OAAO,CAAC,CAAC,EACfL,OAAO,CAACG,QAAQ,EAChBH,OAAO,CAACM,YAAY,EACpBN,OAAO,CAACO,KACV,CAAC;IACDxB,YAAY,CAAE,UAASqB,QAAQ,CAACI,YAAa,EAAC,CAAC;EACjD,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHpB,OAAO,CAACqB,KAAK,CAAC,CAAC"}
@@ -14,7 +14,7 @@ program.description('Grant an oauth2 client admin privileges.').addOption(new Op
14
14
  async (host, realm, user, password, options, command) => {
15
15
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
16
16
  if (await getTokens()) {
17
- printMessage(`Granting oauth2 client "${options.target}" in realm "${state.getRealm()}" admin privileges...`);
17
+ printMessage(`Granting oauth2 client "${options.clientId || options.target}" in realm "${state.getRealm()}" admin privileges...`);
18
18
  await grantOAuth2ClientAdminPrivileges(options.clientId || options.target);
19
19
  printMessage('Done.');
20
20
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"admin-grant-oauth2-client-admin-privileges.js","names":["frodo","state","Option","printMessage","FrodoCommand","getTokens","login","grantOAuth2ClientAdminPrivileges","admin","program","description","addOption","hideHelp","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","target","getRealm","clientId","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-grant-oauth2-client-admin-privileges.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { grantOAuth2ClientAdminPrivileges } = frodo.admin;\n\nconst program = new FrodoCommand(\n 'frodo admin grant-oauth2-client-admin-privileges'\n);\n\nprogram\n .description('Grant an oauth2 client admin privileges.')\n .addOption(new Option('-i, --client-id <id>', 'OAuth2 client id.'))\n .addOption(\n new Option(\n '-t, --target <target name or id>',\n 'Name of the oauth2 client.'\n ).hideHelp()\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Granting oauth2 client \"${\n options.target\n }\" in realm \"${state.getRealm()}\" admin privileges...`\n );\n await grantOAuth2ClientAdminPrivileges(\n options.clientId || options.target\n );\n printMessage('Done.');\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AACjC,MAAM;EAAEC;AAAiC,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAExD,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAC9B,kDACF,CAAC;AAEDK,OAAO,CACJC,WAAW,CAAC,0CAA0C,CAAC,CACvDC,SAAS,CAAC,IAAIT,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,CAClES,SAAS,CACR,IAAIT,MAAM,CACR,kCAAkC,EAClC,4BACF,CAAC,CAACU,QAAQ,CAAC,CACb,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,2BACCe,OAAO,CAACG,MACT,eAAcpB,KAAK,CAACqB,QAAQ,CAAC,CAAE,uBAClC,CAAC;IACD,MAAMf,gCAAgC,CACpCW,OAAO,CAACK,QAAQ,IAAIL,OAAO,CAACG,MAC9B,CAAC;IACDlB,YAAY,CAAC,OAAO,CAAC;EACvB,CAAC,MAAM;IACLqB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHhB,OAAO,CAACiB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-grant-oauth2-client-admin-privileges.js","names":["frodo","state","Option","printMessage","FrodoCommand","getTokens","login","grantOAuth2ClientAdminPrivileges","admin","program","description","addOption","hideHelp","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","clientId","target","getRealm","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-grant-oauth2-client-admin-privileges.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { grantOAuth2ClientAdminPrivileges } = frodo.admin;\n\nconst program = new FrodoCommand(\n 'frodo admin grant-oauth2-client-admin-privileges'\n);\n\nprogram\n .description('Grant an oauth2 client admin privileges.')\n .addOption(new Option('-i, --client-id <id>', 'OAuth2 client id.'))\n .addOption(\n new Option(\n '-t, --target <target name or id>',\n 'Name of the oauth2 client.'\n ).hideHelp()\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Granting oauth2 client \"${\n options.clientId || options.target\n }\" in realm \"${state.getRealm()}\" admin privileges...`\n );\n await grantOAuth2ClientAdminPrivileges(\n options.clientId || options.target\n );\n printMessage('Done.');\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AACjC,MAAM;EAAEC;AAAiC,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAExD,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAC9B,kDACF,CAAC;AAEDK,OAAO,CACJC,WAAW,CAAC,0CAA0C,CAAC,CACvDC,SAAS,CAAC,IAAIT,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,CAClES,SAAS,CACR,IAAIT,MAAM,CACR,kCAAkC,EAClC,4BACF,CAAC,CAACU,QAAQ,CAAC,CACb,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,2BACCe,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAACI,MAC7B,eAAcrB,KAAK,CAACsB,QAAQ,CAAC,CAAE,uBAClC,CAAC;IACD,MAAMhB,gCAAgC,CACpCW,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAACI,MAC9B,CAAC;IACDnB,YAAY,CAAC,OAAO,CAAC;EACvB,CAAC,MAAM;IACLqB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHhB,OAAO,CAACiB,KAAK,CAAC,CAAC"}
@@ -17,7 +17,7 @@ async (host, realm, user, password, options, command) => {
17
17
  const adminClients = await listOAuth2AdminClients();
18
18
  adminClients.sort((a, b) => a.localeCompare(b));
19
19
  adminClients.forEach(item => {
20
- printMessage(`${item}`);
20
+ printMessage(`${item}`, 'data');
21
21
  });
22
22
  } else {
23
23
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-list-oauth2-clients-with-admin-privileges.js","names":["frodo","state","printMessage","FrodoCommand","getTokens","login","listOAuth2AdminClients","admin","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","adminClients","sort","a","b","localeCompare","forEach","item","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-list-oauth2-clients-with-admin-privileges.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { listOAuth2AdminClients } = frodo.admin;\n\nconst program = new FrodoCommand(\n 'frodo admin list-oauth2-clients-with-admin-privileges'\n);\n\nprogram.description('List oauth2 clients with admin privileges.').action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Listing oauth2 clients with admin privileges in realm \"${state.getRealm()}\"...`\n );\n const adminClients = await listOAuth2AdminClients();\n adminClients.sort((a, b) => a.localeCompare(b));\n adminClients.forEach((item) => {\n printMessage(`${item}`);\n });\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAEpD,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AACjC,MAAM;EAAEC;AAAuB,CAAC,GAAGN,KAAK,CAACO,KAAK;AAE9C,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAC9B,uDACF,CAAC;AAEDK,OAAO,CAACC,WAAW,CAAC,4CAA4C,CAAC,CAACC,MAAM;AACtE;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,0DAAyDD,KAAK,CAACiB,QAAQ,CAAC,CAAE,MAC7E,CAAC;IACD,MAAMC,YAAY,GAAG,MAAMb,sBAAsB,CAAC,CAAC;IACnDa,YAAY,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC;IAC/CH,YAAY,CAACK,OAAO,CAAEC,IAAI,IAAK;MAC7BvB,YAAY,CAAE,GAAEuB,IAAK,EAAC,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEDnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-list-oauth2-clients-with-admin-privileges.js","names":["frodo","state","printMessage","FrodoCommand","getTokens","login","listOAuth2AdminClients","admin","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","adminClients","sort","a","b","localeCompare","forEach","item","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-list-oauth2-clients-with-admin-privileges.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { listOAuth2AdminClients } = frodo.admin;\n\nconst program = new FrodoCommand(\n 'frodo admin list-oauth2-clients-with-admin-privileges'\n);\n\nprogram.description('List oauth2 clients with admin privileges.').action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Listing oauth2 clients with admin privileges in realm \"${state.getRealm()}\"...`\n );\n const adminClients = await listOAuth2AdminClients();\n adminClients.sort((a, b) => a.localeCompare(b));\n adminClients.forEach((item) => {\n printMessage(`${item}`, 'data');\n });\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAEpD,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AACjC,MAAM;EAAEC;AAAuB,CAAC,GAAGN,KAAK,CAACO,KAAK;AAE9C,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAC9B,uDACF,CAAC;AAEDK,OAAO,CAACC,WAAW,CAAC,4CAA4C,CAAC,CAACC,MAAM;AACtE;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,0DAAyDD,KAAK,CAACiB,QAAQ,CAAC,CAAE,MAC7E,CAAC;IACD,MAAMC,YAAY,GAAG,MAAMb,sBAAsB,CAAC,CAAC;IACnDa,YAAY,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC;IAC/CH,YAAY,CAACK,OAAO,CAAEC,IAAI,IAAK;MAC7BvB,YAAY,CAAE,GAAEuB,IAAK,EAAC,EAAE,MAAM,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEDnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
@@ -17,7 +17,7 @@ async (host, realm, user, password, options, command) => {
17
17
  const adminClients = await listOAuth2CustomClients();
18
18
  adminClients.sort((a, b) => a.localeCompare(b));
19
19
  adminClients.forEach(item => {
20
- printMessage(`${item}`);
20
+ printMessage(`${item}`, 'data');
21
21
  });
22
22
  } else {
23
23
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-list-oauth2-clients-with-custom-privileges.js","names":["frodo","state","printMessage","FrodoCommand","getTokens","login","listOAuth2CustomClients","admin","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","adminClients","sort","a","b","localeCompare","forEach","item","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-list-oauth2-clients-with-custom-privileges.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { listOAuth2CustomClients } = frodo.admin;\n\nconst program = new FrodoCommand(\n 'frodo admin list-oauth2-clients-with-custom-privileges'\n);\n\nprogram.description('List oauth2 clients with custom privileges.').action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Listing oauth2 clients with custom privileges in realm \"${state.getRealm()}\"...`\n );\n const adminClients = await listOAuth2CustomClients();\n adminClients.sort((a, b) => a.localeCompare(b));\n adminClients.forEach((item) => {\n printMessage(`${item}`);\n });\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAEpD,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AACjC,MAAM;EAAEC;AAAwB,CAAC,GAAGN,KAAK,CAACO,KAAK;AAE/C,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAC9B,wDACF,CAAC;AAEDK,OAAO,CAACC,WAAW,CAAC,6CAA6C,CAAC,CAACC,MAAM;AACvE;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,2DAA0DD,KAAK,CAACiB,QAAQ,CAAC,CAAE,MAC9E,CAAC;IACD,MAAMC,YAAY,GAAG,MAAMb,uBAAuB,CAAC,CAAC;IACpDa,YAAY,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC;IAC/CH,YAAY,CAACK,OAAO,CAAEC,IAAI,IAAK;MAC7BvB,YAAY,CAAE,GAAEuB,IAAK,EAAC,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEDnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-list-oauth2-clients-with-custom-privileges.js","names":["frodo","state","printMessage","FrodoCommand","getTokens","login","listOAuth2CustomClients","admin","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","adminClients","sort","a","b","localeCompare","forEach","item","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-list-oauth2-clients-with-custom-privileges.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { listOAuth2CustomClients } = frodo.admin;\n\nconst program = new FrodoCommand(\n 'frodo admin list-oauth2-clients-with-custom-privileges'\n);\n\nprogram.description('List oauth2 clients with custom privileges.').action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Listing oauth2 clients with custom privileges in realm \"${state.getRealm()}\"...`\n );\n const adminClients = await listOAuth2CustomClients();\n adminClients.sort((a, b) => a.localeCompare(b));\n adminClients.forEach((item) => {\n printMessage(`${item}`, 'data');\n });\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAEpD,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AACjC,MAAM;EAAEC;AAAwB,CAAC,GAAGN,KAAK,CAACO,KAAK;AAE/C,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAC9B,wDACF,CAAC;AAEDK,OAAO,CAACC,WAAW,CAAC,6CAA6C,CAAC,CAACC,MAAM;AACvE;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,2DAA0DD,KAAK,CAACiB,QAAQ,CAAC,CAAE,MAC9E,CAAC;IACD,MAAMC,YAAY,GAAG,MAAMb,uBAAuB,CAAC,CAAC;IACpDa,YAAY,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC;IAC/CH,YAAY,CAACK,OAAO,CAAEC,IAAI,IAAK;MAC7BvB,YAAY,CAAE,GAAEuB,IAAK,EAAC,EAAE,MAAM,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEDnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
@@ -18,7 +18,7 @@ async (host, realm, user, password, options, command) => {
18
18
  const subjects = await listNonOAuth2AdminStaticUserMappings(options.showProtected);
19
19
  subjects.sort((a, b) => a.localeCompare(b));
20
20
  subjects.forEach(item => {
21
- printMessage(`${item}`);
21
+ printMessage(`${item}`, 'data');
22
22
  });
23
23
  } else {
24
24
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-list-static-user-mappings.js","names":["frodo","Option","printMessage","FrodoCommand","getTokens","login","listNonOAuth2AdminStaticUserMappings","admin","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","subjects","showProtected","sort","a","b","localeCompare","forEach","item","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-list-static-user-mappings.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { listNonOAuth2AdminStaticUserMappings } = frodo.admin;\n\nconst program = new FrodoCommand('frodo admin list-static-user-mappings');\n\nprogram\n .description(\n 'List all subjects of static user mappings that are not oauth2 clients.'\n )\n .addOption(\n new Option('--show-protected', 'Show protected (system) subjects.').default(\n false,\n 'false'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n 'Listing all non-oauth2 client subjects of static user mappings...'\n );\n const subjects = await listNonOAuth2AdminStaticUserMappings(\n options.showProtected\n );\n subjects.sort((a, b) => a.localeCompare(b));\n subjects.forEach((item) => {\n printMessage(`${item}`);\n });\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AACjC,MAAM;EAAEC;AAAqC,CAAC,GAAGN,KAAK,CAACO,KAAK;AAE5D,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,uCAAuC,CAAC;AAEzEK,OAAO,CACJC,WAAW,CACV,wEACF,CAAC,CACAC,SAAS,CACR,IAAIT,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAACU,OAAO,CACzE,KAAK,EACL,OACF,CACF,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACV,mEACF,CAAC;IACD,MAAMkB,QAAQ,GAAG,MAAMd,oCAAoC,CACzDW,OAAO,CAACI,aACV,CAAC;IACDD,QAAQ,CAACE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC;IAC3CJ,QAAQ,CAACM,OAAO,CAAEC,IAAI,IAAK;MACzBzB,YAAY,CAAE,GAAEyB,IAAK,EAAC,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHrB,OAAO,CAACsB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-list-static-user-mappings.js","names":["frodo","Option","printMessage","FrodoCommand","getTokens","login","listNonOAuth2AdminStaticUserMappings","admin","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","subjects","showProtected","sort","a","b","localeCompare","forEach","item","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-list-static-user-mappings.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { listNonOAuth2AdminStaticUserMappings } = frodo.admin;\n\nconst program = new FrodoCommand('frodo admin list-static-user-mappings');\n\nprogram\n .description(\n 'List all subjects of static user mappings that are not oauth2 clients.'\n )\n .addOption(\n new Option('--show-protected', 'Show protected (system) subjects.').default(\n false,\n 'false'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n 'Listing all non-oauth2 client subjects of static user mappings...'\n );\n const subjects = await listNonOAuth2AdminStaticUserMappings(\n options.showProtected\n );\n subjects.sort((a, b) => a.localeCompare(b));\n subjects.forEach((item) => {\n printMessage(`${item}`, 'data');\n });\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AACjC,MAAM;EAAEC;AAAqC,CAAC,GAAGN,KAAK,CAACO,KAAK;AAE5D,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,uCAAuC,CAAC;AAEzEK,OAAO,CACJC,WAAW,CACV,wEACF,CAAC,CACAC,SAAS,CACR,IAAIT,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAACU,OAAO,CACzE,KAAK,EACL,OACF,CACF,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACV,mEACF,CAAC;IACD,MAAMkB,QAAQ,GAAG,MAAMd,oCAAoC,CACzDW,OAAO,CAACI,aACV,CAAC;IACDD,QAAQ,CAACE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC;IAC3CJ,QAAQ,CAACM,OAAO,CAAEC,IAAI,IAAK;MACzBzB,YAAY,CAAE,GAAEyB,IAAK,EAAC,EAAE,MAAM,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHrB,OAAO,CAACsB,KAAK,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { frodo } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
- import { deletePolicies, deletePoliciesByPolicySet, deletePolicy } from '../../ops/PolicyOps';
3
+ import { deletePolicies, deletePoliciesByPolicySet, deletePolicyById } from '../../ops/PolicyOps';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console.js';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
6
  const {
@@ -14,7 +14,7 @@ async (host, realm, user, password, options, command) => {
14
14
  // delete by id
15
15
  if (options.policyId && (await getTokens())) {
16
16
  verboseMessage('Deleting authorization policy...');
17
- const outcome = await deletePolicy(options.policyId);
17
+ const outcome = await deletePolicyById(options.policyId);
18
18
  if (!outcome) process.exitCode = 1;
19
19
  }
20
20
  // --all -a by policy set
@@ -1 +1 @@
1
- {"version":3,"file":"authz-policy-delete.js","names":["frodo","Option","deletePolicies","deletePoliciesByPolicySet","deletePolicy","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","policyId","outcome","process","exitCode","setId","all","help","parse"],"sources":["../../../src/cli/authz/authz-policy-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n deletePolicies,\n deletePoliciesByPolicySet,\n deletePolicy,\n} from '../../ops/PolicyOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo authz policy delete');\n\nprogram\n .description('Delete authorization policies.')\n .addOption(\n new Option(\n '-i, --policy-id <policy-id>',\n 'Policy id/name. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete all policies in a realm. Ignored with -i.')\n )\n .addOption(\n new Option('--set-id <set-id>', 'Policy set id/name. Ignored with -i.')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.policyId && (await getTokens())) {\n verboseMessage('Deleting authorization policy...');\n const outcome = await deletePolicy(options.policyId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a by policy set\n else if (options.setId && options.all && (await getTokens())) {\n verboseMessage(\n `Deleting all authorization policies in policy set ${options.setId}...`\n );\n const outcome = await deletePoliciesByPolicySet(options.setId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all authorization policies...');\n const outcome = await deletePolicies();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,cAAc,EACdC,yBAAyB,EACzBC,YAAY,QACP,qBAAqB;AAC5B,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,2BAA2B,CAAC;AAE7DG,OAAO,CACJC,WAAW,CAAC,gCAAgC,CAAC,CAC7CC,SAAS,CACR,IAAIX,MAAM,CACR,6BAA6B,EAC7B,8CACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAC5E,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CACxE,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,kCAAkC,CAAC;IAClD,MAAMgB,OAAO,GAAG,MAAMlB,YAAY,CAACc,OAAO,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,KAAK,IAAIP,OAAO,CAACQ,GAAG,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5DF,cAAc,CACX,qDAAoDY,OAAO,CAACO,KAAM,KACrE,CAAC;IACD,MAAMH,OAAO,GAAG,MAAMnB,yBAAyB,CAACe,OAAO,CAACO,KAAK,CAAC;IAC9D,IAAI,CAACH,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACQ,GAAG,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,wCAAwC,CAAC;IACxD,MAAMgB,OAAO,GAAG,MAAMpB,cAAc,CAAC,CAAC;IACtC,IAAI,CAACoB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACkB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"authz-policy-delete.js","names":["frodo","Option","deletePolicies","deletePoliciesByPolicySet","deletePolicyById","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","policyId","outcome","process","exitCode","setId","all","help","parse"],"sources":["../../../src/cli/authz/authz-policy-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n deletePolicies,\n deletePoliciesByPolicySet,\n deletePolicyById,\n} from '../../ops/PolicyOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo authz policy delete');\n\nprogram\n .description('Delete authorization policies.')\n .addOption(\n new Option(\n '-i, --policy-id <policy-id>',\n 'Policy id/name. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete all policies in a realm. Ignored with -i.')\n )\n .addOption(\n new Option('--set-id <set-id>', 'Policy set id/name. Ignored with -i.')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.policyId && (await getTokens())) {\n verboseMessage('Deleting authorization policy...');\n const outcome = await deletePolicyById(options.policyId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a by policy set\n else if (options.setId && options.all && (await getTokens())) {\n verboseMessage(\n `Deleting all authorization policies in policy set ${options.setId}...`\n );\n const outcome = await deletePoliciesByPolicySet(options.setId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all authorization policies...');\n const outcome = await deletePolicies();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,cAAc,EACdC,yBAAyB,EACzBC,gBAAgB,QACX,qBAAqB;AAC5B,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,2BAA2B,CAAC;AAE7DG,OAAO,CACJC,WAAW,CAAC,gCAAgC,CAAC,CAC7CC,SAAS,CACR,IAAIX,MAAM,CACR,6BAA6B,EAC7B,8CACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAC5E,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CACxE,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,kCAAkC,CAAC;IAClD,MAAMgB,OAAO,GAAG,MAAMlB,gBAAgB,CAACc,OAAO,CAACG,QAAQ,CAAC;IACxD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,KAAK,IAAIP,OAAO,CAACQ,GAAG,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5DF,cAAc,CACX,qDAAoDY,OAAO,CAACO,KAAM,KACrE,CAAC;IACD,MAAMH,OAAO,GAAG,MAAMnB,yBAAyB,CAACe,OAAO,CAACO,KAAK,CAAC;IAC9D,IAAI,CAACH,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACQ,GAAG,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,wCAAwC,CAAC;IACxD,MAAMgB,OAAO,GAAG,MAAMpB,cAAc,CAAC,CAAC;IACtC,IAAI,CAACoB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACkB,KAAK,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { frodo } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
- import { deletePolicySet, deletePolicySets } from '../../ops/PolicySetOps';
3
+ import { deletePolicySetById, deletePolicySets } from '../../ops/PolicySetOps';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console.js';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
6
  const {
@@ -14,7 +14,7 @@ async (host, realm, user, password, options, command) => {
14
14
  // delete by id
15
15
  if (options.setId && (await getTokens())) {
16
16
  verboseMessage('Deleting authorization policy set...');
17
- const outcome = deletePolicySet(options.setId);
17
+ const outcome = deletePolicySetById(options.setId);
18
18
  if (!outcome) process.exitCode = 1;
19
19
  }
20
20
  // --all -a
@@ -1 +1 @@
1
- {"version":3,"file":"authz-set-delete.js","names":["frodo","Option","deletePolicySet","deletePolicySets","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","setId","outcome","process","exitCode","all","help","parse"],"sources":["../../../src/cli/authz/authz-set-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deletePolicySet, deletePolicySets } from '../../ops/PolicySetOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo authz set delete');\n\nprogram\n .description('Delete authorization policy sets.')\n .addOption(new Option('-i, --set-id <set-id>', 'Policy set id/name.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all policy sets in a realm. Ignored with -i.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.setId && (await getTokens())) {\n verboseMessage('Deleting authorization policy set...');\n const outcome = deletePolicySet(options.setId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all authorization policy sets...');\n const outcome = deletePolicySets();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,wBAAwB;AAC1E,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,wBAAwB,CAAC;AAE1DG,OAAO,CACJC,WAAW,CAAC,mCAAmC,CAAC,CAChDC,SAAS,CAAC,IAAIV,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC,CACrEU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,qDACF,CACF,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IACxCF,cAAc,CAAC,sCAAsC,CAAC;IACtD,MAAMgB,OAAO,GAAGnB,eAAe,CAACe,OAAO,CAACG,KAAK,CAAC;IAC9C,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,GAAG,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMgB,OAAO,GAAGlB,gBAAgB,CAAC,CAAC;IAClC,IAAI,CAACkB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACgB,IAAI,CAAC,CAAC;IACdH,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACiB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"authz-set-delete.js","names":["frodo","Option","deletePolicySetById","deletePolicySets","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","setId","outcome","process","exitCode","all","help","parse"],"sources":["../../../src/cli/authz/authz-set-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deletePolicySetById, deletePolicySets } from '../../ops/PolicySetOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo authz set delete');\n\nprogram\n .description('Delete authorization policy sets.')\n .addOption(new Option('-i, --set-id <set-id>', 'Policy set id/name.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all policy sets in a realm. Ignored with -i.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.setId && (await getTokens())) {\n verboseMessage('Deleting authorization policy set...');\n const outcome = deletePolicySetById(options.setId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all authorization policy sets...');\n const outcome = deletePolicySets();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,mBAAmB,EAAEC,gBAAgB,QAAQ,wBAAwB;AAC9E,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,wBAAwB,CAAC;AAE1DG,OAAO,CACJC,WAAW,CAAC,mCAAmC,CAAC,CAChDC,SAAS,CAAC,IAAIV,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC,CACrEU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,qDACF,CACF,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IACxCF,cAAc,CAAC,sCAAsC,CAAC;IACtD,MAAMgB,OAAO,GAAGnB,mBAAmB,CAACe,OAAO,CAACG,KAAK,CAAC;IAClD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,GAAG,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMgB,OAAO,GAAGlB,gBAAgB,CAAC,CAAC;IAClC,IAAI,CAACkB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACgB,IAAI,CAAC,CAAC;IACdH,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACiB,KAAK,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { frodo } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
- import { deleteResourceType, deleteResourceTypeByName, deleteResourceTypes } from '../../ops/ResourceTypeOps';
3
+ import { deleteResourceTypeById, deleteResourceTypes, deleteResourceTypeUsingName } from '../../ops/ResourceTypeOps';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console.js';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
6
  const {
@@ -14,13 +14,13 @@ async (host, realm, user, password, options, command) => {
14
14
  // delete by uuid
15
15
  if (options.typeId && (await getTokens())) {
16
16
  verboseMessage('Deleting authorization resource type...');
17
- const outcome = deleteResourceType(options.typeId);
17
+ const outcome = deleteResourceTypeById(options.typeId);
18
18
  if (!outcome) process.exitCode = 1;
19
19
  }
20
20
  // delete by name
21
21
  else if (options.typeName && (await getTokens())) {
22
22
  verboseMessage('Deleting authorization resource type...');
23
- const outcome = deleteResourceTypeByName(options.typeName);
23
+ const outcome = deleteResourceTypeUsingName(options.typeName);
24
24
  if (!outcome) process.exitCode = 1;
25
25
  }
26
26
  // --all -a
@@ -1 +1 @@
1
- {"version":3,"file":"authz-type-delete.js","names":["frodo","Option","deleteResourceType","deleteResourceTypeByName","deleteResourceTypes","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","typeId","outcome","process","exitCode","typeName","all","help","parse"],"sources":["../../../src/cli/authz/authz-type-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n deleteResourceType,\n deleteResourceTypeByName,\n deleteResourceTypes,\n} from '../../ops/ResourceTypeOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo authz type delete');\n\nprogram\n .description('Delete authorization resource types.')\n .addOption(\n new Option(\n '-i, --type-id <type-id>',\n 'Variable id. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option(\n '-n, --type-name <type-name>',\n 'Resource type name. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all resource types in a realm. Ignored with -i and -n.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by uuid\n if (options.typeId && (await getTokens())) {\n verboseMessage('Deleting authorization resource type...');\n const outcome = deleteResourceType(options.typeId);\n if (!outcome) process.exitCode = 1;\n }\n // delete by name\n else if (options.typeName && (await getTokens())) {\n verboseMessage('Deleting authorization resource type...');\n const outcome = deleteResourceTypeByName(options.typeName);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all authorization resource types...');\n const outcome = deleteResourceTypes();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,kBAAkB,EAClBC,wBAAwB,EACxBC,mBAAmB,QACd,2BAA2B;AAClC,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,sCAAsC,CAAC,CACnDC,SAAS,CACR,IAAIX,MAAM,CACR,yBAAyB,EACzB,2CACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,6BAA6B,EAC7B,kDACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,+DACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,MAAM,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IACzCF,cAAc,CAAC,yCAAyC,CAAC;IACzD,MAAMgB,OAAO,GAAGpB,kBAAkB,CAACgB,OAAO,CAACG,MAAM,CAAC;IAClD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,QAAQ,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IAChDF,cAAc,CAAC,yCAAyC,CAAC;IACzD,MAAMgB,OAAO,GAAGnB,wBAAwB,CAACe,OAAO,CAACO,QAAQ,CAAC;IAC1D,IAAI,CAACH,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACQ,GAAG,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,8CAA8C,CAAC;IAC9D,MAAMgB,OAAO,GAAGlB,mBAAmB,CAAC,CAAC;IACrC,IAAI,CAACkB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACkB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"authz-type-delete.js","names":["frodo","Option","deleteResourceTypeById","deleteResourceTypes","deleteResourceTypeUsingName","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","typeId","outcome","process","exitCode","typeName","all","help","parse"],"sources":["../../../src/cli/authz/authz-type-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n deleteResourceTypeById,\n deleteResourceTypes,\n deleteResourceTypeUsingName,\n} from '../../ops/ResourceTypeOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo authz type delete');\n\nprogram\n .description('Delete authorization resource types.')\n .addOption(\n new Option(\n '-i, --type-id <type-id>',\n 'Variable id. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option(\n '-n, --type-name <type-name>',\n 'Resource type name. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all resource types in a realm. Ignored with -i and -n.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by uuid\n if (options.typeId && (await getTokens())) {\n verboseMessage('Deleting authorization resource type...');\n const outcome = deleteResourceTypeById(options.typeId);\n if (!outcome) process.exitCode = 1;\n }\n // delete by name\n else if (options.typeName && (await getTokens())) {\n verboseMessage('Deleting authorization resource type...');\n const outcome = deleteResourceTypeUsingName(options.typeName);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all authorization resource types...');\n const outcome = deleteResourceTypes();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,sBAAsB,EACtBC,mBAAmB,EACnBC,2BAA2B,QACtB,2BAA2B;AAClC,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,sCAAsC,CAAC,CACnDC,SAAS,CACR,IAAIX,MAAM,CACR,yBAAyB,EACzB,2CACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,6BAA6B,EAC7B,kDACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,+DACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,MAAM,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IACzCF,cAAc,CAAC,yCAAyC,CAAC;IACzD,MAAMgB,OAAO,GAAGpB,sBAAsB,CAACgB,OAAO,CAACG,MAAM,CAAC;IACtD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,QAAQ,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IAChDF,cAAc,CAAC,yCAAyC,CAAC;IACzD,MAAMgB,OAAO,GAAGlB,2BAA2B,CAACc,OAAO,CAACO,QAAQ,CAAC;IAC7D,IAAI,CAACH,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACQ,GAAG,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,8CAA8C,CAAC;IAC9D,MAAMgB,OAAO,GAAGnB,mBAAmB,CAAC,CAAC;IACrC,IAAI,CAACmB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACkB,KAAK,CAAC,CAAC"}
@@ -1,5 +1,7 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
1
+ import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
+ import { exportSecretsToFile, exportSecretsToFiles, exportSecretToFile } from '../../ops/SecretsOps';
4
+ import { printMessage, verboseMessage } from '../../utils/Console';
3
5
  import { FrodoCommand } from '../FrodoCommand';
4
6
  const {
5
7
  getTokens
@@ -9,9 +11,18 @@ program.description('Export secrets.').addOption(new Option('-i, --secret-id <se
9
11
  // implement command logic inside action handler
10
12
  async (host, realm, user, password, options, command) => {
11
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
12
- if (await getTokens()) {
13
- // code goes here
14
+ if (options.secretId && (await getTokens())) {
15
+ verboseMessage(`Exporting secret "${options.secretId}" from realm "${state.getRealm()}"...`);
16
+ await exportSecretToFile(options.secretId, options.file);
17
+ } else if (options.all && (await getTokens())) {
18
+ verboseMessage('Exporting all secrets to a single file...');
19
+ await exportSecretsToFile(options.file);
20
+ } else if (options.allSeparate && (await getTokens())) {
21
+ verboseMessage('Exporting all secrets to separate files...');
22
+ await exportSecretsToFiles();
14
23
  } else {
24
+ printMessage('Unrecognized combination of options or no options...', 'error');
25
+ program.help();
15
26
  process.exitCode = 1;
16
27
  }
17
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-export.js","names":["frodo","Option","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-export.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret export');\n\nprogram\n .description('Export secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Export all secrets to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all sub1s to separate files (*.secret.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGH,KAAK,CAACI,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,SAAS,CACR,IAAIN,MAAM,CACR,6BAA6B,EAC7B,iDACF,CACF,CAAC,CACAM,SAAS,CAAC,IAAIN,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtEM,SAAS,CACR,IAAIN,MAAM,CACR,WAAW,EACX,uDACF,CACF,CAAC,CACAM,SAAS,CACR,IAAIN,MAAM,CACR,oBAAoB,EACpB,qGACF,CACF,CAAC,CACAO,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-export.js","names":["frodo","state","Option","exportSecretsToFile","exportSecretsToFiles","exportSecretToFile","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","getRealm","file","all","allSeparate","help","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-export.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n exportSecretsToFile,\n exportSecretsToFiles,\n exportSecretToFile,\n} from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret export');\n\nprogram\n .description('Export secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Export all secrets to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all sub1s to separate files (*.secret.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (options.secretId && (await getTokens())) {\n verboseMessage(\n `Exporting secret \"${\n options.secretId\n }\" from realm \"${state.getRealm()}\"...`\n );\n await exportSecretToFile(options.secretId, options.file);\n } else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all secrets to a single file...');\n await exportSecretsToFile(options.file);\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all secrets to separate files...');\n await exportSecretsToFiles();\n } else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,mBAAmB,EACnBC,oBAAoB,EACpBC,kBAAkB,QACb,sBAAsB;AAC7B,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGT,KAAK,CAACU,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,SAAS,CACR,IAAIX,MAAM,CACR,6BAA6B,EAC7B,iDACF,CACF,CAAC,CACAW,SAAS,CAAC,IAAIX,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtEW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,uDACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,oBAAoB,EACpB,qGACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CACX,qBACCY,OAAO,CAACG,QACT,iBAAgBrB,KAAK,CAACsB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACD,MAAMlB,kBAAkB,CAACc,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACK,IAAI,CAAC;EAC1D,CAAC,MAAM,IAAIL,OAAO,CAACM,GAAG,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC7CF,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMJ,mBAAmB,CAACgB,OAAO,CAACK,IAAI,CAAC;EACzC,CAAC,MAAM,IAAIL,OAAO,CAACO,WAAW,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IACrDF,cAAc,CAAC,4CAA4C,CAAC;IAC5D,MAAMH,oBAAoB,CAAC,CAAC;EAC9B,CAAC,MAAM;IACLE,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDK,OAAO,CAACgB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
@@ -4,8 +4,7 @@ program.description('Manages secrets.');
4
4
  program.command('create', 'Create secrets.');
5
5
  program.command('delete', 'Delete secrets.');
6
6
  program.command('describe', 'Describe secret.');
7
-
8
- // program.command('export', 'Export secrets.');
7
+ program.command('export', 'Export secrets.');
9
8
 
10
9
  // program.command('import', 'Import secrets.');
11
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret.js","names":["FrodoStubCommand","program","description","command","parse"],"sources":["../../../src/cli/esv/esv-secret.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\n\nconst program = new FrodoStubCommand('frodo esv secret');\n\nprogram.description('Manages secrets.');\n\nprogram.command('create', 'Create secrets.');\n\nprogram.command('delete', 'Delete secrets.');\n\nprogram.command('describe', 'Describe secret.');\n\n// program.command('export', 'Export secrets.');\n\n// program.command('import', 'Import secrets.');\n\nprogram.command('list', 'List secrets.');\n\nprogram.command('set', 'Set secret descriptions.');\n\nprogram.command('version', 'Manage secret versions.');\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,OAAO,GAAG,IAAID,gBAAgB,CAAC,kBAAkB,CAAC;AAExDC,OAAO,CAACC,WAAW,CAAC,kBAAkB,CAAC;AAEvCD,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AAE5CF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AAE5CF,OAAO,CAACE,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC;;AAE/C;;AAEA;;AAEAF,OAAO,CAACE,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC;AAExCF,OAAO,CAACE,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC;AAElDF,OAAO,CAACE,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC;AAErDF,OAAO,CAACG,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret.js","names":["FrodoStubCommand","program","description","command","parse"],"sources":["../../../src/cli/esv/esv-secret.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\n\nconst program = new FrodoStubCommand('frodo esv secret');\n\nprogram.description('Manages secrets.');\n\nprogram.command('create', 'Create secrets.');\n\nprogram.command('delete', 'Delete secrets.');\n\nprogram.command('describe', 'Describe secret.');\n\nprogram.command('export', 'Export secrets.');\n\n// program.command('import', 'Import secrets.');\n\nprogram.command('list', 'List secrets.');\n\nprogram.command('set', 'Set secret descriptions.');\n\nprogram.command('version', 'Manage secret versions.');\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,OAAO,GAAG,IAAID,gBAAgB,CAAC,kBAAkB,CAAC;AAExDC,OAAO,CAACC,WAAW,CAAC,kBAAkB,CAAC;AAEvCD,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AAE5CF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AAE5CF,OAAO,CAACE,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC;AAE/CF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC;;AAE5C;;AAEAF,OAAO,CAACE,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC;AAExCF,OAAO,CAACE,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC;AAElDF,OAAO,CAACE,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC;AAErDF,OAAO,CAACG,KAAK,CAAC,CAAC"}