@atlasauth/cli 0.24.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 (530) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/package.json +4 -4
  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 -104
  25. package/dist/commands/config.js +0 -1506
  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/define-config.d.ts +0 -9
  115. package/dist/define-config.js +0 -8
  116. package/dist/define-config.js.map +0 -1
  117. package/dist/errors.d.ts +0 -15
  118. package/dist/errors.js +0 -25
  119. package/dist/errors.js.map +0 -1
  120. package/dist/help.d.ts +0 -8
  121. package/dist/help.js +0 -868
  122. package/dist/help.js.map +0 -1
  123. package/dist/import/csv.d.ts +0 -6
  124. package/dist/import/csv.js +0 -63
  125. package/dist/import/csv.js.map +0 -1
  126. package/dist/import/vendors.d.ts +0 -57
  127. package/dist/import/vendors.js +0 -568
  128. package/dist/import/vendors.js.map +0 -1
  129. package/dist/index.d.ts +0 -33
  130. package/dist/index.js +0 -81
  131. package/dist/index.js.map +0 -1
  132. package/dist/io.d.ts +0 -21
  133. package/dist/io.js +0 -28
  134. package/dist/io.js.map +0 -1
  135. package/dist/migrate/appwrite/plugin.d.ts +0 -2
  136. package/dist/migrate/appwrite/plugin.js +0 -103
  137. package/dist/migrate/appwrite/plugin.js.map +0 -1
  138. package/dist/migrate/auth0/plugin.d.ts +0 -2
  139. package/dist/migrate/auth0/plugin.js +0 -126
  140. package/dist/migrate/auth0/plugin.js.map +0 -1
  141. package/dist/migrate/authentik/plugin.d.ts +0 -2
  142. package/dist/migrate/authentik/plugin.js +0 -135
  143. package/dist/migrate/authentik/plugin.js.map +0 -1
  144. package/dist/migrate/azure-ad-b2c/plugin.d.ts +0 -8
  145. package/dist/migrate/azure-ad-b2c/plugin.js +0 -165
  146. package/dist/migrate/azure-ad-b2c/plugin.js.map +0 -1
  147. package/dist/migrate/better-auth/integration.d.ts +0 -59
  148. package/dist/migrate/better-auth/integration.js +0 -81
  149. package/dist/migrate/better-auth/integration.js.map +0 -1
  150. package/dist/migrate/better-auth/orchestrator.d.ts +0 -43
  151. package/dist/migrate/better-auth/orchestrator.js +0 -525
  152. package/dist/migrate/better-auth/orchestrator.js.map +0 -1
  153. package/dist/migrate/better-auth/output.d.ts +0 -20
  154. package/dist/migrate/better-auth/output.js +0 -146
  155. package/dist/migrate/better-auth/output.js.map +0 -1
  156. package/dist/migrate/better-auth/translate.d.ts +0 -77
  157. package/dist/migrate/better-auth/translate.js +0 -1989
  158. package/dist/migrate/better-auth/translate.js.map +0 -1
  159. package/dist/migrate/clerk/plugin.d.ts +0 -2
  160. package/dist/migrate/clerk/plugin.js +0 -76
  161. package/dist/migrate/clerk/plugin.js.map +0 -1
  162. package/dist/migrate/cognito/plugin.d.ts +0 -5
  163. package/dist/migrate/cognito/plugin.js +0 -170
  164. package/dist/migrate/cognito/plugin.js.map +0 -1
  165. package/dist/migrate/corbado/plugin.d.ts +0 -2
  166. package/dist/migrate/corbado/plugin.js +0 -63
  167. package/dist/migrate/corbado/plugin.js.map +0 -1
  168. package/dist/migrate/descope/plugin.d.ts +0 -2
  169. package/dist/migrate/descope/plugin.js +0 -83
  170. package/dist/migrate/descope/plugin.js.map +0 -1
  171. package/dist/migrate/entra-external-id/plugin.d.ts +0 -8
  172. package/dist/migrate/entra-external-id/plugin.js +0 -12
  173. package/dist/migrate/entra-external-id/plugin.js.map +0 -1
  174. package/dist/migrate/export/appwrite-config.d.ts +0 -28
  175. package/dist/migrate/export/appwrite-config.js +0 -170
  176. package/dist/migrate/export/appwrite-config.js.map +0 -1
  177. package/dist/migrate/export/appwrite.d.ts +0 -51
  178. package/dist/migrate/export/appwrite.js +0 -288
  179. package/dist/migrate/export/appwrite.js.map +0 -1
  180. package/dist/migrate/export/auth0-config.d.ts +0 -29
  181. package/dist/migrate/export/auth0-config.js +0 -249
  182. package/dist/migrate/export/auth0-config.js.map +0 -1
  183. package/dist/migrate/export/auth0.d.ts +0 -62
  184. package/dist/migrate/export/auth0.js +0 -575
  185. package/dist/migrate/export/auth0.js.map +0 -1
  186. package/dist/migrate/export/authentik-config.d.ts +0 -45
  187. package/dist/migrate/export/authentik-config.js +0 -357
  188. package/dist/migrate/export/authentik-config.js.map +0 -1
  189. package/dist/migrate/export/authentik.d.ts +0 -110
  190. package/dist/migrate/export/authentik.js +0 -838
  191. package/dist/migrate/export/authentik.js.map +0 -1
  192. package/dist/migrate/export/azure-config.d.ts +0 -58
  193. package/dist/migrate/export/azure-config.js +0 -344
  194. package/dist/migrate/export/azure-config.js.map +0 -1
  195. package/dist/migrate/export/azure.d.ts +0 -85
  196. package/dist/migrate/export/azure.js +0 -373
  197. package/dist/migrate/export/azure.js.map +0 -1
  198. package/dist/migrate/export/clerk-config.d.ts +0 -26
  199. package/dist/migrate/export/clerk-config.js +0 -227
  200. package/dist/migrate/export/clerk-config.js.map +0 -1
  201. package/dist/migrate/export/clerk.d.ts +0 -46
  202. package/dist/migrate/export/clerk.js +0 -486
  203. package/dist/migrate/export/clerk.js.map +0 -1
  204. package/dist/migrate/export/cognito-config.d.ts +0 -25
  205. package/dist/migrate/export/cognito-config.js +0 -273
  206. package/dist/migrate/export/cognito-config.js.map +0 -1
  207. package/dist/migrate/export/cognito.d.ts +0 -103
  208. package/dist/migrate/export/cognito.js +0 -441
  209. package/dist/migrate/export/cognito.js.map +0 -1
  210. package/dist/migrate/export/corbado-config.d.ts +0 -20
  211. package/dist/migrate/export/corbado-config.js +0 -63
  212. package/dist/migrate/export/corbado-config.js.map +0 -1
  213. package/dist/migrate/export/corbado.d.ts +0 -37
  214. package/dist/migrate/export/corbado.js +0 -132
  215. package/dist/migrate/export/corbado.js.map +0 -1
  216. package/dist/migrate/export/descope.d.ts +0 -35
  217. package/dist/migrate/export/descope.js +0 -208
  218. package/dist/migrate/export/descope.js.map +0 -1
  219. package/dist/migrate/export/fake-vendor.test-helper.d.ts +0 -27
  220. package/dist/migrate/export/fake-vendor.test-helper.js +0 -41
  221. package/dist/migrate/export/fake-vendor.test-helper.js.map +0 -1
  222. package/dist/migrate/export/firebase-config.d.ts +0 -24
  223. package/dist/migrate/export/firebase-config.js +0 -215
  224. package/dist/migrate/export/firebase-config.js.map +0 -1
  225. package/dist/migrate/export/firebase.d.ts +0 -102
  226. package/dist/migrate/export/firebase.js +0 -464
  227. package/dist/migrate/export/firebase.js.map +0 -1
  228. package/dist/migrate/export/frameworks/app-users.d.ts +0 -42
  229. package/dist/migrate/export/frameworks/app-users.js +0 -161
  230. package/dist/migrate/export/frameworks/app-users.js.map +0 -1
  231. package/dist/migrate/export/frameworks/authjs.d.ts +0 -41
  232. package/dist/migrate/export/frameworks/authjs.js +0 -146
  233. package/dist/migrate/export/frameworks/authjs.js.map +0 -1
  234. package/dist/migrate/export/frameworks/devise.d.ts +0 -39
  235. package/dist/migrate/export/frameworks/devise.js +0 -218
  236. package/dist/migrate/export/frameworks/devise.js.map +0 -1
  237. package/dist/migrate/export/frameworks/django.d.ts +0 -45
  238. package/dist/migrate/export/frameworks/django.js +0 -315
  239. package/dist/migrate/export/frameworks/django.js.map +0 -1
  240. package/dist/migrate/export/frameworks/lucia.d.ts +0 -42
  241. package/dist/migrate/export/frameworks/lucia.js +0 -263
  242. package/dist/migrate/export/frameworks/lucia.js.map +0 -1
  243. package/dist/migrate/export/frameworks/tables.d.ts +0 -90
  244. package/dist/migrate/export/frameworks/tables.js +0 -325
  245. package/dist/migrate/export/frameworks/tables.js.map +0 -1
  246. package/dist/migrate/export/frameworks/webauthn.d.ts +0 -25
  247. package/dist/migrate/export/frameworks/webauthn.js +0 -130
  248. package/dist/migrate/export/frameworks/webauthn.js.map +0 -1
  249. package/dist/migrate/export/frontegg-config.d.ts +0 -29
  250. package/dist/migrate/export/frontegg-config.js +0 -238
  251. package/dist/migrate/export/frontegg-config.js.map +0 -1
  252. package/dist/migrate/export/frontegg.d.ts +0 -67
  253. package/dist/migrate/export/frontegg.js +0 -410
  254. package/dist/migrate/export/frontegg.js.map +0 -1
  255. package/dist/migrate/export/fusionauth-config.d.ts +0 -26
  256. package/dist/migrate/export/fusionauth-config.js +0 -226
  257. package/dist/migrate/export/fusionauth-config.js.map +0 -1
  258. package/dist/migrate/export/fusionauth.d.ts +0 -99
  259. package/dist/migrate/export/fusionauth.js +0 -642
  260. package/dist/migrate/export/fusionauth.js.map +0 -1
  261. package/dist/migrate/export/hanko-config.d.ts +0 -27
  262. package/dist/migrate/export/hanko-config.js +0 -265
  263. package/dist/migrate/export/hanko-config.js.map +0 -1
  264. package/dist/migrate/export/hanko.d.ts +0 -52
  265. package/dist/migrate/export/hanko.js +0 -605
  266. package/dist/migrate/export/hanko.js.map +0 -1
  267. package/dist/migrate/export/keycloak-config.d.ts +0 -19
  268. package/dist/migrate/export/keycloak-config.js +0 -219
  269. package/dist/migrate/export/keycloak-config.js.map +0 -1
  270. package/dist/migrate/export/keycloak.d.ts +0 -155
  271. package/dist/migrate/export/keycloak.js +0 -878
  272. package/dist/migrate/export/keycloak.js.map +0 -1
  273. package/dist/migrate/export/kinde-descope-config.d.ts +0 -38
  274. package/dist/migrate/export/kinde-descope-config.js +0 -172
  275. package/dist/migrate/export/kinde-descope-config.js.map +0 -1
  276. package/dist/migrate/export/kinde.d.ts +0 -57
  277. package/dist/migrate/export/kinde.js +0 -333
  278. package/dist/migrate/export/kinde.js.map +0 -1
  279. package/dist/migrate/export/ldap.d.ts +0 -53
  280. package/dist/migrate/export/ldap.js +0 -277
  281. package/dist/migrate/export/ldap.js.map +0 -1
  282. package/dist/migrate/export/logto-config.d.ts +0 -27
  283. package/dist/migrate/export/logto-config.js +0 -264
  284. package/dist/migrate/export/logto-config.js.map +0 -1
  285. package/dist/migrate/export/logto.d.ts +0 -150
  286. package/dist/migrate/export/logto.js +0 -809
  287. package/dist/migrate/export/logto.js.map +0 -1
  288. package/dist/migrate/export/magic-config.d.ts +0 -14
  289. package/dist/migrate/export/magic-config.js +0 -28
  290. package/dist/migrate/export/magic-config.js.map +0 -1
  291. package/dist/migrate/export/magic.d.ts +0 -31
  292. package/dist/migrate/export/magic.js +0 -93
  293. package/dist/migrate/export/magic.js.map +0 -1
  294. package/dist/migrate/export/mini-yaml.d.ts +0 -19
  295. package/dist/migrate/export/mini-yaml.js +0 -581
  296. package/dist/migrate/export/mini-yaml.js.map +0 -1
  297. package/dist/migrate/export/nhost-config.d.ts +0 -26
  298. package/dist/migrate/export/nhost-config.js +0 -360
  299. package/dist/migrate/export/nhost-config.js.map +0 -1
  300. package/dist/migrate/export/nhost.d.ts +0 -64
  301. package/dist/migrate/export/nhost.js +0 -304
  302. package/dist/migrate/export/nhost.js.map +0 -1
  303. package/dist/migrate/export/okta-config.d.ts +0 -30
  304. package/dist/migrate/export/okta-config.js +0 -205
  305. package/dist/migrate/export/okta-config.js.map +0 -1
  306. package/dist/migrate/export/okta.d.ts +0 -43
  307. package/dist/migrate/export/okta.js +0 -337
  308. package/dist/migrate/export/okta.js.map +0 -1
  309. package/dist/migrate/export/onelogin.d.ts +0 -22
  310. package/dist/migrate/export/onelogin.js +0 -123
  311. package/dist/migrate/export/onelogin.js.map +0 -1
  312. package/dist/migrate/export/ory-config.d.ts +0 -58
  313. package/dist/migrate/export/ory-config.js +0 -451
  314. package/dist/migrate/export/ory-config.js.map +0 -1
  315. package/dist/migrate/export/ory.d.ts +0 -81
  316. package/dist/migrate/export/ory.js +0 -555
  317. package/dist/migrate/export/ory.js.map +0 -1
  318. package/dist/migrate/export/password-detect.d.ts +0 -29
  319. package/dist/migrate/export/password-detect.js +0 -81
  320. package/dist/migrate/export/password-detect.js.map +0 -1
  321. package/dist/migrate/export/pingone.d.ts +0 -36
  322. package/dist/migrate/export/pingone.js +0 -218
  323. package/dist/migrate/export/pingone.js.map +0 -1
  324. package/dist/migrate/export/plugin-kit.d.ts +0 -25
  325. package/dist/migrate/export/plugin-kit.js +0 -82
  326. package/dist/migrate/export/plugin-kit.js.map +0 -1
  327. package/dist/migrate/export/pocketbase-config.d.ts +0 -28
  328. package/dist/migrate/export/pocketbase-config.js +0 -180
  329. package/dist/migrate/export/pocketbase-config.js.map +0 -1
  330. package/dist/migrate/export/pocketbase.d.ts +0 -52
  331. package/dist/migrate/export/pocketbase.js +0 -243
  332. package/dist/migrate/export/pocketbase.js.map +0 -1
  333. package/dist/migrate/export/project-files.d.ts +0 -15
  334. package/dist/migrate/export/project-files.js +0 -43
  335. package/dist/migrate/export/project-files.js.map +0 -1
  336. package/dist/migrate/export/propelauth-config.d.ts +0 -18
  337. package/dist/migrate/export/propelauth-config.js +0 -58
  338. package/dist/migrate/export/propelauth-config.js.map +0 -1
  339. package/dist/migrate/export/propelauth-harness.test-helper.d.ts +0 -62
  340. package/dist/migrate/export/propelauth-harness.test-helper.js +0 -109
  341. package/dist/migrate/export/propelauth-harness.test-helper.js.map +0 -1
  342. package/dist/migrate/export/propelauth.d.ts +0 -48
  343. package/dist/migrate/export/propelauth.js +0 -255
  344. package/dist/migrate/export/propelauth.js.map +0 -1
  345. package/dist/migrate/export/record-set.d.ts +0 -44
  346. package/dist/migrate/export/record-set.js +0 -98
  347. package/dist/migrate/export/record-set.js.map +0 -1
  348. package/dist/migrate/export/source-lines.d.ts +0 -17
  349. package/dist/migrate/export/source-lines.js +0 -43
  350. package/dist/migrate/export/source-lines.js.map +0 -1
  351. package/dist/migrate/export/sso-metadata.d.ts +0 -47
  352. package/dist/migrate/export/sso-metadata.js +0 -180
  353. package/dist/migrate/export/sso-metadata.js.map +0 -1
  354. package/dist/migrate/export/stytch-config.d.ts +0 -22
  355. package/dist/migrate/export/stytch-config.js +0 -102
  356. package/dist/migrate/export/stytch-config.js.map +0 -1
  357. package/dist/migrate/export/stytch.d.ts +0 -68
  358. package/dist/migrate/export/stytch.js +0 -510
  359. package/dist/migrate/export/stytch.js.map +0 -1
  360. package/dist/migrate/export/supabase-config.d.ts +0 -48
  361. package/dist/migrate/export/supabase-config.js +0 -408
  362. package/dist/migrate/export/supabase-config.js.map +0 -1
  363. package/dist/migrate/export/supabase.d.ts +0 -86
  364. package/dist/migrate/export/supabase.js +0 -524
  365. package/dist/migrate/export/supabase.js.map +0 -1
  366. package/dist/migrate/export/supertokens-config.d.ts +0 -20
  367. package/dist/migrate/export/supertokens-config.js +0 -150
  368. package/dist/migrate/export/supertokens-config.js.map +0 -1
  369. package/dist/migrate/export/supertokens.d.ts +0 -125
  370. package/dist/migrate/export/supertokens.js +0 -464
  371. package/dist/migrate/export/supertokens.js.map +0 -1
  372. package/dist/migrate/export/table.d.ts +0 -35
  373. package/dist/migrate/export/table.js +0 -248
  374. package/dist/migrate/export/table.js.map +0 -1
  375. package/dist/migrate/export/translate-kit.d.ts +0 -46
  376. package/dist/migrate/export/translate-kit.js +0 -148
  377. package/dist/migrate/export/translate-kit.js.map +0 -1
  378. package/dist/migrate/export/userfront-config.d.ts +0 -15
  379. package/dist/migrate/export/userfront-config.js +0 -49
  380. package/dist/migrate/export/userfront-config.js.map +0 -1
  381. package/dist/migrate/export/userfront.d.ts +0 -38
  382. package/dist/migrate/export/userfront.js +0 -189
  383. package/dist/migrate/export/userfront.js.map +0 -1
  384. package/dist/migrate/export/vendor-http.d.ts +0 -46
  385. package/dist/migrate/export/vendor-http.js +0 -138
  386. package/dist/migrate/export/vendor-http.js.map +0 -1
  387. package/dist/migrate/export/workos-config.d.ts +0 -23
  388. package/dist/migrate/export/workos-config.js +0 -125
  389. package/dist/migrate/export/workos-config.js.map +0 -1
  390. package/dist/migrate/export/workos.d.ts +0 -46
  391. package/dist/migrate/export/workos.js +0 -272
  392. package/dist/migrate/export/workos.js.map +0 -1
  393. package/dist/migrate/export/zip.d.ts +0 -8
  394. package/dist/migrate/export/zip.js +0 -66
  395. package/dist/migrate/export/zip.js.map +0 -1
  396. package/dist/migrate/export/zitadel-config.d.ts +0 -37
  397. package/dist/migrate/export/zitadel-config.js +0 -279
  398. package/dist/migrate/export/zitadel-config.js.map +0 -1
  399. package/dist/migrate/export/zitadel.d.ts +0 -82
  400. package/dist/migrate/export/zitadel.js +0 -447
  401. package/dist/migrate/export/zitadel.js.map +0 -1
  402. package/dist/migrate/firebase/plugin.d.ts +0 -2
  403. package/dist/migrate/firebase/plugin.js +0 -152
  404. package/dist/migrate/firebase/plugin.js.map +0 -1
  405. package/dist/migrate/framework/builtins.d.ts +0 -2
  406. package/dist/migrate/framework/builtins.js +0 -52
  407. package/dist/migrate/framework/builtins.js.map +0 -1
  408. package/dist/migrate/framework/commands.d.ts +0 -20
  409. package/dist/migrate/framework/commands.js +0 -58
  410. package/dist/migrate/framework/commands.js.map +0 -1
  411. package/dist/migrate/framework/custom.d.ts +0 -12
  412. package/dist/migrate/framework/custom.js +0 -96
  413. package/dist/migrate/framework/custom.js.map +0 -1
  414. package/dist/migrate/framework/orchestrator.d.ts +0 -113
  415. package/dist/migrate/framework/orchestrator.js +0 -532
  416. package/dist/migrate/framework/orchestrator.js.map +0 -1
  417. package/dist/migrate/framework/plugin.d.ts +0 -167
  418. package/dist/migrate/framework/plugin.js +0 -3
  419. package/dist/migrate/framework/plugin.js.map +0 -1
  420. package/dist/migrate/framework/registry.d.ts +0 -11
  421. package/dist/migrate/framework/registry.js +0 -44
  422. package/dist/migrate/framework/registry.js.map +0 -1
  423. package/dist/migrate/framework/report.d.ts +0 -17
  424. package/dist/migrate/framework/report.js +0 -103
  425. package/dist/migrate/framework/report.js.map +0 -1
  426. package/dist/migrate/frameworks/plugins.d.ts +0 -29
  427. package/dist/migrate/frameworks/plugins.js +0 -402
  428. package/dist/migrate/frameworks/plugins.js.map +0 -1
  429. package/dist/migrate/frameworks/report.d.ts +0 -92
  430. package/dist/migrate/frameworks/report.js +0 -207
  431. package/dist/migrate/frameworks/report.js.map +0 -1
  432. package/dist/migrate/frameworks/translate-js.d.ts +0 -5
  433. package/dist/migrate/frameworks/translate-js.js +0 -503
  434. package/dist/migrate/frameworks/translate-js.js.map +0 -1
  435. package/dist/migrate/frameworks/translate-rails-django.d.ts +0 -3
  436. package/dist/migrate/frameworks/translate-rails-django.js +0 -1391
  437. package/dist/migrate/frameworks/translate-rails-django.js.map +0 -1
  438. package/dist/migrate/frontegg/plugin.d.ts +0 -2
  439. package/dist/migrate/frontegg/plugin.js +0 -78
  440. package/dist/migrate/frontegg/plugin.js.map +0 -1
  441. package/dist/migrate/fusionauth/plugin.d.ts +0 -2
  442. package/dist/migrate/fusionauth/plugin.js +0 -109
  443. package/dist/migrate/fusionauth/plugin.js.map +0 -1
  444. package/dist/migrate/hanko/plugin.d.ts +0 -2
  445. package/dist/migrate/hanko/plugin.js +0 -100
  446. package/dist/migrate/hanko/plugin.js.map +0 -1
  447. package/dist/migrate/keycloak/plugin.d.ts +0 -2
  448. package/dist/migrate/keycloak/plugin.js +0 -148
  449. package/dist/migrate/keycloak/plugin.js.map +0 -1
  450. package/dist/migrate/kinde/plugin.d.ts +0 -2
  451. package/dist/migrate/kinde/plugin.js +0 -105
  452. package/dist/migrate/kinde/plugin.js.map +0 -1
  453. package/dist/migrate/ldap/plugin.d.ts +0 -2
  454. package/dist/migrate/ldap/plugin.js +0 -73
  455. package/dist/migrate/ldap/plugin.js.map +0 -1
  456. package/dist/migrate/logto/plugin.d.ts +0 -2
  457. package/dist/migrate/logto/plugin.js +0 -131
  458. package/dist/migrate/logto/plugin.js.map +0 -1
  459. package/dist/migrate/magic/plugin.d.ts +0 -2
  460. package/dist/migrate/magic/plugin.js +0 -56
  461. package/dist/migrate/magic/plugin.js.map +0 -1
  462. package/dist/migrate/nhost/plugin.d.ts +0 -2
  463. package/dist/migrate/nhost/plugin.js +0 -115
  464. package/dist/migrate/nhost/plugin.js.map +0 -1
  465. package/dist/migrate/oidc/plugin.d.ts +0 -2
  466. package/dist/migrate/oidc/plugin.js +0 -73
  467. package/dist/migrate/oidc/plugin.js.map +0 -1
  468. package/dist/migrate/okta/plugin.d.ts +0 -2
  469. package/dist/migrate/okta/plugin.js +0 -105
  470. package/dist/migrate/okta/plugin.js.map +0 -1
  471. package/dist/migrate/onelogin/plugin.d.ts +0 -2
  472. package/dist/migrate/onelogin/plugin.js +0 -61
  473. package/dist/migrate/onelogin/plugin.js.map +0 -1
  474. package/dist/migrate/ory/plugin.d.ts +0 -2
  475. package/dist/migrate/ory/plugin.js +0 -186
  476. package/dist/migrate/ory/plugin.js.map +0 -1
  477. package/dist/migrate/ping-identity/plugin.d.ts +0 -2
  478. package/dist/migrate/ping-identity/plugin.js +0 -100
  479. package/dist/migrate/ping-identity/plugin.js.map +0 -1
  480. package/dist/migrate/pocketbase/plugin.d.ts +0 -2
  481. package/dist/migrate/pocketbase/plugin.js +0 -99
  482. package/dist/migrate/pocketbase/plugin.js.map +0 -1
  483. package/dist/migrate/propelauth/plugin.d.ts +0 -2
  484. package/dist/migrate/propelauth/plugin.js +0 -65
  485. package/dist/migrate/propelauth/plugin.js.map +0 -1
  486. package/dist/migrate/saml/plugin.d.ts +0 -2
  487. package/dist/migrate/saml/plugin.js +0 -79
  488. package/dist/migrate/saml/plugin.js.map +0 -1
  489. package/dist/migrate/stytch/plugin.d.ts +0 -2
  490. package/dist/migrate/stytch/plugin.js +0 -97
  491. package/dist/migrate/stytch/plugin.js.map +0 -1
  492. package/dist/migrate/supabase/plugin.d.ts +0 -2
  493. package/dist/migrate/supabase/plugin.js +0 -149
  494. package/dist/migrate/supabase/plugin.js.map +0 -1
  495. package/dist/migrate/supertokens/plugin.d.ts +0 -2
  496. package/dist/migrate/supertokens/plugin.js +0 -114
  497. package/dist/migrate/supertokens/plugin.js.map +0 -1
  498. package/dist/migrate/user-table/plugin.d.ts +0 -2
  499. package/dist/migrate/user-table/plugin.js +0 -62
  500. package/dist/migrate/user-table/plugin.js.map +0 -1
  501. package/dist/migrate/userfront/plugin.d.ts +0 -2
  502. package/dist/migrate/userfront/plugin.js +0 -60
  503. package/dist/migrate/userfront/plugin.js.map +0 -1
  504. package/dist/migrate/workos/plugin.d.ts +0 -2
  505. package/dist/migrate/workos/plugin.js +0 -81
  506. package/dist/migrate/workos/plugin.js.map +0 -1
  507. package/dist/migrate/zitadel/plugin.d.ts +0 -2
  508. package/dist/migrate/zitadel/plugin.js +0 -114
  509. package/dist/migrate/zitadel/plugin.js.map +0 -1
  510. package/dist/output.d.ts +0 -41
  511. package/dist/output.js +0 -72
  512. package/dist/output.js.map +0 -1
  513. package/dist/project.d.ts +0 -64
  514. package/dist/project.js +0 -86
  515. package/dist/project.js.map +0 -1
  516. package/dist/prompt.d.ts +0 -15
  517. package/dist/prompt.js +0 -46
  518. package/dist/prompt.js.map +0 -1
  519. package/dist/run.d.ts +0 -12
  520. package/dist/run.js +0 -157
  521. package/dist/run.js.map +0 -1
  522. package/dist/secrets.d.ts +0 -41
  523. package/dist/secrets.js +0 -142
  524. package/dist/secrets.js.map +0 -1
  525. package/dist/serialize.d.ts +0 -30
  526. package/dist/serialize.js +0 -131
  527. package/dist/serialize.js.map +0 -1
  528. package/dist/version.d.ts +0 -7
  529. package/dist/version.js +0 -21
  530. package/dist/version.js.map +0 -1
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nhostPlugin = void 0;
4
- const nhost_1 = require("../export/nhost");
5
- const nhost_config_1 = require("../export/nhost-config");
6
- const errors_1 = require("../../errors");
7
- const plugin_kit_1 = require("../export/plugin-kit");
8
- const project_files_1 = require("../export/project-files");
9
- /**
10
- * `atlas migrate nhost` — an Nhost project (Nhost Cloud or self-hosted Hasura
11
- * Auth): `nhost/nhost.toml` as Atlas config; users with their bcrypt hashes,
12
- * social links, security keys, roles, TOTP secrets and live refresh tokens
13
- * read through the project's GraphQL endpoint with the admin secret (on this
14
- * machine only) or from a dump of the `auth` schema; the `nhost` bridge preset
15
- * (a refresh token becomes an Atlas session, matched on the hash Nhost
16
- * stores); lazy migration for anyone left; and the code.
17
- */
18
- const SUBDOMAIN = { flag: '--nhost-subdomain', env: 'NHOST_SUBDOMAIN', label: 'the Nhost Cloud project subdomain', required: false };
19
- const REGION = { flag: '--nhost-region', env: 'NHOST_REGION', label: 'the Nhost Cloud region (eu-central-1, us-east-1, …)', required: false };
20
- const GRAPHQL_URL = { flag: '--nhost-graphql-url', env: 'NHOST_GRAPHQL_URL', label: 'the GraphQL endpoint of a self-hosted project (https://graphql.example.com/v1)', required: false };
21
- const AUTH_URL = { flag: '--nhost-auth-url', env: 'NHOST_AUTH_URL', label: 'the Auth URL of a self-hosted project (https://auth.example.com/v1), for lazy migration', required: false };
22
- const ADMIN_SECRET = { flag: '--nhost-admin-secret', env: 'NHOST_ADMIN_SECRET', label: 'the Hasura admin secret', required: false, secret: true };
23
- const DUMP = { flag: '--nhost-dump', env: 'NHOST_DUMP_DIR', label: 'a folder of auth-schema table dumps (users.csv, user_providers.csv, …)', required: false };
24
- const CONFIG_FILE = { flag: '--nhost-config', env: 'NHOST_CONFIG_TOML', label: 'nhost/nhost.toml', required: false };
25
- const ENCRYPTION_KEY = { flag: '--nhost-encryption-key', env: 'AUTH_ENCRYPTION_KEY', label: 'AUTH_ENCRYPTION_KEY (64 hex characters), to carry encrypted TOTP secrets', required: false, secret: true };
26
- const BRIDGE = { flag: '--nhost-bridge', env: 'NHOST_BRIDGE', label: 'what the bridge exchanges: refresh-token (default; the sessions the export imported) or access-token (JWTs signed by Hasura Auth)', required: false };
27
- const RP_ID = { flag: '--rp-id', env: 'ATLAS_MIGRATE_RP_ID', label: 'the WebAuthn relying party id security keys were registered for', required: false };
28
- function cloud(p) {
29
- const subdomain = p.credential(SUBDOMAIN)?.trim();
30
- const region = p.credential(REGION)?.trim();
31
- return subdomain && region ? { subdomain, region } : undefined;
32
- }
33
- function authUrl(p) {
34
- const url = p.credential(AUTH_URL)?.trim().replace(/\/+$/, '');
35
- if (url)
36
- return url;
37
- const c = cloud(p);
38
- return c ? `https://${c.subdomain}.auth.${c.region}.nhost.run/v1` : undefined;
39
- }
40
- async function readRows(p) {
41
- const dump = (0, project_files_1.projectDir)(p, DUMP);
42
- if (dump)
43
- return { rows: await (0, plugin_kit_1.vendorStep)('Nhost', async () => (0, nhost_1.readNhostDump)(dump)), origin: 'auth schema dump' };
44
- const c = cloud(p);
45
- const graphqlUrl = p.credential(GRAPHQL_URL)?.trim().replace(/\/+$/, '') ?? (c ? (0, nhost_1.nhostGraphqlUrl)(c) : undefined);
46
- const adminSecret = p.credential(ADMIN_SECRET);
47
- if (!graphqlUrl || !adminSecret) {
48
- throw new errors_1.CliError('Nhost: pass --set nhost-subdomain=… --set nhost-region=… (or --set nhost-graphql-url=… when self-hosted) with --set nhost-admin-secret=…, or a dump of the auth schema with --set nhost-dump=<dir>.');
49
- }
50
- const rows = await (0, plugin_kit_1.vendorStep)('Nhost', () => (0, nhost_1.fetchNhostRows)({ graphqlUrl, adminSecret, fetchImpl: p.fetch, onProgress: (m) => p.say(` reading ${m}`) }));
51
- return { rows, origin: 'nhost graphql' };
52
- }
53
- exports.nhostPlugin = {
54
- vendor: 'nhost',
55
- source: 'nhost',
56
- label: 'Nhost',
57
- help: 'Move an Nhost project: nhost.toml auth settings as Atlas config; users with bcrypt hashes, verified email and phone, metadata, roles, social links, security keys, TOTP secrets and live refresh tokens through GraphQL with the admin secret (on this machine) or from an auth-schema dump; a zero-logout bridge on the refresh tokens Nhost already hashes; lazy migration for anyone left; and the code.',
58
- config: {
59
- reads: 'nhost/nhost.toml',
60
- credentials: [CONFIG_FILE, AUTH_URL, SUBDOMAIN, REGION],
61
- async translate(p) {
62
- const file = (0, project_files_1.projectFile)(p, CONFIG_FILE, ['nhost/nhost.toml', 'nhost.toml']);
63
- if (!file)
64
- throw new errors_1.CliError('Nhost: no nhost/nhost.toml in this folder. Pass --set nhost-config=<path to nhost.toml>.');
65
- return (0, nhost_config_1.translateNhostConfig)(file, { authUrl: authUrl(p) });
66
- },
67
- },
68
- export: {
69
- reads: 'the auth schema through the project GraphQL endpoint (admin secret) or a table dump',
70
- credentials: [SUBDOMAIN, REGION, GRAPHQL_URL, ADMIN_SECRET, DUMP, ENCRYPTION_KEY, RP_ID],
71
- limits: [
72
- 'Personal access tokens are not exported: reissue them as Atlas API keys.',
73
- 'TOTP secrets on current Nhost versions are encrypted with AUTH_ENCRYPTION_KEY; without --set nhost-encryption-key those users enrol again.',
74
- 'Security keys move only with the relying-party id they were registered for (--set rp-id=…, same domain on Atlas).',
75
- 'Access tokens are short-lived JWTs and are not exported: the bridge exchanges the refresh token instead.',
76
- ],
77
- async run(p, writer, resume) {
78
- const { rows, origin } = await readRows(p);
79
- const set = (0, nhost_1.exportNhost)(rows, { encryptionKey: p.credential(ENCRYPTION_KEY), rpId: p.credential(RP_ID)?.trim(), origin });
80
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
81
- },
82
- },
83
- bridge: {
84
- preset: 'nhost',
85
- presetFor(p) {
86
- const mode = (p.credential(BRIDGE) ?? 'refresh-token').trim().toLowerCase();
87
- if (mode === 'access-token')
88
- return 'nhost_jwt';
89
- if (mode !== 'refresh-token')
90
- throw new errors_1.CliError(`Nhost: --set nhost-bridge takes refresh-token or access-token (got ${mode}).`);
91
- return 'nhost';
92
- },
93
- vars(p, t) {
94
- const vars = { ...t?.bridge?.vars };
95
- if (p.credential(BRIDGE)?.trim().toLowerCase() === 'access-token') {
96
- const url = authUrl(p);
97
- if (url)
98
- vars.auth_url = url;
99
- }
100
- return vars;
101
- },
102
- },
103
- lazy: {
104
- preset: 'nhost',
105
- config(p, t) {
106
- const config = { ...t?.lazy?.config };
107
- const url = authUrl(p);
108
- if (url)
109
- config.auth_url = url;
110
- return config;
111
- },
112
- },
113
- codemod: 'nhost',
114
- };
115
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/nhost/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const oidcPlugin: MigrationPlugin;
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.oidcPlugin = void 0;
4
- const errors_1 = require("../../errors");
5
- const plugin_kit_1 = require("../export/plugin-kit");
6
- const sso_metadata_1 = require("../export/sso-metadata");
7
- const translate_kit_1 = require("../export/translate-kit");
8
- /**
9
- * `atlas migrate oidc export --set oidc-issuer=https://idp.example.com` — any
10
- * OpenID Connect provider from its discovery document: an Atlas SSO connection,
11
- * the JWT bridge preset (the issuer's tokens exchange for Atlas sessions, keys
12
- * found by discovery) and, when the provider allows the password grant, the
13
- * lazy-migration preset. Users come from `atlas migrate user-table` / `ldap`.
14
- */
15
- const ISSUER = { flag: 'oidc-issuer', env: 'OIDC_ISSUER', label: 'the provider issuer URL (https://idp.example.com/realms/acme)', required: true };
16
- const CLIENT_ID = { flag: 'oidc-client-id', env: 'OIDC_CLIENT_ID', label: 'the client id Atlas signs in with (and the password grant uses)', required: false };
17
- const CLIENT_SECRET = { flag: 'oidc-client-secret', env: 'OIDC_CLIENT_SECRET', label: 'the client secret', required: false, secret: true };
18
- const DOMAINS = { flag: 'oidc-domains', env: 'OIDC_DOMAINS', label: 'email domains that sign in through this provider (comma separated)', required: false };
19
- async function discover(p) {
20
- const issuer = p.credential({ ...ISSUER, required: true });
21
- try {
22
- return await (0, sso_metadata_1.fetchDiscovery)(p.fetch, issuer);
23
- }
24
- catch (err) {
25
- throw new errors_1.CliError(`OpenID Connect discovery: ${err.message}`);
26
- }
27
- }
28
- exports.oidcPlugin = {
29
- vendor: 'oidc',
30
- source: 'oidc',
31
- label: 'Any OpenID Connect provider',
32
- help: 'Move off a generic OpenID Connect provider: discovery (--set oidc-issuer=…) creates the Atlas SSO connection, the zero-logout bridge accepts the provider\'s tokens (keys found by discovery), and lazy migration uses the password grant when the provider offers it for a client you register. Bring the accounts with atlas migrate user-table (a CSV/JSON export) or atlas migrate ldap.',
33
- config: {
34
- reads: 'the provider\'s OpenID Connect discovery document',
35
- credentials: [ISSUER, CLIENT_ID],
36
- async translate(p) {
37
- const d = await discover(p);
38
- const b = new translate_kit_1.ConfigBuilder();
39
- b.add('mapped', 'oidc', d.issuer, 'Becomes an Atlas SSO connection (atlas migrate oidc export + import). Add Atlas\'s redirect URI to the provider\'s client.', 'sso_connections');
40
- b.add('mapped', 'oidc', 'jwks_uri', d.jwks_uri ? `Session tokens verify against ${d.jwks_uri} (found by discovery).` : 'The provider publishes no jwks_uri: the bridge cannot verify its tokens.', 'bridge');
41
- if (d.grant_types_supported.includes('password'))
42
- b.add('differs', 'oidc', 'grant_types_supported password', 'The password grant is offered: lazy migration can check passwords against the provider.', 'legacy_auth_connection');
43
- else
44
- b.add('manual', 'oidc', 'grant_types_supported', 'The provider does not list the password grant: passwords cannot be checked by lazy migration (users reset, or you export hashes).');
45
- const clientId = p.credential(CLIENT_ID);
46
- return b.result(`OIDC provider ${d.issuer}`, {
47
- bridge: { preset: 'oidc', vars: { issuer: d.issuer } },
48
- ...(d.token_endpoint && clientId ? { lazy: { preset: 'oidc', config: { token_endpoint: d.token_endpoint, client_id: clientId, ...(d.userinfo_endpoint ? { userinfo_endpoint: d.userinfo_endpoint } : {}) } } } : {}),
49
- });
50
- },
51
- },
52
- export: {
53
- reads: 'the provider\'s OpenID Connect discovery document (--set oidc-issuer=…)',
54
- credentials: [ISSUER, CLIENT_ID, CLIENT_SECRET, DOMAINS],
55
- limits: ['An OpenID Connect provider exposes no user list: bring the accounts with atlas migrate user-table or atlas migrate ldap.'],
56
- async run(p, writer, resume) {
57
- const d = await discover(p);
58
- const domains = (p.credential(DOMAINS) ?? '').split(',').map((x) => x.trim().toLowerCase()).filter(Boolean);
59
- const c = (0, sso_metadata_1.oidcConnection)(d, { clientId: p.credential(CLIENT_ID), clientSecret: p.credential(CLIENT_SECRET), domains: domains.length ? domains : undefined });
60
- await (0, plugin_kit_1.writeRecordSet)((0, sso_metadata_1.connectionSet)([c], `OIDC provider ${d.issuer}`), writer, resume, p.say);
61
- },
62
- },
63
- bridge: {
64
- preset: 'oidc',
65
- vars: (p, t) => ({ ...t?.bridge?.vars, issuer: t?.bridge?.vars.issuer ?? p.credential({ ...ISSUER, required: true }) }),
66
- },
67
- lazy: {
68
- preset: 'oidc',
69
- config: (p, t) => ({ ...t?.lazy?.config, ...(p.credential(CLIENT_ID) ? { client_id: p.credential(CLIENT_ID) } : {}) }),
70
- secret: CLIENT_SECRET,
71
- },
72
- };
73
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/oidc/plugin.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,qDAAsD;AACtD,yDAAuF;AACvF,2DAAwD;AAGxD;;;;;;GAMG;AAEH,MAAM,MAAM,GAAmB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,+DAA+D,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACnK,MAAM,SAAS,GAAmB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,iEAAiE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/K,MAAM,aAAa,GAAmB,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC3J,MAAM,OAAO,GAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,oEAAoE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAE5K,KAAK,UAAU,QAAQ,CAAC,CAAgB;IACtC,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE,CAAC;IAC5D,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,6BAAc,EAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,iBAAQ,CAAC,6BAA8B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAEY,QAAA,UAAU,GAAoB;IACzC,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,6BAA6B;IACpC,IAAI,EAAE,8XAA8X;IACpY,MAAM,EAAE;QACN,KAAK,EAAE,mDAAmD;QAC1D,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;QAChC,KAAK,CAAC,SAAS,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,6BAAa,EAAE,CAAC;YAC9B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,4HAA4H,EAAE,iBAAiB,CAAC,CAAC;YACnL,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,QAAQ,wBAAwB,CAAC,CAAC,CAAC,0EAA0E,EAAE,QAAQ,CAAC,CAAC;YAC7M,IAAI,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,gCAAgC,EAAE,yFAAyF,EAAE,wBAAwB,CAAC,CAAC;;gBAC7N,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,mIAAmI,CAAC,CAAC;YAC3L,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtD,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrN,CAAC,CAAC;QACL,CAAC;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,yEAAyE;QAChF,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC;QACxD,MAAM,EAAE,CAAC,0HAA0H,CAAC;QACpI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM;YACzB,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5G,MAAM,CAAC,GAAG,IAAA,6BAAc,EAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7J,MAAM,IAAA,2BAAc,EAAC,IAAA,4BAAa,EAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/F,CAAC;KACF;IACD,MAAM,EAAE;QACN,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE,EAAE,CAAC;KACzH;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvH,MAAM,EAAE,aAAa;KACtB;CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const oktaPlugin: MigrationPlugin;
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.oktaPlugin = void 0;
4
- const okta_1 = require("../export/okta");
5
- const okta_config_1 = require("../export/okta-config");
6
- const errors_1 = require("../../errors");
7
- const plugin_kit_1 = require("../export/plugin-kit");
8
- const vendor_http_1 = require("../export/vendor-http");
9
- /**
10
- * `atlas migrate okta` — Okta Workforce Identity and Okta Customer Identity
11
- * Solution (the Okta platform; Okta Customer Identity Cloud is Auth0 and uses
12
- * `atlas migrate auth0`). Users, groups (as roles or organizations), social
13
- * and enterprise IdP links and factors through the Okta API; Okta never
14
- * exports password hashes, so passwords move by lazy migration (Classic
15
- * `/api/v1/authn`, or the password grant on Identity Engine orgs). The `okta`
16
- * bridge preset verifies access tokens from a custom authorization server.
17
- */
18
- const DOMAIN = { flag: '--okta-domain', env: 'OKTA_DOMAIN', label: 'your Okta domain (example.okta.com)', required: true };
19
- const API_TOKEN = { flag: '--okta-api-token', env: 'OKTA_API_TOKEN', label: 'an Okta API token (read-only admin is enough)', required: true, secret: true };
20
- const AUTH_SERVER = { flag: '--okta-auth-server', env: 'OKTA_AUTH_SERVER', label: 'the custom authorization server id (default)', required: false };
21
- const GROUPS_AS = { flag: '--groups-as', env: 'ATLAS_MIGRATE_GROUPS_AS', label: 'how groups move: roles, organizations or skip', required: false };
22
- const CLIENT_ID = { flag: '--okta-client-id', env: 'OKTA_CLIENT_ID', label: 'the client id of an app with the Resource Owner Password grant (Identity Engine lazy migration)', required: false };
23
- function domainOf(p) {
24
- // OKTA_ORG_URL is what the Okta SDK samples use.
25
- const raw = p.credential({ ...DOMAIN, required: false }) ?? p.ctx.env.OKTA_ORG_URL?.trim();
26
- if (!raw)
27
- return (0, plugin_kit_1.hostOf)((0, plugin_kit_1.need)(p, DOMAIN));
28
- return (0, plugin_kit_1.hostOf)(raw);
29
- }
30
- function groupsAs(p) {
31
- const raw = p.credential(GROUPS_AS) ?? 'roles';
32
- if (raw !== 'roles' && raw !== 'organizations' && raw !== 'skip')
33
- throw new errors_1.CliError(`Okta: --groups-as must be roles, organizations or skip (got ${raw}).`);
34
- return raw;
35
- }
36
- exports.oktaPlugin = {
37
- vendor: 'okta',
38
- source: 'okta',
39
- label: 'Okta',
40
- help: 'Move an Okta org (Workforce Identity or Customer Identity Solution): applications, identity providers, password and session policy, authenticators and groups as Atlas config; users with their status, profile, social and enterprise links, groups (as roles or organizations) and factors; a zero-logout bridge for access tokens from a custom authorization server; lazy migration for passwords (Okta never exports hashes); and the code. Your API token stays on this machine.',
41
- config: {
42
- reads: 'your Okta org via the Okta API (apps, IdPs, policies, authenticators, groups, authorization servers)',
43
- credentials: [DOMAIN, API_TOKEN],
44
- async translate(p) {
45
- const domain = domainOf(p);
46
- const http = new vendor_http_1.VendorHttp({ vendor: 'Okta', baseUrl: `https://${domain}/api/v1`, headers: { authorization: `SSWS ${(0, plugin_kit_1.need)(p, API_TOKEN)}` }, fetchImpl: p.fetch });
47
- const snap = await (0, plugin_kit_1.vendorStep)('Okta', () => (0, okta_config_1.fetchOktaConfig)(http, domain));
48
- return (0, okta_config_1.translateOktaConfig)(snap, { groupsAs: groupsAs(p) });
49
- },
50
- },
51
- export: {
52
- reads: 'the Okta API (users, groups, identity providers, factors)',
53
- credentials: [DOMAIN, API_TOKEN],
54
- limits: [
55
- 'Okta never exports password hashes (neither by API nor through support): every password moves by lazy migration, verified against Okta on the user\'s first Atlas sign-in.',
56
- 'Factor secrets (TOTP seeds, WebAuthn credentials) are not exportable: users enrol those again. Phone (SMS/voice) and email factors move as Atlas factors; the export counts the rest by type.',
57
- 'DEPROVISIONED (deactivated) users are left out: they cannot sign in to Okta either.',
58
- ],
59
- async run(p, writer, resume) {
60
- const set = await (0, plugin_kit_1.vendorStep)('Okta', () => (0, okta_1.exportOkta)({
61
- domain: domainOf(p),
62
- apiToken: (0, plugin_kit_1.need)(p, API_TOKEN),
63
- groupsAs: groupsAs(p),
64
- factors: (0, plugin_kit_1.flag)(p, 'factors'),
65
- authorizationServerId: p.credential(AUTH_SERVER),
66
- fetchImpl: p.fetch,
67
- onProgress: (m) => p.say(` reading ${m}`),
68
- }));
69
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
70
- },
71
- },
72
- bridge: {
73
- preset: 'okta',
74
- vars(p, t) {
75
- const vars = { ...t?.bridge?.vars };
76
- const raw = p.credential({ ...DOMAIN, required: false }) ?? p.ctx.env.OKTA_ORG_URL?.trim();
77
- if (raw)
78
- vars.domain = (0, plugin_kit_1.hostOf)(raw);
79
- const server = p.credential(AUTH_SERVER);
80
- if (server)
81
- vars.auth_server = server;
82
- return vars;
83
- },
84
- },
85
- lazy: {
86
- preset: 'okta',
87
- config(p, t) {
88
- const config = { ...t?.lazy?.config };
89
- const raw = p.credential({ ...DOMAIN, required: false }) ?? p.ctx.env.OKTA_ORG_URL?.trim();
90
- if (raw)
91
- config.domain = (0, plugin_kit_1.hostOf)(raw);
92
- // Identity Engine orgs without the Classic authn API: the password grant through an app that allows it.
93
- const clientId = p.credential(CLIENT_ID);
94
- if (clientId) {
95
- config.mode = 'password_grant';
96
- config.client_id = clientId;
97
- config.auth_server = p.credential(AUTH_SERVER) ?? 'default';
98
- }
99
- return config;
100
- },
101
- secret: { flag: '--okta-client-secret', env: 'OKTA_CLIENT_SECRET', label: 'that app\'s client secret (confidential apps, password grant only)', required: false, secret: true },
102
- },
103
- codemod: 'okta',
104
- };
105
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/okta/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const oneLoginPlugin: MigrationPlugin;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.oneLoginPlugin = void 0;
4
- const onelogin_1 = require("../export/onelogin");
5
- const plugin_kit_1 = require("../export/plugin-kit");
6
- const translate_kit_1 = require("../export/translate-kit");
7
- /**
8
- * `atlas migrate onelogin` — a OneLogin account: users and roles through API
9
- * v2 with API credentials on this machine, the `onelogin` bridge preset
10
- * (OIDC v2 tokens verified against the account's keys) and lazy migration
11
- * through OneLogin's session-login-token API (OneLogin never exports hashes).
12
- */
13
- const SUBDOMAIN = { flag: 'onelogin-subdomain', env: 'ONELOGIN_SUBDOMAIN', label: 'your OneLogin subdomain (acme for acme.onelogin.com)', required: true };
14
- const CLIENT_ID = { flag: 'onelogin-client-id', env: 'ONELOGIN_CLIENT_ID', label: 'an API credential client id', required: true };
15
- const CLIENT_SECRET = { flag: 'onelogin-client-secret', env: 'ONELOGIN_CLIENT_SECRET', label: 'the API credential client secret', required: true, secret: true };
16
- const subdomain = (p) => (0, onelogin_1.oneLoginSubdomain)((0, plugin_kit_1.need)(p, SUBDOMAIN));
17
- exports.oneLoginPlugin = {
18
- vendor: 'onelogin',
19
- source: 'onelogin',
20
- label: 'OneLogin',
21
- help: 'Move a OneLogin account: users with their login, email, name, phone, status (suspended and locked carry over) and custom attributes, roles as app roles, a zero-logout bridge for OneLogin OIDC tokens, and lazy migration for passwords (OneLogin never exports hashes). Your API credentials stay on this machine. Apps connected through OneLogin\'s SAML / OIDC are moved with atlas migrate saml / oidc using the app\'s metadata.',
22
- config: {
23
- reads: 'your OneLogin subdomain (the API exposes no policy settings to read)',
24
- credentials: [SUBDOMAIN],
25
- async translate(p) {
26
- const sub = subdomain(p);
27
- const b = new translate_kit_1.ConfigBuilder();
28
- b.set('strategies.password', true);
29
- b.add('differs', 'authentication', 'password', 'OneLogin never exports password hashes: the onelogin lazy-migration preset checks each password against OneLogin on first sign-in.', 'auth_config.strategies.password');
30
- b.add('manual', 'security policies', 'user security policies (password, MFA, session)', 'The OneLogin API does not expose security policies: read them in the admin portal and set Atlas\'s passwordPolicy, MFA policy and session lifetimes in auth_config.');
31
- b.add('manual', 'apps', 'SAML / OIDC connectors', 'Download each app\'s metadata and move it with atlas migrate saml export (or oidc export).');
32
- return b.result(`OneLogin account ${sub}.onelogin.com`, {
33
- bridge: { preset: 'onelogin', vars: { subdomain: sub } },
34
- lazy: { preset: 'onelogin', config: { subdomain: sub, client_id: (0, plugin_kit_1.need)(p, CLIENT_ID) } },
35
- });
36
- },
37
- },
38
- export: {
39
- reads: 'your OneLogin account through API v2 (users, roles)',
40
- credentials: [SUBDOMAIN, CLIENT_ID, CLIENT_SECRET],
41
- limits: [
42
- 'Password hashes are never exported by OneLogin: passwords move by lazy migration (preset onelogin).',
43
- 'MFA secrets cannot be exported: users enrol their second factor again.',
44
- 'OneLogin does not say which addresses were confirmed: they import unverified.',
45
- ],
46
- async run(p, writer, resume) {
47
- const set = await (0, plugin_kit_1.vendorStep)('OneLogin', () => (0, onelogin_1.exportOneLogin)({ subdomain: (0, plugin_kit_1.need)(p, SUBDOMAIN), clientId: (0, plugin_kit_1.need)(p, CLIENT_ID), clientSecret: (0, plugin_kit_1.need)(p, CLIENT_SECRET), fetchImpl: p.fetch, onProgress: (m) => p.say(` reading ${m}`) }));
48
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
49
- },
50
- },
51
- bridge: {
52
- preset: 'onelogin',
53
- vars: (p, t) => ({ subdomain: subdomain(p), ...t?.bridge?.vars }),
54
- },
55
- lazy: {
56
- preset: 'onelogin',
57
- config: (p, t) => ({ subdomain: subdomain(p), client_id: (0, plugin_kit_1.need)(p, CLIENT_ID), ...t?.lazy?.config }),
58
- secret: CLIENT_SECRET,
59
- },
60
- };
61
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/onelogin/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const oryPlugin: MigrationPlugin;
@@ -1,186 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.oryPlugin = void 0;
4
- const node_path_1 = require("node:path");
5
- const errors_1 = require("../../errors");
6
- const ory_1 = require("../export/ory");
7
- const ory_config_1 = require("../export/ory-config");
8
- const tables_1 = require("../export/frameworks/tables");
9
- const plugin_kit_1 = require("../export/plugin-kit");
10
- const vendor_http_1 = require("../export/vendor-http");
11
- /**
12
- * `atlas migrate ory` — Ory Kratos and Hydra, self-hosted or on Ory Network:
13
- * the Kratos config (kratos.yml, or `ory get project` JSON), identity schemas
14
- * and Hydra's config and OAuth 2.0 clients as Atlas config; identities with
15
- * their verified addresses, social links, metadata and — from a database dump —
16
- * password hashes in every format Kratos verifies, TOTP seeds, recovery codes,
17
- * WebAuthn / passkey credentials and live session tokens; a zero-logout
18
- * bridge (Kratos vouches for the session, or imported session tokens); lazy
19
- * migration through Kratos' login flow; and the code. Credentials stay on this
20
- * machine. Ory Network has no database access and its Admin API returns no
21
- * hashes, seeds or session tokens: those users move by lazy migration and
22
- * enrol their second factor again.
23
- */
24
- const ADMIN_URL = { flag: '--ory-admin-url', env: 'ORY_ADMIN_URL', label: 'the Kratos admin URL (http://kratos:4434) or your Ory Network project URL', required: false };
25
- const PUBLIC_URL = { flag: '--ory-public-url', env: 'ORY_PUBLIC_URL', label: 'the Kratos public URL (https://auth.example.com, or https://<slug>.projects.oryapis.com)', required: false };
26
- const API_KEY = { flag: '--ory-api-key', env: 'ORY_API_KEY', label: 'an Ory Network project API key (ory_pat_…)', required: false, secret: true };
27
- const DUMP = { flag: '--ory-dump', env: 'ORY_DUMP_DIR', label: 'a folder of Kratos table dumps (identities.csv, identity_credentials.csv, …)', required: false };
28
- const RP_ID = { flag: '--ory-rp-id', env: 'ORY_RP_ID', label: 'the WebAuthn relying-party id passkeys were registered for (rp.id in kratos.yml)', required: false };
29
- const NID = { flag: '--ory-nid', env: 'ORY_NID', label: 'the project (nid) to export from a multi-project database', required: false };
30
- const CONFIG_FILE = { flag: '--ory-config', env: 'ORY_CONFIG', label: 'kratos.yml, or the JSON of `ory get project <id> --format json`', required: false };
31
- const HYDRA_CONFIG = { flag: '--ory-hydra-config', env: 'ORY_HYDRA_CONFIG', label: 'hydra.yml', required: false };
32
- const HYDRA_URL = { flag: '--ory-hydra-url', env: 'ORY_HYDRA_URL', label: 'the Hydra admin URL (http://hydra:4445), to read OAuth 2.0 clients', required: false };
33
- const BRIDGE_MODE = {
34
- flag: '--ory-bridge',
35
- env: 'ORY_BRIDGE',
36
- label: 'what the bridge accepts: whoami-cookie (default when the public URL is known), whoami-token (X-Session-Token / Bearer tokens checked with Kratos) or session-token (tokens imported with a database export)',
37
- required: false,
38
- };
39
- const COOKIE_NAME = { flag: '--ory-cookie-name', env: 'ORY_COOKIE_NAME', label: 'the session cookie name (ory_kratos_session; ory_session_<slug> on Ory Network)', required: false };
40
- const EMAIL_TRAIT = { flag: '--ory-email-trait', env: 'ORY_EMAIL_TRAIT', label: 'the identity trait holding the email address (default email), for lazy migration', required: false };
41
- const NETWORK = /\.projects\.oryapis\.com$|\.oryapis\.com$/i;
42
- const isNetwork = (url) => !!url && NETWORK.test((0, plugin_kit_1.hostOf)(url).replace(/:\d+$/, ''));
43
- /** `https://…` with no trailing slash; a bare host gets https. */
44
- function baseUrl(raw) {
45
- const s = raw.trim().replace(/\/+$/, '');
46
- return /^https?:\/\//.test(s) ? s : `https://${s}`;
47
- }
48
- const PRESETS = { 'whoami-cookie': 'ory_whoami', 'whoami-token': 'ory_whoami_token', 'session-token': 'ory' };
49
- function publicUrl(p, t) {
50
- const admin = p.credential(ADMIN_URL);
51
- const raw = p.credential(PUBLIC_URL) ?? (isNetwork(admin) ? admin : undefined) ?? t?.bridge?.vars.base_url ?? t?.lazy?.config.base_url;
52
- return raw ? baseUrl(raw) : undefined;
53
- }
54
- function bridgeMode(p, hasPublicUrl) {
55
- const raw = p.credential(BRIDGE_MODE)?.trim().toLowerCase();
56
- if (!raw)
57
- return hasPublicUrl ? 'whoami-cookie' : 'session-token';
58
- if (raw === 'whoami-cookie' || raw === 'whoami-token' || raw === 'session-token')
59
- return raw;
60
- throw new errors_1.CliError(`Ory: --set ory-bridge takes whoami-cookie, whoami-token or session-token (got ${raw}).`);
61
- }
62
- /** The preset the last `bridge.vars` call chose (the framework reads `vars` first, then `preset`). */
63
- let chosenPreset = 'ory';
64
- exports.oryPlugin = {
65
- vendor: 'ory',
66
- source: 'ory',
67
- label: 'Ory (Kratos, Hydra, Ory Network)',
68
- help: 'Move Ory Kratos and Hydra (self-hosted or Ory Network): kratos.yml, identity schemas, Hydra settings and OAuth 2.0 clients as Atlas config; identities with verified addresses, social links and metadata through the Admin API, plus password hashes, TOTP seeds, recovery codes, passkeys and session tokens from a database dump; a zero-logout bridge where Kratos vouches for the session; lazy migration through the Kratos login flow; and the code. Credentials stay on this machine.',
69
- config: {
70
- reads: 'kratos.yml or `ory get project` JSON, hydra.yml, the identity schemas, and the Hydra Admin API (OAuth 2.0 clients)',
71
- credentials: [CONFIG_FILE, HYDRA_CONFIG, PUBLIC_URL, HYDRA_URL, ADMIN_URL, API_KEY],
72
- async translate(p) {
73
- const warnings = [];
74
- let kratos;
75
- let hydra;
76
- const read = (path) => {
77
- try {
78
- return (0, ory_config_1.parseOryConfig)(p.ctx.readFile((0, node_path_1.resolve)(path)), path);
79
- }
80
- catch (err) {
81
- throw new errors_1.CliError(`Ory: could not read ${path}: ${err.message}`);
82
- }
83
- };
84
- const configPath = p.credential(CONFIG_FILE);
85
- if (configPath) {
86
- const parsed = read(configPath);
87
- const project = (0, ory_config_1.splitOryProject)(parsed);
88
- kratos = project?.kratos ?? parsed;
89
- hydra = project?.hydra;
90
- }
91
- const hydraPath = p.credential(HYDRA_CONFIG);
92
- if (hydraPath)
93
- hydra = read(hydraPath);
94
- let schemas = (0, ory_config_1.resolveOrySchemas)(kratos, (path) => p.ctx.readFile(path), (m) => warnings.push(m));
95
- const url = p.credential(PUBLIC_URL) ?? (isNetwork(p.credential(ADMIN_URL)) ? p.credential(ADMIN_URL) : undefined);
96
- const apiKey = p.credential(API_KEY);
97
- const headers = apiKey ? { authorization: `Bearer ${apiKey}` } : undefined;
98
- if (url && !schemas.length) {
99
- const http = new vendor_http_1.VendorHttp({ vendor: 'Ory', baseUrl: baseUrl(url), headers, fetchImpl: p.fetch });
100
- schemas = await (0, plugin_kit_1.vendorStep)('Ory', () => (0, ory_config_1.fetchOrySchemas)(http));
101
- }
102
- let clients = [];
103
- const admin = p.credential(ADMIN_URL);
104
- const hydraUrl = p.credential(HYDRA_URL) ?? (isNetwork(admin) ? admin : isNetwork(url) ? url : undefined);
105
- if (hydraUrl) {
106
- const http = new vendor_http_1.VendorHttp({ vendor: 'Ory Hydra', baseUrl: baseUrl(hydraUrl), headers, fetchImpl: p.fetch });
107
- clients = await (0, plugin_kit_1.vendorStep)('Ory Hydra', () => (0, ory_config_1.fetchOryClients)(http));
108
- }
109
- if (!kratos && !hydra && !schemas.length && !clients.length) {
110
- throw new errors_1.CliError('Ory: nothing to read. Pass kratos.yml (--set ory-config=<file>), an Ory Network project JSON, a public URL (--set ory-public-url=…) or the Hydra admin URL (--set ory-hydra-url=…).');
111
- }
112
- for (const w of warnings)
113
- p.say(` ${w}`);
114
- const origin = configPath ?? (url ? `Ory ${(0, plugin_kit_1.hostOf)(url)}` : hydraPath ?? `Ory Hydra ${(0, plugin_kit_1.hostOf)(hydraUrl ?? '')}`);
115
- return (0, ory_config_1.translateOryConfig)({ origin, kratos, hydra, schemas, clients, publicUrl: url ? baseUrl(url) : undefined });
116
- },
117
- },
118
- export: {
119
- reads: 'a dump of the Kratos database (identities, identity_credentials, identity_verifiable_addresses, sessions) or the Kratos Admin API',
120
- credentials: [DUMP, ADMIN_URL, API_KEY, RP_ID, NID],
121
- limits: [
122
- 'Password hashes, TOTP seeds, recovery codes, WebAuthn credentials and session tokens live only in the database: dump it (see the guide). The Admin API returns none of them, so those users move by lazy migration and enrol their second factor again.',
123
- 'Ory Network has no database access: its identities export through the Admin API with a project API key, passwords move by lazy migration and the bridge asks Ory to vouch for the session.',
124
- 'Hash formats Atlas cannot verify (for example $hmac-md4$) are left out and those users move by lazy migration.',
125
- 'Passkeys and security keys need the relying-party id (--set ory-rp-id) and keep working only when Atlas serves sign-in on that domain.',
126
- 'Ory Network organizations (enterprise SSO) and Hydra consent grants are not exported: recreate SSO connections in Atlas; users consent again.',
127
- ],
128
- async run(p, writer, resume) {
129
- const dump = p.credential(DUMP);
130
- const rpId = p.credential(RP_ID);
131
- const rawAdmin = p.credential(ADMIN_URL) ?? (isNetwork(p.credential(PUBLIC_URL)) ? p.credential(PUBLIC_URL) : undefined);
132
- let set;
133
- if (dump) {
134
- set = await (0, plugin_kit_1.vendorStep)('Ory', async () => (0, ory_1.exportOryTables)((0, tables_1.readDumpDir)((0, node_path_1.resolve)(dump)), { rpId, networkId: p.credential(NID) }));
135
- }
136
- else if (rawAdmin) {
137
- const apiKey = p.credential(API_KEY);
138
- if (isNetwork(rawAdmin) && !apiKey)
139
- throw new errors_1.CliError('Ory Network: pass a project API key (--set ory-api-key=ory_pat_… or ORY_API_KEY).');
140
- set = await (0, plugin_kit_1.vendorStep)('Ory', () => (0, ory_1.exportOryApi)({ adminUrl: rawAdmin, apiKey, rpId, fetchImpl: p.fetch, onProgress: (m) => p.say(` reading ${m}`) }));
141
- }
142
- else {
143
- throw new errors_1.CliError('Ory: pass a folder of Kratos table dumps (--set ory-dump=<folder>), or the admin URL (--set ory-admin-url=…) for an Admin API export without password hashes.');
144
- }
145
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
146
- },
147
- },
148
- bridge: {
149
- get preset() {
150
- return chosenPreset;
151
- },
152
- vars(p, t) {
153
- const vars = { ...t?.bridge?.vars };
154
- const url = publicUrl(p, t);
155
- const mode = bridgeMode(p, !!url);
156
- chosenPreset = PRESETS[mode];
157
- if (mode === 'session-token')
158
- return {};
159
- if (!url)
160
- throw new errors_1.CliError('Ory: the whoami bridge calls Kratos: pass its public URL (--set ory-public-url=https://auth.example.com).');
161
- vars.base_url = url;
162
- if (mode === 'whoami-cookie') {
163
- const slug = /^https:\/\/([a-z0-9-]+)\.projects\.oryapis\.com/i.exec(url)?.[1];
164
- vars.cookie_name = p.credential(COOKIE_NAME)?.trim() ?? vars.cookie_name ?? (slug ? `ory_session_${slug}` : 'ory_kratos_session');
165
- }
166
- else
167
- delete vars.cookie_name;
168
- return vars;
169
- },
170
- },
171
- lazy: {
172
- preset: 'ory',
173
- config(p, t) {
174
- const config = { ...t?.lazy?.config };
175
- const url = publicUrl(p, t);
176
- if (url)
177
- config.base_url = url;
178
- const trait = p.credential(EMAIL_TRAIT);
179
- if (trait)
180
- config.email_trait = trait.trim();
181
- return config;
182
- },
183
- },
184
- codemod: 'ory',
185
- };
186
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/ory/plugin.ts"],"names":[],"mappings":"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"}