@atlasauth/cli 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/args.d.ts +121 -0
  3. package/dist/args.js +45 -0
  4. package/dist/args.js.map +1 -1
  5. package/dist/commands/config.js +71 -6
  6. package/dist/commands/config.js.map +1 -1
  7. package/dist/commands/dev.d.ts +8 -0
  8. package/dist/commands/dev.js +84 -0
  9. package/dist/commands/dev.js.map +1 -0
  10. package/dist/commands/init.js +13 -8
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/migrate.d.ts +6 -2
  13. package/dist/commands/migrate.js +13 -3
  14. package/dist/commands/migrate.js.map +1 -1
  15. package/dist/commands/pages.d.ts +14 -0
  16. package/dist/commands/pages.js +113 -0
  17. package/dist/commands/pages.js.map +1 -0
  18. package/dist/context.d.ts +1 -1
  19. package/dist/help.d.ts +1 -1
  20. package/dist/help.js +96 -2
  21. package/dist/help.js.map +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.js +3 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/migrate/appwrite/plugin.d.ts +2 -0
  26. package/dist/migrate/appwrite/plugin.js +103 -0
  27. package/dist/migrate/appwrite/plugin.js.map +1 -0
  28. package/dist/migrate/auth0/plugin.d.ts +2 -0
  29. package/dist/migrate/auth0/plugin.js +126 -0
  30. package/dist/migrate/auth0/plugin.js.map +1 -0
  31. package/dist/migrate/authentik/plugin.d.ts +2 -0
  32. package/dist/migrate/authentik/plugin.js +135 -0
  33. package/dist/migrate/authentik/plugin.js.map +1 -0
  34. package/dist/migrate/azure-ad-b2c/plugin.d.ts +8 -0
  35. package/dist/migrate/azure-ad-b2c/plugin.js +165 -0
  36. package/dist/migrate/azure-ad-b2c/plugin.js.map +1 -0
  37. package/dist/migrate/clerk/plugin.d.ts +2 -0
  38. package/dist/migrate/clerk/plugin.js +76 -0
  39. package/dist/migrate/clerk/plugin.js.map +1 -0
  40. package/dist/migrate/cognito/plugin.d.ts +5 -0
  41. package/dist/migrate/cognito/plugin.js +170 -0
  42. package/dist/migrate/cognito/plugin.js.map +1 -0
  43. package/dist/migrate/corbado/plugin.d.ts +2 -0
  44. package/dist/migrate/corbado/plugin.js +63 -0
  45. package/dist/migrate/corbado/plugin.js.map +1 -0
  46. package/dist/migrate/descope/plugin.d.ts +2 -0
  47. package/dist/migrate/descope/plugin.js +83 -0
  48. package/dist/migrate/descope/plugin.js.map +1 -0
  49. package/dist/migrate/entra-external-id/plugin.d.ts +8 -0
  50. package/dist/migrate/entra-external-id/plugin.js +12 -0
  51. package/dist/migrate/entra-external-id/plugin.js.map +1 -0
  52. package/dist/migrate/export/appwrite-config.d.ts +28 -0
  53. package/dist/migrate/export/appwrite-config.js +170 -0
  54. package/dist/migrate/export/appwrite-config.js.map +1 -0
  55. package/dist/migrate/export/appwrite.d.ts +51 -0
  56. package/dist/migrate/export/appwrite.js +288 -0
  57. package/dist/migrate/export/appwrite.js.map +1 -0
  58. package/dist/migrate/export/auth0-config.d.ts +29 -0
  59. package/dist/migrate/export/auth0-config.js +249 -0
  60. package/dist/migrate/export/auth0-config.js.map +1 -0
  61. package/dist/migrate/export/auth0.d.ts +62 -0
  62. package/dist/migrate/export/auth0.js +575 -0
  63. package/dist/migrate/export/auth0.js.map +1 -0
  64. package/dist/migrate/export/authentik-config.d.ts +45 -0
  65. package/dist/migrate/export/authentik-config.js +357 -0
  66. package/dist/migrate/export/authentik-config.js.map +1 -0
  67. package/dist/migrate/export/authentik.d.ts +110 -0
  68. package/dist/migrate/export/authentik.js +838 -0
  69. package/dist/migrate/export/authentik.js.map +1 -0
  70. package/dist/migrate/export/azure-config.d.ts +58 -0
  71. package/dist/migrate/export/azure-config.js +344 -0
  72. package/dist/migrate/export/azure-config.js.map +1 -0
  73. package/dist/migrate/export/azure.d.ts +85 -0
  74. package/dist/migrate/export/azure.js +373 -0
  75. package/dist/migrate/export/azure.js.map +1 -0
  76. package/dist/migrate/export/clerk-config.d.ts +26 -0
  77. package/dist/migrate/export/clerk-config.js +227 -0
  78. package/dist/migrate/export/clerk-config.js.map +1 -0
  79. package/dist/migrate/export/clerk.d.ts +46 -0
  80. package/dist/migrate/export/clerk.js +486 -0
  81. package/dist/migrate/export/clerk.js.map +1 -0
  82. package/dist/migrate/export/cognito-config.d.ts +25 -0
  83. package/dist/migrate/export/cognito-config.js +273 -0
  84. package/dist/migrate/export/cognito-config.js.map +1 -0
  85. package/dist/migrate/export/cognito.d.ts +103 -0
  86. package/dist/migrate/export/cognito.js +441 -0
  87. package/dist/migrate/export/cognito.js.map +1 -0
  88. package/dist/migrate/export/corbado-config.d.ts +20 -0
  89. package/dist/migrate/export/corbado-config.js +63 -0
  90. package/dist/migrate/export/corbado-config.js.map +1 -0
  91. package/dist/migrate/export/corbado.d.ts +37 -0
  92. package/dist/migrate/export/corbado.js +132 -0
  93. package/dist/migrate/export/corbado.js.map +1 -0
  94. package/dist/migrate/export/descope.d.ts +35 -0
  95. package/dist/migrate/export/descope.js +208 -0
  96. package/dist/migrate/export/descope.js.map +1 -0
  97. package/dist/migrate/export/fake-vendor.test-helper.d.ts +27 -0
  98. package/dist/migrate/export/fake-vendor.test-helper.js +41 -0
  99. package/dist/migrate/export/fake-vendor.test-helper.js.map +1 -0
  100. package/dist/migrate/export/firebase-config.d.ts +24 -0
  101. package/dist/migrate/export/firebase-config.js +215 -0
  102. package/dist/migrate/export/firebase-config.js.map +1 -0
  103. package/dist/migrate/export/firebase.d.ts +102 -0
  104. package/dist/migrate/export/firebase.js +464 -0
  105. package/dist/migrate/export/firebase.js.map +1 -0
  106. package/dist/migrate/export/frameworks/app-users.d.ts +42 -0
  107. package/dist/migrate/export/frameworks/app-users.js +161 -0
  108. package/dist/migrate/export/frameworks/app-users.js.map +1 -0
  109. package/dist/migrate/export/frameworks/authjs.d.ts +41 -0
  110. package/dist/migrate/export/frameworks/authjs.js +146 -0
  111. package/dist/migrate/export/frameworks/authjs.js.map +1 -0
  112. package/dist/migrate/export/frameworks/devise.d.ts +39 -0
  113. package/dist/migrate/export/frameworks/devise.js +218 -0
  114. package/dist/migrate/export/frameworks/devise.js.map +1 -0
  115. package/dist/migrate/export/frameworks/django.d.ts +45 -0
  116. package/dist/migrate/export/frameworks/django.js +315 -0
  117. package/dist/migrate/export/frameworks/django.js.map +1 -0
  118. package/dist/migrate/export/frameworks/lucia.d.ts +42 -0
  119. package/dist/migrate/export/frameworks/lucia.js +263 -0
  120. package/dist/migrate/export/frameworks/lucia.js.map +1 -0
  121. package/dist/migrate/export/frameworks/tables.d.ts +90 -0
  122. package/dist/migrate/export/frameworks/tables.js +325 -0
  123. package/dist/migrate/export/frameworks/tables.js.map +1 -0
  124. package/dist/migrate/export/frameworks/webauthn.d.ts +25 -0
  125. package/dist/migrate/export/frameworks/webauthn.js +130 -0
  126. package/dist/migrate/export/frameworks/webauthn.js.map +1 -0
  127. package/dist/migrate/export/frontegg-config.d.ts +29 -0
  128. package/dist/migrate/export/frontegg-config.js +238 -0
  129. package/dist/migrate/export/frontegg-config.js.map +1 -0
  130. package/dist/migrate/export/frontegg.d.ts +67 -0
  131. package/dist/migrate/export/frontegg.js +410 -0
  132. package/dist/migrate/export/frontegg.js.map +1 -0
  133. package/dist/migrate/export/fusionauth-config.d.ts +26 -0
  134. package/dist/migrate/export/fusionauth-config.js +226 -0
  135. package/dist/migrate/export/fusionauth-config.js.map +1 -0
  136. package/dist/migrate/export/fusionauth.d.ts +99 -0
  137. package/dist/migrate/export/fusionauth.js +642 -0
  138. package/dist/migrate/export/fusionauth.js.map +1 -0
  139. package/dist/migrate/export/hanko-config.d.ts +27 -0
  140. package/dist/migrate/export/hanko-config.js +265 -0
  141. package/dist/migrate/export/hanko-config.js.map +1 -0
  142. package/dist/migrate/export/hanko.d.ts +52 -0
  143. package/dist/migrate/export/hanko.js +605 -0
  144. package/dist/migrate/export/hanko.js.map +1 -0
  145. package/dist/migrate/export/keycloak-config.d.ts +19 -0
  146. package/dist/migrate/export/keycloak-config.js +219 -0
  147. package/dist/migrate/export/keycloak-config.js.map +1 -0
  148. package/dist/migrate/export/keycloak.d.ts +155 -0
  149. package/dist/migrate/export/keycloak.js +878 -0
  150. package/dist/migrate/export/keycloak.js.map +1 -0
  151. package/dist/migrate/export/kinde-descope-config.d.ts +38 -0
  152. package/dist/migrate/export/kinde-descope-config.js +172 -0
  153. package/dist/migrate/export/kinde-descope-config.js.map +1 -0
  154. package/dist/migrate/export/kinde.d.ts +57 -0
  155. package/dist/migrate/export/kinde.js +333 -0
  156. package/dist/migrate/export/kinde.js.map +1 -0
  157. package/dist/migrate/export/ldap.d.ts +53 -0
  158. package/dist/migrate/export/ldap.js +277 -0
  159. package/dist/migrate/export/ldap.js.map +1 -0
  160. package/dist/migrate/export/logto-config.d.ts +27 -0
  161. package/dist/migrate/export/logto-config.js +264 -0
  162. package/dist/migrate/export/logto-config.js.map +1 -0
  163. package/dist/migrate/export/logto.d.ts +150 -0
  164. package/dist/migrate/export/logto.js +809 -0
  165. package/dist/migrate/export/logto.js.map +1 -0
  166. package/dist/migrate/export/magic-config.d.ts +14 -0
  167. package/dist/migrate/export/magic-config.js +28 -0
  168. package/dist/migrate/export/magic-config.js.map +1 -0
  169. package/dist/migrate/export/magic.d.ts +31 -0
  170. package/dist/migrate/export/magic.js +93 -0
  171. package/dist/migrate/export/magic.js.map +1 -0
  172. package/dist/migrate/export/mini-yaml.d.ts +19 -0
  173. package/dist/migrate/export/mini-yaml.js +581 -0
  174. package/dist/migrate/export/mini-yaml.js.map +1 -0
  175. package/dist/migrate/export/nhost-config.d.ts +26 -0
  176. package/dist/migrate/export/nhost-config.js +360 -0
  177. package/dist/migrate/export/nhost-config.js.map +1 -0
  178. package/dist/migrate/export/nhost.d.ts +64 -0
  179. package/dist/migrate/export/nhost.js +304 -0
  180. package/dist/migrate/export/nhost.js.map +1 -0
  181. package/dist/migrate/export/okta-config.d.ts +30 -0
  182. package/dist/migrate/export/okta-config.js +205 -0
  183. package/dist/migrate/export/okta-config.js.map +1 -0
  184. package/dist/migrate/export/okta.d.ts +43 -0
  185. package/dist/migrate/export/okta.js +337 -0
  186. package/dist/migrate/export/okta.js.map +1 -0
  187. package/dist/migrate/export/onelogin.d.ts +22 -0
  188. package/dist/migrate/export/onelogin.js +123 -0
  189. package/dist/migrate/export/onelogin.js.map +1 -0
  190. package/dist/migrate/export/ory-config.d.ts +58 -0
  191. package/dist/migrate/export/ory-config.js +451 -0
  192. package/dist/migrate/export/ory-config.js.map +1 -0
  193. package/dist/migrate/export/ory.d.ts +81 -0
  194. package/dist/migrate/export/ory.js +555 -0
  195. package/dist/migrate/export/ory.js.map +1 -0
  196. package/dist/migrate/export/password-detect.d.ts +29 -0
  197. package/dist/migrate/export/password-detect.js +81 -0
  198. package/dist/migrate/export/password-detect.js.map +1 -0
  199. package/dist/migrate/export/pingone.d.ts +36 -0
  200. package/dist/migrate/export/pingone.js +218 -0
  201. package/dist/migrate/export/pingone.js.map +1 -0
  202. package/dist/migrate/export/plugin-kit.d.ts +25 -0
  203. package/dist/migrate/export/plugin-kit.js +82 -0
  204. package/dist/migrate/export/plugin-kit.js.map +1 -0
  205. package/dist/migrate/export/pocketbase-config.d.ts +28 -0
  206. package/dist/migrate/export/pocketbase-config.js +180 -0
  207. package/dist/migrate/export/pocketbase-config.js.map +1 -0
  208. package/dist/migrate/export/pocketbase.d.ts +52 -0
  209. package/dist/migrate/export/pocketbase.js +243 -0
  210. package/dist/migrate/export/pocketbase.js.map +1 -0
  211. package/dist/migrate/export/project-files.d.ts +15 -0
  212. package/dist/migrate/export/project-files.js +43 -0
  213. package/dist/migrate/export/project-files.js.map +1 -0
  214. package/dist/migrate/export/propelauth-config.d.ts +18 -0
  215. package/dist/migrate/export/propelauth-config.js +58 -0
  216. package/dist/migrate/export/propelauth-config.js.map +1 -0
  217. package/dist/migrate/export/propelauth-harness.test-helper.d.ts +62 -0
  218. package/dist/migrate/export/propelauth-harness.test-helper.js +109 -0
  219. package/dist/migrate/export/propelauth-harness.test-helper.js.map +1 -0
  220. package/dist/migrate/export/propelauth.d.ts +48 -0
  221. package/dist/migrate/export/propelauth.js +255 -0
  222. package/dist/migrate/export/propelauth.js.map +1 -0
  223. package/dist/migrate/export/record-set.d.ts +44 -0
  224. package/dist/migrate/export/record-set.js +98 -0
  225. package/dist/migrate/export/record-set.js.map +1 -0
  226. package/dist/migrate/export/source-lines.d.ts +17 -0
  227. package/dist/migrate/export/source-lines.js +43 -0
  228. package/dist/migrate/export/source-lines.js.map +1 -0
  229. package/dist/migrate/export/sso-metadata.d.ts +47 -0
  230. package/dist/migrate/export/sso-metadata.js +180 -0
  231. package/dist/migrate/export/sso-metadata.js.map +1 -0
  232. package/dist/migrate/export/stytch-config.d.ts +22 -0
  233. package/dist/migrate/export/stytch-config.js +102 -0
  234. package/dist/migrate/export/stytch-config.js.map +1 -0
  235. package/dist/migrate/export/stytch.d.ts +68 -0
  236. package/dist/migrate/export/stytch.js +510 -0
  237. package/dist/migrate/export/stytch.js.map +1 -0
  238. package/dist/migrate/export/supabase-config.d.ts +48 -0
  239. package/dist/migrate/export/supabase-config.js +408 -0
  240. package/dist/migrate/export/supabase-config.js.map +1 -0
  241. package/dist/migrate/export/supabase.d.ts +86 -0
  242. package/dist/migrate/export/supabase.js +524 -0
  243. package/dist/migrate/export/supabase.js.map +1 -0
  244. package/dist/migrate/export/supertokens-config.d.ts +20 -0
  245. package/dist/migrate/export/supertokens-config.js +150 -0
  246. package/dist/migrate/export/supertokens-config.js.map +1 -0
  247. package/dist/migrate/export/supertokens.d.ts +125 -0
  248. package/dist/migrate/export/supertokens.js +464 -0
  249. package/dist/migrate/export/supertokens.js.map +1 -0
  250. package/dist/migrate/export/table.d.ts +35 -0
  251. package/dist/migrate/export/table.js +248 -0
  252. package/dist/migrate/export/table.js.map +1 -0
  253. package/dist/migrate/export/translate-kit.d.ts +46 -0
  254. package/dist/migrate/export/translate-kit.js +148 -0
  255. package/dist/migrate/export/translate-kit.js.map +1 -0
  256. package/dist/migrate/export/userfront-config.d.ts +15 -0
  257. package/dist/migrate/export/userfront-config.js +49 -0
  258. package/dist/migrate/export/userfront-config.js.map +1 -0
  259. package/dist/migrate/export/userfront.d.ts +38 -0
  260. package/dist/migrate/export/userfront.js +189 -0
  261. package/dist/migrate/export/userfront.js.map +1 -0
  262. package/dist/migrate/export/vendor-http.d.ts +46 -0
  263. package/dist/migrate/export/vendor-http.js +138 -0
  264. package/dist/migrate/export/vendor-http.js.map +1 -0
  265. package/dist/migrate/export/workos-config.d.ts +23 -0
  266. package/dist/migrate/export/workos-config.js +125 -0
  267. package/dist/migrate/export/workos-config.js.map +1 -0
  268. package/dist/migrate/export/workos.d.ts +46 -0
  269. package/dist/migrate/export/workos.js +272 -0
  270. package/dist/migrate/export/workos.js.map +1 -0
  271. package/dist/migrate/export/zip.d.ts +8 -0
  272. package/dist/migrate/export/zip.js +66 -0
  273. package/dist/migrate/export/zip.js.map +1 -0
  274. package/dist/migrate/export/zitadel-config.d.ts +37 -0
  275. package/dist/migrate/export/zitadel-config.js +279 -0
  276. package/dist/migrate/export/zitadel-config.js.map +1 -0
  277. package/dist/migrate/export/zitadel.d.ts +82 -0
  278. package/dist/migrate/export/zitadel.js +447 -0
  279. package/dist/migrate/export/zitadel.js.map +1 -0
  280. package/dist/migrate/firebase/plugin.d.ts +2 -0
  281. package/dist/migrate/firebase/plugin.js +152 -0
  282. package/dist/migrate/firebase/plugin.js.map +1 -0
  283. package/dist/migrate/framework/builtins.d.ts +2 -0
  284. package/dist/migrate/framework/builtins.js +52 -0
  285. package/dist/migrate/framework/builtins.js.map +1 -0
  286. package/dist/migrate/framework/commands.d.ts +20 -0
  287. package/dist/migrate/framework/commands.js +58 -0
  288. package/dist/migrate/framework/commands.js.map +1 -0
  289. package/dist/migrate/framework/custom.d.ts +12 -0
  290. package/dist/migrate/framework/custom.js +96 -0
  291. package/dist/migrate/framework/custom.js.map +1 -0
  292. package/dist/migrate/framework/orchestrator.d.ts +113 -0
  293. package/dist/migrate/framework/orchestrator.js +532 -0
  294. package/dist/migrate/framework/orchestrator.js.map +1 -0
  295. package/dist/migrate/framework/plugin.d.ts +167 -0
  296. package/dist/migrate/framework/plugin.js +3 -0
  297. package/dist/migrate/framework/plugin.js.map +1 -0
  298. package/dist/migrate/framework/registry.d.ts +11 -0
  299. package/dist/migrate/framework/registry.js +44 -0
  300. package/dist/migrate/framework/registry.js.map +1 -0
  301. package/dist/migrate/framework/report.d.ts +17 -0
  302. package/dist/migrate/framework/report.js +103 -0
  303. package/dist/migrate/framework/report.js.map +1 -0
  304. package/dist/migrate/frameworks/plugins.d.ts +29 -0
  305. package/dist/migrate/frameworks/plugins.js +402 -0
  306. package/dist/migrate/frameworks/plugins.js.map +1 -0
  307. package/dist/migrate/frameworks/report.d.ts +92 -0
  308. package/dist/migrate/frameworks/report.js +207 -0
  309. package/dist/migrate/frameworks/report.js.map +1 -0
  310. package/dist/migrate/frameworks/translate-js.d.ts +5 -0
  311. package/dist/migrate/frameworks/translate-js.js +503 -0
  312. package/dist/migrate/frameworks/translate-js.js.map +1 -0
  313. package/dist/migrate/frameworks/translate-rails-django.d.ts +3 -0
  314. package/dist/migrate/frameworks/translate-rails-django.js +1391 -0
  315. package/dist/migrate/frameworks/translate-rails-django.js.map +1 -0
  316. package/dist/migrate/frontegg/plugin.d.ts +2 -0
  317. package/dist/migrate/frontegg/plugin.js +78 -0
  318. package/dist/migrate/frontegg/plugin.js.map +1 -0
  319. package/dist/migrate/fusionauth/plugin.d.ts +2 -0
  320. package/dist/migrate/fusionauth/plugin.js +109 -0
  321. package/dist/migrate/fusionauth/plugin.js.map +1 -0
  322. package/dist/migrate/hanko/plugin.d.ts +2 -0
  323. package/dist/migrate/hanko/plugin.js +100 -0
  324. package/dist/migrate/hanko/plugin.js.map +1 -0
  325. package/dist/migrate/keycloak/plugin.d.ts +2 -0
  326. package/dist/migrate/keycloak/plugin.js +148 -0
  327. package/dist/migrate/keycloak/plugin.js.map +1 -0
  328. package/dist/migrate/kinde/plugin.d.ts +2 -0
  329. package/dist/migrate/kinde/plugin.js +105 -0
  330. package/dist/migrate/kinde/plugin.js.map +1 -0
  331. package/dist/migrate/ldap/plugin.d.ts +2 -0
  332. package/dist/migrate/ldap/plugin.js +73 -0
  333. package/dist/migrate/ldap/plugin.js.map +1 -0
  334. package/dist/migrate/logto/plugin.d.ts +2 -0
  335. package/dist/migrate/logto/plugin.js +131 -0
  336. package/dist/migrate/logto/plugin.js.map +1 -0
  337. package/dist/migrate/magic/plugin.d.ts +2 -0
  338. package/dist/migrate/magic/plugin.js +56 -0
  339. package/dist/migrate/magic/plugin.js.map +1 -0
  340. package/dist/migrate/nhost/plugin.d.ts +2 -0
  341. package/dist/migrate/nhost/plugin.js +115 -0
  342. package/dist/migrate/nhost/plugin.js.map +1 -0
  343. package/dist/migrate/oidc/plugin.d.ts +2 -0
  344. package/dist/migrate/oidc/plugin.js +73 -0
  345. package/dist/migrate/oidc/plugin.js.map +1 -0
  346. package/dist/migrate/okta/plugin.d.ts +2 -0
  347. package/dist/migrate/okta/plugin.js +105 -0
  348. package/dist/migrate/okta/plugin.js.map +1 -0
  349. package/dist/migrate/onelogin/plugin.d.ts +2 -0
  350. package/dist/migrate/onelogin/plugin.js +61 -0
  351. package/dist/migrate/onelogin/plugin.js.map +1 -0
  352. package/dist/migrate/ory/plugin.d.ts +2 -0
  353. package/dist/migrate/ory/plugin.js +186 -0
  354. package/dist/migrate/ory/plugin.js.map +1 -0
  355. package/dist/migrate/ping-identity/plugin.d.ts +2 -0
  356. package/dist/migrate/ping-identity/plugin.js +100 -0
  357. package/dist/migrate/ping-identity/plugin.js.map +1 -0
  358. package/dist/migrate/pocketbase/plugin.d.ts +2 -0
  359. package/dist/migrate/pocketbase/plugin.js +99 -0
  360. package/dist/migrate/pocketbase/plugin.js.map +1 -0
  361. package/dist/migrate/propelauth/plugin.d.ts +2 -0
  362. package/dist/migrate/propelauth/plugin.js +65 -0
  363. package/dist/migrate/propelauth/plugin.js.map +1 -0
  364. package/dist/migrate/saml/plugin.d.ts +2 -0
  365. package/dist/migrate/saml/plugin.js +79 -0
  366. package/dist/migrate/saml/plugin.js.map +1 -0
  367. package/dist/migrate/stytch/plugin.d.ts +2 -0
  368. package/dist/migrate/stytch/plugin.js +97 -0
  369. package/dist/migrate/stytch/plugin.js.map +1 -0
  370. package/dist/migrate/supabase/plugin.d.ts +2 -0
  371. package/dist/migrate/supabase/plugin.js +149 -0
  372. package/dist/migrate/supabase/plugin.js.map +1 -0
  373. package/dist/migrate/supertokens/plugin.d.ts +2 -0
  374. package/dist/migrate/supertokens/plugin.js +114 -0
  375. package/dist/migrate/supertokens/plugin.js.map +1 -0
  376. package/dist/migrate/user-table/plugin.d.ts +2 -0
  377. package/dist/migrate/user-table/plugin.js +62 -0
  378. package/dist/migrate/user-table/plugin.js.map +1 -0
  379. package/dist/migrate/userfront/plugin.d.ts +2 -0
  380. package/dist/migrate/userfront/plugin.js +60 -0
  381. package/dist/migrate/userfront/plugin.js.map +1 -0
  382. package/dist/migrate/workos/plugin.d.ts +2 -0
  383. package/dist/migrate/workos/plugin.js +81 -0
  384. package/dist/migrate/workos/plugin.js.map +1 -0
  385. package/dist/migrate/zitadel/plugin.d.ts +2 -0
  386. package/dist/migrate/zitadel/plugin.js +114 -0
  387. package/dist/migrate/zitadel/plugin.js.map +1 -0
  388. package/dist/run.js +4 -0
  389. package/dist/run.js.map +1 -1
  390. package/package.json +7 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hanko.js","sourceRoot":"","sources":["../../../src/migrate/export/hanko.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { TranslationResult } from '../framework/plugin';
2
+ import { type Obj } from './record-set';
3
+ import type { VendorHttp } from './vendor-http';
4
+ /**
5
+ * `atlas migrate keycloak config` — a realm's settings → Atlas config:
6
+ * password policy (the `passwordPolicy` expression), brute-force detection,
7
+ * sign-up / email verification / remember-me, SSO session lifetimes, OTP and
8
+ * WebAuthn policy, social identity providers (SAML / OIDC brokers move with
9
+ * the data export as SSO connections), clients' redirect URIs and realm roles.
10
+ * Themes, authentication flows, user federation, client scopes and mappers,
11
+ * events and the SMTP server have no 1:1 counterpart and are reported as manual.
12
+ */
13
+ export declare function fetchKeycloakConfig(http: VendorHttp, realm: string, baseUrl?: string): Promise<Obj>;
14
+ /** `length(12) and digits(1) and notUsername(undefined)` → { length: ['12'], digits: ['1'], notUsername: [] }. */
15
+ export declare function parsePasswordPolicy(expr: string | undefined): Record<string, string[]>;
16
+ export declare function translateKeycloakConfig(realm: Obj, opts?: {
17
+ groupsAs?: 'roles' | 'organizations' | 'skip';
18
+ baseUrl?: string;
19
+ }): TranslationResult;
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchKeycloakConfig = fetchKeycloakConfig;
4
+ exports.parsePasswordPolicy = parsePasswordPolicy;
5
+ exports.translateKeycloakConfig = translateKeycloakConfig;
6
+ const keycloak_1 = require("./keycloak");
7
+ const record_set_1 = require("./record-set");
8
+ const translate_kit_1 = require("./translate-kit");
9
+ /**
10
+ * `atlas migrate keycloak config` — a realm's settings → Atlas config:
11
+ * password policy (the `passwordPolicy` expression), brute-force detection,
12
+ * sign-up / email verification / remember-me, SSO session lifetimes, OTP and
13
+ * WebAuthn policy, social identity providers (SAML / OIDC brokers move with
14
+ * the data export as SSO connections), clients' redirect URIs and realm roles.
15
+ * Themes, authentication flows, user federation, client scopes and mappers,
16
+ * events and the SMTP server have no 1:1 counterpart and are reported as manual.
17
+ */
18
+ async function fetchKeycloakConfig(http, realm, baseUrl) {
19
+ return (await (0, keycloak_1.fetchKeycloakRealm)(http, { realm, baseUrl, pageSize: 1 })).realm;
20
+ }
21
+ /** `length(12) and digits(1) and notUsername(undefined)` → { length: ['12'], digits: ['1'], notUsername: [] }. */
22
+ function parsePasswordPolicy(expr) {
23
+ const out = {};
24
+ for (const part of (expr ?? '').split(/\s+and\s+/)) {
25
+ const m = /^\s*([A-Za-z]+)\((.*)\)\s*$/.exec(part);
26
+ if (!m)
27
+ continue;
28
+ const arg = m[2].trim();
29
+ out[m[1]] = arg && arg !== 'undefined' ? [arg] : [];
30
+ }
31
+ return out;
32
+ }
33
+ const seconds = (v) => (typeof v === 'number' && v > 0 ? v : 0);
34
+ function translateKeycloakConfig(realm, opts = {}) {
35
+ const b = new translate_kit_1.ConfigBuilder();
36
+ const name = (0, record_set_1.str)(realm.realm) ?? 'realm';
37
+ const area = `realm ${name}`;
38
+ b.set('strategies.password', true);
39
+ b.add('differs', 'authentication', 'password', 'Password sign-in. A realm export carries the hashes (Atlas verifies PBKDF2 and Argon2 and re-hashes on first sign-in); with the Admin API alone, use the keycloak lazy-migration preset.', 'auth_config.strategies.password');
40
+ // ── sign-up and login ──
41
+ if (realm.registrationAllowed !== true) {
42
+ b.set('signUpMode', 'restricted');
43
+ b.add('mapped', area, 'registrationAllowed', 'Self-registration is off: Atlas sign-up is restricted (invitations still work).', 'auth_config.signUpMode');
44
+ }
45
+ else
46
+ b.add('mapped', area, 'registrationAllowed', 'Self-registration is on.', 'auth_config.signUpMode');
47
+ if (realm.verifyEmail === true) {
48
+ b.set('requireEmailVerification', true);
49
+ b.add('mapped', area, 'verifyEmail', 'Email addresses must be verified.', 'auth_config.requireEmailVerification');
50
+ }
51
+ if (realm.loginWithEmailAllowed === false)
52
+ b.add('differs', area, 'loginWithEmailAllowed', 'Atlas always lets a verified email sign in.', 'auth_config.strategies');
53
+ if (realm.registrationEmailAsUsername !== true) {
54
+ b.set('strategies.username', true);
55
+ b.add('mapped', area, 'registrationEmailAsUsername', 'Usernames are separate from email: username sign-in is on.', 'auth_config.strategies.username');
56
+ }
57
+ if (realm.duplicateEmailsAllowed === true)
58
+ b.add('differs', area, 'duplicateEmailsAllowed', 'Atlas keeps one account per email address; accounts sharing an address will collide at import (the report lists them).', 'users');
59
+ if (realm.resetPasswordAllowed === false)
60
+ b.add('manual', area, 'resetPasswordAllowed', 'Atlas always offers password reset by email; turn off the password strategy for a user class instead.');
61
+ if (realm.rememberMe === true)
62
+ b.add('mapped', area, 'rememberMe', 'Atlas sessions persist per the session lifetimes below.', 'auth_config.session');
63
+ // ── password policy ──
64
+ const policy = parsePasswordPolicy((0, record_set_1.str)(realm.passwordPolicy));
65
+ const min = Number(policy.length?.[0] ?? 0);
66
+ b.set('passwordPolicy.minLength', Math.max(8, min || 8));
67
+ if (min)
68
+ b.add(min < 8 ? 'differs' : 'mapped', area, 'passwordPolicy length', `${min}${min < 8 ? ' (Atlas requires at least 8; existing passwords still sign in)' : ''}.`, 'auth_config.passwordPolicy.minLength');
69
+ if (policy.maxLength?.[0]) {
70
+ b.set('passwordPolicy.maxLength', Math.min(Number(policy.maxLength[0]), 4096));
71
+ b.add('mapped', area, 'passwordPolicy maxLength', `${policy.maxLength[0]}.`, 'auth_config.passwordPolicy.maxLength');
72
+ }
73
+ const classes = [['digits', 'requireNumber', 'digits'], ['upperCase', 'requireUppercase', 'upper-case letters'], ['lowerCase', 'requireLowercase', 'lower-case letters'], ['specialChars', 'requireSymbol', 'special characters']];
74
+ for (const [kc, atlas, label] of classes) {
75
+ if (policy[kc]) {
76
+ b.set(`passwordPolicy.${atlas}`, true);
77
+ b.add('mapped', area, `passwordPolicy ${kc}`, `Requires ${label}.`, `auth_config.passwordPolicy.${atlas}`);
78
+ }
79
+ }
80
+ if (policy.notUsername || policy.notEmail) {
81
+ b.set('passwordPolicy.rejectIdentifierSubstring', true);
82
+ b.add('mapped', area, 'passwordPolicy notUsername / notEmail', 'A password may not contain the username or email.', 'auth_config.passwordPolicy.rejectIdentifierSubstring');
83
+ }
84
+ if (policy.passwordHistory?.[0]) {
85
+ b.set('passwordPolicy.historyCount', Number(policy.passwordHistory[0]));
86
+ b.add('mapped', area, 'passwordPolicy passwordHistory', `Last ${policy.passwordHistory[0]} passwords. Atlas starts the history at the first password set in Atlas.`, 'auth_config.passwordPolicy.historyCount');
87
+ }
88
+ if (policy.passwordBlacklist) {
89
+ b.set('passwordPolicy.checkBreaches', true);
90
+ b.add('differs', area, 'passwordPolicy passwordBlacklist', 'Your blacklist file is replaced by Atlas\'s breached-password check.', 'auth_config.passwordPolicy.checkBreaches');
91
+ }
92
+ if (policy.forceExpiredPasswordChange)
93
+ b.add('manual', area, 'passwordPolicy forceExpiredPasswordChange', 'Atlas does not expire passwords (NIST 800-63B).');
94
+ if (policy.hashAlgorithm)
95
+ b.add('differs', area, `passwordPolicy hashAlgorithm(${policy.hashAlgorithm[0]})`, 'Atlas stores Argon2id; imported Keycloak hashes verify as they are and re-hash on first sign-in.', 'auth_config.passwordPolicy');
96
+ const known = new Set([...classes.map((c) => c[0]), 'length', 'maxLength', 'notUsername', 'notEmail', 'passwordHistory', 'passwordBlacklist', 'forceExpiredPasswordChange', 'hashAlgorithm', 'hashIterations']);
97
+ for (const k of Object.keys(policy))
98
+ if (!known.has(k))
99
+ b.add('manual', area, `passwordPolicy ${k}`, 'No Atlas counterpart for this password policy rule.');
100
+ if (realm.bruteForceProtected === true) {
101
+ b.add('mapped', area, 'bruteForceProtected', `${realm.permanentLockout === true ? 'Permanent lockout' : 'Temporary lockout'} after ${realm.failureFactor ?? '?'} failures: Atlas throttles failed sign-ins per account and IP (no permanent lockout; an administrator can ban a user).`, 'auth_config.rateLimit');
102
+ }
103
+ // ── sessions ──
104
+ const idle = seconds(realm.ssoSessionIdleTimeout);
105
+ const life = seconds(realm.ssoSessionMaxLifespan);
106
+ if (life) {
107
+ b.set('session.absoluteMs', (0, translate_kit_1.clampSessionMs)(life * 1000));
108
+ b.add('mapped', area, 'ssoSessionMaxLifespan', `${life} seconds.`, 'auth_config.session.absoluteMs');
109
+ }
110
+ if (idle) {
111
+ b.set('session.idleMs', (0, translate_kit_1.clampSessionMs)(idle * 1000));
112
+ b.add('mapped', area, 'ssoSessionIdleTimeout', `${idle} seconds idle.`, 'auth_config.session.idleMs');
113
+ }
114
+ if (seconds(realm.accessTokenLifespan)) {
115
+ b.set('session.jwtTtlSeconds', Math.min(Math.max(Number(realm.accessTokenLifespan), 60), 3600));
116
+ b.add('mapped', area, 'accessTokenLifespan', `${realm.accessTokenLifespan} seconds (Atlas allows 60 to 3600).`, 'auth_config.session.jwtTtlSeconds');
117
+ }
118
+ if (seconds(realm.offlineSessionIdleTimeout))
119
+ b.add('differs', area, 'offlineSessionIdleTimeout', 'Offline tokens: use Atlas OAuth refresh tokens with the offline_access scope.', 'oauth_clients');
120
+ // ── second factors ──
121
+ const required = (0, record_set_1.objs)(realm.requiredActions).filter((a) => a.enabled !== false);
122
+ const totp = required.some((a) => (0, record_set_1.str)(a.alias) === 'CONFIGURE_TOTP') || (0, record_set_1.str)(realm.otpPolicyType) !== undefined;
123
+ if (totp) {
124
+ b.set('mfa.factors.totp', true);
125
+ const algo = (0, record_set_1.str)(realm.otpPolicyAlgorithm) ?? 'HmacSHA1';
126
+ b.add(algo === 'HmacSHA1' && Number(realm.otpPolicyDigits ?? 6) === 6 ? 'mapped' : 'differs', area, 'otpPolicy', `${(0, record_set_1.str)(realm.otpPolicyType) ?? 'totp'} ${algo}, ${realm.otpPolicyDigits ?? 6} digits, ${realm.otpPolicyPeriod ?? 30}s. TOTP secrets move with a realm export and keep these parameters per factor.`, 'auth_config.mfa.factors.totp');
127
+ }
128
+ if ((0, record_set_1.str)(realm.otpPolicyType) === 'hotp')
129
+ b.add('differs', area, 'otpPolicy type hotp', 'Counter-based OTP factors move with their counter; new enrolments are time-based.', 'auth_config.mfa.factors.totp');
130
+ if (required.some((a) => (0, record_set_1.str)(a.alias)?.startsWith('webauthn'))) {
131
+ b.set('mfa.factors.passkey', true);
132
+ b.set('strategies.passkey', true);
133
+ b.add('differs', area, 'webAuthnPolicy', `Passkeys move with the data export (relying party "${(0, record_set_1.str)(realm.webAuthnPolicyPasswordlessRpId) || (0, record_set_1.str)(realm.webAuthnPolicyRpId) || 'your Keycloak host'}"); Atlas must be served from the same relying-party domain for them to keep working.`, 'auth_config.mfa.factors.passkey');
134
+ }
135
+ if ((0, record_set_1.str)(realm.browserFlow) && (0, record_set_1.str)(realm.browserFlow) !== 'browser')
136
+ b.add('manual', 'authentication', `browserFlow ${realm.browserFlow}`, 'A customised browser flow: review its conditions (OTP rules, step-up) and recreate them with Atlas MFA policy and step-up.', 'auth_config.stepUp');
137
+ // ── identity providers ──
138
+ for (const idp of (0, record_set_1.objs)(realm.identityProviders)) {
139
+ if (idp.enabled === false)
140
+ continue;
141
+ const alias = (0, record_set_1.str)(idp.alias) ?? '?';
142
+ const type = (0, record_set_1.str)(idp.providerId) ?? '';
143
+ if (type === 'saml' || type === 'oidc' || type === 'keycloak-oidc') {
144
+ b.add('mapped', 'identity providers', `${alias} (${type})`, 'Enterprise broker: moves with the data export as an Atlas SSO connection; point the upstream IdP at Atlas\'s ACS URL / redirect URI at cutover.', 'sso_connections');
145
+ continue;
146
+ }
147
+ const key = (0, translate_kit_1.socialKey)(type === 'linkedin-openid-connect' ? 'linkedin' : type);
148
+ const config = (0, record_set_1.isObj)(idp.config) ? idp.config : {};
149
+ if (!key) {
150
+ b.add('manual', 'identity providers', `${alias} (${type})`, 'No built-in Atlas provider: add it as a custom OAuth provider.', 'custom_oauth_providers');
151
+ continue;
152
+ }
153
+ b.socialProvider({ atlasKey: key, vendorName: alias, area: 'identity providers', setting: `${alias} (${type})`, clientId: (0, record_set_1.str)(config.clientId), scopes: (0, record_set_1.str)(config.defaultScope)?.split(/\s+/).filter(Boolean) });
154
+ }
155
+ // ── clients → redirect URLs ──
156
+ const redirects = new Set();
157
+ for (const c of (0, record_set_1.objs)(realm.clients)) {
158
+ const clientId = (0, record_set_1.str)(c.clientId) ?? '';
159
+ if (!clientId || (0, keycloak_1.isBuiltInClient)(clientId, name) || c.enabled === false)
160
+ continue;
161
+ for (const u of (0, record_set_1.strs)(c.redirectUris))
162
+ redirects.add(u);
163
+ if (c.serviceAccountsEnabled === true)
164
+ b.add('manual', `clients ${clientId}`, 'serviceAccountsEnabled', 'A service account: create an Atlas M2M client for it.', 'oauth_clients');
165
+ if (c.directAccessGrantsEnabled === true && c.publicClient !== true)
166
+ b.add('manual', `clients ${clientId}`, 'directAccessGrantsEnabled', 'Resource-owner password grant: Atlas does not offer it; move the app to the authorization-code flow with PKCE.');
167
+ }
168
+ let exact = 0;
169
+ for (const url of redirects) {
170
+ if (url.includes('*') || !/^https?:\/\//.test(url)) {
171
+ b.add('differs', 'clients', `redirectUris ${url}`, 'Atlas redirect URLs are exact absolute URLs (no wildcards or relative paths).', 'redirect_urls');
172
+ continue;
173
+ }
174
+ b.push('redirect_urls', { url });
175
+ exact++;
176
+ }
177
+ if (exact)
178
+ b.add('mapped', 'clients', 'redirectUris', `${exact} redirect URI(s).`, 'redirect_urls');
179
+ // ── roles ──
180
+ const groupsAs = opts.groupsAs ?? 'roles';
181
+ const roles = (0, record_set_1.isObj)(realm.roles) ? realm.roles : {};
182
+ for (const r of (0, record_set_1.objs)(roles.realm)) {
183
+ const rn = (0, record_set_1.str)(r.name);
184
+ if (!rn || (0, keycloak_1.isBuiltInRole)(rn) || rn.startsWith('default-roles-'))
185
+ continue;
186
+ const key = (0, translate_kit_1.keyOf)(rn);
187
+ b.roles[rn] = key;
188
+ b.push('roles', { key, name: rn, description: (0, record_set_1.str)(r.description) ?? '', permissions: [] });
189
+ }
190
+ if (b.collections.roles.length)
191
+ b.add('differs', 'roles', 'realm roles', `${b.collections.roles.length} realm role(s) become Atlas app roles (client roles are prefixed with the client id in the data export; composite roles import as plain roles).`, 'roles');
192
+ if ((0, record_set_1.objs)(realm.groups).length)
193
+ b.add('differs', 'groups', 'groups', groupsAs === 'organizations' ? 'Groups become organizations with the data export (--groups-as organizations).' : groupsAs === 'roles' ? 'Groups become Atlas app roles named by group path; memberships move with the data export.' : 'Groups are skipped.', groupsAs === 'organizations' ? 'organizations' : 'roles');
194
+ if (realm.organizationsEnabled === true)
195
+ b.add('mapped', area, 'organizationsEnabled', 'Keycloak organizations move as Atlas organizations with members, domains and invitations.', 'organizations');
196
+ // ── what has no counterpart ──
197
+ if ((0, record_set_1.str)(realm.loginTheme) || (0, record_set_1.str)(realm.emailTheme) || (0, record_set_1.str)(realm.accountTheme))
198
+ b.add('manual', area, 'themes', 'Keycloak (FreeMarker) themes: rebuild the look in Atlas branding or the embeddable components.', 'branding');
199
+ if (realm.internationalizationEnabled === true)
200
+ b.add('manual', area, 'internationalization', `Locales ${(0, record_set_1.strs)(realm.supportedLocales).join(', ') || '(none listed)'}: set the locales and message overrides in Atlas.`, 'localization');
201
+ const smtp = (0, record_set_1.isObj)(realm.smtpServer) ? realm.smtpServer : {};
202
+ if ((0, record_set_1.str)(smtp.host))
203
+ b.add('manual', area, 'smtpServer', `Mail goes through your own provider in Atlas (bring your own keys): configure ${(0, record_set_1.str)(smtp.host)} or your email API in the email provider settings; the SMTP password is never returned by Keycloak.`, 'email_provider');
204
+ const components = (0, record_set_1.isObj)(realm.components) ? realm.components : {};
205
+ if (Object.keys(components).some((k) => k.includes('UserStorageProvider')))
206
+ b.add('manual', 'user federation', 'LDAP / Kerberos / custom storage', 'Federated users have no password in Keycloak: use the keycloak lazy-migration preset so Keycloak (and the directory behind it) checks the password on first Atlas sign-in.', 'legacy_auth_connection');
207
+ if ((0, record_set_1.objs)(realm.clientScopes).length || (0, record_set_1.objs)(realm.clients).some((c) => (0, record_set_1.objs)(c.protocolMappers).length))
208
+ b.add('manual', 'client scopes', 'protocol mappers', 'Custom token claims: recreate them as an Atlas JWT template / session claims.', 'jwt_templates');
209
+ if (realm.eventsEnabled === true)
210
+ b.add('manual', area, 'eventsEnabled', 'Login events: use Atlas audit logs and webhooks.', 'webhooks');
211
+ if (realm.userManagedAccessAllowed === true || realm.authorizationSettings)
212
+ b.add('manual', area, 'authorization services', 'Keycloak fine-grained authorization (resources, policies): model it with Atlas roles and permissions or OpenFGA.', 'roles');
213
+ const baseUrl = opts.baseUrl;
214
+ const vars = { realm: name };
215
+ if (baseUrl)
216
+ vars.base_url = baseUrl;
217
+ return b.result(`Keycloak ${area}`, { bridge: { preset: 'keycloak', vars }, lazy: { preset: 'keycloak', config: vars } });
218
+ }
219
+ //# sourceMappingURL=keycloak-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloak-config.js","sourceRoot":"","sources":["../../../src/migrate/export/keycloak-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import type { MfaFactorRecord, PasskeyRecord, PasswordHash, UserRecord } from '@atlasauth/migrate';
2
+ import { RecordSet, type Obj } from './record-set';
3
+ import { VendorHttp } from './vendor-http';
4
+ /**
5
+ * `atlas migrate export keycloak` — a Keycloak (or Red Hat SSO / Red Hat build
6
+ * of Keycloak) realm onto the canonical bundle models. Two ways in, both on
7
+ * the owner's machine:
8
+ *
9
+ * - a REALM EXPORT (`kc.sh export --realm <r> --file <f>` or `--dir <d>`,
10
+ * any `--users` strategy). The only path that carries password hashes
11
+ * (PBKDF2-SHA1/256/512, Argon2), TOTP secrets and recovery-code hashes:
12
+ * Keycloak writes every stored credential with its `secretData`.
13
+ * - the ADMIN REST API with an admin client (client credentials) or an
14
+ * admin user (admin-cli password grant). Keycloak strips `secretData`
15
+ * from every credential it returns, so users arrive without passwords or
16
+ * OTP secrets (the `keycloak` lazy-migration preset covers passwords);
17
+ * WebAuthn public keys DO come back (they live in `credentialData`).
18
+ *
19
+ * Both paths produce one {@link KeycloakSnapshot} (the realm-export shape) and
20
+ * {@link mapKeycloak} maps it: users (the Keycloak user id is the `sub` of every
21
+ * Keycloak token, so it is the user id), passwords, TOTP, recovery codes,
22
+ * passkeys, social and brokered identities, SAML / OIDC identity providers as
23
+ * SSO connections, realm and client roles (plus roles inherited through
24
+ * groups), groups as roles or organizations, Keycloak 25+ organizations with
25
+ * their members and (API) invitations.
26
+ *
27
+ * Credential formats: keycloak/keycloak server-spi `PasswordCredentialModel`,
28
+ * `OTPCredentialModel`, `RecoveryAuthnCodesCredentialModel` and the WebAuthn
29
+ * provider (services/…/credential/WebAuthnCredentialProvider.java).
30
+ */
31
+ export interface KeycloakSnapshot {
32
+ /** The realm representation (users, if any, are in `users`). */
33
+ realm: Obj;
34
+ /** UserRepresentation in the export shape: credentials, federatedIdentities, realmRoles, clientRoles, groups (paths). */
35
+ users: Obj[];
36
+ /** Users of a user-storage provider without local import (`<realm>-federated-users-*.json`). */
37
+ federatedUsers: Obj[];
38
+ /** Groups, as a tree (`subGroups`) or flat, each with its `path` and role mappings. */
39
+ groups: Obj[];
40
+ /** OrganizationRepresentation (Keycloak 25+), members by `username` (export) or `id` (API). */
41
+ organizations: Obj[];
42
+ /** Organization invitations (Admin API only), each with its `organizationId`. */
43
+ invitations: Obj[];
44
+ source: 'file' | 'api';
45
+ /** The Keycloak base URL (with `/auth` on Keycloak 16 and older), when known. */
46
+ baseUrl?: string;
47
+ }
48
+ export interface KeycloakMapOptions {
49
+ /** How groups move: app roles (default), organizations, or not at all. */
50
+ groupsAs?: 'roles' | 'organizations' | 'skip';
51
+ /** The WebAuthn relying-party id when the realm leaves it empty (Keycloak then uses its own host name). */
52
+ rpId?: string;
53
+ }
54
+ /**
55
+ * Assemble a snapshot from the JSON documents of a realm export: one realm
56
+ * file (`--file`, a realm object or an array of realms), or a `--dir` export
57
+ * (`<realm>-realm.json` plus `<realm>-users-<n>.json` / `<realm>-federated-users-<n>.json`
58
+ * chunks, each `{ realm, users }`). `realmName` picks a realm when there are several.
59
+ */
60
+ export declare function readKeycloakExport(docs: unknown[], realmName?: string): KeycloakSnapshot;
61
+ export interface KeycloakApiOptions {
62
+ /** `https://sso.example.com` (Keycloak 16 and older: `https://sso.example.com/auth`). */
63
+ baseUrl: string;
64
+ realm: string;
65
+ /** The realm the admin credential lives in (default: `master` for an admin user, the target realm for a client). */
66
+ authRealm?: string;
67
+ /** A confidential client with a service account (client credentials), or the client of an admin user (default `admin-cli`). */
68
+ clientId?: string;
69
+ clientSecret?: string;
70
+ /** An admin user, signed in with the password grant. */
71
+ username?: string;
72
+ password?: string;
73
+ fetchImpl?: typeof fetch;
74
+ sleep?: (ms: number) => Promise<void>;
75
+ now?: () => number;
76
+ }
77
+ /** `https://sso.example.com/` → `https://sso.example.com`; a bare host gets https. */
78
+ export declare function keycloakBase(raw: string): string;
79
+ /**
80
+ * The Admin REST API (`{base}/admin/realms`) with an admin access token, fetched
81
+ * on first use and again shortly before it expires. Paths start with `/<realm>`.
82
+ */
83
+ export declare function keycloakAdminHttp(o: KeycloakApiOptions): VendorHttp;
84
+ /** Read a realm through the Admin REST API into the realm-export shape. */
85
+ export declare function fetchKeycloakRealm(http: VendorHttp, o: {
86
+ realm: string;
87
+ baseUrl?: string;
88
+ pageSize?: number;
89
+ onProgress?: (m: string) => void;
90
+ warn?: (m: string) => void;
91
+ }): Promise<KeycloakSnapshot>;
92
+ /** Map a snapshot (realm export or API) onto canonical records. */
93
+ export declare function mapKeycloak(snap: KeycloakSnapshot, opts?: KeycloakMapOptions): RecordSet;
94
+ /** One Keycloak user → a user record without password and roles (null when it has nothing to sign in with). */
95
+ export declare function mapKeycloakUser(u: Obj, realm?: Obj): UserRecord | null;
96
+ /**
97
+ * A Keycloak password credential → an Atlas password hash. Keycloak 9+ keeps
98
+ * `secretData` `{ value, salt }` and `credentialData` `{ algorithm,
99
+ * hashIterations, additionalParameters }` as JSON strings; earlier exports
100
+ * (and hand-written import files) put `hashedSaltedValue`, `salt`,
101
+ * `hashIterations` and `algorithm` on the credential itself. Salts and values
102
+ * are standard base64.
103
+ */
104
+ export declare function keycloakPassword(cred: Obj): {
105
+ hash: PasswordHash;
106
+ } | {
107
+ problem: string;
108
+ };
109
+ /**
110
+ * A Keycloak OTP credential → a TOTP factor. The secret is a plain string whose
111
+ * UTF-8 BYTES are the HMAC key (OTPCredentialModel.getDecodedSecret); Keycloak
112
+ * shows their base32 in the QR code. With `secretEncoding: "BASE32"` (secrets
113
+ * imported from elsewhere) the value already is base32.
114
+ */
115
+ export declare function keycloakOtp(cred: Obj): {
116
+ factor: Omit<MfaFactorRecord, 'user_id'>;
117
+ } | {
118
+ problem: string;
119
+ };
120
+ /**
121
+ * Recovery codes (`recovery-authn-codes`): Keycloak keeps base64 SHA-512 of
122
+ * each remaining code (RecoveryAuthnCodesUtils.hashRawCode), in the order the
123
+ * user must use them; Atlas accepts any remaining one.
124
+ */
125
+ export declare function keycloakRecoveryCodes(cred: Obj): Omit<MfaFactorRecord, 'user_id'> | null;
126
+ /**
127
+ * A WebAuthn credential (`webauthn` second factor or `webauthn-passwordless`
128
+ * passkey). `credentialId` is standard base64 and `credentialPublicKey` the
129
+ * base64url COSE key (CredentialPublicKeyConverter); both become base64url.
130
+ */
131
+ export declare function keycloakPasskey(cred: Obj, rpId: string | undefined): {
132
+ passkey: Omit<PasskeyRecord, 'user_id'>;
133
+ } | {
134
+ problem: string;
135
+ };
136
+ export declare function isBuiltInRole(name: string): boolean;
137
+ export declare function isBuiltInClient(clientId: string, realm: string): boolean;
138
+ /** `acme-web` + `billing` → `acme_web:billing`. */
139
+ export declare function clientRoleKey(clientId: string, role: string): string;
140
+ /** `/Engineering/Backend` → `group:engineering_backend`. */
141
+ export declare function groupKey(path: string): string;
142
+ /** RFC 4648 base32, upper case, no padding. */
143
+ export declare function base32(bytes: Uint8Array): string;
144
+ /** Standard or URL-safe base64 (padded or not) → unpadded base64url. */
145
+ export declare function base64url(s: string): string;
146
+ export interface ExportKeycloakOptions extends KeycloakMapOptions {
147
+ /** The JSON documents of a realm export (`kc.sh export`), when exporting from files. */
148
+ exportDocs?: unknown[];
149
+ realm?: string;
150
+ /** The Admin API, when exporting live. */
151
+ api?: Omit<KeycloakApiOptions, 'realm'>;
152
+ onProgress?: (m: string) => void;
153
+ }
154
+ /** Export a realm from an export file (hashes and OTP secrets included) or the Admin API (no secrets). */
155
+ export declare function exportKeycloak(o: ExportKeycloakOptions): Promise<RecordSet>;