@atlasauth/cli 0.23.0 → 0.25.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 (527) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/package.json +3 -3
  3. package/dist/args.d.ts +0 -601
  4. package/dist/args.js +0 -289
  5. package/dist/args.js.map +0 -1
  6. package/dist/cli.d.ts +0 -2
  7. package/dist/cli.js +0 -19
  8. package/dist/cli.js.map +0 -1
  9. package/dist/commands/actions-gallery.d.ts +0 -8
  10. package/dist/commands/actions-gallery.js +0 -197
  11. package/dist/commands/actions-gallery.js.map +0 -1
  12. package/dist/commands/actions.d.ts +0 -13
  13. package/dist/commands/actions.js +0 -135
  14. package/dist/commands/actions.js.map +0 -1
  15. package/dist/commands/admin.d.ts +0 -49
  16. package/dist/commands/admin.js +0 -353
  17. package/dist/commands/admin.js.map +0 -1
  18. package/dist/commands/api-keys.d.ts +0 -4
  19. package/dist/commands/api-keys.js +0 -96
  20. package/dist/commands/api-keys.js.map +0 -1
  21. package/dist/commands/auth.d.ts +0 -25
  22. package/dist/commands/auth.js +0 -102
  23. package/dist/commands/auth.js.map +0 -1
  24. package/dist/commands/config.d.ts +0 -90
  25. package/dist/commands/config.js +0 -1430
  26. package/dist/commands/config.js.map +0 -1
  27. package/dist/commands/csp.d.ts +0 -32
  28. package/dist/commands/csp.js +0 -180
  29. package/dist/commands/csp.js.map +0 -1
  30. package/dist/commands/dev.d.ts +0 -8
  31. package/dist/commands/dev.js +0 -84
  32. package/dist/commands/dev.js.map +0 -1
  33. package/dist/commands/fga.d.ts +0 -10
  34. package/dist/commands/fga.js +0 -146
  35. package/dist/commands/fga.js.map +0 -1
  36. package/dist/commands/golive.d.ts +0 -40
  37. package/dist/commands/golive.js +0 -285
  38. package/dist/commands/golive.js.map +0 -1
  39. package/dist/commands/id-accounts.d.ts +0 -13
  40. package/dist/commands/id-accounts.js +0 -195
  41. package/dist/commands/id-accounts.js.map +0 -1
  42. package/dist/commands/import-better-auth.d.ts +0 -3
  43. package/dist/commands/import-better-auth.js +0 -164
  44. package/dist/commands/import-better-auth.js.map +0 -1
  45. package/dist/commands/import.d.ts +0 -3
  46. package/dist/commands/import.js +0 -123
  47. package/dist/commands/import.js.map +0 -1
  48. package/dist/commands/info.d.ts +0 -75
  49. package/dist/commands/info.js +0 -362
  50. package/dist/commands/info.js.map +0 -1
  51. package/dist/commands/init.d.ts +0 -3
  52. package/dist/commands/init.js +0 -438
  53. package/dist/commands/init.js.map +0 -1
  54. package/dist/commands/integrations.d.ts +0 -8
  55. package/dist/commands/integrations.js +0 -112
  56. package/dist/commands/integrations.js.map +0 -1
  57. package/dist/commands/listen.d.ts +0 -17
  58. package/dist/commands/listen.js +0 -223
  59. package/dist/commands/listen.js.map +0 -1
  60. package/dist/commands/mcp.d.ts +0 -38
  61. package/dist/commands/mcp.js +0 -111
  62. package/dist/commands/mcp.js.map +0 -1
  63. package/dist/commands/migrate.d.ts +0 -16
  64. package/dist/commands/migrate.js +0 -114
  65. package/dist/commands/migrate.js.map +0 -1
  66. package/dist/commands/move-origin.d.ts +0 -11
  67. package/dist/commands/move-origin.js +0 -95
  68. package/dist/commands/move-origin.js.map +0 -1
  69. package/dist/commands/operator.d.ts +0 -18
  70. package/dist/commands/operator.js +0 -238
  71. package/dist/commands/operator.js.map +0 -1
  72. package/dist/commands/orgs.d.ts +0 -4
  73. package/dist/commands/orgs.js +0 -72
  74. package/dist/commands/orgs.js.map +0 -1
  75. package/dist/commands/pages.d.ts +0 -14
  76. package/dist/commands/pages.js +0 -113
  77. package/dist/commands/pages.js.map +0 -1
  78. package/dist/commands/partner-platforms.d.ts +0 -10
  79. package/dist/commands/partner-platforms.js +0 -157
  80. package/dist/commands/partner-platforms.js.map +0 -1
  81. package/dist/commands/project-commands.d.ts +0 -38
  82. package/dist/commands/project-commands.js +0 -361
  83. package/dist/commands/project-commands.js.map +0 -1
  84. package/dist/commands/referrals.d.ts +0 -69
  85. package/dist/commands/referrals.js +0 -1056
  86. package/dist/commands/referrals.js.map +0 -1
  87. package/dist/commands/resources.d.ts +0 -44
  88. package/dist/commands/resources.js +0 -234
  89. package/dist/commands/resources.js.map +0 -1
  90. package/dist/commands/sessions.d.ts +0 -4
  91. package/dist/commands/sessions.js +0 -28
  92. package/dist/commands/sessions.js.map +0 -1
  93. package/dist/commands/shared.d.ts +0 -38
  94. package/dist/commands/shared.js +0 -69
  95. package/dist/commands/shared.js.map +0 -1
  96. package/dist/commands/status.d.ts +0 -3
  97. package/dist/commands/status.js +0 -77
  98. package/dist/commands/status.js.map +0 -1
  99. package/dist/commands/users.d.ts +0 -4
  100. package/dist/commands/users.js +0 -100
  101. package/dist/commands/users.js.map +0 -1
  102. package/dist/commands/webhooks.d.ts +0 -34
  103. package/dist/commands/webhooks.js +0 -301
  104. package/dist/commands/webhooks.js.map +0 -1
  105. package/dist/config-http.d.ts +0 -29
  106. package/dist/config-http.js +0 -64
  107. package/dist/config-http.js.map +0 -1
  108. package/dist/config.d.ts +0 -64
  109. package/dist/config.js +0 -69
  110. package/dist/config.js.map +0 -1
  111. package/dist/context.d.ts +0 -72
  112. package/dist/context.js +0 -27
  113. package/dist/context.js.map +0 -1
  114. package/dist/errors.d.ts +0 -15
  115. package/dist/errors.js +0 -25
  116. package/dist/errors.js.map +0 -1
  117. package/dist/help.d.ts +0 -8
  118. package/dist/help.js +0 -868
  119. package/dist/help.js.map +0 -1
  120. package/dist/import/csv.d.ts +0 -6
  121. package/dist/import/csv.js +0 -63
  122. package/dist/import/csv.js.map +0 -1
  123. package/dist/import/vendors.d.ts +0 -57
  124. package/dist/import/vendors.js +0 -568
  125. package/dist/import/vendors.js.map +0 -1
  126. package/dist/index.d.ts +0 -32
  127. package/dist/index.js +0 -79
  128. package/dist/index.js.map +0 -1
  129. package/dist/io.d.ts +0 -21
  130. package/dist/io.js +0 -28
  131. package/dist/io.js.map +0 -1
  132. package/dist/migrate/appwrite/plugin.d.ts +0 -2
  133. package/dist/migrate/appwrite/plugin.js +0 -103
  134. package/dist/migrate/appwrite/plugin.js.map +0 -1
  135. package/dist/migrate/auth0/plugin.d.ts +0 -2
  136. package/dist/migrate/auth0/plugin.js +0 -126
  137. package/dist/migrate/auth0/plugin.js.map +0 -1
  138. package/dist/migrate/authentik/plugin.d.ts +0 -2
  139. package/dist/migrate/authentik/plugin.js +0 -135
  140. package/dist/migrate/authentik/plugin.js.map +0 -1
  141. package/dist/migrate/azure-ad-b2c/plugin.d.ts +0 -8
  142. package/dist/migrate/azure-ad-b2c/plugin.js +0 -165
  143. package/dist/migrate/azure-ad-b2c/plugin.js.map +0 -1
  144. package/dist/migrate/better-auth/integration.d.ts +0 -59
  145. package/dist/migrate/better-auth/integration.js +0 -81
  146. package/dist/migrate/better-auth/integration.js.map +0 -1
  147. package/dist/migrate/better-auth/orchestrator.d.ts +0 -43
  148. package/dist/migrate/better-auth/orchestrator.js +0 -525
  149. package/dist/migrate/better-auth/orchestrator.js.map +0 -1
  150. package/dist/migrate/better-auth/output.d.ts +0 -20
  151. package/dist/migrate/better-auth/output.js +0 -146
  152. package/dist/migrate/better-auth/output.js.map +0 -1
  153. package/dist/migrate/better-auth/translate.d.ts +0 -77
  154. package/dist/migrate/better-auth/translate.js +0 -1989
  155. package/dist/migrate/better-auth/translate.js.map +0 -1
  156. package/dist/migrate/clerk/plugin.d.ts +0 -2
  157. package/dist/migrate/clerk/plugin.js +0 -76
  158. package/dist/migrate/clerk/plugin.js.map +0 -1
  159. package/dist/migrate/cognito/plugin.d.ts +0 -5
  160. package/dist/migrate/cognito/plugin.js +0 -170
  161. package/dist/migrate/cognito/plugin.js.map +0 -1
  162. package/dist/migrate/corbado/plugin.d.ts +0 -2
  163. package/dist/migrate/corbado/plugin.js +0 -63
  164. package/dist/migrate/corbado/plugin.js.map +0 -1
  165. package/dist/migrate/descope/plugin.d.ts +0 -2
  166. package/dist/migrate/descope/plugin.js +0 -83
  167. package/dist/migrate/descope/plugin.js.map +0 -1
  168. package/dist/migrate/entra-external-id/plugin.d.ts +0 -8
  169. package/dist/migrate/entra-external-id/plugin.js +0 -12
  170. package/dist/migrate/entra-external-id/plugin.js.map +0 -1
  171. package/dist/migrate/export/appwrite-config.d.ts +0 -28
  172. package/dist/migrate/export/appwrite-config.js +0 -170
  173. package/dist/migrate/export/appwrite-config.js.map +0 -1
  174. package/dist/migrate/export/appwrite.d.ts +0 -51
  175. package/dist/migrate/export/appwrite.js +0 -288
  176. package/dist/migrate/export/appwrite.js.map +0 -1
  177. package/dist/migrate/export/auth0-config.d.ts +0 -29
  178. package/dist/migrate/export/auth0-config.js +0 -249
  179. package/dist/migrate/export/auth0-config.js.map +0 -1
  180. package/dist/migrate/export/auth0.d.ts +0 -62
  181. package/dist/migrate/export/auth0.js +0 -575
  182. package/dist/migrate/export/auth0.js.map +0 -1
  183. package/dist/migrate/export/authentik-config.d.ts +0 -45
  184. package/dist/migrate/export/authentik-config.js +0 -357
  185. package/dist/migrate/export/authentik-config.js.map +0 -1
  186. package/dist/migrate/export/authentik.d.ts +0 -110
  187. package/dist/migrate/export/authentik.js +0 -838
  188. package/dist/migrate/export/authentik.js.map +0 -1
  189. package/dist/migrate/export/azure-config.d.ts +0 -58
  190. package/dist/migrate/export/azure-config.js +0 -344
  191. package/dist/migrate/export/azure-config.js.map +0 -1
  192. package/dist/migrate/export/azure.d.ts +0 -85
  193. package/dist/migrate/export/azure.js +0 -373
  194. package/dist/migrate/export/azure.js.map +0 -1
  195. package/dist/migrate/export/clerk-config.d.ts +0 -26
  196. package/dist/migrate/export/clerk-config.js +0 -227
  197. package/dist/migrate/export/clerk-config.js.map +0 -1
  198. package/dist/migrate/export/clerk.d.ts +0 -46
  199. package/dist/migrate/export/clerk.js +0 -486
  200. package/dist/migrate/export/clerk.js.map +0 -1
  201. package/dist/migrate/export/cognito-config.d.ts +0 -25
  202. package/dist/migrate/export/cognito-config.js +0 -273
  203. package/dist/migrate/export/cognito-config.js.map +0 -1
  204. package/dist/migrate/export/cognito.d.ts +0 -103
  205. package/dist/migrate/export/cognito.js +0 -441
  206. package/dist/migrate/export/cognito.js.map +0 -1
  207. package/dist/migrate/export/corbado-config.d.ts +0 -20
  208. package/dist/migrate/export/corbado-config.js +0 -63
  209. package/dist/migrate/export/corbado-config.js.map +0 -1
  210. package/dist/migrate/export/corbado.d.ts +0 -37
  211. package/dist/migrate/export/corbado.js +0 -132
  212. package/dist/migrate/export/corbado.js.map +0 -1
  213. package/dist/migrate/export/descope.d.ts +0 -35
  214. package/dist/migrate/export/descope.js +0 -208
  215. package/dist/migrate/export/descope.js.map +0 -1
  216. package/dist/migrate/export/fake-vendor.test-helper.d.ts +0 -27
  217. package/dist/migrate/export/fake-vendor.test-helper.js +0 -41
  218. package/dist/migrate/export/fake-vendor.test-helper.js.map +0 -1
  219. package/dist/migrate/export/firebase-config.d.ts +0 -24
  220. package/dist/migrate/export/firebase-config.js +0 -215
  221. package/dist/migrate/export/firebase-config.js.map +0 -1
  222. package/dist/migrate/export/firebase.d.ts +0 -102
  223. package/dist/migrate/export/firebase.js +0 -464
  224. package/dist/migrate/export/firebase.js.map +0 -1
  225. package/dist/migrate/export/frameworks/app-users.d.ts +0 -42
  226. package/dist/migrate/export/frameworks/app-users.js +0 -161
  227. package/dist/migrate/export/frameworks/app-users.js.map +0 -1
  228. package/dist/migrate/export/frameworks/authjs.d.ts +0 -41
  229. package/dist/migrate/export/frameworks/authjs.js +0 -146
  230. package/dist/migrate/export/frameworks/authjs.js.map +0 -1
  231. package/dist/migrate/export/frameworks/devise.d.ts +0 -39
  232. package/dist/migrate/export/frameworks/devise.js +0 -218
  233. package/dist/migrate/export/frameworks/devise.js.map +0 -1
  234. package/dist/migrate/export/frameworks/django.d.ts +0 -45
  235. package/dist/migrate/export/frameworks/django.js +0 -315
  236. package/dist/migrate/export/frameworks/django.js.map +0 -1
  237. package/dist/migrate/export/frameworks/lucia.d.ts +0 -42
  238. package/dist/migrate/export/frameworks/lucia.js +0 -263
  239. package/dist/migrate/export/frameworks/lucia.js.map +0 -1
  240. package/dist/migrate/export/frameworks/tables.d.ts +0 -90
  241. package/dist/migrate/export/frameworks/tables.js +0 -325
  242. package/dist/migrate/export/frameworks/tables.js.map +0 -1
  243. package/dist/migrate/export/frameworks/webauthn.d.ts +0 -25
  244. package/dist/migrate/export/frameworks/webauthn.js +0 -130
  245. package/dist/migrate/export/frameworks/webauthn.js.map +0 -1
  246. package/dist/migrate/export/frontegg-config.d.ts +0 -29
  247. package/dist/migrate/export/frontegg-config.js +0 -238
  248. package/dist/migrate/export/frontegg-config.js.map +0 -1
  249. package/dist/migrate/export/frontegg.d.ts +0 -67
  250. package/dist/migrate/export/frontegg.js +0 -410
  251. package/dist/migrate/export/frontegg.js.map +0 -1
  252. package/dist/migrate/export/fusionauth-config.d.ts +0 -26
  253. package/dist/migrate/export/fusionauth-config.js +0 -226
  254. package/dist/migrate/export/fusionauth-config.js.map +0 -1
  255. package/dist/migrate/export/fusionauth.d.ts +0 -99
  256. package/dist/migrate/export/fusionauth.js +0 -642
  257. package/dist/migrate/export/fusionauth.js.map +0 -1
  258. package/dist/migrate/export/hanko-config.d.ts +0 -27
  259. package/dist/migrate/export/hanko-config.js +0 -265
  260. package/dist/migrate/export/hanko-config.js.map +0 -1
  261. package/dist/migrate/export/hanko.d.ts +0 -52
  262. package/dist/migrate/export/hanko.js +0 -605
  263. package/dist/migrate/export/hanko.js.map +0 -1
  264. package/dist/migrate/export/keycloak-config.d.ts +0 -19
  265. package/dist/migrate/export/keycloak-config.js +0 -219
  266. package/dist/migrate/export/keycloak-config.js.map +0 -1
  267. package/dist/migrate/export/keycloak.d.ts +0 -155
  268. package/dist/migrate/export/keycloak.js +0 -878
  269. package/dist/migrate/export/keycloak.js.map +0 -1
  270. package/dist/migrate/export/kinde-descope-config.d.ts +0 -38
  271. package/dist/migrate/export/kinde-descope-config.js +0 -172
  272. package/dist/migrate/export/kinde-descope-config.js.map +0 -1
  273. package/dist/migrate/export/kinde.d.ts +0 -57
  274. package/dist/migrate/export/kinde.js +0 -333
  275. package/dist/migrate/export/kinde.js.map +0 -1
  276. package/dist/migrate/export/ldap.d.ts +0 -53
  277. package/dist/migrate/export/ldap.js +0 -277
  278. package/dist/migrate/export/ldap.js.map +0 -1
  279. package/dist/migrate/export/logto-config.d.ts +0 -27
  280. package/dist/migrate/export/logto-config.js +0 -264
  281. package/dist/migrate/export/logto-config.js.map +0 -1
  282. package/dist/migrate/export/logto.d.ts +0 -150
  283. package/dist/migrate/export/logto.js +0 -809
  284. package/dist/migrate/export/logto.js.map +0 -1
  285. package/dist/migrate/export/magic-config.d.ts +0 -14
  286. package/dist/migrate/export/magic-config.js +0 -28
  287. package/dist/migrate/export/magic-config.js.map +0 -1
  288. package/dist/migrate/export/magic.d.ts +0 -31
  289. package/dist/migrate/export/magic.js +0 -93
  290. package/dist/migrate/export/magic.js.map +0 -1
  291. package/dist/migrate/export/mini-yaml.d.ts +0 -19
  292. package/dist/migrate/export/mini-yaml.js +0 -581
  293. package/dist/migrate/export/mini-yaml.js.map +0 -1
  294. package/dist/migrate/export/nhost-config.d.ts +0 -26
  295. package/dist/migrate/export/nhost-config.js +0 -360
  296. package/dist/migrate/export/nhost-config.js.map +0 -1
  297. package/dist/migrate/export/nhost.d.ts +0 -64
  298. package/dist/migrate/export/nhost.js +0 -304
  299. package/dist/migrate/export/nhost.js.map +0 -1
  300. package/dist/migrate/export/okta-config.d.ts +0 -30
  301. package/dist/migrate/export/okta-config.js +0 -205
  302. package/dist/migrate/export/okta-config.js.map +0 -1
  303. package/dist/migrate/export/okta.d.ts +0 -43
  304. package/dist/migrate/export/okta.js +0 -337
  305. package/dist/migrate/export/okta.js.map +0 -1
  306. package/dist/migrate/export/onelogin.d.ts +0 -22
  307. package/dist/migrate/export/onelogin.js +0 -123
  308. package/dist/migrate/export/onelogin.js.map +0 -1
  309. package/dist/migrate/export/ory-config.d.ts +0 -58
  310. package/dist/migrate/export/ory-config.js +0 -451
  311. package/dist/migrate/export/ory-config.js.map +0 -1
  312. package/dist/migrate/export/ory.d.ts +0 -81
  313. package/dist/migrate/export/ory.js +0 -555
  314. package/dist/migrate/export/ory.js.map +0 -1
  315. package/dist/migrate/export/password-detect.d.ts +0 -29
  316. package/dist/migrate/export/password-detect.js +0 -81
  317. package/dist/migrate/export/password-detect.js.map +0 -1
  318. package/dist/migrate/export/pingone.d.ts +0 -36
  319. package/dist/migrate/export/pingone.js +0 -218
  320. package/dist/migrate/export/pingone.js.map +0 -1
  321. package/dist/migrate/export/plugin-kit.d.ts +0 -25
  322. package/dist/migrate/export/plugin-kit.js +0 -82
  323. package/dist/migrate/export/plugin-kit.js.map +0 -1
  324. package/dist/migrate/export/pocketbase-config.d.ts +0 -28
  325. package/dist/migrate/export/pocketbase-config.js +0 -180
  326. package/dist/migrate/export/pocketbase-config.js.map +0 -1
  327. package/dist/migrate/export/pocketbase.d.ts +0 -52
  328. package/dist/migrate/export/pocketbase.js +0 -243
  329. package/dist/migrate/export/pocketbase.js.map +0 -1
  330. package/dist/migrate/export/project-files.d.ts +0 -15
  331. package/dist/migrate/export/project-files.js +0 -43
  332. package/dist/migrate/export/project-files.js.map +0 -1
  333. package/dist/migrate/export/propelauth-config.d.ts +0 -18
  334. package/dist/migrate/export/propelauth-config.js +0 -58
  335. package/dist/migrate/export/propelauth-config.js.map +0 -1
  336. package/dist/migrate/export/propelauth-harness.test-helper.d.ts +0 -62
  337. package/dist/migrate/export/propelauth-harness.test-helper.js +0 -109
  338. package/dist/migrate/export/propelauth-harness.test-helper.js.map +0 -1
  339. package/dist/migrate/export/propelauth.d.ts +0 -48
  340. package/dist/migrate/export/propelauth.js +0 -255
  341. package/dist/migrate/export/propelauth.js.map +0 -1
  342. package/dist/migrate/export/record-set.d.ts +0 -44
  343. package/dist/migrate/export/record-set.js +0 -98
  344. package/dist/migrate/export/record-set.js.map +0 -1
  345. package/dist/migrate/export/source-lines.d.ts +0 -17
  346. package/dist/migrate/export/source-lines.js +0 -43
  347. package/dist/migrate/export/source-lines.js.map +0 -1
  348. package/dist/migrate/export/sso-metadata.d.ts +0 -47
  349. package/dist/migrate/export/sso-metadata.js +0 -180
  350. package/dist/migrate/export/sso-metadata.js.map +0 -1
  351. package/dist/migrate/export/stytch-config.d.ts +0 -22
  352. package/dist/migrate/export/stytch-config.js +0 -102
  353. package/dist/migrate/export/stytch-config.js.map +0 -1
  354. package/dist/migrate/export/stytch.d.ts +0 -68
  355. package/dist/migrate/export/stytch.js +0 -510
  356. package/dist/migrate/export/stytch.js.map +0 -1
  357. package/dist/migrate/export/supabase-config.d.ts +0 -48
  358. package/dist/migrate/export/supabase-config.js +0 -408
  359. package/dist/migrate/export/supabase-config.js.map +0 -1
  360. package/dist/migrate/export/supabase.d.ts +0 -86
  361. package/dist/migrate/export/supabase.js +0 -524
  362. package/dist/migrate/export/supabase.js.map +0 -1
  363. package/dist/migrate/export/supertokens-config.d.ts +0 -20
  364. package/dist/migrate/export/supertokens-config.js +0 -150
  365. package/dist/migrate/export/supertokens-config.js.map +0 -1
  366. package/dist/migrate/export/supertokens.d.ts +0 -125
  367. package/dist/migrate/export/supertokens.js +0 -464
  368. package/dist/migrate/export/supertokens.js.map +0 -1
  369. package/dist/migrate/export/table.d.ts +0 -35
  370. package/dist/migrate/export/table.js +0 -248
  371. package/dist/migrate/export/table.js.map +0 -1
  372. package/dist/migrate/export/translate-kit.d.ts +0 -46
  373. package/dist/migrate/export/translate-kit.js +0 -148
  374. package/dist/migrate/export/translate-kit.js.map +0 -1
  375. package/dist/migrate/export/userfront-config.d.ts +0 -15
  376. package/dist/migrate/export/userfront-config.js +0 -49
  377. package/dist/migrate/export/userfront-config.js.map +0 -1
  378. package/dist/migrate/export/userfront.d.ts +0 -38
  379. package/dist/migrate/export/userfront.js +0 -189
  380. package/dist/migrate/export/userfront.js.map +0 -1
  381. package/dist/migrate/export/vendor-http.d.ts +0 -46
  382. package/dist/migrate/export/vendor-http.js +0 -138
  383. package/dist/migrate/export/vendor-http.js.map +0 -1
  384. package/dist/migrate/export/workos-config.d.ts +0 -23
  385. package/dist/migrate/export/workos-config.js +0 -125
  386. package/dist/migrate/export/workos-config.js.map +0 -1
  387. package/dist/migrate/export/workos.d.ts +0 -46
  388. package/dist/migrate/export/workos.js +0 -272
  389. package/dist/migrate/export/workos.js.map +0 -1
  390. package/dist/migrate/export/zip.d.ts +0 -8
  391. package/dist/migrate/export/zip.js +0 -66
  392. package/dist/migrate/export/zip.js.map +0 -1
  393. package/dist/migrate/export/zitadel-config.d.ts +0 -37
  394. package/dist/migrate/export/zitadel-config.js +0 -279
  395. package/dist/migrate/export/zitadel-config.js.map +0 -1
  396. package/dist/migrate/export/zitadel.d.ts +0 -82
  397. package/dist/migrate/export/zitadel.js +0 -447
  398. package/dist/migrate/export/zitadel.js.map +0 -1
  399. package/dist/migrate/firebase/plugin.d.ts +0 -2
  400. package/dist/migrate/firebase/plugin.js +0 -152
  401. package/dist/migrate/firebase/plugin.js.map +0 -1
  402. package/dist/migrate/framework/builtins.d.ts +0 -2
  403. package/dist/migrate/framework/builtins.js +0 -52
  404. package/dist/migrate/framework/builtins.js.map +0 -1
  405. package/dist/migrate/framework/commands.d.ts +0 -20
  406. package/dist/migrate/framework/commands.js +0 -58
  407. package/dist/migrate/framework/commands.js.map +0 -1
  408. package/dist/migrate/framework/custom.d.ts +0 -12
  409. package/dist/migrate/framework/custom.js +0 -96
  410. package/dist/migrate/framework/custom.js.map +0 -1
  411. package/dist/migrate/framework/orchestrator.d.ts +0 -113
  412. package/dist/migrate/framework/orchestrator.js +0 -532
  413. package/dist/migrate/framework/orchestrator.js.map +0 -1
  414. package/dist/migrate/framework/plugin.d.ts +0 -167
  415. package/dist/migrate/framework/plugin.js +0 -3
  416. package/dist/migrate/framework/plugin.js.map +0 -1
  417. package/dist/migrate/framework/registry.d.ts +0 -11
  418. package/dist/migrate/framework/registry.js +0 -44
  419. package/dist/migrate/framework/registry.js.map +0 -1
  420. package/dist/migrate/framework/report.d.ts +0 -17
  421. package/dist/migrate/framework/report.js +0 -103
  422. package/dist/migrate/framework/report.js.map +0 -1
  423. package/dist/migrate/frameworks/plugins.d.ts +0 -29
  424. package/dist/migrate/frameworks/plugins.js +0 -402
  425. package/dist/migrate/frameworks/plugins.js.map +0 -1
  426. package/dist/migrate/frameworks/report.d.ts +0 -92
  427. package/dist/migrate/frameworks/report.js +0 -207
  428. package/dist/migrate/frameworks/report.js.map +0 -1
  429. package/dist/migrate/frameworks/translate-js.d.ts +0 -5
  430. package/dist/migrate/frameworks/translate-js.js +0 -503
  431. package/dist/migrate/frameworks/translate-js.js.map +0 -1
  432. package/dist/migrate/frameworks/translate-rails-django.d.ts +0 -3
  433. package/dist/migrate/frameworks/translate-rails-django.js +0 -1391
  434. package/dist/migrate/frameworks/translate-rails-django.js.map +0 -1
  435. package/dist/migrate/frontegg/plugin.d.ts +0 -2
  436. package/dist/migrate/frontegg/plugin.js +0 -78
  437. package/dist/migrate/frontegg/plugin.js.map +0 -1
  438. package/dist/migrate/fusionauth/plugin.d.ts +0 -2
  439. package/dist/migrate/fusionauth/plugin.js +0 -109
  440. package/dist/migrate/fusionauth/plugin.js.map +0 -1
  441. package/dist/migrate/hanko/plugin.d.ts +0 -2
  442. package/dist/migrate/hanko/plugin.js +0 -100
  443. package/dist/migrate/hanko/plugin.js.map +0 -1
  444. package/dist/migrate/keycloak/plugin.d.ts +0 -2
  445. package/dist/migrate/keycloak/plugin.js +0 -148
  446. package/dist/migrate/keycloak/plugin.js.map +0 -1
  447. package/dist/migrate/kinde/plugin.d.ts +0 -2
  448. package/dist/migrate/kinde/plugin.js +0 -105
  449. package/dist/migrate/kinde/plugin.js.map +0 -1
  450. package/dist/migrate/ldap/plugin.d.ts +0 -2
  451. package/dist/migrate/ldap/plugin.js +0 -73
  452. package/dist/migrate/ldap/plugin.js.map +0 -1
  453. package/dist/migrate/logto/plugin.d.ts +0 -2
  454. package/dist/migrate/logto/plugin.js +0 -131
  455. package/dist/migrate/logto/plugin.js.map +0 -1
  456. package/dist/migrate/magic/plugin.d.ts +0 -2
  457. package/dist/migrate/magic/plugin.js +0 -56
  458. package/dist/migrate/magic/plugin.js.map +0 -1
  459. package/dist/migrate/nhost/plugin.d.ts +0 -2
  460. package/dist/migrate/nhost/plugin.js +0 -115
  461. package/dist/migrate/nhost/plugin.js.map +0 -1
  462. package/dist/migrate/oidc/plugin.d.ts +0 -2
  463. package/dist/migrate/oidc/plugin.js +0 -73
  464. package/dist/migrate/oidc/plugin.js.map +0 -1
  465. package/dist/migrate/okta/plugin.d.ts +0 -2
  466. package/dist/migrate/okta/plugin.js +0 -105
  467. package/dist/migrate/okta/plugin.js.map +0 -1
  468. package/dist/migrate/onelogin/plugin.d.ts +0 -2
  469. package/dist/migrate/onelogin/plugin.js +0 -61
  470. package/dist/migrate/onelogin/plugin.js.map +0 -1
  471. package/dist/migrate/ory/plugin.d.ts +0 -2
  472. package/dist/migrate/ory/plugin.js +0 -186
  473. package/dist/migrate/ory/plugin.js.map +0 -1
  474. package/dist/migrate/ping-identity/plugin.d.ts +0 -2
  475. package/dist/migrate/ping-identity/plugin.js +0 -100
  476. package/dist/migrate/ping-identity/plugin.js.map +0 -1
  477. package/dist/migrate/pocketbase/plugin.d.ts +0 -2
  478. package/dist/migrate/pocketbase/plugin.js +0 -99
  479. package/dist/migrate/pocketbase/plugin.js.map +0 -1
  480. package/dist/migrate/propelauth/plugin.d.ts +0 -2
  481. package/dist/migrate/propelauth/plugin.js +0 -65
  482. package/dist/migrate/propelauth/plugin.js.map +0 -1
  483. package/dist/migrate/saml/plugin.d.ts +0 -2
  484. package/dist/migrate/saml/plugin.js +0 -79
  485. package/dist/migrate/saml/plugin.js.map +0 -1
  486. package/dist/migrate/stytch/plugin.d.ts +0 -2
  487. package/dist/migrate/stytch/plugin.js +0 -97
  488. package/dist/migrate/stytch/plugin.js.map +0 -1
  489. package/dist/migrate/supabase/plugin.d.ts +0 -2
  490. package/dist/migrate/supabase/plugin.js +0 -149
  491. package/dist/migrate/supabase/plugin.js.map +0 -1
  492. package/dist/migrate/supertokens/plugin.d.ts +0 -2
  493. package/dist/migrate/supertokens/plugin.js +0 -114
  494. package/dist/migrate/supertokens/plugin.js.map +0 -1
  495. package/dist/migrate/user-table/plugin.d.ts +0 -2
  496. package/dist/migrate/user-table/plugin.js +0 -62
  497. package/dist/migrate/user-table/plugin.js.map +0 -1
  498. package/dist/migrate/userfront/plugin.d.ts +0 -2
  499. package/dist/migrate/userfront/plugin.js +0 -60
  500. package/dist/migrate/userfront/plugin.js.map +0 -1
  501. package/dist/migrate/workos/plugin.d.ts +0 -2
  502. package/dist/migrate/workos/plugin.js +0 -81
  503. package/dist/migrate/workos/plugin.js.map +0 -1
  504. package/dist/migrate/zitadel/plugin.d.ts +0 -2
  505. package/dist/migrate/zitadel/plugin.js +0 -114
  506. package/dist/migrate/zitadel/plugin.js.map +0 -1
  507. package/dist/output.d.ts +0 -41
  508. package/dist/output.js +0 -72
  509. package/dist/output.js.map +0 -1
  510. package/dist/project.d.ts +0 -64
  511. package/dist/project.js +0 -86
  512. package/dist/project.js.map +0 -1
  513. package/dist/prompt.d.ts +0 -15
  514. package/dist/prompt.js +0 -46
  515. package/dist/prompt.js.map +0 -1
  516. package/dist/run.d.ts +0 -12
  517. package/dist/run.js +0 -157
  518. package/dist/run.js.map +0 -1
  519. package/dist/secrets.d.ts +0 -41
  520. package/dist/secrets.js +0 -142
  521. package/dist/secrets.js.map +0 -1
  522. package/dist/serialize.d.ts +0 -30
  523. package/dist/serialize.js +0 -131
  524. package/dist/serialize.js.map +0 -1
  525. package/dist/version.d.ts +0 -7
  526. package/dist/version.js +0 -21
  527. package/dist/version.js.map +0 -1
@@ -1,447 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.g = g;
4
- exports.readZitadelExport = readZitadelExport;
5
- exports.zitadelPassword = zitadelPassword;
6
- exports.collectIdps = collectIdps;
7
- exports.mapZitadel = mapZitadel;
8
- exports.zitadelBase = zitadelBase;
9
- exports.zitadelHttp = zitadelHttp;
10
- exports.fetchIdpTemplates = fetchIdpTemplates;
11
- exports.fetchZitadel = fetchZitadel;
12
- exports.exportZitadelApi = exportZitadelApi;
13
- const record_set_1 = require("./record-set");
14
- const translate_kit_1 = require("./translate-kit");
15
- const vendor_http_1 = require("./vendor-http");
16
- /** A field by its camelCase name, falling back to snake_case (the files `zitadel export` writes use either). */
17
- function g(o, camel) {
18
- if (!o)
19
- return undefined;
20
- if (o[camel] !== undefined)
21
- return o[camel];
22
- return o[camel.replace(/[A-Z]/g, (m) => `_${m.toLowerCase()}`)];
23
- }
24
- const gs = (o, camel) => (0, record_set_1.str)(g(o, camel));
25
- const go = (o, camel) => {
26
- const v = g(o, camel);
27
- return (0, record_set_1.isObj)(v) ? v : undefined;
28
- };
29
- const gl = (o, camel) => (0, record_set_1.objs)(g(o, camel));
30
- // ── reading an export file ──────────────────────────────────────────────────
31
- /** The orgs in an export document: `{ orgs: [...] }`, a bare array, or one org object. */
32
- function readZitadelExport(doc) {
33
- let orgs = [];
34
- if (Array.isArray(doc))
35
- orgs = (0, record_set_1.objs)(doc);
36
- else if ((0, record_set_1.isObj)(doc)) {
37
- const list = g(doc, 'orgs');
38
- if (Array.isArray(list))
39
- orgs = (0, record_set_1.objs)(list);
40
- else if (g(doc, 'humanUsers') !== undefined || g(doc, 'orgId') !== undefined)
41
- orgs = [doc];
42
- }
43
- if (!orgs.length)
44
- throw new Error('No organizations found in the ZITADEL export (expected the JSON written by `zitadel export`: { "orgs": [ … ] }).');
45
- return { orgs, idpTemplates: [], source: 'file' };
46
- }
47
- // ── password hashes ─────────────────────────────────────────────────────────
48
- /**
49
- * A ZITADEL `hashedPassword` ({ value, algorithm }) as a bundle password; null
50
- * when Atlas cannot verify it. ZITADEL stores the self-describing encoding its
51
- * hasher (passwap) verifies, so those are recognised by Atlas on their own
52
- * ("auto"); the one bare form (a hex MD5) is mapped by the algorithm hint.
53
- */
54
- function zitadelPassword(hashed) {
55
- const h = (0, record_set_1.isObj)(hashed) ? hashed : undefined;
56
- const value = (0, record_set_1.str)(h?.value) ?? (typeof hashed === 'string' ? (0, record_set_1.str)(hashed) : undefined);
57
- if (!value)
58
- return null;
59
- const hint = ((0, record_set_1.str)(h?.algorithm) ?? '').toLowerCase().replace(/[^a-z0-9]/g, '');
60
- if (/^\$2[aby]\$\d{2}\$[./A-Za-z0-9]{53}$/.test(value))
61
- return { algorithm: 'bcrypt', hash: value };
62
- if (/^\$argon2(id|i|d)\$/.test(value))
63
- return { algorithm: 'argon2', hash: value };
64
- // $scrypt$ln=…, $pbkdf2-sha256$i=…, $1$ (md5-crypt), $5$ / $6$ (sha-crypt), $P$ / $H$ (phpass).
65
- if (/^\$(scrypt|pbkdf2-sha(1|256|512))\$/.test(value) || /^\$(1|5|6)\$/.test(value) || /^\$[PH]\$/.test(value))
66
- return { algorithm: 'auto', hash: value };
67
- if ((hint === 'md5' || hint === 'md5plain') && /^[0-9a-f]{32}$/i.test(value))
68
- return { algorithm: 'md5', hash: value.toLowerCase(), params: { encoding: 'hex' } };
69
- return null;
70
- }
71
- /** `genericOidcIdps` → `oidc`, `googleIdps` → `google`, `azureAdIdps` → `microsoft`. */
72
- function kindOfKey(key) {
73
- const k = key.toLowerCase().replace(/idps?$/, '').replace(/^generic/, '').replace(/provider$/, '');
74
- if (k.startsWith('azure'))
75
- return 'microsoft';
76
- if (k.startsWith('gitlab'))
77
- return 'gitlab';
78
- if (k.startsWith('github'))
79
- return 'github';
80
- return k || 'oidc';
81
- }
82
- function kindOfType(type) {
83
- return kindOfKey(type.replace(/^IDP_TYPE_/, '').replace(/_/g, '').toLowerCase());
84
- }
85
- /** The identity providers an export names, keyed by config id; templates from the API fill gaps. */
86
- function collectIdps(snap) {
87
- const out = new Map();
88
- for (const org of snap.orgs) {
89
- for (const [key, list] of Object.entries(org)) {
90
- if (!/idps$/i.test(key) || !Array.isArray(list))
91
- continue;
92
- for (const entry of (0, record_set_1.objs)(list)) {
93
- const id = (0, record_set_1.str)(g(entry, 'idpId')) ?? (0, record_set_1.str)(entry.id);
94
- if (!id)
95
- continue;
96
- const config = go(entry, 'idp') ?? entry;
97
- out.set(id, { id, name: gs(config, 'name') ?? id, kind: kindOfKey(key), config });
98
- }
99
- }
100
- }
101
- for (const t of snap.idpTemplates) {
102
- const id = (0, record_set_1.str)(t.id);
103
- if (!id || out.has(id))
104
- continue;
105
- const type = (0, record_set_1.str)(t.type) ?? '';
106
- // The template object nests its settings under the type's own key (`oidc`, `google`, `saml` …).
107
- const tail = type.replace(/^IDP_TYPE_/, '').toLowerCase().replace(/_([a-z])/g, (_, c) => c.toUpperCase());
108
- const nested = go(t, tail) ?? Object.entries(t).find(([k, v]) => k !== 'details' && (0, record_set_1.isObj)(v))?.[1];
109
- out.set(id, { id, name: (0, record_set_1.str)(t.name) ?? id, kind: type ? kindOfType(type) : 'oidc', config: (0, record_set_1.isObj)(nested) ? nested : t });
110
- }
111
- return out;
112
- }
113
- /** An IdP as an SSO connection (OIDC or SAML); null for kinds Atlas has no connection type for. */
114
- function ssoConnection(idp, organizationId) {
115
- if (idp.kind === 'oidc') {
116
- const issuer = gs(idp.config, 'issuer');
117
- return (0, record_set_1.compact)({
118
- id: idp.id,
119
- name: idp.name,
120
- organization_id: organizationId,
121
- protocol: 'oidc',
122
- oidc: (0, record_set_1.compact)({ issuer, discovery_url: issuer ? `${issuer.replace(/\/+$/, '')}/.well-known/openid-configuration` : undefined, client_id: gs(idp.config, 'clientId'), scopes: (0, record_set_1.strs)(g(idp.config, 'scopes')) }),
123
- enabled: true,
124
- });
125
- }
126
- if (idp.kind === 'saml') {
127
- const xml = gs(idp.config, 'metadataXml');
128
- // bytes arrive base64-encoded from the API; a file may hold the XML itself.
129
- const metadata = xml && !xml.trimStart().startsWith('<') ? Buffer.from(xml, 'base64').toString('utf8') : xml;
130
- return (0, record_set_1.compact)({
131
- id: idp.id,
132
- name: idp.name,
133
- organization_id: organizationId,
134
- protocol: 'saml',
135
- saml: (0, record_set_1.compact)({ idp_metadata_xml: metadata, idp_metadata_url: gs(idp.config, 'metadataUrl') }),
136
- enabled: true,
137
- });
138
- }
139
- return null;
140
- }
141
- // ── mapping ─────────────────────────────────────────────────────────────────
142
- /** ZITADEL TOTP defaults (pquerna/otp: SHA1, 6 digits, 30 seconds). */
143
- const TOTP = { digits: 6, period: 30, algorithm: 'SHA1' };
144
- const NOT_EXPORTABLE = 'ZITADEL keeps passkeys and security keys only in its event store; users register a passkey again.';
145
- /** Metadata values are base64 bytes; JSON when they parse, else text. */
146
- function decodeMetadata(value) {
147
- const s = (0, record_set_1.str)(value);
148
- if (!s)
149
- return undefined;
150
- const text = Buffer.from(s, 'base64').toString('utf8');
151
- // eslint-disable-next-line no-control-regex -- intentionally detects control characters (non-text payload)
152
- if (/[\u0000-\u0008\u000e-\u001f]/.test(text))
153
- return s;
154
- try {
155
- return JSON.parse(text);
156
- }
157
- catch {
158
- return text;
159
- }
160
- }
161
- function mapZitadel(snap, opts = {}) {
162
- const set = new record_set_1.RecordSet();
163
- const idps = collectIdps(snap);
164
- const providers = new Set();
165
- const withOrgs = opts.orgs === 'all' || (opts.orgs !== 'skip' && snap.orgs.filter((o) => gs(go(o, 'org'), 'name')).length > 1);
166
- let hashes = 0;
167
- let unsupported = 0;
168
- let withTotp = 0;
169
- let badOtp = 0;
170
- let machine = 0;
171
- let unknownLinks = 0;
172
- let otherOrgRoles = 0;
173
- const seenUsers = new Set();
174
- for (const org of snap.orgs) {
175
- const orgId = gs(org, 'orgId') ?? gs(org, 'id');
176
- const orgName = gs(go(org, 'org'), 'name') ?? gs(org, 'name');
177
- if (withOrgs && orgId && orgName) {
178
- const domains = gl(org, 'domains').flatMap((d) => (g(d, 'isVerified') === true && gs(d, 'domainName') ? [gs(d, 'domainName').toLowerCase()] : []));
179
- set.add('organization', (0, record_set_1.compact)({ id: orgId, name: orgName, domains }), orgId);
180
- }
181
- // project roles → app roles; user grants → the roles users hold
182
- for (const r of gl(org, 'projectRoles')) {
183
- const key = gs(r, 'roleKey');
184
- if (key)
185
- set.add('role', (0, record_set_1.compact)({ key, name: gs(r, 'displayName'), description: gs(r, 'group'), scope: 'app' }), key);
186
- }
187
- const grants = new Map();
188
- for (const grant of gl(org, 'userGrants')) {
189
- const userId = gs(grant, 'userId');
190
- if (!userId)
191
- continue;
192
- const roles = grants.get(userId) ?? new Set();
193
- for (const k of (0, record_set_1.strs)(g(grant, 'roleKeys')))
194
- roles.add(k);
195
- grants.set(userId, roles);
196
- }
197
- const orgRoles = new Map();
198
- for (const m of gl(org, 'orgMembers')) {
199
- const userId = gs(m, 'userId');
200
- if (userId)
201
- orgRoles.set(userId, (0, record_set_1.strs)(g(m, 'roles')));
202
- }
203
- const metadata = new Map();
204
- for (const entry of gl(org, 'userMetadata')) {
205
- const userId = gs(entry, 'userId');
206
- if (!userId)
207
- continue;
208
- const bag_ = metadata.get(userId) ?? {};
209
- for (const item of (0, record_set_1.isObj)(g(entry, 'metadata')) ? [g(entry, 'metadata')] : gl(entry, 'metadata')) {
210
- const key = gs(item, 'key');
211
- const value = decodeMetadata(g(item, 'value'));
212
- if (key && value !== undefined)
213
- bag_[key] = value;
214
- }
215
- metadata.set(userId, bag_);
216
- }
217
- machine += gl(org, 'machineUsers').length;
218
- for (const entry of gl(org, 'humanUsers')) {
219
- const id = gs(entry, 'userId');
220
- const u = go(entry, 'user') ?? entry;
221
- if (!id)
222
- continue;
223
- if (seenUsers.has(id))
224
- continue;
225
- const profile = go(u, 'profile');
226
- const email = go(u, 'email');
227
- const phone = go(u, 'phone');
228
- const address = gs(email, 'email')?.toLowerCase();
229
- const userName = gs(u, 'userName');
230
- const number = (0, record_set_1.e164)(gs(phone, 'phone'));
231
- if (!address && !number && !userName) {
232
- set.omit('user', 'User with no email address, phone number or username');
233
- continue;
234
- }
235
- seenUsers.add(id);
236
- let password;
237
- const hashed = g(u, 'hashedPassword');
238
- if (hashed !== undefined) {
239
- hashes++;
240
- const mapped = zitadelPassword(hashed);
241
- if (mapped)
242
- password = mapped;
243
- else
244
- unsupported++;
245
- }
246
- const roles = [...(grants.get(id) ?? [])];
247
- const meta = (0, record_set_1.bag)(metadata.get(id));
248
- set.add('user', (0, record_set_1.compact)({
249
- id,
250
- emails: address ? [{ email: address, verified: g(email, 'isEmailVerified') === true, primary: true }] : [],
251
- phones: number ? [{ phone: number, verified: g(phone, 'isPhoneVerified') === true, primary: true }] : [],
252
- username: userName && userName.toLowerCase() !== address ? userName : undefined,
253
- first_name: gs(profile, 'firstName'),
254
- last_name: gs(profile, 'lastName'),
255
- name: gs(profile, 'displayName') ?? gs(profile, 'nickName'),
256
- password,
257
- roles,
258
- private_metadata: meta ? { zitadel_metadata: meta } : undefined,
259
- }), id);
260
- // TOTP secret (exported only with `withOtp`)
261
- const otp = gs(u, 'otpCode');
262
- if (otp) {
263
- withTotp++;
264
- const secret = otp.replace(/\s|=+$/g, '').toUpperCase();
265
- if (/^[A-Z2-7]+$/.test(secret)) {
266
- const factor = { user_id: id, type: 'totp', secret_base32: secret, ...TOTP, verified: true };
267
- set.add('mfa_factor', factor);
268
- }
269
- else
270
- badOtp++;
271
- }
272
- // social and enterprise links
273
- for (const link of gl(u, 'idps')) {
274
- const configId = gs(link, 'configId');
275
- const externalId = gs(link, 'externalUserId');
276
- if (!configId || !externalId)
277
- continue;
278
- const idp = idps.get(configId);
279
- if (!idp) {
280
- unknownLinks++;
281
- continue;
282
- }
283
- const social = (0, translate_kit_1.socialKey)(idp.kind);
284
- const sso = social ? null : ssoConnection(idp, withOrgs ? orgId : undefined);
285
- const provider = social ?? idp.name;
286
- providers.add(provider);
287
- set.add('identity', (0, record_set_1.compact)({
288
- user_id: id,
289
- provider,
290
- provider_user_id: externalId,
291
- kind: social ? 'oauth' : idp.kind === 'saml' ? 'saml' : idp.kind === 'oidc' ? 'oidc' : undefined,
292
- sso_connection_id: sso ? idp.id : undefined,
293
- email: address,
294
- }), `${configId}\u0000${externalId}`);
295
- }
296
- // membership in the organization
297
- if (withOrgs && orgId) {
298
- const orgRole = orgRoles.get(id) ?? [];
299
- if (orgRole.some((r) => r !== 'ORG_OWNER'))
300
- otherOrgRoles++;
301
- set.add('membership', { organization_id: orgId, user_id: id, role: orgRole.includes('ORG_OWNER') ? 'admin' : 'member' }, `${orgId}\u0000${id}`);
302
- }
303
- }
304
- // SSO connections the organization owns
305
- for (const idp of idps.values()) {
306
- if (idp.kind !== 'oidc' && idp.kind !== 'saml')
307
- continue;
308
- const owns = Object.entries(org).some(([key, list]) => /idps$/i.test(key) && Array.isArray(list) && (0, record_set_1.objs)(list).some((e) => (gs(e, 'idpId') ?? (0, record_set_1.str)(e.id)) === idp.id));
309
- if (!owns)
310
- continue;
311
- const record = ssoConnection(idp, withOrgs ? orgId : undefined);
312
- if (record)
313
- set.add('sso_connection', record, idp.id);
314
- }
315
- }
316
- // Templates the API listed that no org file carried.
317
- for (const idp of idps.values()) {
318
- if (idp.kind !== 'oidc' && idp.kind !== 'saml')
319
- continue;
320
- const record = ssoConnection(idp, undefined);
321
- if (record)
322
- set.add('sso_connection', record, idp.id);
323
- }
324
- if (machine)
325
- set.omit('machine_user', 'Machine (service) users are not exported: recreate service accounts as Atlas API keys or M2M clients', machine);
326
- if (unsupported)
327
- set.warn(`${unsupported} password hash(es) are in a format Atlas cannot verify: those users move by lazy migration (preset zitadel) or reset their password.`);
328
- if (snap.source !== 'users') {
329
- if (!hashes)
330
- set.warn('The export carries no password hashes: run it with passwords included (`withPasswords`), or users move by lazy migration (preset zitadel).');
331
- if (!withTotp)
332
- set.warn('The export carries no TOTP secrets (run it with `withOtp`): users who use an authenticator enrol again in Atlas.');
333
- }
334
- else {
335
- set.warn('Users were listed through the v2 user API: it never returns password hashes, TOTP secrets or social links, so passwords move by lazy migration (preset zitadel), authenticator users enrol again and social users sign in once with their provider (linked by verified email). Use an IAM_OWNER service user to export everything.');
336
- }
337
- if (badOtp)
338
- set.warn(`${badOtp} TOTP secret(s) were not valid base32 and were left out; those users enrol an authenticator again.`);
339
- if (unknownLinks)
340
- set.warn(`${unknownLinks} social link(s) point at an identity provider the export does not describe and were left out: those users sign in once with their provider and are linked by verified email.`);
341
- if (otherOrgRoles)
342
- set.warn(`${otherOrgRoles} organization member(s) hold ZITADEL roles other than ORG_OWNER: they join as members; only owners become admins.`);
343
- set.warn(NOT_EXPORTABLE);
344
- set.manifest = (0, record_set_1.compact)({ origin: snap.instance ? `ZITADEL ${snap.instance.replace(/^https?:\/\//, '')}` : snap.source === 'file' ? 'ZITADEL export file' : 'ZITADEL', providers: [...providers].sort(), settings: { totp: { ...TOTP } } });
345
- return set;
346
- }
347
- function zitadelBase(raw) {
348
- const s = raw.trim().replace(/\/+$/, '');
349
- return /^https?:\/\//.test(s) ? s : `https://${s}`;
350
- }
351
- function zitadelHttp(o) {
352
- return new vendor_http_1.VendorHttp({ vendor: 'ZITADEL', baseUrl: zitadelBase(o.instance), headers: { authorization: `Bearer ${o.token}` }, fetchImpl: o.fetchImpl, sleep: o.sleep });
353
- }
354
- /** Identity provider templates, to type the links; best effort (an older instance or a narrow role answers 4xx). */
355
- async function fetchIdpTemplates(http) {
356
- try {
357
- const { body } = await http.post('/admin/v1/idps/templates/_search', {});
358
- return (0, record_set_1.isObj)(body) ? (0, record_set_1.objs)(body.result) : [];
359
- }
360
- catch (err) {
361
- if (err instanceof vendor_http_1.VendorApiError && err.status > 0 && err.status < 500)
362
- return [];
363
- throw err;
364
- }
365
- }
366
- /** A v2 user (`POST /v2/users`) in the import shape the mapper reads. */
367
- function fromV2User(u) {
368
- const id = (0, record_set_1.str)(u.userId);
369
- const human = (0, record_set_1.isObj)(u.human) ? u.human : undefined;
370
- if (!id || !human)
371
- return null;
372
- const profile = (0, record_set_1.isObj)(human.profile) ? human.profile : {};
373
- const email = (0, record_set_1.isObj)(human.email) ? human.email : {};
374
- const phone = (0, record_set_1.isObj)(human.phone) ? human.phone : {};
375
- return {
376
- orgId: (0, record_set_1.isObj)(u.details) ? (0, record_set_1.str)(u.details.resourceOwner) : undefined,
377
- entry: {
378
- userId: id,
379
- user: {
380
- userName: (0, record_set_1.str)(u.username),
381
- profile: { firstName: (0, record_set_1.str)(profile.givenName), lastName: (0, record_set_1.str)(profile.familyName), displayName: (0, record_set_1.str)(profile.displayName), nickName: (0, record_set_1.str)(profile.nickName) },
382
- email: { email: (0, record_set_1.str)(email.email), isEmailVerified: email.isVerified === true },
383
- phone: { phone: (0, record_set_1.str)(phone.phone), isPhoneVerified: phone.isVerified === true },
384
- },
385
- },
386
- };
387
- }
388
- async function fetchZitadel(o) {
389
- const progress = o.onProgress ?? (() => undefined);
390
- const http = zitadelHttp(o);
391
- const instance = zitadelBase(o.instance);
392
- progress('the instance export');
393
- try {
394
- const { body } = await http.post('/admin/v1/export', { withPasswords: true, withOtp: true, responseOutput: true });
395
- const snap = readZitadelExport(body);
396
- progress('identity providers');
397
- return { ...snap, idpTemplates: await fetchIdpTemplates(http), source: 'api', instance };
398
- }
399
- catch (err) {
400
- // The export endpoint is IAM_OWNER-only and absent from old versions: fall back to listing users.
401
- if (!(err instanceof vendor_http_1.VendorApiError) || ![403, 404, 405, 501].includes(err.status))
402
- throw err;
403
- }
404
- const size = o.pageSize ?? 100;
405
- const orgsById = new Map();
406
- for (let offset = 0;; offset += size) {
407
- progress(`organizations (${orgsById.size} so far)`);
408
- const { body } = await http.post('/admin/v1/orgs/_search', { query: { offset: String(offset), limit: size } });
409
- const page = (0, record_set_1.isObj)(body) ? (0, record_set_1.objs)(body.result) : [];
410
- for (const org of page) {
411
- const id = (0, record_set_1.str)(org.id);
412
- if (id)
413
- orgsById.set(id, { orgId: id, org: { name: (0, record_set_1.str)(org.name) }, humanUsers: [] });
414
- }
415
- if (page.length < size)
416
- break;
417
- }
418
- const fallbackOrg = (id) => {
419
- const key = id ?? '';
420
- if (!orgsById.has(key))
421
- orgsById.set(key, { orgId: id, humanUsers: [] });
422
- return orgsById.get(key);
423
- };
424
- let users = 0;
425
- for (let offset = 0;; offset += size) {
426
- progress(`users (${users} so far)`);
427
- const { body } = await http.post('/v2/users', {
428
- query: { offset: String(offset), limit: size, asc: true },
429
- queries: [{ typeQuery: { type: 'TYPE_HUMAN' } }],
430
- });
431
- const page = (0, record_set_1.isObj)(body) ? (0, record_set_1.objs)(body.result) : [];
432
- for (const u of page) {
433
- const mapped = fromV2User(u);
434
- if (!mapped)
435
- continue;
436
- users++;
437
- fallbackOrg(mapped.orgId).humanUsers.push(mapped.entry);
438
- }
439
- if (page.length < size)
440
- break;
441
- }
442
- return { orgs: [...orgsById.values()], idpTemplates: await fetchIdpTemplates(http), source: 'users', instance };
443
- }
444
- async function exportZitadelApi(o) {
445
- return mapZitadel(await fetchZitadel(o), { orgs: o.orgs });
446
- }
447
- //# sourceMappingURL=zitadel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zitadel.js","sourceRoot":"","sources":["../../../src/migrate/export/zitadel.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const firebasePlugin: MigrationPlugin;
@@ -1,152 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.firebasePlugin = void 0;
4
- const firebase_1 = require("../export/firebase");
5
- const firebase_config_1 = require("../export/firebase-config");
6
- const errors_1 = require("../../errors");
7
- const plugin_kit_1 = require("../export/plugin-kit");
8
- /**
9
- * `atlas migrate firebase` (also Google Cloud Identity Platform) — the
10
- * project's sign-in settings as Atlas config, its users with their Firebase
11
- * scrypt hashes, identities, SMS second factors and tenants through the
12
- * Identity Toolkit Admin API (or an auth:export file), the `firebase` bridge
13
- * preset (a Firebase ID token becomes an Atlas session) and the `firebase`
14
- * lazy-migration preset for passwords whose hashes were not exported.
15
- * The service-account key stays on this machine; only Google sees its signature.
16
- */
17
- const PROJECT = { flag: '--firebase-project', env: 'FIREBASE_PROJECT_ID', label: 'your Firebase / Google Cloud project id', required: false };
18
- const SERVICE_ACCOUNT = { flag: '--firebase-service-account', env: 'GOOGLE_APPLICATION_CREDENTIALS', label: 'a service-account key file (JSON) with Firebase Authentication Admin', required: false, secret: true };
19
- const ACCESS_TOKEN = { flag: '--firebase-access-token', env: 'FIREBASE_ACCESS_TOKEN', label: 'an OAuth access token for the project (gcloud auth print-access-token)', required: false, secret: true };
20
- const USERS_FILE = { flag: '--firebase-users-file', env: 'FIREBASE_USERS_FILE', label: 'a firebase auth:export file (JSON or CSV)', required: false };
21
- const TENANT = { flag: '--firebase-tenant', env: 'FIREBASE_TENANT_ID', label: 'an Identity Platform tenant id, or "all" (every tenant, each as an organization)', required: false };
22
- const ANONYMOUS = { flag: '--firebase-anonymous', env: 'FIREBASE_ANONYMOUS', label: '"include" to export anonymous users too', required: false };
23
- const SIGNER_KEY = { flag: '--firebase-signer-key', env: 'FIREBASE_SIGNER_KEY', label: 'the password hash signer key (base64)', required: false, secret: true };
24
- const SALT_SEPARATOR = { flag: '--firebase-salt-separator', env: 'FIREBASE_SALT_SEPARATOR', label: 'the password hash salt separator (base64)', required: false };
25
- const ROUNDS = { flag: '--firebase-rounds', env: 'FIREBASE_ROUNDS', label: 'the password hash rounds', required: false };
26
- const MEM_COST = { flag: '--firebase-mem-cost', env: 'FIREBASE_MEM_COST', label: 'the password hash memory cost', required: false };
27
- const BRIDGE = { flag: '--firebase-bridge', env: 'FIREBASE_BRIDGE', label: 'what the bridge exchanges: id-token (default) or session-cookie (Admin SDK createSessionCookie)', required: false };
28
- const COOKIE_NAME = { flag: '--firebase-cookie-name', env: 'FIREBASE_SESSION_COOKIE_NAME', label: 'the session cookie name your app sets (default session; __session is always read)', required: false };
29
- const API_KEY = { flag: '--firebase-api-key', env: 'FIREBASE_API_KEY', label: 'the project Web API key (AIza…), for lazy migration', required: false };
30
- /** The project id: the flag, else the service-account file's. */
31
- function projectOf(p) {
32
- const explicit = p.credential(PROJECT);
33
- if (explicit)
34
- return explicit.trim();
35
- const sa = (0, plugin_kit_1.localFile)(p, SERVICE_ACCOUNT, 'text');
36
- const fromKey = sa ? (0, firebase_1.parseServiceAccount)(sa).project_id : undefined;
37
- if (fromKey)
38
- return fromKey;
39
- throw new errors_1.CliError('Firebase: pass the project id (--set firebase-project=<id> or FIREBASE_PROJECT_ID).');
40
- }
41
- function hashParams(p) {
42
- const n = (spec) => {
43
- const v = p.credential(spec);
44
- if (v === undefined)
45
- return undefined;
46
- const num = Number(v);
47
- if (!Number.isInteger(num))
48
- throw new errors_1.CliError(`Firebase: ${spec.label} must be a whole number.`);
49
- return num;
50
- };
51
- const out = {};
52
- const signer = p.credential(SIGNER_KEY);
53
- const sep = p.credential(SALT_SEPARATOR);
54
- const rounds = n(ROUNDS);
55
- const mem = n(MEM_COST);
56
- if (signer)
57
- out.signer_key = signer;
58
- if (sep !== undefined)
59
- out.salt_separator = sep;
60
- if (rounds !== undefined)
61
- out.rounds = rounds;
62
- if (mem !== undefined)
63
- out.mem_cost = mem;
64
- return out;
65
- }
66
- function http(p, projectId) {
67
- const token = p.credential(ACCESS_TOKEN);
68
- const sa = (0, plugin_kit_1.localFile)(p, SERVICE_ACCOUNT, 'text');
69
- if (!token && !sa) {
70
- throw new errors_1.CliError('Firebase: pass a service-account key file (--set firebase-service-account=<path> or GOOGLE_APPLICATION_CREDENTIALS) or an access token (FIREBASE_ACCESS_TOKEN).');
71
- }
72
- return (0, firebase_1.firebaseHttp)({ accessToken: token, serviceAccount: sa ? (0, firebase_1.parseServiceAccount)(sa) : undefined, projectId, fetchImpl: p.fetch });
73
- }
74
- exports.firebasePlugin = {
75
- vendor: 'firebase',
76
- source: 'firebase',
77
- label: 'Firebase Authentication',
78
- help: 'Move a Firebase Authentication or Identity Platform project: its sign-in methods, providers, MFA and password policy as Atlas config; its users with their Firebase scrypt password hashes, social / OIDC / SAML links, SMS second factors and tenants; a zero-logout bridge for Firebase ID tokens; lazy migration for any password you could not export; and the code. The service-account key stays on this machine.',
79
- config: {
80
- reads: 'your Firebase project config via the Identity Toolkit admin API',
81
- credentials: [PROJECT, SERVICE_ACCOUNT, ACCESS_TOKEN],
82
- async translate(p) {
83
- const projectId = projectOf(p);
84
- const snap = await (0, plugin_kit_1.vendorStep)('Firebase', () => (0, firebase_config_1.fetchFirebaseConfig)(http(p, projectId), projectId));
85
- return (0, firebase_config_1.translateFirebaseConfig)(snap);
86
- },
87
- },
88
- export: {
89
- reads: 'the Identity Toolkit admin API (accounts:batchGet, tenants, SAML providers, hash parameters) or a firebase auth:export file',
90
- credentials: [PROJECT, SERVICE_ACCOUNT, ACCESS_TOKEN, USERS_FILE, TENANT, ANONYMOUS, SIGNER_KEY, SALT_SEPARATOR, ROUNDS, MEM_COST],
91
- limits: [
92
- 'TOTP second factors cannot be exported (Firebase keeps no exportable secret): those users enrol again. SMS second factors move by phone number.',
93
- 'Password hashes need the project\'s hash parameters: read from the project config with an owner / Firebase Authentication Admin key, or passed as flags from Console → Authentication → Users → ⋮ → Password hash parameters. Without them, passwords move by lazy migration.',
94
- 'The auth:export file keeps ten social providers only, has no OIDC / SAML / phone links, cannot hold a tenant, and its CSV has no second factors: export through the API for those.',
95
- 'Sessions are not exported: the firebase bridge preset exchanges a Firebase ID token (and firebase_session_cookie a session cookie) instead.',
96
- ],
97
- async run(p, writer, resume) {
98
- const projectId = projectOf(p);
99
- const usersText = (0, plugin_kit_1.localFile)(p, USERS_FILE, 'text');
100
- const set = await (0, plugin_kit_1.vendorStep)('Firebase', () => (0, firebase_1.exportFirebase)({
101
- projectId,
102
- usersText,
103
- usersFileName: p.credential(USERS_FILE),
104
- serviceAccountJson: usersText === undefined ? (0, plugin_kit_1.localFile)(p, SERVICE_ACCOUNT, 'text') : undefined,
105
- accessToken: usersText === undefined ? p.credential(ACCESS_TOKEN) : undefined,
106
- tenant: p.credential(TENANT),
107
- hashParams: hashParams(p),
108
- includeAnonymous: p.credential(ANONYMOUS) === 'include',
109
- fetchImpl: p.fetch,
110
- onProgress: (m) => p.say(` reading ${m}`),
111
- }));
112
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
113
- },
114
- },
115
- bridge: {
116
- preset: 'firebase',
117
- presetFor(p) {
118
- const mode = (p.credential(BRIDGE) ?? 'id-token').trim().toLowerCase();
119
- if (mode === 'session-cookie')
120
- return 'firebase_session_cookie';
121
- if (mode !== 'id-token')
122
- throw new errors_1.CliError(`Firebase: --set firebase-bridge takes id-token or session-cookie (got ${mode}).`);
123
- return 'firebase';
124
- },
125
- vars(p, t) {
126
- const vars = { ...t?.bridge?.vars };
127
- const project = p.credential(PROJECT);
128
- if (project)
129
- vars.project_id = project.trim();
130
- const cookie = p.credential(COOKIE_NAME);
131
- if (cookie)
132
- vars.cookie_name = cookie.trim();
133
- return vars;
134
- },
135
- },
136
- lazy: {
137
- preset: 'firebase',
138
- config(p, t) {
139
- const config = { ...t?.lazy?.config };
140
- const tenant = p.credential(TENANT);
141
- if (tenant && tenant !== 'all')
142
- config.tenant_id = tenant;
143
- // The Web API key is public (it ships in the client config): it is preset config, not a secret.
144
- const apiKey = p.credential(API_KEY);
145
- if (apiKey)
146
- config.api_key = apiKey;
147
- return config;
148
- },
149
- },
150
- codemod: 'firebase',
151
- };
152
- //# sourceMappingURL=plugin.js.map