@rockcarver/frodo-cli 0.10.4 → 0.11.1-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/.github/README.md +44 -104
  2. package/.github/workflows/pipeline.yml +9 -1
  3. package/CHANGELOG.md +5 -1
  4. package/README.md +3 -3
  5. package/package.json +8 -8
  6. package/src/app.js +5 -4
  7. package/src/cli/_template/cmd-delete.js +9 -8
  8. package/src/cli/_template/cmd-describe.js +9 -8
  9. package/src/cli/_template/cmd-export.js +9 -8
  10. package/src/cli/_template/cmd-import.js +9 -8
  11. package/src/cli/_template/cmd-list.js +9 -8
  12. package/src/cli/_template/cmd-sub1-delete.js +9 -8
  13. package/src/cli/_template/cmd-sub1-describe.js +9 -8
  14. package/src/cli/_template/cmd-sub1-export.js +9 -8
  15. package/src/cli/_template/cmd-sub1-import.js +9 -8
  16. package/src/cli/_template/cmd-sub1-list.js +9 -8
  17. package/src/cli/_template/cmd-sub2-delete.js +9 -8
  18. package/src/cli/_template/cmd-sub2-describe.js +9 -8
  19. package/src/cli/_template/cmd-sub2-export.js +9 -8
  20. package/src/cli/_template/cmd-sub2-import.js +9 -8
  21. package/src/cli/_template/cmd-sub2-list.js +9 -8
  22. package/src/cli/admin/admin-add-autoid-static-user-mapping.js +12 -12
  23. package/src/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +15 -18
  24. package/src/cli/admin/admin-get-access-token.js +12 -12
  25. package/src/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -13
  26. package/src/cli/admin/admin-hide-generic-extension-attributes.js +13 -13
  27. package/src/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +13 -13
  28. package/src/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +14 -13
  29. package/src/cli/admin/admin-list-static-user-mappings.js +12 -12
  30. package/src/cli/admin/admin-remove-static-user-mapping.js +12 -12
  31. package/src/cli/admin/admin-repair-org-model.js +13 -13
  32. package/src/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +13 -13
  33. package/src/cli/admin/admin-show-generic-extension-attributes.js +13 -13
  34. package/src/cli/app/app-delete.js +9 -8
  35. package/src/cli/app/app-describe.js +9 -8
  36. package/src/cli/app/app-export.js +15 -15
  37. package/src/cli/app/app-import.js +11 -11
  38. package/src/cli/app/app-list.js +11 -12
  39. package/src/cli/conn/conn-add.js +11 -11
  40. package/src/cli/conn/conn-delete.js +3 -1
  41. package/src/cli/conn/conn-describe.js +3 -1
  42. package/src/cli/conn/conn-list.js +3 -4
  43. package/src/cli/email/email-template-export.js +16 -16
  44. package/src/cli/email/email-template-import.js +16 -16
  45. package/src/cli/email/email-template-list.js +11 -11
  46. package/src/cli/esv/esv-apply.js +12 -12
  47. package/src/cli/esv/esv-secret-create.js +11 -11
  48. package/src/cli/esv/esv-secret-delete.js +13 -13
  49. package/src/cli/esv/esv-secret-describe.js +11 -11
  50. package/src/cli/esv/esv-secret-export.js +9 -8
  51. package/src/cli/esv/esv-secret-import.js +9 -8
  52. package/src/cli/esv/esv-secret-list.js +11 -11
  53. package/src/cli/esv/esv-secret-set.js +11 -11
  54. package/src/cli/esv/esv-secret-version-activate.js +12 -12
  55. package/src/cli/esv/esv-secret-version-create.js +11 -11
  56. package/src/cli/esv/esv-secret-version-deactivate.js +12 -12
  57. package/src/cli/esv/esv-secret-version-delete.js +13 -13
  58. package/src/cli/esv/esv-secret-version-list.js +11 -11
  59. package/src/cli/esv/esv-variable-create.js +11 -11
  60. package/src/cli/esv/esv-variable-delete.js +13 -16
  61. package/src/cli/esv/esv-variable-describe.js +11 -11
  62. package/src/cli/esv/esv-variable-export.js +9 -8
  63. package/src/cli/esv/esv-variable-import.js +9 -8
  64. package/src/cli/esv/esv-variable-list.js +11 -11
  65. package/src/cli/esv/esv-variable-set.js +13 -16
  66. package/src/cli/idm/idm-count.js +11 -11
  67. package/src/cli/idm/idm-export.js +16 -16
  68. package/src/cli/idm/idm-list.js +11 -11
  69. package/src/cli/idp/idp-export.js +15 -19
  70. package/src/cli/idp/idp-import.js +18 -18
  71. package/src/cli/idp/idp-list.js +12 -12
  72. package/src/cli/info/info.js +23 -19
  73. package/src/cli/journey/{journey-delete.e2e.test.js → journey-delete.e2e.test_.js} +0 -0
  74. package/src/cli/journey/journey-delete.js +14 -14
  75. package/src/cli/journey/journey-describe.js +26 -35
  76. package/src/cli/journey/journey-export.js +15 -18
  77. package/src/cli/journey/journey-import.js +17 -17
  78. package/src/cli/journey/{journey-list.e2e.test.js → journey-list.e2e.test_.js} +1 -0
  79. package/src/cli/journey/journey-list.js +12 -12
  80. package/src/cli/journey/journey-prune.js +12 -12
  81. package/src/cli/logging/logs-list.js +33 -28
  82. package/src/cli/logging/logs-tail.js +26 -22
  83. package/src/cli/realm/realm-add-custom-domain.js +13 -13
  84. package/src/cli/realm/realm-describe.js +14 -14
  85. package/src/cli/realm/realm-list.js +11 -11
  86. package/src/cli/realm/realm-remove-custom-domain.js +16 -13
  87. package/src/cli/saml/saml-cot-export.js +16 -16
  88. package/src/cli/saml/saml-cot-import.js +18 -18
  89. package/src/cli/saml/saml-cot-list.js +12 -12
  90. package/src/cli/saml/saml-describe.js +12 -12
  91. package/src/cli/saml/saml-export.js +16 -19
  92. package/src/cli/saml/saml-import.js +19 -18
  93. package/src/cli/saml/saml-list.js +12 -12
  94. package/src/cli/saml/saml-metadata-export.js +15 -19
  95. package/src/cli/script/script-delete.js +9 -8
  96. package/src/cli/script/script-describe.js +9 -8
  97. package/src/cli/script/script-export.js +18 -20
  98. package/src/cli/script/script-import.js +13 -12
  99. package/src/cli/script/script-list.js +12 -12
  100. package/src/cli/theme/{theme-delete.e2e.test.js → theme-delete.e2e.test_.js} +0 -0
  101. package/src/cli/theme/theme-delete.js +17 -21
  102. package/src/cli/theme/theme-export.js +19 -18
  103. package/src/cli/theme/theme-import.js +21 -20
  104. package/src/cli/theme/{theme-list.e2e.test.js → theme-list.e2e.test_.js} +0 -0
  105. package/src/cli/theme/theme-list.js +12 -12
  106. package/test/client_cli/en/conn-add.test.js +37 -0
  107. package/test/client_cli/en/conn-delete.test.js +37 -0
  108. package/test/client_cli/en/conn-list.test.js +37 -0
  109. package/test/client_cli/en/conn.test.js +65 -0
  110. package/test/client_cli/en/email-template-import.test.js +156 -0
  111. package/test/client_cli/en/email-template.test.js +79 -0
  112. package/test/client_cli/en/email-templates-export.test.js +208 -0
  113. package/test/client_cli/en/email-templates-list.test.js +139 -0
  114. package/test/client_cli/en/idm-count.test.js +131 -0
  115. package/test/client_cli/en/idm-export.test.js +149 -0
  116. package/test/client_cli/en/{idm_import.test_.js → idm-import.test_.js} +59 -61
  117. package/test/client_cli/en/idm-list.test.js +109 -0
  118. package/test/client_cli/en/idm.test.js +55 -84
  119. package/test/client_cli/en/info.test.js +85 -74
  120. package/test/client_cli/en/journey-describe.test.js +194 -0
  121. package/test/client_cli/en/journey-export.test.js +231 -0
  122. package/test/client_cli/en/journey-import.test.js +212 -0
  123. package/test/client_cli/en/journey-list.test.js +173 -0
  124. package/test/client_cli/en/{journey_prune.test.js → journey-prune.test.js} +102 -91
  125. package/test/client_cli/en/journey.test.js +76 -92
  126. package/test/client_cli/en/logs-list.test.js +81 -0
  127. package/test/client_cli/en/logs-tail.test.js +130 -0
  128. package/test/client_cli/en/logs.test.js +44 -58
  129. package/test/client_cli/en/root.test.js +61 -59
  130. package/test/client_cli/en/script-export.test.js +230 -0
  131. package/test/client_cli/en/script-import.test.js +176 -0
  132. package/test/client_cli/en/script-list.test.js +159 -0
  133. package/test/client_cli/en/script.test.js +52 -50
  134. package/test/client_cli/utils/utils.js +48 -17
  135. package/src/api/AuthenticateApi.js +0 -33
  136. package/src/api/BaseApi.js +0 -242
  137. package/src/api/CirclesOfTrustApi.js +0 -87
  138. package/src/api/EmailTemplateApi.js +0 -37
  139. package/src/api/IdmConfigApi.js +0 -88
  140. package/src/api/LogApi.js +0 -45
  141. package/src/api/ManagedObjectApi.js +0 -62
  142. package/src/api/OAuth2ClientApi.js +0 -69
  143. package/src/api/OAuth2OIDCApi.js +0 -73
  144. package/src/api/OAuth2ProviderApi.js +0 -32
  145. package/src/api/RealmApi.js +0 -99
  146. package/src/api/Saml2Api.js +0 -176
  147. package/src/api/ScriptApi.js +0 -84
  148. package/src/api/SecretsApi.js +0 -151
  149. package/src/api/ServerInfoApi.js +0 -41
  150. package/src/api/SocialIdentityProvidersApi.js +0 -114
  151. package/src/api/StartupApi.js +0 -45
  152. package/src/api/ThemeApi.js +0 -181
  153. package/src/api/TreeApi.js +0 -207
  154. package/src/api/VariablesApi.js +0 -104
  155. package/src/api/utils/ApiUtils.js +0 -77
  156. package/src/api/utils/Base64.js +0 -62
  157. package/src/ops/AdminOps.js +0 -901
  158. package/src/ops/AuthenticateOps.js +0 -342
  159. package/src/ops/CirclesOfTrustOps.js +0 -350
  160. package/src/ops/ConnectionProfileOps.js +0 -254
  161. package/src/ops/EmailTemplateOps.js +0 -326
  162. package/src/ops/IdmOps.js +0 -227
  163. package/src/ops/IdpOps.js +0 -342
  164. package/src/ops/JourneyOps.js +0 -2026
  165. package/src/ops/LogOps.js +0 -357
  166. package/src/ops/ManagedObjectOps.js +0 -34
  167. package/src/ops/OAuth2ClientOps.js +0 -151
  168. package/src/ops/OrganizationOps.js +0 -85
  169. package/src/ops/RealmOps.js +0 -139
  170. package/src/ops/SamlOps.js +0 -541
  171. package/src/ops/ScriptOps.js +0 -211
  172. package/src/ops/SecretsOps.js +0 -288
  173. package/src/ops/StartupOps.js +0 -114
  174. package/src/ops/ThemeOps.js +0 -379
  175. package/src/ops/VariablesOps.js +0 -185
  176. package/src/ops/templates/OAuth2ClientTemplate.json +0 -270
  177. package/src/ops/templates/OrgModelUserAttributesTemplate.json +0 -149
  178. package/src/ops/templates/cloud/GenericExtensionAttributesTemplate.json +0 -392
  179. package/src/ops/templates/cloud/managed.json +0 -4119
  180. package/src/ops/utils/Console.js +0 -434
  181. package/src/ops/utils/DataProtection.js +0 -92
  182. package/src/ops/utils/ExportImportUtils.js +0 -146
  183. package/src/ops/utils/OpsUtils.js +0 -76
  184. package/src/ops/utils/Wordwrap.js +0 -11
  185. package/src/storage/SessionStorage.js +0 -45
  186. package/test/client_cli/en/connections.test.js +0 -62
  187. package/test/client_cli/en/connections_add.test.js +0 -34
  188. package/test/client_cli/en/connections_delete.test.js +0 -34
  189. package/test/client_cli/en/connections_list.test.js +0 -34
  190. package/test/client_cli/en/email_templates.test.js +0 -77
  191. package/test/client_cli/en/email_templates_export.test.js +0 -196
  192. package/test/client_cli/en/email_templates_import.test.js +0 -145
  193. package/test/client_cli/en/email_templates_list.test.js +0 -130
  194. package/test/client_cli/en/idm_count.test.js +0 -121
  195. package/test/client_cli/en/idm_export.test.js +0 -136
  196. package/test/client_cli/en/idm_exportAll.test.js +0 -156
  197. package/test/client_cli/en/idm_exportAllRaw.test.js +0 -120
  198. package/test/client_cli/en/idm_importAll.test_.js +0 -103
  199. package/test/client_cli/en/idm_list.test.js +0 -103
  200. package/test/client_cli/en/journey_describe.test.js +0 -196
  201. package/test/client_cli/en/journey_export.test.js +0 -213
  202. package/test/client_cli/en/journey_import.test.js +0 -195
  203. package/test/client_cli/en/journey_importAll.test.js +0 -180
  204. package/test/client_cli/en/journey_list.test.js +0 -162
  205. package/test/client_cli/en/logs_list.test.js +0 -83
  206. package/test/client_cli/en/logs_tail.test.js +0 -118
  207. package/test/client_cli/en/script_export.test.js +0 -213
  208. package/test/client_cli/en/script_import.test.js +0 -163
  209. package/test/client_cli/en/script_list.test.js +0 -148
  210. package/test/e2e/setup.js +0 -98
  211. package/test/global/setup.js +0 -65
  212. package/test/lib_api/unit_tests/ApiUtils.test.js +0 -186
  213. package/test/lib_api/unit_tests/Base64URL.test.js +0 -22
  214. package/test/lib_api/unit_tests/DataProtection.test.js +0 -25
  215. package/test/lib_api/unit_tests/ExportImportUtils.test.js +0 -121
@@ -1,19 +1,10 @@
1
1
  import fs from 'fs';
2
2
  import { Command, Option } from 'commander';
3
+ import { Authenticate, Journey, state } from '@rockcarver/frodo-lib';
3
4
  import * as common from '../cmd_common.js';
4
- import { getTokens } from '../../ops/AuthenticateOps.js';
5
- import {
6
- listJourneys,
7
- getJourneyData,
8
- describeTree,
9
- } from '../../ops/JourneyOps.js';
10
- import storage from '../../storage/SessionStorage.js';
11
- import {
12
- printMessage,
13
- createProgressBar,
14
- updateProgressBar,
15
- stopProgressBar,
16
- } from '../../ops/utils/Console.js';
5
+
6
+ const { getTokens } = Authenticate;
7
+ const { listJourneys, getJourneyData, describeTree } = Journey;
17
8
 
18
9
  const program = new Command('frodo journey describe');
19
10
 
@@ -50,68 +41,68 @@ program
50
41
  .action(
51
42
  // implement command logic inside action handler
52
43
  async (host, realm, user, password, options) => {
53
- storage.session.setTenant(host);
54
- storage.session.setRealm(realm);
55
- storage.session.setUsername(user);
56
- storage.session.setPassword(password);
57
- storage.session.setDeploymentType(options.type);
58
- storage.session.setAllowInsecureConnection(options.insecure);
44
+ state.default.session.setTenant(host);
45
+ state.default.session.setRealm(realm);
46
+ state.default.session.setUsername(user);
47
+ state.default.session.setPassword(password);
48
+ state.default.session.setDeploymentType(options.type);
49
+ state.default.session.setAllowInsecureConnection(options.insecure);
59
50
  const treeDescription = [];
60
51
  // TODO: review checks for arguments
61
52
  if (typeof host === 'undefined' || typeof options.file !== 'undefined') {
62
53
  if (typeof options.file === 'undefined') {
63
- printMessage(
54
+ console.log(
64
55
  'You either need <host> or -f when using describe',
65
56
  'error'
66
57
  );
67
58
  return;
68
59
  }
69
- printMessage(`Describing local journey file ${options.file}...`);
60
+ console.log(`Describing local journey file ${options.file}...`);
70
61
  try {
71
62
  const data = fs.readFileSync(options.file, 'utf8');
72
63
  const journeyData = JSON.parse(data);
73
64
  treeDescription.push(describeTree(journeyData));
74
65
  } catch (err) {
75
- printMessage(err, 'error');
66
+ console.log(err, 'error');
76
67
  }
77
68
  } else if (await getTokens()) {
78
- printMessage(
79
- `Describing journey(s) in realm "${storage.session.getRealm()}"...`
69
+ console.log(
70
+ `Describing journey(s) in realm "${state.default.session.getRealm()}"...`
80
71
  );
81
72
  if (typeof options.journeyId === 'undefined') {
82
73
  const journeyList = await listJourneys(false);
83
- createProgressBar(journeyList.length, '');
74
+ // createProgressBar(journeyList.length, '');
84
75
  for (const item of journeyList) {
85
76
  // eslint-disable-next-line no-await-in-loop
86
77
  const journeyData = await getJourneyData(item.name);
87
78
  treeDescription.push(describeTree(journeyData));
88
- updateProgressBar(`Analyzing journey - ${item.name}`);
79
+ // updateProgressBar(`Analyzing journey - ${item.name}`);
89
80
  }
90
- stopProgressBar('Done');
81
+ // stopProgressBar('Done');
91
82
  } else {
92
83
  const journeyData = await getJourneyData(options.journeyId);
93
84
  treeDescription.push(describeTree(journeyData));
94
85
  }
95
86
  }
96
87
  for (const item of treeDescription) {
97
- printMessage(`\nJourney: ${item.treeName}`, 'info');
98
- printMessage('========');
99
- printMessage('\nNodes:', 'info');
88
+ console.log(`\nJourney: ${item.treeName}`, 'info');
89
+ console.log('========');
90
+ console.log('\nNodes:', 'info');
100
91
  if (Object.entries(item.nodeTypes).length) {
101
92
  for (const [name, count] of Object.entries(item.nodeTypes)) {
102
- printMessage(`- ${name}: ${count}`, 'info');
93
+ console.log(`- ${name}: ${count}`, 'info');
103
94
  }
104
95
  }
105
96
  if (Object.entries(item.scripts).length) {
106
- printMessage('\nScripts:', 'info');
97
+ console.log('\nScripts:', 'info');
107
98
  for (const [name, desc] of Object.entries(item.scripts)) {
108
- printMessage(`- ${name}: ${desc}`, 'info');
99
+ console.log(`- ${name}: ${desc}`, 'info');
109
100
  }
110
101
  }
111
102
  if (Object.entries(item.emailTemplates).length) {
112
- printMessage('\nEmail Templates:', 'info');
103
+ console.log('\nEmail Templates:', 'info');
113
104
  for (const [id] of Object.entries(item.emailTemplates)) {
114
- printMessage(`- ${id}`, 'info');
105
+ console.log(`- ${id}`, 'info');
115
106
  }
116
107
  }
117
108
  }
@@ -1,13 +1,10 @@
1
1
  import { Command, Option } from 'commander';
2
+ import { Authenticate, Journey, state } from '@rockcarver/frodo-lib';
2
3
  import * as common from '../cmd_common.js';
3
- import { getTokens } from '../../ops/AuthenticateOps.js';
4
- import {
5
- exportJourneyToFile,
6
- exportJourneysToFile,
7
- exportJourneysToFiles,
8
- } from '../../ops/JourneyOps.js';
9
- import storage from '../../storage/SessionStorage.js';
10
- import { printMessage } from '../../ops/utils/Console.js';
4
+
5
+ const { getTokens } = Authenticate;
6
+ const { exportJourneyToFile, exportJourneysToFile, exportJourneysToFiles } =
7
+ Journey;
11
8
 
12
9
  const program = new Command('frodo journey export');
13
10
 
@@ -66,16 +63,16 @@ program
66
63
  .action(
67
64
  // implement command logic inside action handler
68
65
  async (host, realm, user, password, options) => {
69
- storage.session.setTenant(host);
70
- storage.session.setRealm(realm);
71
- storage.session.setUsername(user);
72
- storage.session.setPassword(password);
73
- storage.session.setDeploymentType(options.type);
74
- storage.session.setAllowInsecureConnection(options.insecure);
66
+ state.default.session.setTenant(host);
67
+ state.default.session.setRealm(realm);
68
+ state.default.session.setUsername(user);
69
+ state.default.session.setPassword(password);
70
+ state.default.session.setDeploymentType(options.type);
71
+ state.default.session.setAllowInsecureConnection(options.insecure);
75
72
  if (await getTokens()) {
76
73
  // export
77
74
  if (options.journeyId) {
78
- printMessage('Exporting journey...');
75
+ console.log('Exporting journey...');
79
76
  exportJourneyToFile(options.journeyId, options.file, {
80
77
  useStringArrays: options.useStringArrays,
81
78
  deps: options.deps,
@@ -84,7 +81,7 @@ program
84
81
  }
85
82
  // --all -a
86
83
  else if (options.all) {
87
- printMessage('Exporting all journeys to a single file...');
84
+ console.log('Exporting all journeys to a single file...');
88
85
  exportJourneysToFile(options.file, {
89
86
  useStringArrays: options.useStringArrays,
90
87
  deps: options.deps,
@@ -93,7 +90,7 @@ program
93
90
  }
94
91
  // --all-separate -A
95
92
  else if (options.allSeparate) {
96
- printMessage('Exporting all journeys to separate files...');
93
+ console.log('Exporting all journeys to separate files...');
97
94
  exportJourneysToFiles({
98
95
  useStringArrays: options.useStringArrays,
99
96
  deps: options.deps,
@@ -102,7 +99,7 @@ program
102
99
  }
103
100
  // unrecognized combination of options or no options
104
101
  else {
105
- printMessage('Unrecognized combination of options or no options...');
102
+ console.log('Unrecognized combination of options or no options...');
106
103
  program.help();
107
104
  }
108
105
  }
@@ -1,16 +1,16 @@
1
1
  import { Command, Option } from 'commander';
2
+ import { Authenticate, Journey, state } from '@rockcarver/frodo-lib';
2
3
  import * as common from '../cmd_common.js';
3
- import { getTokens } from '../../ops/AuthenticateOps.js';
4
- import {
4
+
5
+ const { getTokens } = Authenticate;
6
+ const {
5
7
  importJourneyFromFile,
6
8
  importJourneysFromFile,
7
9
  importJourneysFromFiles,
8
10
  importFirstJourneyFromFile,
9
- } from '../../ops/JourneyOps.js';
10
- import storage from '../../storage/SessionStorage.js';
11
- import { printMessage } from '../../ops/utils/Console.js';
11
+ } = Journey;
12
12
 
13
- const program = new Command('frodo command sub');
13
+ const program = new Command('frodo journey import');
14
14
 
15
15
  program
16
16
  .description('Import journey/tree.')
@@ -67,16 +67,16 @@ program
67
67
  .action(
68
68
  // implement command logic inside action handler
69
69
  async (host, realm, user, password, options) => {
70
- storage.session.setTenant(host);
71
- storage.session.setRealm(realm);
72
- storage.session.setUsername(user);
73
- storage.session.setPassword(password);
74
- storage.session.setDeploymentType(options.type);
75
- storage.session.setAllowInsecureConnection(options.insecure);
70
+ state.default.session.setTenant(host);
71
+ state.default.session.setRealm(realm);
72
+ state.default.session.setUsername(user);
73
+ state.default.session.setPassword(password);
74
+ state.default.session.setDeploymentType(options.type);
75
+ state.default.session.setAllowInsecureConnection(options.insecure);
76
76
  if (await getTokens()) {
77
77
  // import
78
78
  if (options.journeyId) {
79
- printMessage(`Importing journey ${options.journeyId}...`);
79
+ console.log(`Importing journey ${options.journeyId}...`);
80
80
  importJourneyFromFile(options.journeyId, options.file, {
81
81
  reUuid: options.reUuid,
82
82
  deps: options.deps,
@@ -85,7 +85,7 @@ program
85
85
  }
86
86
  // --all -a
87
87
  else if (options.all && options.file) {
88
- printMessage(
88
+ console.log(
89
89
  `Importing all journeys from a single file (${options.file})...`
90
90
  );
91
91
  importJourneysFromFile(options.file, {
@@ -96,7 +96,7 @@ program
96
96
  }
97
97
  // --all-separate -A
98
98
  else if (options.allSeparate && !options.file) {
99
- printMessage(
99
+ console.log(
100
100
  'Importing all journeys from separate files in current directory...'
101
101
  );
102
102
  importJourneysFromFiles({
@@ -107,7 +107,7 @@ program
107
107
  }
108
108
  // import first journey in file
109
109
  else if (options.file) {
110
- printMessage('Importing first journey in file...');
110
+ console.log('Importing first journey in file...');
111
111
  importFirstJourneyFromFile(options.file, {
112
112
  reUuid: options.reUuid,
113
113
  deps: options.deps,
@@ -116,7 +116,7 @@ program
116
116
  }
117
117
  // unrecognized combination of options or no options
118
118
  else {
119
- printMessage('Unrecognized combination of options or no options...');
119
+ console.log('Unrecognized combination of options or no options...');
120
120
  program.help();
121
121
  }
122
122
  }
@@ -80,6 +80,7 @@ describe('frodo journey list', () => {
80
80
  });
81
81
 
82
82
  const expectedLong = [
83
+ 'Listing journeys in realm "alpha"...',
83
84
  'Name │Status │Tags ',
84
85
  'Disabled │disabled│Prototype ',
85
86
  'ForgottenUsername │enabled │Username Reset ',
@@ -1,9 +1,9 @@
1
1
  import { Command, Option } from 'commander';
2
+ import { Authenticate, Journey, state } from '@rockcarver/frodo-lib';
2
3
  import * as common from '../cmd_common.js';
3
- import { getTokens } from '../../ops/AuthenticateOps.js';
4
- import { listJourneys } from '../../ops/JourneyOps.js';
5
- import storage from '../../storage/SessionStorage.js';
6
- import { printMessage } from '../../ops/utils/Console.js';
4
+
5
+ const { getTokens } = Authenticate;
6
+ const { listJourneys } = Journey;
7
7
 
8
8
  const program = new Command('frodo journey list');
9
9
 
@@ -24,15 +24,15 @@ program
24
24
  .action(
25
25
  // implement command logic inside action handler
26
26
  async (host, realm, user, password, options) => {
27
- storage.session.setTenant(host);
28
- storage.session.setRealm(realm);
29
- storage.session.setUsername(user);
30
- storage.session.setPassword(password);
31
- storage.session.setDeploymentType(options.type);
32
- storage.session.setAllowInsecureConnection(options.insecure);
27
+ state.default.session.setTenant(host);
28
+ state.default.session.setRealm(realm);
29
+ state.default.session.setUsername(user);
30
+ state.default.session.setPassword(password);
31
+ state.default.session.setDeploymentType(options.type);
32
+ state.default.session.setAllowInsecureConnection(options.insecure);
33
33
  if (await getTokens()) {
34
- printMessage(
35
- `Listing journeys in realm "${storage.session.getRealm()}"...`
34
+ console.log(
35
+ `Listing journeys in realm "${state.default.session.getRealm()}"...`
36
36
  );
37
37
  listJourneys(options.long, options.analyze);
38
38
  }
@@ -1,9 +1,9 @@
1
1
  import { Command } from 'commander';
2
+ import { Authenticate, Journey, state } from '@rockcarver/frodo-lib';
2
3
  import * as common from '../cmd_common.js';
3
- import { getTokens } from '../../ops/AuthenticateOps.js';
4
- import { prune } from '../../ops/JourneyOps.js';
5
- import storage from '../../storage/SessionStorage.js';
6
- import { printMessage } from '../../ops/utils/Console.js';
4
+
5
+ const { getTokens } = Authenticate;
6
+ const { prune } = Journey;
7
7
 
8
8
  const program = new Command('frodo journey prune');
9
9
 
@@ -22,15 +22,15 @@ program
22
22
  .action(
23
23
  // implement command logic inside action handler
24
24
  async (host, realm, user, password, options) => {
25
- storage.session.setTenant(host);
26
- storage.session.setRealm(realm);
27
- storage.session.setUsername(user);
28
- storage.session.setPassword(password);
29
- storage.session.setDeploymentType(options.type);
30
- storage.session.setAllowInsecureConnection(options.insecure);
25
+ state.default.session.setTenant(host);
26
+ state.default.session.setRealm(realm);
27
+ state.default.session.setUsername(user);
28
+ state.default.session.setPassword(password);
29
+ state.default.session.setDeploymentType(options.type);
30
+ state.default.session.setAllowInsecureConnection(options.insecure);
31
31
  if (await getTokens()) {
32
- printMessage(
33
- `Pruning orphaned configuration artifacts in realm "${storage.session.getRealm()}"...`
32
+ console.log(
33
+ `Pruning orphaned configuration artifacts in realm "${state.default.session.getRealm()}"...`
34
34
  );
35
35
  prune();
36
36
  }
@@ -1,13 +1,15 @@
1
- import { Command } from 'commander';
2
1
  import {
3
- getConnectionProfile,
4
- saveConnectionProfile,
5
- } from '../../ops/ConnectionProfileOps.js';
6
- import { getTokens } from '../../ops/AuthenticateOps.js';
2
+ Authenticate,
3
+ ConnectionProfile,
4
+ Log,
5
+ state,
6
+ } from '@rockcarver/frodo-lib';
7
+ import { Command } from 'commander';
7
8
  import * as common from '../cmd_common.js';
8
- import { provisionCreds, getLogSources } from '../../ops/LogOps.js';
9
- import storage from '../../storage/SessionStorage.js';
10
- import { printMessage } from '../../ops/utils/Console.js';
9
+
10
+ const { provisionCreds, getLogSources } = Log;
11
+ const { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;
12
+ const { getTokens } = Authenticate;
11
13
 
12
14
  const program = new Command('frodo journey list');
13
15
  program
@@ -19,53 +21,56 @@ program
19
21
  .addOption(common.insecureOption)
20
22
  .action(async (host, user, password, options) => {
21
23
  let credsFromParameters = true;
22
- storage.session.setTenant(host);
23
- storage.session.setUsername(user);
24
- storage.session.setPassword(password);
25
- storage.session.setAllowInsecureConnection(options.insecure);
26
- printMessage('Listing available ID Cloud log sources...');
24
+ state.default.session.setTenant(host);
25
+ state.default.session.setUsername(user);
26
+ state.default.session.setPassword(password);
27
+ state.default.session.setAllowInsecureConnection(options.insecure);
28
+ console.log('Listing available ID Cloud log sources...');
27
29
  const conn = await getConnectionProfile();
28
- storage.session.setTenant(conn.tenant);
30
+ state.default.session.setTenant(conn.tenant);
29
31
  if (conn.key != null && conn.secret != null) {
30
32
  credsFromParameters = false;
31
- storage.session.setLogApiKey(conn.key);
32
- storage.session.setLogApiSecret(conn.secret);
33
+ state.default.session.setLogApiKey(conn.key);
34
+ state.default.session.setLogApiSecret(conn.secret);
33
35
  } else {
34
36
  if (conn.username == null && conn.password == null) {
35
- if (!storage.session.getUsername() && !storage.session.getPassword()) {
37
+ if (
38
+ !state.default.session.getUsername() &&
39
+ !state.default.session.getPassword()
40
+ ) {
36
41
  credsFromParameters = false;
37
- printMessage(
42
+ console.log(
38
43
  'User credentials not specified as parameters and no saved API key and secret found!',
39
44
  'warn'
40
45
  );
41
46
  return;
42
47
  }
43
48
  } else {
44
- storage.session.setUsername(conn.username);
45
- storage.session.setPassword(conn.password);
49
+ state.default.session.setUsername(conn.username);
50
+ state.default.session.setPassword(conn.password);
46
51
  }
47
52
  if (await getTokens()) {
48
53
  const creds = await provisionCreds();
49
- storage.session.setLogApiKey(creds.api_key_id);
50
- storage.session.setLogApiSecret(creds.api_key_secret);
54
+ state.default.session.setLogApiKey(creds.api_key_id);
55
+ state.default.session.setLogApiSecret(creds.api_key_secret);
51
56
  }
52
57
  }
53
58
 
54
59
  const sources = await getLogSources();
55
60
  if (sources.length === 0) {
56
- printMessage(
61
+ console.log(
57
62
  "Can't get sources, possible cause - wrong API key or secret",
58
63
  'error'
59
64
  );
60
65
  } else {
61
66
  if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI
62
- printMessage('Available log sources:');
67
+ console.log('Available log sources:');
63
68
  sources.forEach((source) => {
64
- printMessage(`${source}`, 'info');
69
+ console.log(`${source}`, 'info');
65
70
  });
66
- printMessage('You can use any combination of comma separated sources.');
67
- printMessage('For example:');
68
- printMessage(`$ frodo logs tail -c am-core,idm-core ${host}`, 'info');
71
+ console.log('You can use any combination of comma separated sources.');
72
+ console.log('For example:');
73
+ console.log(`$ frodo logs tail -c am-core,idm-core ${host}`, 'info');
69
74
  }
70
75
  });
71
76
 
@@ -1,14 +1,15 @@
1
1
  import { Command, Option } from 'commander';
2
2
  import {
3
- getConnectionProfile,
4
- saveConnectionProfile,
5
- } from '../../ops/ConnectionProfileOps.js';
6
- import { getTokens } from '../../ops/AuthenticateOps.js';
3
+ Authenticate,
4
+ ConnectionProfile,
5
+ Log,
6
+ state,
7
+ } from '@rockcarver/frodo-lib';
7
8
  import * as common from '../cmd_common.js';
8
- // import { createAPIKeyAndSecret, tailLogs } from '../../api/LogApi.js';
9
- import { provisionCreds, tailLogs, resolveLevel } from '../../ops/LogOps.js';
10
- import storage from '../../storage/SessionStorage.js';
11
- import { printMessage } from '../../ops/utils/Console.js';
9
+
10
+ const { provisionCreds, tailLogs, resolveLevel } = Log;
11
+ const { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;
12
+ const { getTokens } = Authenticate;
12
13
 
13
14
  const program = new Command('frodo journey tail');
14
15
  program
@@ -34,37 +35,40 @@ Following values are possible (values on the same line are equivalent): \
34
35
  )
35
36
  .action(async (host, user, password, options, command) => {
36
37
  let credsFromParameters = true;
37
- storage.session.setTenant(host);
38
- storage.session.setUsername(user);
39
- storage.session.setPassword(password);
40
- storage.session.setAllowInsecureConnection(options.insecure);
38
+ state.default.session.setTenant(host);
39
+ state.default.session.setUsername(user);
40
+ state.default.session.setPassword(password);
41
+ state.default.session.setAllowInsecureConnection(options.insecure);
41
42
  const conn = await getConnectionProfile();
42
- storage.session.setTenant(conn.tenant);
43
+ state.default.session.setTenant(conn.tenant);
43
44
  if (conn.key != null && conn.secret != null) {
44
45
  credsFromParameters = false;
45
- storage.session.setLogApiKey(conn.key);
46
- storage.session.setLogApiSecret(conn.secret);
46
+ state.default.session.setLogApiKey(conn.key);
47
+ state.default.session.setLogApiSecret(conn.secret);
47
48
  } else {
48
49
  if (conn.username == null && conn.password == null) {
49
- if (!storage.session.getUsername() && !storage.session.getPassword()) {
50
+ if (
51
+ !state.default.session.getUsername() &&
52
+ !state.default.session.getPassword()
53
+ ) {
50
54
  credsFromParameters = false;
51
- printMessage(
55
+ console.log(
52
56
  'User credentials not specified as parameters and no saved API key and secret found!',
53
57
  'warn'
54
58
  );
55
59
  return;
56
60
  }
57
61
  } else {
58
- storage.session.setUsername(conn.username);
59
- storage.session.setPassword(conn.password);
62
+ state.default.session.setUsername(conn.username);
63
+ state.default.session.setPassword(conn.password);
60
64
  }
61
65
  if (await getTokens()) {
62
66
  const creds = await provisionCreds();
63
- storage.session.setLogApiKey(creds.api_key_id);
64
- storage.session.setLogApiSecret(creds.api_key_secret);
67
+ state.default.session.setLogApiKey(creds.api_key_id);
68
+ state.default.session.setLogApiSecret(creds.api_key_secret);
65
69
  }
66
70
  }
67
- printMessage(
71
+ console.log(
68
72
  `Tailing ID Cloud logs from the following sources: ${
69
73
  command.opts().sources
70
74
  } and levels [${resolveLevel(command.opts().level)}]...`
@@ -1,9 +1,9 @@
1
1
  import { Command, Option } from 'commander';
2
+ import { Authenticate, Realm, state } from '@rockcarver/frodo-lib';
2
3
  import * as common from '../cmd_common.js';
3
- import { getTokens } from '../../ops/AuthenticateOps.js';
4
- import storage from '../../storage/SessionStorage.js';
5
- import { createKeyValueTable, printMessage } from '../../ops/utils/Console.js';
6
- import { addCustomDomain } from '../../ops/RealmOps.js';
4
+
5
+ const { getTokens } = Authenticate;
6
+ const { addCustomDomain } = Realm;
7
7
 
8
8
  const program = new Command('frodo realm add-custom-domain');
9
9
 
@@ -26,19 +26,19 @@ program
26
26
  .action(
27
27
  // implement command logic inside action handler
28
28
  async (host, realm, user, password, options) => {
29
- storage.session.setTenant(host);
30
- storage.session.setRealm(realm);
31
- storage.session.setUsername(user);
32
- storage.session.setPassword(password);
33
- storage.session.setDeploymentType(options.type);
34
- storage.session.setAllowInsecureConnection(options.insecure);
29
+ state.default.session.setTenant(host);
30
+ state.default.session.setRealm(realm);
31
+ state.default.session.setUsername(user);
32
+ state.default.session.setPassword(password);
33
+ state.default.session.setDeploymentType(options.type);
34
+ state.default.session.setAllowInsecureConnection(options.insecure);
35
35
  if (await getTokens()) {
36
- printMessage(
36
+ console.log(
37
37
  `Adding custom DNS domain ${
38
38
  options.domain
39
- } to realm ${storage.session.getRealm()}...`
39
+ } to realm ${state.default.session.getRealm()}...`
40
40
  );
41
- await addCustomDomain(storage.session.getRealm(), options.domain);
41
+ await addCustomDomain(state.default.session.getRealm(), options.domain);
42
42
  }
43
43
  }
44
44
  // end command logic inside action handler
@@ -1,10 +1,10 @@
1
1
  import { Command } from 'commander';
2
+ import { Authenticate, Realm, Utils, state } from '@rockcarver/frodo-lib';
2
3
  import * as common from '../cmd_common.js';
3
- import { getTokens } from '../../ops/AuthenticateOps.js';
4
- import storage from '../../storage/SessionStorage.js';
5
- import { printMessage } from '../../ops/utils/Console.js';
6
- import { describe } from '../../ops/RealmOps.js';
7
- import { getRealmName } from '../../api/utils/ApiUtils.js';
4
+
5
+ const { getRealmName } = Utils;
6
+ const { getTokens } = Authenticate;
7
+ const { describe } = Realm;
8
8
 
9
9
  const program = new Command('frodo realm describe');
10
10
 
@@ -21,17 +21,17 @@ program
21
21
  .action(
22
22
  // implement command logic inside action handler
23
23
  async (host, realm, user, password, options) => {
24
- storage.session.setTenant(host);
25
- storage.session.setRealm(realm);
26
- storage.session.setUsername(user);
27
- storage.session.setPassword(password);
28
- storage.session.setDeploymentType(options.type);
29
- storage.session.setAllowInsecureConnection(options.insecure);
24
+ state.default.session.setTenant(host);
25
+ state.default.session.setRealm(realm);
26
+ state.default.session.setUsername(user);
27
+ state.default.session.setPassword(password);
28
+ state.default.session.setDeploymentType(options.type);
29
+ state.default.session.setAllowInsecureConnection(options.insecure);
30
30
  if (await getTokens()) {
31
- printMessage(
32
- `Retrieving details of realm ${storage.session.getRealm()}...`
31
+ console.log(
32
+ `Retrieving details of realm ${state.default.session.getRealm()}...`
33
33
  );
34
- describe(getRealmName(storage.session.getRealm()));
34
+ describe(getRealmName(state.default.session.getRealm()));
35
35
  }
36
36
  }
37
37
  // end command logic inside action handler