@rockcarver/frodo-cli 0.11.1-0 → 0.11.1-1

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 (90) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/package.json +12 -10
  3. package/src/app.js +3 -3
  4. package/.eslintrc +0 -29
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  7. package/.github/README.md +0 -213
  8. package/.github/workflows/pipeline.yml +0 -495
  9. package/.prettierrc +0 -6
  10. package/CODE_OF_CONDUCT.md +0 -128
  11. package/docs/BINARIES.md +0 -22
  12. package/docs/CONTRIBUTE.md +0 -96
  13. package/docs/PIPELINE.md +0 -169
  14. package/docs/images/macos_warn1.png +0 -0
  15. package/docs/images/macos_warn2.png +0 -0
  16. package/docs/images/macos_warn3.png +0 -0
  17. package/docs/images/npm_versioning_guidelines.png +0 -0
  18. package/docs/images/release_pipeline.png +0 -0
  19. package/gulpfile.js +0 -49
  20. package/jsconfig.json +0 -6
  21. package/resources/sampleEntitiesFile.json +0 -8
  22. package/resources/sampleEnvFile.env +0 -2
  23. package/src/cli/journey/journey-delete.e2e.test_.js +0 -380
  24. package/src/cli/journey/journey-list.e2e.test_.js +0 -142
  25. package/src/cli/theme/theme-delete.e2e.test_.js +0 -178
  26. package/src/cli/theme/theme-list.e2e.test_.js +0 -119
  27. package/test/client_cli/en/conn-add.test.js +0 -37
  28. package/test/client_cli/en/conn-delete.test.js +0 -37
  29. package/test/client_cli/en/conn-list.test.js +0 -37
  30. package/test/client_cli/en/conn.test.js +0 -65
  31. package/test/client_cli/en/email-template-import.test.js +0 -156
  32. package/test/client_cli/en/email-template.test.js +0 -79
  33. package/test/client_cli/en/email-templates-export.test.js +0 -208
  34. package/test/client_cli/en/email-templates-list.test.js +0 -139
  35. package/test/client_cli/en/idm-count.test.js +0 -131
  36. package/test/client_cli/en/idm-export.test.js +0 -149
  37. package/test/client_cli/en/idm-import.test_.js +0 -101
  38. package/test/client_cli/en/idm-list.test.js +0 -109
  39. package/test/client_cli/en/idm.test.js +0 -82
  40. package/test/client_cli/en/info.test.js +0 -136
  41. package/test/client_cli/en/journey-describe.test.js +0 -194
  42. package/test/client_cli/en/journey-export.test.js +0 -231
  43. package/test/client_cli/en/journey-import.test.js +0 -212
  44. package/test/client_cli/en/journey-list.test.js +0 -173
  45. package/test/client_cli/en/journey-prune.test.js +0 -159
  46. package/test/client_cli/en/journey.test.js +0 -111
  47. package/test/client_cli/en/logs-list.test.js +0 -81
  48. package/test/client_cli/en/logs-tail.test.js +0 -130
  49. package/test/client_cli/en/logs.test.js +0 -65
  50. package/test/client_cli/en/root.test.js +0 -93
  51. package/test/client_cli/en/script-export.test.js +0 -230
  52. package/test/client_cli/en/script-import.test.js +0 -176
  53. package/test/client_cli/en/script-list.test.js +0 -159
  54. package/test/client_cli/en/script.test.js +0 -79
  55. package/test/client_cli/utils/utils.js +0 -63
  56. package/test/e2e/journey/baseline/ForgottenUsername.journey.json +0 -216
  57. package/test/e2e/journey/baseline/Login.journey.json +0 -205
  58. package/test/e2e/journey/baseline/PasswordGrant.journey.json +0 -139
  59. package/test/e2e/journey/baseline/ProgressiveProfile.journey.json +0 -198
  60. package/test/e2e/journey/baseline/Registration.journey.json +0 -249
  61. package/test/e2e/journey/baseline/ResetPassword.journey.json +0 -268
  62. package/test/e2e/journey/baseline/UpdatePassword.journey.json +0 -323
  63. package/test/e2e/journey/baseline/allAlphaJourneys.journeys.json +0 -1520
  64. package/test/e2e/journey/delete/ForgottenUsername.journey.json +0 -216
  65. package/test/e2e/journey/delete/Login.journey.json +0 -205
  66. package/test/e2e/journey/delete/PasswordGrant.journey.json +0 -139
  67. package/test/e2e/journey/delete/ProgressiveProfile.journey.json +0 -198
  68. package/test/e2e/journey/delete/Registration.journey.json +0 -249
  69. package/test/e2e/journey/delete/ResetPassword.journey.json +0 -268
  70. package/test/e2e/journey/delete/UpdatePassword.journey.json +0 -323
  71. package/test/e2e/journey/delete/deleteMe.journey.json +0 -230
  72. package/test/e2e/journey/list/Disabled.journey.json +0 -43
  73. package/test/e2e/journey/list/ForgottenUsername.journey.json +0 -216
  74. package/test/e2e/journey/list/Login.journey.json +0 -205
  75. package/test/e2e/journey/list/PasswordGrant.journey.json +0 -139
  76. package/test/e2e/journey/list/ProgressiveProfile.journey.json +0 -198
  77. package/test/e2e/journey/list/Registration.journey.json +0 -249
  78. package/test/e2e/journey/list/ResetPassword.journey.json +0 -268
  79. package/test/e2e/journey/list/UpdatePassword.journey.json +0 -323
  80. package/test/e2e/theme/baseline/Contrast.theme.json +0 -95
  81. package/test/e2e/theme/baseline/Highlander.theme.json +0 -95
  82. package/test/e2e/theme/baseline/Robroy.theme.json +0 -95
  83. package/test/e2e/theme/baseline/Starter-Theme.theme.json +0 -94
  84. package/test/e2e/theme/baseline/Zardoz.theme.json +0 -95
  85. package/test/e2e/theme/import/Contrast.theme.json +0 -95
  86. package/test/e2e/theme/import/Highlander.theme.json +0 -95
  87. package/test/e2e/theme/import/Robroy.theme.json +0 -95
  88. package/test/e2e/theme/import/Starter-Theme.theme.json +0 -94
  89. package/test/e2e/theme/import/Zardoz.default.theme.json +0 -95
  90. package/test/fs_tmp/.gitkeep +0 -2
package/CHANGELOG.md CHANGED
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.11.1-1] - 2022-08-21
11
+
10
12
  ## [0.11.1-0] - 2022-08-19
11
13
 
12
14
  ## [0.10.4] - 2022-08-13
@@ -404,7 +406,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
404
406
  - Fixed problem with adding connection profiles
405
407
  - Miscellaneous bug fixes
406
408
 
407
- [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.11.1-0...HEAD
409
+ [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.11.1-1...HEAD
410
+
411
+ [0.11.1-1]: https://github.com/rockcarver/frodo-cli/compare/v0.11.1-0...v0.11.1-1
408
412
 
409
413
  [0.11.1-0]: https://github.com/rockcarver/frodo-cli/compare/v0.10.4...v0.11.1-0
410
414
 
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@rockcarver/frodo-cli",
3
- "version": "0.11.1-0",
3
+ "version": "0.11.1-1",
4
4
  "type": "module",
5
- "description": "This is the ForgeROck DO (FRODO) command line interface, a CLI to manage the ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
5
+ "description": "A command line interface to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
6
6
  "keywords": [
7
7
  "forgerock",
8
8
  "cli",
9
9
  "am",
10
+ "openam",
10
11
  "idm",
12
+ "openidm",
11
13
  "forgeops",
12
14
  "identity cloud",
13
15
  "export",
@@ -31,7 +33,8 @@
31
33
  "test:list": "node --experimental-vm-modules node_modules/jest/bin/jest.js --listTests",
32
34
  "test:e2e": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand e2e",
33
35
  "test:e2e:list": "node --experimental-vm-modules node_modules/jest/bin/jest.js --listTests e2e",
34
- "lint": "eslint --ext .js --ignore-path .gitignore ."
36
+ "lint": "npx eslint --ext .js --ignore-path .gitignore .",
37
+ "build": "npx gulp"
35
38
  },
36
39
  "contributors": [
37
40
  {
@@ -66,20 +69,18 @@
66
69
  },
67
70
  "pkg": {
68
71
  "options": [
69
- "experimental-json-modules",
72
+ "experimental-specifier-resolution=node",
70
73
  "enable-source-maps",
71
74
  "no-warnings"
72
75
  ],
73
- "scripts": [
74
- "src/api/**/*.js",
75
- "src/cli/**/*.js",
76
- "src/ops/**/*.js",
77
- "src/storage/**/*.js"
76
+ "assets": [
77
+ "node_modules/@rockcarver/frodo-lib/cjs/ops/templates/*.json",
78
+ "node_modules/@rockcarver/frodo-lib/cjs/ops/templates/**/*.json"
78
79
  ]
79
80
  },
80
81
  "dependencies": {
81
82
  "@colors/colors": "^1.5.0",
82
- "@rockcarver/frodo-lib": "^0.11.1-3",
83
+ "@rockcarver/frodo-lib": "^0.11.1-6",
83
84
  "axios": "^0.27.2",
84
85
  "axios-retry": "^3.3.1",
85
86
  "cli-progress": "^3.11.2",
@@ -115,6 +116,7 @@
115
116
  "eslint-plugin-react-hooks": "^4.3.0",
116
117
  "gulp": "^4.0.2",
117
118
  "gulp-babel": "^8.0.0",
119
+ "gulp-install": "^1.1.0",
118
120
  "gulp-sourcemaps": "^3.0.0",
119
121
  "jest": "^28.1.3",
120
122
  "map-stream": "^0.0.7",
package/src/app.js CHANGED
@@ -1,6 +1,6 @@
1
- #!/usr/bin/env -S node --no-warnings --enable-source-maps
1
+ #!/usr/bin/env -S node --no-warnings --enable-source-maps --experimental-specifier-resolution=node
2
2
 
3
- import { ConnectionProfile } from '@rockcarver/frodo-lib';
3
+ import { getVersion, ConnectionProfile } from '@rockcarver/frodo-lib';
4
4
  import fs from 'fs';
5
5
  import { Command } from 'commander';
6
6
  // import pkg from '../package.json' assert { type: 'json' };
@@ -28,7 +28,7 @@ const pkg = JSON.parse(
28
28
  const { initConnectionProfiles } = ConnectionProfile;
29
29
 
30
30
  const program = new Command('frodo').version(
31
- `v${pkg.version} [${process.version}]`,
31
+ `cli: v${pkg.version}\nlib: ${getVersion()}\nnode: ${process.version}`,
32
32
  '-v, --version'
33
33
  );
34
34
 
package/.eslintrc DELETED
@@ -1,29 +0,0 @@
1
- {
2
- "extends": ["airbnb", "prettier"],
3
- "parser": "@babel/eslint-parser",
4
- "plugins": ["prettier", "jest"],
5
- "rules": {
6
- "prettier/prettier": ["error"],
7
- "import/extensions": [
8
- "error",
9
- {
10
- "js": "always",
11
- "json": "always"
12
- }
13
- ],
14
- "no-console": "off",
15
- "no-underscore-dangle": "off",
16
- "no-restricted-syntax": [
17
- "error",
18
- // "ForInStatement",
19
- // "ForOfStatement",
20
- "LabeledStatement",
21
- "WithStatement"
22
- ],
23
- "no-multi-str": "off"
24
- },
25
- "env": {
26
- "jest": true,
27
- "jest/globals": true
28
- }
29
- }
@@ -1,30 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve
4
- title: ''
5
- labels: ''
6
- assignees: ''
7
-
8
- ---
9
-
10
- **Describe the bug**
11
- A clear and concise description of what the bug is.
12
-
13
- **To Reproduce**
14
- Steps to reproduce the behavior:
15
- 1. Run command with parameters '...'
16
- 2. See error
17
-
18
- **Expected behavior**
19
- A clear and concise description of what you expected to happen.
20
-
21
- **Screenshots**
22
- If applicable, add screenshots/command output to help explain your problem.
23
-
24
- **Desktop (please complete the following information):**
25
- - OS: [e.g. iOS]
26
- - Browser [e.g. chrome, safari]
27
- - Version [e.g. 22]
28
-
29
- **Additional context**
30
- Add any other context about the problem here.
@@ -1,20 +0,0 @@
1
- ---
2
- name: Feature request
3
- about: Suggest an idea for frodo
4
- title: ''
5
- labels: ''
6
- assignees: ''
7
-
8
- ---
9
-
10
- **Is your feature request related to a problem? Please describe.**
11
- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
-
13
- **Describe the solution you'd like**
14
- A clear and concise description of what you want to happen.
15
-
16
- **Describe alternatives you've considered**
17
- A clear and concise description of any alternative solutions or features you've considered.
18
-
19
- **Additional context**
20
- Add any other context or screenshots about the feature request here.
package/.github/README.md DELETED
@@ -1,213 +0,0 @@
1
- <!-- README.md for GitHub; the one for NPM is ../README.md. -->
2
-
3
- # Frodo CLI - @rockcarver/frodo-cli
4
-
5
- ForgeROck DO Command Line Interface, frodo-cli, a CLI to manage ForgeRock platform deployments supporting Identity Cloud tenants, ForgeOps deployments, and classic deployments.
6
-
7
- ## Quick Nav
8
-
9
- - [Quick start](#quick-start)
10
- - [Installing](#installing)
11
- - [Usage](#usage)
12
- - [Request features or report issues](#feature-requests)
13
- - [Contributing](#contributing)
14
- - [Maintaining](#maintaining)
15
-
16
- ## Quick start
17
-
18
- 1. Download the platform specific binary archive from the [release page](https://github.com/rockcarver/frodo-cli/releases) and unzip it to a directory.
19
- 2. Open a terminal and change to the above directory.
20
- 3. Run `frodo conn add` (example below) to setup `frodo` for your ForgeRock environment. If all parameters are correct, `frodo` creates a new [connection profile](#connection-profiles). If you are offline and don't want to validate the data you enter, you can use the --no-validate paramter and frodo stores the [connection profile](#connection-profiles) without validating it.
21
-
22
- ```console
23
- $ frodo conn add https://openam-tenant-name.forgeblocks.com/am john.doe@company.com '5uP3r-53cr3t!'
24
- ForgeRock Identity Cloud detected.
25
- Connected to ForgeRock Access Management 7.2.0-2022-6-SNAPSHOT Build ee394dde039e790642653a516d498c16759876c1 (2022-July-07 19:49)
26
- Saving creds in /Users/john.doe/.frodo/.frodorc...
27
- ```
28
-
29
- **NOTE: MacOS and Windows may not let you run `frodo` right after you download (and unzip) and execute it for the very first time. Please refer to [this page](../docs/BINARIES.md) if this happens.**
30
-
31
- 4. Test your connection profile using a simple convenience feature in frodo:
32
-
33
- ```console
34
- $ frodo info tenant-name
35
- Printing versions and tokens...
36
- ForgeRock Identity Cloud detected.
37
- Connected to ForgeRock Access Management 7.2.0-2022-6-SNAPSHOT Build ee394dde039e790642653a516d498c16759876c1 (2022-July-07 19:49)
38
- Cookie name: 6ac6499e9da2071
39
- Session token: g9CMhj7k9Asq...
40
- Bearer token: eyJ0eXAiOiJKV...
41
- ```
42
-
43
- Note how the command does not specify the complete tenant URL nor username nor password. I only uses a unique substring that matches the tenant URL and frodo looks up and uses the right [connection profile](#connection-profiles).
44
-
45
- 5. Now you can use other frodo commands, like `journey`, `logs`, `applications` etc. as desired. **For detailed usage, refer to [this](#usage)**
46
-
47
- ## Installing
48
-
49
- ### User Mode
50
-
51
- Individuals who do not intend to develop or contribute to frodo should use this method. Please refer to [Quick Start](#quick-start)
52
-
53
- ### Developer Mode
54
-
55
- For those who want to contribute or are just curious about the build process.
56
-
57
- - Make sure you have Node.js v14 or newer installed.
58
- - Clone this repo
59
- ```console
60
- git clone https://github.com/rockcarver/frodo-cli.git
61
- ```
62
- - Install via NPM
63
- ```console
64
- cd frodo
65
- npm install
66
- npm i -g
67
- ```
68
-
69
- ### NPM package
70
-
71
- If you are a node developer and want to use frodo as a cli tool or as a library for your own applications, you can install the npm package:
72
-
73
- - To install the latest version as a cli tool:
74
- ```console
75
- npm i -g @rockcarver/frodo-cli
76
- ```
77
- - To install the latest version as a dependency for you own application:
78
- ```console
79
- npm i --save @rockcarver/frodo-cli
80
- ```
81
- - To install the latest pre-release:
82
- ```console
83
- npm i @rockcarver/frodo-cli@next
84
- ```
85
-
86
- ## Usage
87
-
88
- You can invoke `frodo` from the terminal as long as you're in the directory or sourced/added it to the path.
89
-
90
- To get started, refer to [Quick Start](#quick-start).
91
-
92
- ### Connection Profiles
93
-
94
- A connection profile is a set of ForgeRock environment URL (Access Management base URL), admin username and admin password. It can optionally contain log API key and secret for a ForgeRock Identity Cloud environment. All connection profiless are stored in `~/.frodo/.frodorc`. Passwords are stored encrypted. `.frodorc` can house information for multiple connections.
95
-
96
- Use the `frodo conn` sub-commands to manage connections:
97
-
98
- - `frodo conn list` to list all the connections frodo currently knows about for the current machine and user.
99
- - `frodo conn add` to add a new connection profile.
100
- - `frodo conn describe` to see all the details of a connection profile.
101
- - `frodo conn delete` to remove a connection profile.
102
-
103
- Once `frodo` saves a connection, you don't have to provide the `host`, `username`, and `password` arguments. You can reference your connection using any unique substring from your host. This is the most common way users would run frodo. For example, if `https://openam-example-use1-dev.id.forgerock.io/am` and `https://openam-example-use1-staging.id.forgerock.io/am` are two saved ForgeRock connections from previous commands, one would simply use:
104
-
105
- ```console
106
- frodo info example-use1-dev
107
- ```
108
-
109
- OR
110
-
111
- ```console
112
- frodo info example-use1-staging
113
- ```
114
-
115
- ### cli options
116
-
117
- You interact with `frodo` using commands and options. You can see the list of options by using the `help` command
118
-
119
- ```console
120
- frodo help
121
- ```
122
-
123
- ```console
124
- Usage: frodo [options] [command]
125
-
126
- Options:
127
- -v, --version output the version number
128
- -h, --help display help for command
129
-
130
- Commands:
131
- admin Platform admin tasks.
132
- application Manage applications.
133
- conn|connection Manage connection profiles.
134
- email Manage email templates and configuration.
135
- esv Manage Environment-Specific Variables (ESVs).
136
- idm Manage IDM configuration.
137
- idp Manage (social) identity providers.
138
- info [options] <host> [user] [password] Print versions and tokens.
139
- journey Manage journeys/trees.
140
- logs List/View Identity Cloud logs
141
- realm Manage realms.
142
- saml Manage SAML entity providers and circles of trust.
143
- script Manage scripts.
144
- theme Manages themes.
145
- help [command] display help for command
146
- ```
147
-
148
- Or to view options for a specific command
149
-
150
- ```console
151
- frodo help journey
152
- ```
153
-
154
- ```console
155
- Usage: frodo journey [options] [command]
156
-
157
- Manage journeys/trees.
158
-
159
- Options:
160
- -h, --help Help
161
-
162
- Commands:
163
- list List journeys/trees.
164
- describe If host argument is supplied, describe the journey/tree indicated by -t, or all journeys/trees in the realm if no -t is supplied, otherwise describe the journey/tree export file indicated by -f.
165
- export Export journeys/trees.
166
- import Import journeys/trees.
167
- delete Delete journeys/trees.
168
- prune Prune orphaned configuration artifacts left behind after deleting authentication trees. You will be prompted before any destructive operations are performed.
169
- help [command] display help for command
170
- ```
171
-
172
- ```console
173
- frodo journey help export
174
- ```
175
-
176
- ```console
177
- Usage: frodo journey export [options] <host> [realm] [user] [password]
178
-
179
- Export journeys/trees.
180
-
181
- Arguments:
182
- host Access Management base URL, e.g.: https://cdk.iam.example.com/am. To use a connection profile, just specify a unique substring.
183
- realm Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise. (default: "alpha" for Identity Cloud tenants, "/" otherwise.)
184
- user Username to login with. Must be an admin user with appropriate rights to manage authentication journeys/trees.
185
- password Password.
186
-
187
- Options:
188
- -m, --type <type> Override auto-detected deployment type. Valid values for type:
189
- classic: A classic Access Management-only deployment with custom layout and configuration.
190
- cloud: A ForgeRock Identity Cloud environment.
191
- forgeops: A ForgeOps CDK or CDM deployment.
192
- The detected or provided deployment type controls certain behavior like obtaining an Identity Management admin token or not and whether to export/import referenced email templates or how to
193
- walk through the tenant admin login flow of Identity Cloud and handle MFA (choices: "classic", "cloud", "forgeops")
194
- -k, --insecure Allow insecure connections when using SSL/TLS (default: Don't allow insecure connections)
195
- -i, --journey-id <journey> Name of a journey/tree. If specified, -a and -A are ignored.
196
- -f, --file <file> Name of the file to write the exported journey(s) to. Ignored with -A.
197
- -a, --all Export all the journeys/trees in a realm. Ignored with -i.
198
- -A, --all-separate Export all the journeys/trees in a realm as separate files <journey/tree name>.json. Ignored with -i or -a.
199
- --use-string-arrays Where applicable, use string arrays to store multi-line text (e.g. scripts). (default: off)
200
- -h, --help Help
201
- ```
202
-
203
- ## Feature requests
204
-
205
- Please use the repository's [issues](https://github.com/rockcarver/frodo/issues) to request new features/enhancements or report bugs/issues.
206
-
207
- ## Contributing
208
-
209
- If you would like to contribute to frodo, please refer to the [contributing instructions](../docs/CONTRIBUTE.md).
210
-
211
- ## Maintaining
212
-
213
- If you are a maintainer of this repository, please refer to the [pipeline and release process instructions](../docs/PIPELINE.md).