@atlasauth/cli 0.12.0 → 0.13.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 (276) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/args.d.ts +15 -0
  3. package/dist/args.js +7 -0
  4. package/dist/args.js.map +1 -1
  5. package/dist/commands/config.js +71 -6
  6. package/dist/commands/config.js.map +1 -1
  7. package/dist/commands/dev.d.ts +8 -0
  8. package/dist/commands/dev.js +84 -0
  9. package/dist/commands/dev.js.map +1 -0
  10. package/dist/commands/pages.d.ts +14 -0
  11. package/dist/commands/pages.js +113 -0
  12. package/dist/commands/pages.js.map +1 -0
  13. package/dist/context.d.ts +1 -1
  14. package/dist/help.d.ts +1 -1
  15. package/dist/help.js +58 -2
  16. package/dist/help.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.js +3 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/migrate/appwrite/plugin.d.ts +2 -0
  21. package/dist/migrate/appwrite/plugin.js +103 -0
  22. package/dist/migrate/appwrite/plugin.js.map +1 -0
  23. package/dist/migrate/authentik/plugin.d.ts +2 -0
  24. package/dist/migrate/authentik/plugin.js +135 -0
  25. package/dist/migrate/authentik/plugin.js.map +1 -0
  26. package/dist/migrate/azure-ad-b2c/plugin.d.ts +8 -0
  27. package/dist/migrate/azure-ad-b2c/plugin.js +165 -0
  28. package/dist/migrate/azure-ad-b2c/plugin.js.map +1 -0
  29. package/dist/migrate/cognito/plugin.d.ts +5 -0
  30. package/dist/migrate/cognito/plugin.js +170 -0
  31. package/dist/migrate/cognito/plugin.js.map +1 -0
  32. package/dist/migrate/corbado/plugin.d.ts +2 -0
  33. package/dist/migrate/corbado/plugin.js +63 -0
  34. package/dist/migrate/corbado/plugin.js.map +1 -0
  35. package/dist/migrate/entra-external-id/plugin.d.ts +8 -0
  36. package/dist/migrate/entra-external-id/plugin.js +12 -0
  37. package/dist/migrate/entra-external-id/plugin.js.map +1 -0
  38. package/dist/migrate/export/appwrite-config.d.ts +28 -0
  39. package/dist/migrate/export/appwrite-config.js +170 -0
  40. package/dist/migrate/export/appwrite-config.js.map +1 -0
  41. package/dist/migrate/export/appwrite.d.ts +51 -0
  42. package/dist/migrate/export/appwrite.js +288 -0
  43. package/dist/migrate/export/appwrite.js.map +1 -0
  44. package/dist/migrate/export/authentik-config.d.ts +45 -0
  45. package/dist/migrate/export/authentik-config.js +357 -0
  46. package/dist/migrate/export/authentik-config.js.map +1 -0
  47. package/dist/migrate/export/authentik.d.ts +110 -0
  48. package/dist/migrate/export/authentik.js +838 -0
  49. package/dist/migrate/export/authentik.js.map +1 -0
  50. package/dist/migrate/export/azure-config.d.ts +58 -0
  51. package/dist/migrate/export/azure-config.js +344 -0
  52. package/dist/migrate/export/azure-config.js.map +1 -0
  53. package/dist/migrate/export/azure.d.ts +85 -0
  54. package/dist/migrate/export/azure.js +373 -0
  55. package/dist/migrate/export/azure.js.map +1 -0
  56. package/dist/migrate/export/cognito-config.d.ts +25 -0
  57. package/dist/migrate/export/cognito-config.js +273 -0
  58. package/dist/migrate/export/cognito-config.js.map +1 -0
  59. package/dist/migrate/export/cognito.d.ts +103 -0
  60. package/dist/migrate/export/cognito.js +441 -0
  61. package/dist/migrate/export/cognito.js.map +1 -0
  62. package/dist/migrate/export/corbado-config.d.ts +20 -0
  63. package/dist/migrate/export/corbado-config.js +63 -0
  64. package/dist/migrate/export/corbado-config.js.map +1 -0
  65. package/dist/migrate/export/corbado.d.ts +37 -0
  66. package/dist/migrate/export/corbado.js +132 -0
  67. package/dist/migrate/export/corbado.js.map +1 -0
  68. package/dist/migrate/export/firebase-config.d.ts +24 -0
  69. package/dist/migrate/export/firebase-config.js +215 -0
  70. package/dist/migrate/export/firebase-config.js.map +1 -0
  71. package/dist/migrate/export/firebase.d.ts +102 -0
  72. package/dist/migrate/export/firebase.js +464 -0
  73. package/dist/migrate/export/firebase.js.map +1 -0
  74. package/dist/migrate/export/frontegg-config.d.ts +29 -0
  75. package/dist/migrate/export/frontegg-config.js +238 -0
  76. package/dist/migrate/export/frontegg-config.js.map +1 -0
  77. package/dist/migrate/export/frontegg.d.ts +67 -0
  78. package/dist/migrate/export/frontegg.js +410 -0
  79. package/dist/migrate/export/frontegg.js.map +1 -0
  80. package/dist/migrate/export/fusionauth-config.d.ts +26 -0
  81. package/dist/migrate/export/fusionauth-config.js +226 -0
  82. package/dist/migrate/export/fusionauth-config.js.map +1 -0
  83. package/dist/migrate/export/fusionauth.d.ts +99 -0
  84. package/dist/migrate/export/fusionauth.js +642 -0
  85. package/dist/migrate/export/fusionauth.js.map +1 -0
  86. package/dist/migrate/export/hanko-config.d.ts +27 -0
  87. package/dist/migrate/export/hanko-config.js +265 -0
  88. package/dist/migrate/export/hanko-config.js.map +1 -0
  89. package/dist/migrate/export/hanko.d.ts +52 -0
  90. package/dist/migrate/export/hanko.js +605 -0
  91. package/dist/migrate/export/hanko.js.map +1 -0
  92. package/dist/migrate/export/keycloak-config.d.ts +19 -0
  93. package/dist/migrate/export/keycloak-config.js +219 -0
  94. package/dist/migrate/export/keycloak-config.js.map +1 -0
  95. package/dist/migrate/export/keycloak.d.ts +155 -0
  96. package/dist/migrate/export/keycloak.js +878 -0
  97. package/dist/migrate/export/keycloak.js.map +1 -0
  98. package/dist/migrate/export/ldap.d.ts +53 -0
  99. package/dist/migrate/export/ldap.js +277 -0
  100. package/dist/migrate/export/ldap.js.map +1 -0
  101. package/dist/migrate/export/logto-config.d.ts +27 -0
  102. package/dist/migrate/export/logto-config.js +264 -0
  103. package/dist/migrate/export/logto-config.js.map +1 -0
  104. package/dist/migrate/export/logto.d.ts +150 -0
  105. package/dist/migrate/export/logto.js +809 -0
  106. package/dist/migrate/export/logto.js.map +1 -0
  107. package/dist/migrate/export/magic-config.d.ts +14 -0
  108. package/dist/migrate/export/magic-config.js +28 -0
  109. package/dist/migrate/export/magic-config.js.map +1 -0
  110. package/dist/migrate/export/magic.d.ts +31 -0
  111. package/dist/migrate/export/magic.js +93 -0
  112. package/dist/migrate/export/magic.js.map +1 -0
  113. package/dist/migrate/export/mini-yaml.d.ts +19 -0
  114. package/dist/migrate/export/mini-yaml.js +581 -0
  115. package/dist/migrate/export/mini-yaml.js.map +1 -0
  116. package/dist/migrate/export/nhost-config.d.ts +26 -0
  117. package/dist/migrate/export/nhost-config.js +360 -0
  118. package/dist/migrate/export/nhost-config.js.map +1 -0
  119. package/dist/migrate/export/nhost.d.ts +64 -0
  120. package/dist/migrate/export/nhost.js +304 -0
  121. package/dist/migrate/export/nhost.js.map +1 -0
  122. package/dist/migrate/export/onelogin.d.ts +22 -0
  123. package/dist/migrate/export/onelogin.js +123 -0
  124. package/dist/migrate/export/onelogin.js.map +1 -0
  125. package/dist/migrate/export/ory-config.d.ts +58 -0
  126. package/dist/migrate/export/ory-config.js +451 -0
  127. package/dist/migrate/export/ory-config.js.map +1 -0
  128. package/dist/migrate/export/ory.d.ts +81 -0
  129. package/dist/migrate/export/ory.js +555 -0
  130. package/dist/migrate/export/ory.js.map +1 -0
  131. package/dist/migrate/export/password-detect.d.ts +29 -0
  132. package/dist/migrate/export/password-detect.js +81 -0
  133. package/dist/migrate/export/password-detect.js.map +1 -0
  134. package/dist/migrate/export/pingone.d.ts +36 -0
  135. package/dist/migrate/export/pingone.js +218 -0
  136. package/dist/migrate/export/pingone.js.map +1 -0
  137. package/dist/migrate/export/pocketbase-config.d.ts +28 -0
  138. package/dist/migrate/export/pocketbase-config.js +180 -0
  139. package/dist/migrate/export/pocketbase-config.js.map +1 -0
  140. package/dist/migrate/export/pocketbase.d.ts +52 -0
  141. package/dist/migrate/export/pocketbase.js +243 -0
  142. package/dist/migrate/export/pocketbase.js.map +1 -0
  143. package/dist/migrate/export/project-files.d.ts +15 -0
  144. package/dist/migrate/export/project-files.js +43 -0
  145. package/dist/migrate/export/project-files.js.map +1 -0
  146. package/dist/migrate/export/propelauth-config.d.ts +18 -0
  147. package/dist/migrate/export/propelauth-config.js +58 -0
  148. package/dist/migrate/export/propelauth-config.js.map +1 -0
  149. package/dist/migrate/export/propelauth-harness.test-helper.d.ts +62 -0
  150. package/dist/migrate/export/propelauth-harness.test-helper.js +109 -0
  151. package/dist/migrate/export/propelauth-harness.test-helper.js.map +1 -0
  152. package/dist/migrate/export/propelauth.d.ts +48 -0
  153. package/dist/migrate/export/propelauth.js +255 -0
  154. package/dist/migrate/export/propelauth.js.map +1 -0
  155. package/dist/migrate/export/source-lines.d.ts +17 -0
  156. package/dist/migrate/export/source-lines.js +43 -0
  157. package/dist/migrate/export/source-lines.js.map +1 -0
  158. package/dist/migrate/export/sso-metadata.d.ts +47 -0
  159. package/dist/migrate/export/sso-metadata.js +180 -0
  160. package/dist/migrate/export/sso-metadata.js.map +1 -0
  161. package/dist/migrate/export/stytch-config.d.ts +22 -0
  162. package/dist/migrate/export/stytch-config.js +102 -0
  163. package/dist/migrate/export/stytch-config.js.map +1 -0
  164. package/dist/migrate/export/stytch.d.ts +68 -0
  165. package/dist/migrate/export/stytch.js +510 -0
  166. package/dist/migrate/export/stytch.js.map +1 -0
  167. package/dist/migrate/export/supabase-config.d.ts +48 -0
  168. package/dist/migrate/export/supabase-config.js +408 -0
  169. package/dist/migrate/export/supabase-config.js.map +1 -0
  170. package/dist/migrate/export/supabase.d.ts +86 -0
  171. package/dist/migrate/export/supabase.js +524 -0
  172. package/dist/migrate/export/supabase.js.map +1 -0
  173. package/dist/migrate/export/supertokens-config.d.ts +20 -0
  174. package/dist/migrate/export/supertokens-config.js +150 -0
  175. package/dist/migrate/export/supertokens-config.js.map +1 -0
  176. package/dist/migrate/export/supertokens.d.ts +125 -0
  177. package/dist/migrate/export/supertokens.js +464 -0
  178. package/dist/migrate/export/supertokens.js.map +1 -0
  179. package/dist/migrate/export/table.d.ts +35 -0
  180. package/dist/migrate/export/table.js +248 -0
  181. package/dist/migrate/export/table.js.map +1 -0
  182. package/dist/migrate/export/userfront-config.d.ts +15 -0
  183. package/dist/migrate/export/userfront-config.js +49 -0
  184. package/dist/migrate/export/userfront-config.js.map +1 -0
  185. package/dist/migrate/export/userfront.d.ts +38 -0
  186. package/dist/migrate/export/userfront.js +189 -0
  187. package/dist/migrate/export/userfront.js.map +1 -0
  188. package/dist/migrate/export/workos-config.d.ts +23 -0
  189. package/dist/migrate/export/workos-config.js +125 -0
  190. package/dist/migrate/export/workos-config.js.map +1 -0
  191. package/dist/migrate/export/workos.d.ts +46 -0
  192. package/dist/migrate/export/workos.js +272 -0
  193. package/dist/migrate/export/workos.js.map +1 -0
  194. package/dist/migrate/export/zitadel-config.d.ts +37 -0
  195. package/dist/migrate/export/zitadel-config.js +279 -0
  196. package/dist/migrate/export/zitadel-config.js.map +1 -0
  197. package/dist/migrate/export/zitadel.d.ts +82 -0
  198. package/dist/migrate/export/zitadel.js +447 -0
  199. package/dist/migrate/export/zitadel.js.map +1 -0
  200. package/dist/migrate/firebase/plugin.d.ts +2 -0
  201. package/dist/migrate/firebase/plugin.js +152 -0
  202. package/dist/migrate/firebase/plugin.js.map +1 -0
  203. package/dist/migrate/framework/builtins.js +35 -6
  204. package/dist/migrate/framework/builtins.js.map +1 -1
  205. package/dist/migrate/framework/orchestrator.js +3 -2
  206. package/dist/migrate/framework/orchestrator.js.map +1 -1
  207. package/dist/migrate/framework/plugin.d.ts +2 -0
  208. package/dist/migrate/frontegg/plugin.d.ts +2 -0
  209. package/dist/migrate/frontegg/plugin.js +78 -0
  210. package/dist/migrate/frontegg/plugin.js.map +1 -0
  211. package/dist/migrate/fusionauth/plugin.d.ts +2 -0
  212. package/dist/migrate/fusionauth/plugin.js +109 -0
  213. package/dist/migrate/fusionauth/plugin.js.map +1 -0
  214. package/dist/migrate/hanko/plugin.d.ts +2 -0
  215. package/dist/migrate/hanko/plugin.js +100 -0
  216. package/dist/migrate/hanko/plugin.js.map +1 -0
  217. package/dist/migrate/keycloak/plugin.d.ts +2 -0
  218. package/dist/migrate/keycloak/plugin.js +148 -0
  219. package/dist/migrate/keycloak/plugin.js.map +1 -0
  220. package/dist/migrate/ldap/plugin.d.ts +2 -0
  221. package/dist/migrate/ldap/plugin.js +73 -0
  222. package/dist/migrate/ldap/plugin.js.map +1 -0
  223. package/dist/migrate/logto/plugin.d.ts +2 -0
  224. package/dist/migrate/logto/plugin.js +131 -0
  225. package/dist/migrate/logto/plugin.js.map +1 -0
  226. package/dist/migrate/magic/plugin.d.ts +2 -0
  227. package/dist/migrate/magic/plugin.js +56 -0
  228. package/dist/migrate/magic/plugin.js.map +1 -0
  229. package/dist/migrate/nhost/plugin.d.ts +2 -0
  230. package/dist/migrate/nhost/plugin.js +115 -0
  231. package/dist/migrate/nhost/plugin.js.map +1 -0
  232. package/dist/migrate/oidc/plugin.d.ts +2 -0
  233. package/dist/migrate/oidc/plugin.js +73 -0
  234. package/dist/migrate/oidc/plugin.js.map +1 -0
  235. package/dist/migrate/onelogin/plugin.d.ts +2 -0
  236. package/dist/migrate/onelogin/plugin.js +61 -0
  237. package/dist/migrate/onelogin/plugin.js.map +1 -0
  238. package/dist/migrate/ory/plugin.d.ts +2 -0
  239. package/dist/migrate/ory/plugin.js +186 -0
  240. package/dist/migrate/ory/plugin.js.map +1 -0
  241. package/dist/migrate/ping-identity/plugin.d.ts +2 -0
  242. package/dist/migrate/ping-identity/plugin.js +100 -0
  243. package/dist/migrate/ping-identity/plugin.js.map +1 -0
  244. package/dist/migrate/pocketbase/plugin.d.ts +2 -0
  245. package/dist/migrate/pocketbase/plugin.js +99 -0
  246. package/dist/migrate/pocketbase/plugin.js.map +1 -0
  247. package/dist/migrate/propelauth/plugin.d.ts +2 -0
  248. package/dist/migrate/propelauth/plugin.js +65 -0
  249. package/dist/migrate/propelauth/plugin.js.map +1 -0
  250. package/dist/migrate/saml/plugin.d.ts +2 -0
  251. package/dist/migrate/saml/plugin.js +79 -0
  252. package/dist/migrate/saml/plugin.js.map +1 -0
  253. package/dist/migrate/stytch/plugin.d.ts +2 -0
  254. package/dist/migrate/stytch/plugin.js +97 -0
  255. package/dist/migrate/stytch/plugin.js.map +1 -0
  256. package/dist/migrate/supabase/plugin.d.ts +2 -0
  257. package/dist/migrate/supabase/plugin.js +149 -0
  258. package/dist/migrate/supabase/plugin.js.map +1 -0
  259. package/dist/migrate/supertokens/plugin.d.ts +2 -0
  260. package/dist/migrate/supertokens/plugin.js +114 -0
  261. package/dist/migrate/supertokens/plugin.js.map +1 -0
  262. package/dist/migrate/user-table/plugin.d.ts +2 -0
  263. package/dist/migrate/user-table/plugin.js +62 -0
  264. package/dist/migrate/user-table/plugin.js.map +1 -0
  265. package/dist/migrate/userfront/plugin.d.ts +2 -0
  266. package/dist/migrate/userfront/plugin.js +60 -0
  267. package/dist/migrate/userfront/plugin.js.map +1 -0
  268. package/dist/migrate/workos/plugin.d.ts +2 -0
  269. package/dist/migrate/workos/plugin.js +81 -0
  270. package/dist/migrate/workos/plugin.js.map +1 -0
  271. package/dist/migrate/zitadel/plugin.d.ts +2 -0
  272. package/dist/migrate/zitadel/plugin.js +114 -0
  273. package/dist/migrate/zitadel/plugin.js.map +1 -0
  274. package/dist/run.js +4 -0
  275. package/dist/run.js.map +1 -1
  276. package/package.json +6 -5
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.userTablePlugin = void 0;
4
+ const node_path_1 = require("node:path");
5
+ const args_1 = require("../../args");
6
+ const errors_1 = require("../../errors");
7
+ const plugin_kit_1 = require("../export/plugin-kit");
8
+ const table_1 = require("../export/table");
9
+ /**
10
+ * `atlas migrate user-table export --file users.csv` — a user table from any
11
+ * system as CSV / TSV / JSON / NDJSON, with the hash-algorithm picker for
12
+ * stores whose password column is not self-describing. The vendor-neutral
13
+ * catch-all: every flag below is optional.
14
+ */
15
+ const SPEC = (flag, env, label) => ({ flag, env, label, required: false });
16
+ const HASH_ALGORITHM = SPEC('hash-algorithm', 'ATLAS_HASH_ALGORITHM', 'the password hash algorithm: auto (default), plaintext, or any id such as bcrypt, md5, sha256_salted, pbkdf2, scrypt');
17
+ const SALT_POSITION = SPEC('salt-position', 'ATLAS_SALT_POSITION', 'salted digests: prefix or suffix (default suffix)');
18
+ const HASH_ENCODING = SPEC('hash-encoding', 'ATLAS_HASH_ENCODING', 'how the hash column is encoded: hex, base64 or base64url');
19
+ const HASH_PARAMS = SPEC('hash-params', 'ATLAS_HASH_PARAMS', 'algorithm parameters, e.g. iterations=10000,digest=sha256');
20
+ const COLUMNS = SPEC('map', 'ATLAS_COLUMN_MAP', 'column names when yours differ: email=Mail,id=uid,password=pwd,salt=pwd_salt');
21
+ const TRUST = SPEC('trust-emails', 'ATLAS_TRUST_EMAILS', 'mark every address verified (true or false)');
22
+ function file(p) {
23
+ return (0, args_1.str)(p.args.values, 'file') ?? p.credential({ flag: 'file', env: 'ATLAS_MIGRATE_FILE', label: 'the users file (--file)', required: true });
24
+ }
25
+ exports.userTablePlugin = {
26
+ vendor: 'user-table',
27
+ source: 'custom',
28
+ label: 'Your own user table (CSV / JSON)',
29
+ help: 'Import users from a CSV, TSV, JSON array or NDJSON file — a SELECT * of your users table. Columns are recognised by their usual names (id, email, email_verified, username, first_name, last_name, phone, password_hash, salt, created_at, roles, disabled …) or named with --set map=email=Mail,id=uid. Name the password algorithm with --set hash-algorithm=<id> when the column is not self-describing (add salt-position, hash-encoding and hash-params as needed), or plaintext to hash it on this machine. The file is read locally.',
30
+ export: {
31
+ reads: 'a local CSV / TSV / JSON / NDJSON file (--file)',
32
+ credentials: [HASH_ALGORITHM, SALT_POSITION, HASH_ENCODING, HASH_PARAMS, COLUMNS, TRUST],
33
+ limits: ['Social links, second factors, organizations and sessions are not in a flat table: import those with atlas migrate custom (canonical records) after this.'],
34
+ async run(p, writer, resume) {
35
+ const path = (0, node_path_1.resolve)(file(p));
36
+ let rows;
37
+ try {
38
+ rows = (0, table_1.parseTable)(p.ctx.readFile(path));
39
+ }
40
+ catch (err) {
41
+ throw new errors_1.CliError(`${path}: ${err.message}`);
42
+ }
43
+ if (!rows.length)
44
+ throw new errors_1.CliError(`No rows found in ${path}.`);
45
+ const position = p.credential(SALT_POSITION);
46
+ if (position && position !== 'prefix' && position !== 'suffix')
47
+ throw new errors_1.CliError('--set salt-position must be prefix or suffix.');
48
+ const set = (0, table_1.mapTable)(rows, {
49
+ map: (0, table_1.parseKeyValues)(p.credential(COLUMNS)),
50
+ hashAlgorithm: p.credential(HASH_ALGORITHM),
51
+ saltPosition: position,
52
+ hashEncoding: p.credential(HASH_ENCODING),
53
+ hashParams: (0, table_1.typedParams)(p.credential(HASH_PARAMS)),
54
+ trustEmails: p.credential(TRUST) === 'true',
55
+ origin: `user table ${path}`,
56
+ });
57
+ p.say(` read ${rows.length} row(s) from ${path}`);
58
+ await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
59
+ },
60
+ },
61
+ };
62
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/user-table/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { MigrationPlugin } from '../framework/plugin';
2
+ export declare const userfrontPlugin: MigrationPlugin;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.userfrontPlugin = void 0;
4
+ const userfront_1 = require("../export/userfront");
5
+ const userfront_config_1 = require("../export/userfront-config");
6
+ const plugin_kit_1 = require("../export/plugin-kit");
7
+ /**
8
+ * `atlas migrate userfront` — users, sub-tenants (as organizations) and roles
9
+ * through Userfront's admin API (tenant id + admin key, on this machine), and
10
+ * lazy migration through Userfront's password sign-in for every password:
11
+ * Userfront never returns hashes. There is no bridge preset: Userfront tokens
12
+ * carry no issuer claim, which the zero-logout bridge requires.
13
+ */
14
+ const TENANT_ID = { flag: '--userfront-tenant-id', env: 'USERFRONT_TENANT_ID', label: 'your Userfront tenant id', required: true };
15
+ const API_KEY = { flag: '--userfront-api-key', env: 'USERFRONT_API_KEY', label: 'a Userfront admin API key (uf_live_admin_…)', required: true, secret: true };
16
+ /** The tenant id from the flag or env, else the one the app already uses. */
17
+ function tenantId(p) {
18
+ const env = p.ctx.env;
19
+ const raw = p.credential({ ...TENANT_ID, required: false }) ??
20
+ (env.NEXT_PUBLIC_USERFRONT_TENANT_ID ?? env.REACT_APP_USERFRONT_TENANT_ID ?? env.VITE_USERFRONT_TENANT_ID)?.trim() ??
21
+ (0, plugin_kit_1.need)(p, TENANT_ID);
22
+ return (0, userfront_1.checkTenantId)(raw);
23
+ }
24
+ exports.userfrontPlugin = {
25
+ vendor: 'userfront',
26
+ source: 'userfront',
27
+ label: 'Userfront',
28
+ help: 'Move a Userfront tenant: users with their verified emails and phones, usernames and custom data, sub-tenants as organizations with member roles, roles as Atlas roles, lazy migration through Userfront\'s own sign-in for every password (Userfront never returns hashes), and the code. Your admin key stays on this machine.',
29
+ config: {
30
+ reads: 'your Userfront tenant via the admin API (roles)',
31
+ credentials: [TENANT_ID, API_KEY],
32
+ async translate(p) {
33
+ const tid = tenantId(p);
34
+ const http = (0, userfront_1.userfrontHttp)({ apiKey: (0, plugin_kit_1.need)(p, API_KEY), fetchImpl: p.fetch });
35
+ return (0, userfront_config_1.translateUserfrontConfig)(await (0, plugin_kit_1.vendorStep)('Userfront', () => (0, userfront_config_1.fetchUserfrontConfig)(http, tid)));
36
+ },
37
+ },
38
+ export: {
39
+ reads: 'the Userfront admin API (users, sub-tenants, roles)',
40
+ credentials: [TENANT_ID, API_KEY],
41
+ limits: [
42
+ 'Userfront never returns password hashes: passwords move by lazy migration (the userfront preset checks each one against Userfront on the first Atlas sign-in).',
43
+ 'Second factors, passkeys and social-account ids cannot be exported: members enrol again, register passkeys again and relink social accounts by verified email.',
44
+ 'Pending invitations cannot be listed (Userfront can only create them): invite members again from Atlas.',
45
+ 'Sessions are not exported: Userfront tokens carry no issuer claim, so there is no zero-logout bridge; users sign in once after the switch.',
46
+ ],
47
+ async run(p, writer, resume) {
48
+ const set = await (0, plugin_kit_1.vendorStep)('Userfront', () => (0, userfront_1.exportUserfront)({ tenantId: tenantId(p), apiKey: (0, plugin_kit_1.need)(p, API_KEY), fetchImpl: p.fetch, onProgress: (m) => p.say(` reading ${m}`) }));
49
+ await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
50
+ },
51
+ },
52
+ lazy: {
53
+ preset: 'userfront',
54
+ config(p, t) {
55
+ return { ...t?.lazy?.config, tenant_id: t?.lazy?.config.tenant_id ?? tenantId(p) };
56
+ },
57
+ },
58
+ codemod: 'userfront',
59
+ };
60
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/userfront/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { MigrationPlugin } from '../framework/plugin';
2
+ export declare const workosPlugin: MigrationPlugin;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workosPlugin = void 0;
4
+ const workos_1 = require("../export/workos");
5
+ const workos_config_1 = require("../export/workos-config");
6
+ const plugin_kit_1 = require("../export/plugin-kit");
7
+ const vendor_http_1 = require("../export/vendor-http");
8
+ /**
9
+ * `atlas migrate workos` — a WorkOS environment (AuthKit, SSO, Directory
10
+ * Sync) through the WorkOS API with the environment's API key (on this
11
+ * machine): roles and permissions as Atlas config; users with verified
12
+ * emails, OAuth identities, organizations, memberships and role slugs,
13
+ * invitations and SSO connections as data; the `workos` bridge preset (access
14
+ * tokens verified against the client's JWKS, with a local unsealer for the
15
+ * `wos-session` cookie) and lazy migration through WorkOS's password
16
+ * authentication for every password.
17
+ */
18
+ const API_KEY = { flag: '--workos-api-key', env: 'WORKOS_API_KEY', label: 'a WorkOS API key (sk_…)', required: true, secret: true };
19
+ const CLIENT_ID = { flag: '--workos-client-id', env: 'WORKOS_CLIENT_ID', label: 'your WorkOS client id (client_…)', required: true };
20
+ const HASHES_FILE = { flag: '--workos-hashes-file', env: 'WORKOS_HASHES_FILE', label: 'a password-hash export from WorkOS support', required: false };
21
+ const BASE_URL = { flag: '--workos-base-url', env: 'WORKOS_BASE_URL', label: 'the WorkOS API base URL', required: false };
22
+ const COUNT_FACTORS = { flag: '--workos-factors', env: 'WORKOS_COUNT_FACTORS', label: 'set to 1 to count second factors (one extra request per user)', required: false };
23
+ /** The client id from the flag/env, or the app's own public env var; undefined when neither is set. */
24
+ function clientIdOpt(p) {
25
+ return (p.credential({ ...CLIENT_ID, required: false }) ??
26
+ (p.ctx.env.NEXT_PUBLIC_WORKOS_CLIENT_ID?.trim() || p.ctx.env.VITE_WORKOS_CLIENT_ID?.trim() || undefined));
27
+ }
28
+ function clientId(p) {
29
+ return clientIdOpt(p) ?? (0, plugin_kit_1.need)(p, CLIENT_ID);
30
+ }
31
+ function baseUrl(p) {
32
+ return p.credential(BASE_URL)?.replace(/\/+$/, '');
33
+ }
34
+ exports.workosPlugin = {
35
+ vendor: 'workos',
36
+ source: 'workos',
37
+ label: 'WorkOS',
38
+ help: 'Move a WorkOS environment: roles and permissions as Atlas config; users with verified emails and OAuth identities, organizations, memberships and role slugs, invitations and SSO connections; password hashes when WorkOS support provides them; a zero-logout bridge for AuthKit access tokens (including the sealed wos-session cookie); lazy migration through WorkOS password authentication; and the code. Your API key stays on this machine.',
39
+ config: {
40
+ reads: 'your WorkOS environment via the API (roles, permissions, redirect URIs, connections)',
41
+ credentials: [API_KEY, CLIENT_ID],
42
+ async translate(p) {
43
+ const http = new vendor_http_1.VendorHttp({ vendor: 'WorkOS', baseUrl: baseUrl(p) ?? 'https://api.workos.com', headers: { authorization: `Bearer ${(0, plugin_kit_1.need)(p, API_KEY)}` }, fetchImpl: p.fetch });
44
+ const snap = await (0, plugin_kit_1.vendorStep)('WorkOS', () => (0, workos_config_1.fetchWorkosConfig)(http, clientIdOpt(p)));
45
+ return (0, workos_config_1.translateWorkosConfig)(snap);
46
+ },
47
+ },
48
+ export: {
49
+ reads: 'the WorkOS API (organizations, roles, users, identities, memberships, invitations, connections) and, if you have one, the support hash export (--workos-hashes-file)',
50
+ credentials: [API_KEY, CLIENT_ID, HASHES_FILE, BASE_URL, COUNT_FACTORS],
51
+ limits: [
52
+ 'WorkOS has no password-hash export: if WorkOS support provides one, pass it with --workos-hashes-file; otherwise passwords move by lazy migration (checked against WorkOS on each user\'s first sign-in).',
53
+ 'TOTP secrets and passkeys are not exportable: users enrol their second factor and passkeys again.',
54
+ 'SSO connections move without the identity provider\'s entity id, SSO URL or OIDC secret (the WorkOS API does not return them): each customer\'s IdP admin sets the connection up again against the new Atlas details.',
55
+ 'API key secrets are shown once by WorkOS: reissue them as Atlas API keys. Sessions are not exported: AuthKit access tokens are JWTs, exchanged by the workos bridge preset.',
56
+ ],
57
+ async run(p, writer, resume) {
58
+ const set = await (0, plugin_kit_1.vendorStep)('WorkOS', () => (0, workos_1.exportWorkos)({
59
+ apiKey: (0, plugin_kit_1.need)(p, API_KEY),
60
+ clientId: clientIdOpt(p),
61
+ baseUrl: baseUrl(p),
62
+ hashesText: (0, plugin_kit_1.localFile)(p, HASHES_FILE, 'text'),
63
+ countFactors: Boolean(p.credential(COUNT_FACTORS)),
64
+ fetchImpl: p.fetch,
65
+ onProgress: (m) => p.say(` reading ${m}`),
66
+ }));
67
+ await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
68
+ },
69
+ },
70
+ bridge: {
71
+ preset: 'workos',
72
+ vars: (p, t) => ({ ...t?.bridge?.vars, client_id: t?.bridge?.vars.client_id ?? clientId(p) }),
73
+ },
74
+ lazy: {
75
+ preset: 'workos',
76
+ config: (p, t) => ({ ...t?.lazy?.config, client_id: t?.lazy?.config.client_id ?? clientId(p) }),
77
+ secret: API_KEY,
78
+ },
79
+ codemod: 'workos',
80
+ };
81
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/workos/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { MigrationPlugin } from '../framework/plugin';
2
+ export declare const zitadelPlugin: MigrationPlugin;
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zitadelPlugin = void 0;
4
+ const node_path_1 = require("node:path");
5
+ const errors_1 = require("../../errors");
6
+ const zitadel_1 = require("../export/zitadel");
7
+ const zitadel_config_1 = require("../export/zitadel-config");
8
+ const plugin_kit_1 = require("../export/plugin-kit");
9
+ /**
10
+ * `atlas migrate zitadel` — ZITADEL Cloud and self-hosted ZITADEL: policies,
11
+ * applications, project roles and identity providers as Atlas config; users
12
+ * with their password hashes, TOTP secrets, verified email and phone, social
13
+ * and enterprise links, project roles (as app roles) and organizations with
14
+ * their members, from ZITADEL's own export (a file, or the admin API with a
15
+ * service-user token); a zero-logout bridge for ZITADEL ID tokens and JWT
16
+ * access tokens; lazy migration through the session API; and the code. The
17
+ * token stays on this machine.
18
+ */
19
+ const URL_SPEC = { flag: '--zitadel-url', env: 'ZITADEL_URL', label: 'your ZITADEL URL (https://<instance>.zitadel.cloud, or your own domain)', required: false };
20
+ const TOKEN = { flag: '--zitadel-token', env: 'ZITADEL_TOKEN', label: 'a service user\'s personal access token (IAM_OWNER to export, IAM_LOGIN_CLIENT for lazy migration)', required: false, secret: true };
21
+ const EXPORT_FILE = { flag: '--zitadel-export', env: 'ZITADEL_EXPORT_FILE', label: 'the JSON file `zitadel export` wrote (or a saved POST /admin/v1/export response)', required: false };
22
+ const ORGS = { flag: '--zitadel-orgs', env: 'ZITADEL_ORGS', label: 'how organizations move: auto (when there is more than one), all or skip', required: false };
23
+ function instanceUrl(p) {
24
+ const raw = p.credential(URL_SPEC);
25
+ return raw ? (0, zitadel_1.zitadelBase)(raw) : undefined;
26
+ }
27
+ function orgsMode(p) {
28
+ const raw = (p.credential(ORGS) ?? 'auto').trim().toLowerCase();
29
+ if (raw !== 'auto' && raw !== 'all' && raw !== 'skip')
30
+ throw new errors_1.CliError(`ZITADEL: --set zitadel-orgs takes auto, all or skip (got ${raw}).`);
31
+ return raw;
32
+ }
33
+ function readDocument(p, path) {
34
+ try {
35
+ return JSON.parse(p.ctx.readFile((0, node_path_1.resolve)(path)));
36
+ }
37
+ catch (err) {
38
+ throw new errors_1.CliError(`ZITADEL: could not read the export ${path}: ${err.message}`);
39
+ }
40
+ }
41
+ exports.zitadelPlugin = {
42
+ vendor: 'zitadel',
43
+ source: 'zitadel',
44
+ label: 'ZITADEL',
45
+ help: 'Move ZITADEL (Cloud or self-hosted): login, password and lockout policy, applications, project roles and identity providers as Atlas config; users with password hashes, TOTP secrets, verified email and phone, social and enterprise links, roles and organizations from ZITADEL\'s own export; a zero-logout bridge for ZITADEL ID tokens and JWT access tokens; lazy migration through the session API; and the code. Your service-user token stays on this machine.',
46
+ config: {
47
+ reads: 'a `zitadel export` file, or your instance through the admin API (policies, applications, roles, identity providers, actions)',
48
+ credentials: [EXPORT_FILE, URL_SPEC, TOKEN],
49
+ async translate(p) {
50
+ const file = p.credential(EXPORT_FILE);
51
+ const url = instanceUrl(p);
52
+ if (file)
53
+ return (0, zitadel_config_1.translateZitadelConfig)((0, zitadel_config_1.configSnapshotFromExport)(readDocument(p, file), file, url));
54
+ const token = p.credential(TOKEN);
55
+ if (!url || !token) {
56
+ throw new errors_1.CliError('ZITADEL: pass the export file (--set zitadel-export=<file>), or your instance URL and a service-user token (--set zitadel-url=… --set zitadel-token=…).');
57
+ }
58
+ return (0, zitadel_config_1.translateZitadelConfig)(await (0, plugin_kit_1.vendorStep)('ZITADEL', () => (0, zitadel_config_1.fetchZitadelConfig)({ instance: url, token, fetchImpl: p.fetch })));
59
+ },
60
+ },
61
+ export: {
62
+ reads: 'ZITADEL\'s export (a `zitadel export` file, or POST /admin/v1/export with a service-user token)',
63
+ credentials: [EXPORT_FILE, URL_SPEC, TOKEN, ORGS],
64
+ limits: [
65
+ 'Passkeys and security keys live only in ZITADEL\'s event store and are not exported: users register a passkey again.',
66
+ 'Password hashes and TOTP secrets need the export with passwords and secrets on (`zitadel export`, or an IAM_OWNER token on the admin API). With a narrower role the export lists users through the user API instead, and passwords move by lazy migration.',
67
+ 'Machine users (service accounts) are not exported: recreate them as Atlas API keys or M2M clients.',
68
+ 'Organizations become Atlas organizations when the instance has more than one (--set zitadel-orgs=all to always, skip to never); organization roles other than ORG_OWNER join as plain members.',
69
+ 'Sessions are opaque to Atlas: the bridge accepts ZITADEL ID tokens and JWT access tokens instead.',
70
+ ],
71
+ async run(p, writer, resume) {
72
+ const file = p.credential(EXPORT_FILE);
73
+ const orgs = orgsMode(p);
74
+ let set;
75
+ if (file) {
76
+ const url = instanceUrl(p);
77
+ set = await (0, plugin_kit_1.vendorStep)('ZITADEL', async () => (0, zitadel_1.mapZitadel)({ ...(0, zitadel_1.readZitadelExport)(readDocument(p, file)), instance: url }, { orgs }));
78
+ }
79
+ else {
80
+ const url = instanceUrl(p);
81
+ if (!url)
82
+ throw new errors_1.CliError('ZITADEL: pass the export file (--set zitadel-export=<file>), or your instance URL and a service-user token (--set zitadel-url=… --set zitadel-token=…).');
83
+ const token = (0, plugin_kit_1.need)(p, TOKEN);
84
+ set = await (0, plugin_kit_1.vendorStep)('ZITADEL', () => (0, zitadel_1.exportZitadelApi)({ instance: url, token, orgs, fetchImpl: p.fetch, onProgress: (m) => p.say(` reading ${m}`) }));
85
+ }
86
+ await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
87
+ },
88
+ },
89
+ bridge: {
90
+ preset: 'zitadel',
91
+ vars(p, t) {
92
+ const vars = { ...t?.bridge?.vars };
93
+ const url = instanceUrl(p);
94
+ if (url)
95
+ vars.issuer = url;
96
+ if (!vars.issuer)
97
+ throw new errors_1.CliError('ZITADEL: the bridge needs the issuer: pass your instance URL (--set zitadel-url=https://<instance>.zitadel.cloud).');
98
+ return vars;
99
+ },
100
+ },
101
+ lazy: {
102
+ preset: 'zitadel',
103
+ config(p, t) {
104
+ const config = { ...t?.lazy?.config };
105
+ const url = instanceUrl(p);
106
+ if (url)
107
+ config.base_url = url;
108
+ return config;
109
+ },
110
+ secret: TOKEN,
111
+ },
112
+ codemod: 'zitadel',
113
+ };
114
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/zitadel/plugin.ts"],"names":[],"mappings":"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"}
package/dist/run.js CHANGED
@@ -4,6 +4,7 @@ exports.run = run;
4
4
  const backend_1 = require("@atlasauth/backend");
5
5
  const args_1 = require("./args");
6
6
  const actions_1 = require("./commands/actions");
7
+ const pages_1 = require("./commands/pages");
7
8
  const api_keys_1 = require("./commands/api-keys");
8
9
  const auth_1 = require("./commands/auth");
9
10
  const operator_1 = require("./commands/operator");
@@ -12,6 +13,7 @@ const init_1 = require("./commands/init");
12
13
  const import_1 = require("./commands/import");
13
14
  const info_1 = require("./commands/info");
14
15
  const csp_1 = require("./commands/csp");
16
+ const dev_1 = require("./commands/dev");
15
17
  const listen_1 = require("./commands/listen");
16
18
  const migrate_1 = require("./commands/migrate");
17
19
  const move_origin_1 = require("./commands/move-origin");
@@ -48,6 +50,7 @@ const COMMANDS = {
48
50
  sessions: sessions_1.sessions,
49
51
  config: config_1.config,
50
52
  actions: actions_1.actions,
53
+ pages: pages_1.pages,
51
54
  init: init_1.init,
52
55
  preflight: project_commands_1.preflight,
53
56
  doctor: project_commands_1.doctor,
@@ -60,6 +63,7 @@ const COMMANDS = {
60
63
  info: info_1.info,
61
64
  mcp: mcp_1.mcp,
62
65
  listen: listen_1.listen,
66
+ dev: dev_1.dev,
63
67
  'move-origin': move_origin_1.moveOrigin,
64
68
  csp: csp_1.csp,
65
69
  };
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlasauth/cli",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "atlas — manage an Atlas instance from the terminal via the Backend API.",
5
5
  "bin": {
6
6
  "atlas": "dist/cli.js"
@@ -15,10 +15,11 @@
15
15
  "./package.json": "./package.json"
16
16
  },
17
17
  "dependencies": {
18
- "@atlasauth/actions": "0.3.0",
19
- "@atlasauth/migrate": "0.1.0",
20
- "@atlasauth/backend": "0.24.0",
21
- "@atlasauth/upgrade": "0.5.0",
18
+ "@atlasauth/backend": "0.25.0",
19
+ "@atlasauth/actions": "0.4.0",
20
+ "@atlasauth/migrate": "0.2.0",
21
+ "@atlasauth/emulator": "0.1.0",
22
+ "@atlasauth/upgrade": "0.6.0",
22
23
  "@atlasauth/referral-conformance": "0.1.0"
23
24
  },
24
25
  "devDependencies": {