@affinidi/cli 2.0.0-beta.8 → 2.0.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 (200) hide show
  1. package/README.md +140 -60
  2. package/dist/commands/generate/app.d.ts +7 -1
  3. package/dist/commands/generate/app.js +73 -34
  4. package/dist/commands/generate/app.js.map +1 -1
  5. package/dist/commands/iam/add-principal.js +8 -9
  6. package/dist/commands/iam/add-principal.js.map +1 -1
  7. package/dist/commands/iam/get-policies.js +8 -9
  8. package/dist/commands/iam/get-policies.js.map +1 -1
  9. package/dist/commands/iam/list-principals.js +1 -2
  10. package/dist/commands/iam/list-principals.js.map +1 -1
  11. package/dist/commands/iam/remove-principal.js +8 -9
  12. package/dist/commands/iam/remove-principal.js.map +1 -1
  13. package/dist/commands/iam/update-policies.js +18 -17
  14. package/dist/commands/iam/update-policies.js.map +1 -1
  15. package/dist/commands/login/add-user-to-group.d.ts +1 -1
  16. package/dist/commands/login/add-user-to-group.js +9 -10
  17. package/dist/commands/login/add-user-to-group.js.map +1 -1
  18. package/dist/commands/login/create-config.js +13 -14
  19. package/dist/commands/login/create-config.js.map +1 -1
  20. package/dist/commands/login/create-group.js +3 -4
  21. package/dist/commands/login/create-group.js.map +1 -1
  22. package/dist/commands/login/delete-config.js +5 -6
  23. package/dist/commands/login/delete-config.js.map +1 -1
  24. package/dist/commands/login/delete-group.js +5 -6
  25. package/dist/commands/login/delete-group.js.map +1 -1
  26. package/dist/commands/login/export-configs.d.ts +10 -0
  27. package/dist/commands/login/export-configs.js +67 -0
  28. package/dist/commands/login/export-configs.js.map +1 -0
  29. package/dist/commands/login/export-groups.d.ts +10 -0
  30. package/dist/commands/login/export-groups.js +64 -0
  31. package/dist/commands/login/export-groups.js.map +1 -0
  32. package/dist/commands/login/get-config.js +5 -6
  33. package/dist/commands/login/get-config.js.map +1 -1
  34. package/dist/commands/login/get-group.js +5 -6
  35. package/dist/commands/login/get-group.js.map +1 -1
  36. package/dist/commands/login/import-configs.d.ts +12 -0
  37. package/dist/commands/login/import-configs.js +70 -0
  38. package/dist/commands/login/import-configs.js.map +1 -0
  39. package/dist/commands/login/import-groups.d.ts +12 -0
  40. package/dist/commands/login/import-groups.js +51 -0
  41. package/dist/commands/login/import-groups.js.map +1 -0
  42. package/dist/commands/login/list-configs.js +1 -2
  43. package/dist/commands/login/list-configs.js.map +1 -1
  44. package/dist/commands/login/list-groups.js +1 -2
  45. package/dist/commands/login/list-groups.js.map +1 -1
  46. package/dist/commands/login/list-users-in-group.js +5 -6
  47. package/dist/commands/login/list-users-in-group.js.map +1 -1
  48. package/dist/commands/login/remove-user-from-group.d.ts +2 -2
  49. package/dist/commands/login/remove-user-from-group.js +10 -11
  50. package/dist/commands/login/remove-user-from-group.js.map +1 -1
  51. package/dist/commands/login/update-config.js +11 -12
  52. package/dist/commands/login/update-config.js.map +1 -1
  53. package/dist/commands/project/create-project.js +8 -9
  54. package/dist/commands/project/create-project.js.map +1 -1
  55. package/dist/commands/project/get-active-project.js +5 -6
  56. package/dist/commands/project/get-active-project.js.map +1 -1
  57. package/dist/commands/project/list-projects.js +2 -3
  58. package/dist/commands/project/list-projects.js.map +1 -1
  59. package/dist/commands/project/select-project.js +13 -20
  60. package/dist/commands/project/select-project.js.map +1 -1
  61. package/dist/commands/start.d.ts +0 -3
  62. package/dist/commands/start.js +17 -22
  63. package/dist/commands/start.js.map +1 -1
  64. package/dist/commands/stop.js +5 -4
  65. package/dist/commands/stop.js.map +1 -1
  66. package/dist/commands/token/create-token.d.ts +2 -2
  67. package/dist/commands/token/create-token.js +8 -9
  68. package/dist/commands/token/create-token.js.map +1 -1
  69. package/dist/commands/token/delete-token.js +5 -6
  70. package/dist/commands/token/delete-token.js.map +1 -1
  71. package/dist/commands/token/get-token.d.ts +2 -2
  72. package/dist/commands/token/get-token.js +5 -6
  73. package/dist/commands/token/get-token.js.map +1 -1
  74. package/dist/commands/token/list-tokens.d.ts +2 -2
  75. package/dist/commands/token/list-tokens.js +3 -4
  76. package/dist/commands/token/list-tokens.js.map +1 -1
  77. package/dist/commands/token/update-token.d.ts +2 -2
  78. package/dist/commands/token/update-token.js +8 -9
  79. package/dist/commands/token/update-token.js.map +1 -1
  80. package/dist/commands/whoami.d.ts +1 -4
  81. package/dist/commands/whoami.js +5 -22
  82. package/dist/commands/whoami.js.map +1 -1
  83. package/dist/common/constants.d.ts +13 -4
  84. package/dist/common/constants.js +12 -7
  85. package/dist/common/constants.js.map +1 -1
  86. package/dist/{helpers/generate-error-message.js → common/error-messages.js} +1 -1
  87. package/dist/common/error-messages.js.map +1 -0
  88. package/dist/{helpers/prompt-required-flags.js → common/prompts.js} +5 -5
  89. package/dist/common/prompts.js.map +1 -0
  90. package/dist/{helpers/input-length-validation.d.ts → common/validators.d.ts} +1 -1
  91. package/dist/{helpers/input-length-validation.js → common/validators.js} +4 -4
  92. package/dist/common/validators.js.map +1 -0
  93. package/dist/helpers/app.d.ts +11 -0
  94. package/dist/helpers/app.js +92 -0
  95. package/dist/helpers/app.js.map +1 -0
  96. package/dist/services/affinidi/auth/auth-result-page.d.ts +1 -0
  97. package/dist/services/affinidi/auth/{providers/error-login-page.js → auth-result-page.js} +6 -7
  98. package/dist/services/affinidi/auth/auth-result-page.js.map +1 -0
  99. package/dist/services/affinidi/auth/bff-auth-provider.d.ts +26 -0
  100. package/dist/services/affinidi/auth/bff-auth-provider.js +133 -0
  101. package/dist/services/affinidi/auth/bff-auth-provider.js.map +1 -0
  102. package/dist/services/affinidi/auth/{providers/types.d.ts → types.d.ts} +1 -4
  103. package/dist/services/affinidi/auth/types.js.map +1 -0
  104. package/dist/services/affinidi/bff-service.d.ts +27 -0
  105. package/dist/services/affinidi/bff-service.js +141 -0
  106. package/dist/services/affinidi/bff-service.js.map +1 -0
  107. package/dist/services/affinidi/bff-service.types.d.ts +38 -0
  108. package/dist/services/affinidi/{config.js → bff-service.types.js} +1 -1
  109. package/dist/services/affinidi/bff-service.types.js.map +1 -0
  110. package/dist/services/affinidi/{errors/index.js → errors.js} +6 -3
  111. package/dist/services/affinidi/errors.js.map +1 -0
  112. package/dist/services/affinidi/iam/iam.api.d.ts +120 -105
  113. package/dist/services/affinidi/iam/iam.api.js +39 -118
  114. package/dist/services/affinidi/iam/iam.api.js.map +1 -1
  115. package/dist/services/affinidi/iam/index.d.ts +15 -15
  116. package/dist/services/affinidi/iam/index.js +34 -118
  117. package/dist/services/affinidi/iam/index.js.map +1 -1
  118. package/dist/services/affinidi/logger/console-logger-adapter.js.map +1 -0
  119. package/dist/services/affinidi/logger/index.js.map +1 -0
  120. package/dist/services/affinidi/logger/logger-adapter.js.map +1 -0
  121. package/dist/services/affinidi/vp-adapter/index.d.ts +12 -12
  122. package/dist/services/affinidi/vp-adapter/index.js +37 -70
  123. package/dist/services/affinidi/vp-adapter/index.js.map +1 -1
  124. package/dist/services/affinidi/vp-adapter/vp-adapter.api.d.ts +314 -54
  125. package/dist/services/affinidi/vp-adapter/vp-adapter.api.js +81 -15
  126. package/dist/services/affinidi/vp-adapter/vp-adapter.api.js.map +1 -1
  127. package/dist/services/credentials-vault.d.ts +19 -0
  128. package/dist/services/credentials-vault.js +33 -0
  129. package/dist/services/credentials-vault.js.map +1 -0
  130. package/dist/services/env-config.d.ts +35 -0
  131. package/dist/services/env-config.js +39 -0
  132. package/dist/services/env-config.js.map +1 -0
  133. package/dist/services/generator/auth0.d.ts +2 -1
  134. package/dist/services/generator/auth0.js +6 -7
  135. package/dist/services/generator/auth0.js.map +1 -1
  136. package/package.json +6 -15
  137. package/dist/helpers/generate-error-message.js.map +0 -1
  138. package/dist/helpers/index.d.ts +0 -3
  139. package/dist/helpers/index.js +0 -11
  140. package/dist/helpers/index.js.map +0 -1
  141. package/dist/helpers/input-length-validation.js.map +0 -1
  142. package/dist/helpers/prompt-required-flags.js.map +0 -1
  143. package/dist/hooks/check/check-version.d.ts +0 -17
  144. package/dist/hooks/check/check-version.js +0 -24
  145. package/dist/hooks/check/check-version.js.map +0 -1
  146. package/dist/services/affinidi/adapters/index.d.ts +0 -1
  147. package/dist/services/affinidi/adapters/index.js +0 -5
  148. package/dist/services/affinidi/adapters/index.js.map +0 -1
  149. package/dist/services/affinidi/adapters/logger/console-logger-adapter.js.map +0 -1
  150. package/dist/services/affinidi/adapters/logger/index.js.map +0 -1
  151. package/dist/services/affinidi/adapters/logger/logger-adapter.js.map +0 -1
  152. package/dist/services/affinidi/auth/index.d.ts +0 -62
  153. package/dist/services/affinidi/auth/index.js +0 -131
  154. package/dist/services/affinidi/auth/index.js.map +0 -1
  155. package/dist/services/affinidi/auth/providers/config.d.ts +0 -15
  156. package/dist/services/affinidi/auth/providers/config.js +0 -33
  157. package/dist/services/affinidi/auth/providers/config.js.map +0 -1
  158. package/dist/services/affinidi/auth/providers/error-login-page.d.ts +0 -1
  159. package/dist/services/affinidi/auth/providers/error-login-page.js.map +0 -1
  160. package/dist/services/affinidi/auth/providers/index.d.ts +0 -3
  161. package/dist/services/affinidi/auth/providers/index.js +0 -8
  162. package/dist/services/affinidi/auth/providers/index.js.map +0 -1
  163. package/dist/services/affinidi/auth/providers/ory-pkce.d.ts +0 -47
  164. package/dist/services/affinidi/auth/providers/ory-pkce.js +0 -216
  165. package/dist/services/affinidi/auth/providers/ory-pkce.js.map +0 -1
  166. package/dist/services/affinidi/auth/providers/ory.d.ts +0 -22
  167. package/dist/services/affinidi/auth/providers/ory.js +0 -154
  168. package/dist/services/affinidi/auth/providers/ory.js.map +0 -1
  169. package/dist/services/affinidi/auth/providers/successful-login-page.d.ts +0 -1
  170. package/dist/services/affinidi/auth/providers/successful-login-page.js +0 -110
  171. package/dist/services/affinidi/auth/providers/successful-login-page.js.map +0 -1
  172. package/dist/services/affinidi/auth/providers/types.js.map +0 -1
  173. package/dist/services/affinidi/auth/token.d.ts +0 -54
  174. package/dist/services/affinidi/auth/token.js +0 -121
  175. package/dist/services/affinidi/auth/token.js.map +0 -1
  176. package/dist/services/affinidi/config.d.ts +0 -12
  177. package/dist/services/affinidi/config.js.map +0 -1
  178. package/dist/services/affinidi/errors/index.js.map +0 -1
  179. package/dist/services/affinidi/index.d.ts +0 -24
  180. package/dist/services/affinidi/index.js +0 -52
  181. package/dist/services/affinidi/index.js.map +0 -1
  182. package/dist/services/config/index.d.ts +0 -36
  183. package/dist/services/config/index.js +0 -160
  184. package/dist/services/config/index.js.map +0 -1
  185. package/dist/services/index.d.ts +0 -1
  186. package/dist/services/index.js +0 -6
  187. package/dist/services/index.js.map +0 -1
  188. package/dist/services/urls.d.ts +0 -2
  189. package/dist/services/urls.js +0 -12
  190. package/dist/services/urls.js.map +0 -1
  191. /package/dist/{helpers/generate-error-message.d.ts → common/error-messages.d.ts} +0 -0
  192. /package/dist/{helpers/prompt-required-flags.d.ts → common/prompts.d.ts} +0 -0
  193. /package/dist/services/affinidi/auth/{providers/types.js → types.js} +0 -0
  194. /package/dist/services/affinidi/{errors/index.d.ts → errors.d.ts} +0 -0
  195. /package/dist/services/affinidi/{adapters/logger → logger}/console-logger-adapter.d.ts +0 -0
  196. /package/dist/services/affinidi/{adapters/logger → logger}/console-logger-adapter.js +0 -0
  197. /package/dist/services/affinidi/{adapters/logger → logger}/index.d.ts +0 -0
  198. /package/dist/services/affinidi/{adapters/logger → logger}/index.js +0 -0
  199. /package/dist/services/affinidi/{adapters/logger → logger}/logger-adapter.d.ts +0 -0
  200. /package/dist/services/affinidi/{adapters/logger → logger}/logger-adapter.js +0 -0
package/README.md CHANGED
@@ -11,10 +11,10 @@ Affinidi CLI is a developer tool to easily manage your projects and integration
11
11
 
12
12
  ## Installation
13
13
 
14
- Install the latest beta version of Affinidi CLI
14
+ Install the latest version of Affinidi CLI
15
15
 
16
16
  ```bash
17
- npm install -g @affinidi/cli@beta
17
+ npm install -g @affinidi/cli
18
18
  ```
19
19
 
20
20
  Uninstall the Affinidi CLI
@@ -23,9 +23,15 @@ Uninstall the Affinidi CLI
23
23
  npm uninstall -g @affinidi/cli
24
24
  ```
25
25
 
26
+ Update the Affinidi CLI
27
+
28
+ ```bash
29
+ npm update -g @affinidi/cli
30
+ ```
31
+
26
32
  ## What can I do with Affinidi CLI?
27
33
 
28
- Affinidi CLI is all you need to interact and consume Affinidi services. Optionally you can also use [Affinidi Portal](https://portal.affinidi.com/) or call Affinidi APIs directly.
34
+ Affinidi CLI is all you need to interact and consume Affinidi services. Optionally you can also use [Affinidi Portal](https://portal.affinidi.com) or call Affinidi APIs directly.
29
35
 
30
36
  ### Set up Affinidi Login for your applications
31
37
 
@@ -248,13 +254,12 @@ When you authenticate to Affinidi, the first project is set as your active one b
248
254
 
249
255
  ### Session and configuration files
250
256
 
251
- When you authenticate to Affinidi with `affinidi start` the CLI will create a folder with two files in your home directory.
257
+ When you authenticate to Affinidi with affinidi start the CLI will create a folder with a credentials file in your home directory.
252
258
 
253
- `~/.affinidi/oAuthCred.json` - Stores your current session credentials. Keep it secret as this allows you to call Affinidi services.
259
+ `~/.affinidi/credentials-v2.json` - Stores your current session credentials. Keep it secret as this allows you to call Affinidi services.
254
260
 
255
- `~/.affinidi/config-v2.json` - Stores user's CLI configurations (currently none)
261
+ When you run affinidi stop your session information is deleted.
256
262
 
257
- When you run `affinidi stop` your session information is deleted.
258
263
 
259
264
  ## Support & Feedback
260
265
 
@@ -264,10 +269,6 @@ If you have a technical issue with the CLI's codebase, you can also [create an i
264
269
 
265
270
  ## FAQ
266
271
 
267
- ### A note from Affinidi
268
-
269
- Affinidi CLI is currently in the open beta phase and we are refining our product every day. The Affinidi CLI may be incomplete and may contain errors – they may be unstable and may cause a loss of functionality and data. Use of the Affinidi CLI will be at your own risk. As our engineers seek to improve our platform, we would not have the resources to provide any maintenance or tech support at this time. Please bear with us as we continue to improve the platform.
270
-
271
272
  ### What can I develop?
272
273
 
273
274
  You are only limited by your imagination! Affinidi CLI is a toolbox with which you can build software applications for personal or commercial use.
@@ -288,7 +289,7 @@ Some of our components would also require you to incorporate our end-user notice
288
289
 
289
290
  ### Is Affinidi CLI free for use?
290
291
 
291
- Affinidi CLI is free during the open beta phase, so come onboard and experiment with our tools and see what you can build! We may bill for certain components in the future, but we will inform you beforehand.
292
+ Affinidi CLI itself is free, so come onboard and experiment with our tools and see what you can build! We may bill for certain components in the future, but we will inform you beforehand.
292
293
 
293
294
  ### Is there any limit or cap to my usage of the Affinidi CLI?
294
295
 
@@ -326,8 +327,12 @@ Please note that this FAQ is provided for informational purposes only and is not
326
327
  * [`affinidi login create-group`](#affinidi-login-create-group)
327
328
  * [`affinidi login delete-config`](#affinidi-login-delete-config)
328
329
  * [`affinidi login delete-group`](#affinidi-login-delete-group)
330
+ * [`affinidi login export-configs`](#affinidi-login-export-configs)
331
+ * [`affinidi login export-groups`](#affinidi-login-export-groups)
329
332
  * [`affinidi login get-config`](#affinidi-login-get-config)
330
333
  * [`affinidi login get-group`](#affinidi-login-get-group)
334
+ * [`affinidi login import-configs`](#affinidi-login-import-configs)
335
+ * [`affinidi login import-groups`](#affinidi-login-import-groups)
331
336
  * [`affinidi login list-configs`](#affinidi-login-list-configs)
332
337
  * [`affinidi login list-groups`](#affinidi-login-list-groups)
333
338
  * [`affinidi login list-users-in-group`](#affinidi-login-list-users-in-group)
@@ -412,18 +417,17 @@ _See code: [@oclif/plugin-commands](https://github.com/oclif/plugin-commands/blo
412
417
 
413
418
  ## `affinidi generate app`
414
419
 
415
- Generates a NextJS reference application that integrates Affinidi Login. Requires git
420
+ Generates a reference application that integrates Affinidi Login. Requires git
416
421
 
417
422
  ```
418
423
  USAGE
419
- $ affinidi generate app [--json] [--no-color] [--no-input] [-s
420
- affinidi-nextjs-nextauthjs|auth0-nextjs-nextauthjs] [-p <value>] [--force]
424
+ $ affinidi generate app [--json] [--no-color] [--no-input] [-f <value>] [-a <value>] [-p <value>] [--force]
421
425
 
422
426
  FLAGS
423
- -p, --path=<value> Relative or absolute path where reference application should be cloned into
424
- -s, --sample=<option> Sample to generate
425
- <options: affinidi-nextjs-nextauthjs|auth0-nextjs-nextauthjs>
426
- --force Override destination directory if exists
427
+ -a, --provider=<value> Authentication provider for the reference app
428
+ -f, --framework=<value> Framework for the reference app
429
+ -p, --path=<value> Relative or absolute path where reference application should be cloned into
430
+ --force Override destination directory if exists
427
431
 
428
432
  GLOBAL FLAGS
429
433
  --json Format output as json.
@@ -433,15 +437,9 @@ GLOBAL FLAGS
433
437
  EXAMPLES
434
438
  $ affinidi generate app
435
439
 
436
- $ affinidi generate app -p "../my-app" -s affinidi-nextjs-nextauthjs
437
-
438
- $ affinidi generate app --path "../my-app" --sample auth0-nextjs-nextauthjs --force
440
+ $ affinidi generate app -p "../my-app" -f django -a affinidi
439
441
 
440
- FLAG DESCRIPTIONS
441
- -s, --sample=affinidi-nextjs-nextauthjs|auth0-nextjs-nextauthjs Sample to generate
442
-
443
- Use affinidi-nextjs-nextauthjs to generate a Next.js+NextAuth.js app that integrates Affinidi Login directly
444
- Use auth0-nextjs-nextauthjs to generate a Next.js+NextAuth.js app that integrates Affinidi Login through Auth0
442
+ $ affinidi generate app --path "../my-app" --framework django --provider affinidi --force
445
443
  ```
446
444
 
447
445
  ## `affinidi help [COMMANDS]`
@@ -470,12 +468,12 @@ Adds a principal (user or token) to the active project
470
468
 
471
469
  ```
472
470
  USAGE
473
- $ affinidi iam add-principal [--json] [--no-color] [--no-input] [-i <value>] [-t machine_user|user]
471
+ $ affinidi iam add-principal [--json] [--no-color] [--no-input] [-i <value>] [-t token|user]
474
472
 
475
473
  FLAGS
476
474
  -i, --principal-id=<value> ID of the principal
477
475
  -t, --principal-type=<option> Type of the principal
478
- <options: machine_user|user>
476
+ <options: token|user>
479
477
 
480
478
  GLOBAL FLAGS
481
479
  --json Format output as json.
@@ -490,7 +488,7 @@ DESCRIPTION
490
488
  EXAMPLES
491
489
  $ affinidi iam add-principal -i <uuid>
492
490
 
493
- $ affinidi iam add-principal --principal-id <uuid> --principal-type machine_user
491
+ $ affinidi iam add-principal --principal-id <uuid> --principal-type token
494
492
 
495
493
  FLAG DESCRIPTIONS
496
494
  -i, --principal-id=<value> ID of the principal
@@ -504,12 +502,12 @@ Gets the policies of a principal (user or token)
504
502
 
505
503
  ```
506
504
  USAGE
507
- $ affinidi iam get-policies [--json] [--no-color] [--no-input] [-i <value>] [-t machine_user|user]
505
+ $ affinidi iam get-policies [--json] [--no-color] [--no-input] [-i <value>] [-t token|user]
508
506
 
509
507
  FLAGS
510
508
  -i, --principal-id=<value> ID of the principal
511
509
  -t, --principal-type=<option> Type of the principal
512
- <options: machine_user|user>
510
+ <options: token|user>
513
511
 
514
512
  GLOBAL FLAGS
515
513
  --json Format output as json.
@@ -525,7 +523,7 @@ DESCRIPTION
525
523
  EXAMPLES
526
524
  $ affinidi iam get-policies -i <uuid>
527
525
 
528
- $ affinidi iam get-policies --principal-id <uuid> --principal-type machine_user
526
+ $ affinidi iam get-policies --principal-id <uuid> --principal-type token
529
527
 
530
528
  FLAG DESCRIPTIONS
531
529
  -i, --principal-id=<value> ID of the principal
@@ -561,12 +559,12 @@ Removes a principal (user or token) from the active project
561
559
 
562
560
  ```
563
561
  USAGE
564
- $ affinidi iam remove-principal [--json] [--no-color] [--no-input] [-i <value>] [-t machine_user|user]
562
+ $ affinidi iam remove-principal [--json] [--no-color] [--no-input] [-i <value>] [-t token|user]
565
563
 
566
564
  FLAGS
567
565
  -i, --principal-id=<value> ID of the principal
568
566
  -t, --principal-type=<option> Type of the principal
569
- <options: machine_user|user>
567
+ <options: token|user>
570
568
 
571
569
  GLOBAL FLAGS
572
570
  --json Format output as json.
@@ -581,7 +579,7 @@ DESCRIPTION
581
579
  EXAMPLES
582
580
  $ affinidi iam remove-principal -i <uuid>
583
581
 
584
- $ affinidi iam remove-principal --principal-id <uuid> --principal-type machine_user
582
+ $ affinidi iam remove-principal --principal-id <uuid> --principal-type token
585
583
 
586
584
  FLAG DESCRIPTIONS
587
585
  -i, --principal-id=<value> ID of the principal
@@ -595,13 +593,13 @@ Updates the policies of a principal (user or token) in the active project
595
593
 
596
594
  ```
597
595
  USAGE
598
- $ affinidi iam update-policies [--json] [--no-color] [--no-input] [-i <value>] [-t machine_user|user] [-f <value>]
596
+ $ affinidi iam update-policies [--json] [--no-color] [--no-input] [-i <value>] [-t token|user] [-f <value>]
599
597
 
600
598
  FLAGS
601
599
  -f, --file=<value> Location of a json file containing principal policies
602
600
  -i, --principal-id=<value> ID of the principal
603
601
  -t, --principal-type=<option> Type of the principal
604
- <options: machine_user|user>
602
+ <options: token|user>
605
603
 
606
604
  GLOBAL FLAGS
607
605
  --json Format output as json.
@@ -617,7 +615,7 @@ DESCRIPTION
617
615
  EXAMPLES
618
616
  $ affinidi iam update-policies -i <uuid>
619
617
 
620
- $ affinidi iam update-policies --principal-id <uuid> --principal-type machine_user --file policies.json
618
+ $ affinidi iam update-policies --principal-id <uuid> --principal-type token --file policies.json
621
619
 
622
620
  FLAG DESCRIPTIONS
623
621
  -i, --principal-id=<value> ID of the principal
@@ -631,11 +629,11 @@ Adds a user to a user group
631
629
 
632
630
  ```
633
631
  USAGE
634
- $ affinidi login add-user-to-group [--json] [--no-color] [--no-input] [--group-name <value>] [--user-sub <value>]
632
+ $ affinidi login add-user-to-group [--json] [--no-color] [--no-input] [--group-name <value>] [--user-id <value>]
635
633
 
636
634
  FLAGS
637
635
  --group-name=<value> Name of the user group
638
- --user-sub=<value> Subject of the user. Currently the user's DID is supported.
636
+ --user-id=<value> Id of the user. Currently the user's DID is supported.
639
637
 
640
638
  GLOBAL FLAGS
641
639
  --json Format output as json.
@@ -643,7 +641,7 @@ GLOBAL FLAGS
643
641
  --no-input Disables all the interactive prompts
644
642
 
645
643
  EXAMPLES
646
- $ affinidi login add-user-to-group --group-name my_group --user-sub did:key:12345
644
+ $ affinidi login add-user-to-group --group-name my_group --user-id did:key:12345
647
645
  ```
648
646
 
649
647
  ## `affinidi login create-config`
@@ -761,6 +759,52 @@ EXAMPLES
761
759
  $ affinidi login delete-group --name my_group
762
760
  ```
763
761
 
762
+ ## `affinidi login export-configs`
763
+
764
+ Export selected login configurations of your active project
765
+
766
+ ```
767
+ USAGE
768
+ $ affinidi login export-configs [--json] [--no-color] [--no-input] [-i <value>] [-p <value>]
769
+
770
+ FLAGS
771
+ -i, --ids=<value> IDs of the login configurations to export, separated by space
772
+ -p, --path=<value> Relative or absolute path where configurations should be exported
773
+
774
+ GLOBAL FLAGS
775
+ --json Format output as json.
776
+ --no-color Disables color in the output. If you have trouble distinguishing colors, consider using this flag.
777
+ --no-input Disables all the interactive prompts
778
+
779
+ EXAMPLES
780
+ $ affinidi login export-configs
781
+
782
+ $ affinidi login export-configs --ids "configurationId1 configurationId2" --path "../my-configs.json"
783
+ ```
784
+
785
+ ## `affinidi login export-groups`
786
+
787
+ Export selected user groups with its users
788
+
789
+ ```
790
+ USAGE
791
+ $ affinidi login export-groups [--json] [--no-color] [--no-input] [-n <value>] [-p <value>]
792
+
793
+ FLAGS
794
+ -n, --names=<value> Group names to export, separated by space
795
+ -p, --path=<value> Relative or absolute path where user groups should be exported
796
+
797
+ GLOBAL FLAGS
798
+ --json Format output as json.
799
+ --no-color Disables color in the output. If you have trouble distinguishing colors, consider using this flag.
800
+ --no-input Disables all the interactive prompts
801
+
802
+ EXAMPLES
803
+ $ affinidi login export-groups
804
+
805
+ $ affinidi login export-groups --names "groupName1 groupName2" --path "../my-user-groups.json"
806
+ ```
807
+
764
808
  ## `affinidi login get-config`
765
809
 
766
810
  Gets the details of a login configuration in your active project
@@ -805,6 +849,50 @@ EXAMPLES
805
849
  $ affinidi login get-group --name my_group
806
850
  ```
807
851
 
852
+ ## `affinidi login import-configs`
853
+
854
+ Import login configurations in your active project
855
+
856
+ ```
857
+ USAGE
858
+ $ affinidi login import-configs [--json] [--no-color] [--no-input] [-p <value>]
859
+
860
+ FLAGS
861
+ -p, --path=<value> Path to file with configurations that should be imported
862
+
863
+ GLOBAL FLAGS
864
+ --json Format output as json.
865
+ --no-color Disables color in the output. If you have trouble distinguishing colors, consider using this flag.
866
+ --no-input Disables all the interactive prompts
867
+
868
+ EXAMPLES
869
+ $ affinidi login import-configs
870
+
871
+ $ affinidi login import-configs --path "../my-configs.json"
872
+ ```
873
+
874
+ ## `affinidi login import-groups`
875
+
876
+ Import groups with its users
877
+
878
+ ```
879
+ USAGE
880
+ $ affinidi login import-groups [--json] [--no-color] [--no-input] [-p <value>]
881
+
882
+ FLAGS
883
+ -p, --path=<value> Path to file with groups that should be imported
884
+
885
+ GLOBAL FLAGS
886
+ --json Format output as json.
887
+ --no-color Disables color in the output. If you have trouble distinguishing colors, consider using this flag.
888
+ --no-input Disables all the interactive prompts
889
+
890
+ EXAMPLES
891
+ $ affinidi login import-groups
892
+
893
+ $ affinidi login import-groups --path "../my-groups.json"
894
+ ```
895
+
808
896
  ## `affinidi login list-configs`
809
897
 
810
898
  Lists login configurations in your active project
@@ -865,12 +953,11 @@ Removes a user from a user group
865
953
 
866
954
  ```
867
955
  USAGE
868
- $ affinidi login remove-user-from-group [--json] [--no-color] [--no-input] [--group-name <value>] [--user-mapping-id
869
- <value>]
956
+ $ affinidi login remove-user-from-group [--json] [--no-color] [--no-input] [--group-name <value>] [--user-id <value>]
870
957
 
871
958
  FLAGS
872
- --group-name=<value> Name of the user group
873
- --user-mapping-id=<value> ID of the user mapping record
959
+ --group-name=<value> Name of the user group
960
+ --user-id=<value> ID of the user
874
961
 
875
962
  GLOBAL FLAGS
876
963
  --json Format output as json.
@@ -878,7 +965,7 @@ GLOBAL FLAGS
878
965
  --no-input Disables all the interactive prompts
879
966
 
880
967
  EXAMPLES
881
- $ affinidi login remove-user-from-group --group-name my_group --user-mapping-id <value>
968
+ $ affinidi login remove-user-from-group --group-name my_group --user-id did:key:12345
882
969
  ```
883
970
 
884
971
  ## `affinidi login update-config`
@@ -929,7 +1016,7 @@ FLAG DESCRIPTIONS
929
1016
 
930
1017
  ## `affinidi project create-project`
931
1018
 
932
- Creates a project
1019
+ Creates a project and sets it as the active project
933
1020
 
934
1021
  ```
935
1022
  USAGE
@@ -1030,10 +1117,7 @@ Log in to Affinidi
1030
1117
 
1031
1118
  ```
1032
1119
  USAGE
1033
- $ affinidi start [--json] [--no-color] [--no-input] [-i <value>]
1034
-
1035
- FLAGS
1036
- -i, --project-id=<value> ID of the project to set as active
1120
+ $ affinidi start [--json] [--no-color] [--no-input]
1037
1121
 
1038
1122
  GLOBAL FLAGS
1039
1123
  --json Format output as json.
@@ -1042,13 +1126,9 @@ GLOBAL FLAGS
1042
1126
 
1043
1127
  EXAMPLES
1044
1128
  $ affinidi start
1045
-
1046
- $ affinidi start -i <project-id>
1047
-
1048
- $ affinidi start --project-id <project-id>
1049
1129
  ```
1050
1130
 
1051
- _See code: [dist/commands/start.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.6/dist/commands/start.ts)_
1131
+ _See code: [dist/commands/start.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.12/dist/commands/start.ts)_
1052
1132
 
1053
1133
  ## `affinidi stop`
1054
1134
 
@@ -1067,7 +1147,7 @@ EXAMPLES
1067
1147
  $ affinidi stop
1068
1148
  ```
1069
1149
 
1070
- _See code: [dist/commands/stop.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.6/dist/commands/stop.ts)_
1150
+ _See code: [dist/commands/stop.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.12/dist/commands/stop.ts)_
1071
1151
 
1072
1152
  ## `affinidi token create-token`
1073
1153
 
@@ -1187,7 +1267,7 @@ EXAMPLES
1187
1267
 
1188
1268
  ## `affinidi whoami`
1189
1269
 
1190
- Returns user's subject and principalId from his active session
1270
+ Returns user's subject, projects, and token details from the current session.
1191
1271
 
1192
1272
  ```
1193
1273
  USAGE
@@ -1202,5 +1282,5 @@ EXAMPLES
1202
1282
  $ affinidi whoami
1203
1283
  ```
1204
1284
 
1205
- _See code: [dist/commands/whoami.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.6/dist/commands/whoami.ts)_
1285
+ _See code: [dist/commands/whoami.ts](https://github.com/affinidi/affinidi-cli/blob/v2.0.0-beta.12/dist/commands/whoami.ts)_
1206
1286
  <!-- commandsstop -->
@@ -1,11 +1,17 @@
1
1
  import { BaseCommand } from '../../common';
2
2
  export default class GenerateApp extends BaseCommand<typeof GenerateApp> {
3
+ static apps: any;
4
+ static providers: string[];
5
+ static frameworks: string[];
6
+ static libraries: Map<string, string[]>;
3
7
  static summary: string;
4
8
  static examples: string[];
5
9
  static flags: {
6
- sample: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ framework: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ provider: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
12
  path: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
13
  force: import("@oclif/core/lib/interfaces/parser").BooleanFlag<boolean>;
9
14
  };
15
+ init(): Promise<void>;
10
16
  run(): Promise<void>;
11
17
  }
@@ -5,41 +5,72 @@ const password_1 = tslib_1.__importDefault(require("@inquirer/password"));
5
5
  const prompts_1 = require("@inquirer/prompts");
6
6
  const core_1 = require("@oclif/core");
7
7
  const errors_1 = require("@oclif/core/lib/errors");
8
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
9
8
  const zod_1 = tslib_1.__importDefault(require("zod"));
10
9
  const common_1 = require("../../common");
11
- const helpers_1 = require("../../helpers");
10
+ const error_messages_1 = require("../../common/error-messages");
11
+ const prompts_2 = require("../../common/prompts");
12
+ const validators_1 = require("../../common/validators");
13
+ const app_1 = require("../../helpers/app");
12
14
  const degit_1 = require("../../helpers/degit");
13
- const generate_error_message_1 = require("../../helpers/generate-error-message");
14
- const input_length_validation_1 = require("../../helpers/input-length-validation");
15
- const affinidi_1 = require("../../services/affinidi");
16
15
  const vp_adapter_1 = require("../../services/affinidi/vp-adapter");
17
16
  const auth0_1 = require("../../services/generator/auth0");
18
17
  const env_configurer_1 = require("../../services/generator/env-configurer");
18
+ const APPS_INFORMATION_GITHUB_LOCATION = 'samples/apps.json';
19
19
  const APPS_GITHUB_LOCATION = 'affinidi/reference-app-affinidi-vault/samples';
20
20
  class GenerateApp extends common_1.BaseCommand {
21
+ async init() {
22
+ GenerateApp.apps = await (0, app_1.getApps)(APPS_INFORMATION_GITHUB_LOCATION);
23
+ const { providers, frameworks, libraries } = (0, app_1.getSupportedAppsInformation)(GenerateApp.apps);
24
+ GenerateApp.providers = providers;
25
+ GenerateApp.frameworks = frameworks;
26
+ GenerateApp.libraries = libraries;
27
+ GenerateApp.flags.framework = core_1.Flags.string({
28
+ char: 'f',
29
+ summary: 'Framework for the reference app',
30
+ options: frameworks,
31
+ });
32
+ GenerateApp.flags.provider = core_1.Flags.string({
33
+ char: 'a',
34
+ summary: 'Authentication provider for the reference app',
35
+ options: providers,
36
+ });
37
+ }
21
38
  async run() {
22
39
  const { flags } = await this.parse(GenerateApp);
23
- if (flags['no-input'] && !flags.sample) {
24
- throw new errors_1.CLIError((0, generate_error_message_1.giveFlagInputErrorMessage)('sample'));
40
+ if (flags['no-input']) {
41
+ if (!flags.provider)
42
+ throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('provider'));
43
+ if (!flags.framework)
44
+ throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('framework'));
25
45
  }
26
- const sample = flags.sample ??
46
+ const provider = flags.provider ??
27
47
  (await (0, prompts_1.select)({
28
- message: `Select the app to generate. ${chalk_1.default.italic('affinidi-*')} for basic Affinidi Login, ${chalk_1.default.italic('auth0-*')} for Affinidi Login through Auth0`,
29
- choices: Object.values(common_1.RefAppSamples).map((value) => ({
48
+ message: 'Select the provider for the reference app.',
49
+ choices: GenerateApp.providers.map((value) => ({
30
50
  name: value,
31
51
  value,
32
52
  })),
33
53
  }));
34
- const promptFlags = await (0, helpers_1.promptRequiredParameters)(['path'], flags);
35
- promptFlags.sample = sample;
54
+ const framework = flags.framework ??
55
+ (await (0, prompts_1.select)({
56
+ message: 'Select the framework for the reference app.',
57
+ choices: GenerateApp.frameworks.map((value) => ({
58
+ name: value,
59
+ value,
60
+ })),
61
+ }));
62
+ const promptFlags = await (0, prompts_2.promptRequiredParameters)(['path'], flags);
63
+ promptFlags.framework = framework;
64
+ promptFlags.provider = provider;
36
65
  const schema = zod_1.default.object({
37
- path: zod_1.default.string().max(input_length_validation_1.INPUT_LIMIT),
38
- sample: zod_1.default.string().max(input_length_validation_1.INPUT_LIMIT),
66
+ path: zod_1.default.string().max(validators_1.INPUT_LIMIT),
67
+ framework: zod_1.default.string().max(validators_1.INPUT_LIMIT),
68
+ provider: zod_1.default.string().max(validators_1.INPUT_LIMIT),
39
69
  });
40
70
  const validatedFlags = schema.parse(promptFlags);
71
+ const appName = (0, app_1.getAppName)(framework, provider, GenerateApp.libraries);
41
72
  core_1.ux.action.start('Generating reference application');
42
- await (0, degit_1.cloneWithDegit)(`${APPS_GITHUB_LOCATION}/${sample}`, validatedFlags.path, flags.force);
73
+ await (0, degit_1.cloneWithDegit)(`${APPS_GITHUB_LOCATION}/${appName}`, validatedFlags.path, flags.force);
43
74
  core_1.ux.action.stop('Generated successfully!');
44
75
  if (!flags['no-input']) {
45
76
  const configure = await (0, prompts_1.confirm)({
@@ -47,33 +78,38 @@ class GenerateApp extends common_1.BaseCommand {
47
78
  });
48
79
  if (configure) {
49
80
  core_1.ux.action.start('Fetching available login configurations');
50
- const configs = await vp_adapter_1.vpAdapterService.listLoginConfigurations(affinidi_1.clientSDK.config.getProjectToken()?.projectAccessToken);
81
+ const configs = await vp_adapter_1.vpAdapterService.listLoginConfigurations();
51
82
  core_1.ux.action.stop('Fetched successfully!');
52
83
  const choices = configs.configurations.map((config) => ({
53
84
  value: {
54
- id: config.id,
85
+ id: config.configurationId,
55
86
  auth: config.auth,
56
87
  },
57
- name: `${config.name} [id: ${config.id}]`,
88
+ name: `${config.name} [id: ${config.configurationId}]`,
58
89
  }));
59
90
  const selectedConfig = await (0, prompts_1.select)({
60
91
  message: 'Select a login configuration to use in your reference application',
61
92
  choices,
62
93
  });
63
- const clientSecret = (0, input_length_validation_1.validateInputLength)(await (0, password_1.default)({
94
+ const clientSecret = (0, validators_1.validateInputLength)(await (0, password_1.default)({
64
95
  message: "What is the login configuration's client secret?",
65
96
  mask: true,
66
- }), input_length_validation_1.INPUT_LIMIT);
67
- if (sample === common_1.RefAppSamples.AFFINIDI_NEXTJS_NEXTAUTHJS) {
97
+ }), validators_1.INPUT_LIMIT);
98
+ if (provider === common_1.RefAppProvider.AFFINIDI) {
68
99
  core_1.ux.action.start('Configuring reference application');
69
100
  await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer);
70
101
  core_1.ux.action.stop('Configured successfully!');
71
102
  }
72
- else if (sample === common_1.RefAppSamples.AUTH0_NEXTJS_NEXTAUTHJS) {
73
- const domain = (0, input_length_validation_1.validateInputLength)(await (0, prompts_1.input)({ message: 'What is your Auth0 tenant URL?' }), input_length_validation_1.INPUT_LIMIT);
74
- const accessToken = (0, input_length_validation_1.validateInputLength)(await (0, password_1.default)({ message: 'What is your Auth0 access token?' }), input_length_validation_1.TOKEN_LIMIT);
103
+ else if (provider === common_1.RefAppProvider.AUTH0) {
104
+ const domain = (0, validators_1.validateInputLength)(await (0, prompts_1.input)({ message: 'What is your Auth0 tenant URL?' }), validators_1.INPUT_LIMIT);
105
+ const accessToken = (0, validators_1.validateInputLength)(await (0, password_1.default)({ message: 'What is your Auth0 access token?' }), validators_1.TOKEN_LIMIT);
75
106
  core_1.ux.action.start('Creating Auth0 resources and configuring reference application');
76
- const { auth0ClientId, auth0ClientSecret, connectionName } = await (0, auth0_1.createAuth0Resources)(accessToken, domain, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer);
107
+ const socialConnectionName = `Affinidi-${framework}`;
108
+ const { auth0ClientId, auth0ClientSecret, connectionName } = await (0, auth0_1.createAuth0Resources)(accessToken, domain, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer, socialConnectionName, {
109
+ callbackUrl: GenerateApp.apps.appName.redirectUris.callbackUrl,
110
+ logOutUrl: GenerateApp.apps.appName.redirectUris.logOutUrl,
111
+ webOriginUrl: GenerateApp.apps.appName.redirectUris.webOriginUrl,
112
+ });
77
113
  await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, auth0ClientId, auth0ClientSecret, domain, connectionName);
78
114
  core_1.ux.action.stop('Configured successfully!');
79
115
  }
@@ -83,19 +119,22 @@ class GenerateApp extends common_1.BaseCommand {
83
119
  }
84
120
  }
85
121
  exports.default = GenerateApp;
86
- GenerateApp.summary = 'Generates a NextJS reference application that integrates Affinidi Login. Requires git';
122
+ GenerateApp.providers = [];
123
+ GenerateApp.frameworks = [];
124
+ GenerateApp.summary = 'Generates a reference application that integrates Affinidi Login. Requires git';
87
125
  GenerateApp.examples = [
88
126
  '<%= config.bin %> <%= command.id %>',
89
- '<%= config.bin %> <%= command.id %> -p "../my-app" -s affinidi-nextjs-nextauthjs',
90
- '<%= config.bin %> <%= command.id %> --path "../my-app" --sample auth0-nextjs-nextauthjs --force',
127
+ '<%= config.bin %> <%= command.id %> -p "../my-app" -f django -a affinidi',
128
+ '<%= config.bin %> <%= command.id %> --path "../my-app" --framework django --provider affinidi --force',
91
129
  ];
92
130
  GenerateApp.flags = {
93
- sample: core_1.Flags.string({
94
- char: 's',
95
- summary: 'Sample to generate',
96
- description: `Use ${chalk_1.default.italic('affinidi-nextjs-nextauthjs')} to generate a Next.js+NextAuth.js app that integrates Affinidi Login directly\n\
97
- Use ${chalk_1.default.italic('auth0-nextjs-nextauthjs')} to generate a Next.js+NextAuth.js app that integrates Affinidi Login through Auth0`,
98
- options: Object.values(common_1.RefAppSamples),
131
+ framework: core_1.Flags.string({
132
+ char: 'f',
133
+ summary: 'Framework for the reference app',
134
+ }),
135
+ provider: core_1.Flags.string({
136
+ char: 'a',
137
+ summary: 'Authentication provider for the reference app',
99
138
  }),
100
139
  path: core_1.Flags.string({
101
140
  char: 'p',
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":"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"}