@atlasauth/cli 0.25.0 → 0.25.1

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/dist/args.d.ts +601 -0
  3. package/dist/args.js +289 -0
  4. package/dist/args.js.map +1 -0
  5. package/dist/cli.d.ts +2 -0
  6. package/dist/cli.js +19 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/actions-gallery.d.ts +8 -0
  9. package/dist/commands/actions-gallery.js +197 -0
  10. package/dist/commands/actions-gallery.js.map +1 -0
  11. package/dist/commands/actions.d.ts +13 -0
  12. package/dist/commands/actions.js +135 -0
  13. package/dist/commands/actions.js.map +1 -0
  14. package/dist/commands/admin.d.ts +49 -0
  15. package/dist/commands/admin.js +353 -0
  16. package/dist/commands/admin.js.map +1 -0
  17. package/dist/commands/api-keys.d.ts +4 -0
  18. package/dist/commands/api-keys.js +96 -0
  19. package/dist/commands/api-keys.js.map +1 -0
  20. package/dist/commands/auth.d.ts +25 -0
  21. package/dist/commands/auth.js +102 -0
  22. package/dist/commands/auth.js.map +1 -0
  23. package/dist/commands/config.d.ts +104 -0
  24. package/dist/commands/config.js +1532 -0
  25. package/dist/commands/config.js.map +1 -0
  26. package/dist/commands/csp.d.ts +32 -0
  27. package/dist/commands/csp.js +180 -0
  28. package/dist/commands/csp.js.map +1 -0
  29. package/dist/commands/dev.d.ts +8 -0
  30. package/dist/commands/dev.js +84 -0
  31. package/dist/commands/dev.js.map +1 -0
  32. package/dist/commands/fga.d.ts +10 -0
  33. package/dist/commands/fga.js +146 -0
  34. package/dist/commands/fga.js.map +1 -0
  35. package/dist/commands/golive.d.ts +40 -0
  36. package/dist/commands/golive.js +285 -0
  37. package/dist/commands/golive.js.map +1 -0
  38. package/dist/commands/id-accounts.d.ts +13 -0
  39. package/dist/commands/id-accounts.js +195 -0
  40. package/dist/commands/id-accounts.js.map +1 -0
  41. package/dist/commands/import-better-auth.d.ts +3 -0
  42. package/dist/commands/import-better-auth.js +164 -0
  43. package/dist/commands/import-better-auth.js.map +1 -0
  44. package/dist/commands/import.d.ts +3 -0
  45. package/dist/commands/import.js +123 -0
  46. package/dist/commands/import.js.map +1 -0
  47. package/dist/commands/info.d.ts +75 -0
  48. package/dist/commands/info.js +362 -0
  49. package/dist/commands/info.js.map +1 -0
  50. package/dist/commands/init.d.ts +3 -0
  51. package/dist/commands/init.js +438 -0
  52. package/dist/commands/init.js.map +1 -0
  53. package/dist/commands/integrations.d.ts +8 -0
  54. package/dist/commands/integrations.js +112 -0
  55. package/dist/commands/integrations.js.map +1 -0
  56. package/dist/commands/listen.d.ts +17 -0
  57. package/dist/commands/listen.js +223 -0
  58. package/dist/commands/listen.js.map +1 -0
  59. package/dist/commands/mcp.d.ts +38 -0
  60. package/dist/commands/mcp.js +111 -0
  61. package/dist/commands/mcp.js.map +1 -0
  62. package/dist/commands/migrate.d.ts +16 -0
  63. package/dist/commands/migrate.js +114 -0
  64. package/dist/commands/migrate.js.map +1 -0
  65. package/dist/commands/move-origin.d.ts +11 -0
  66. package/dist/commands/move-origin.js +95 -0
  67. package/dist/commands/move-origin.js.map +1 -0
  68. package/dist/commands/operator.d.ts +18 -0
  69. package/dist/commands/operator.js +238 -0
  70. package/dist/commands/operator.js.map +1 -0
  71. package/dist/commands/orgs.d.ts +4 -0
  72. package/dist/commands/orgs.js +72 -0
  73. package/dist/commands/orgs.js.map +1 -0
  74. package/dist/commands/pages.d.ts +14 -0
  75. package/dist/commands/pages.js +113 -0
  76. package/dist/commands/pages.js.map +1 -0
  77. package/dist/commands/partner-platforms.d.ts +10 -0
  78. package/dist/commands/partner-platforms.js +157 -0
  79. package/dist/commands/partner-platforms.js.map +1 -0
  80. package/dist/commands/project-commands.d.ts +38 -0
  81. package/dist/commands/project-commands.js +361 -0
  82. package/dist/commands/project-commands.js.map +1 -0
  83. package/dist/commands/referrals.d.ts +69 -0
  84. package/dist/commands/referrals.js +1056 -0
  85. package/dist/commands/referrals.js.map +1 -0
  86. package/dist/commands/resources.d.ts +44 -0
  87. package/dist/commands/resources.js +234 -0
  88. package/dist/commands/resources.js.map +1 -0
  89. package/dist/commands/sessions.d.ts +4 -0
  90. package/dist/commands/sessions.js +28 -0
  91. package/dist/commands/sessions.js.map +1 -0
  92. package/dist/commands/shared.d.ts +38 -0
  93. package/dist/commands/shared.js +69 -0
  94. package/dist/commands/shared.js.map +1 -0
  95. package/dist/commands/status.d.ts +3 -0
  96. package/dist/commands/status.js +77 -0
  97. package/dist/commands/status.js.map +1 -0
  98. package/dist/commands/users.d.ts +4 -0
  99. package/dist/commands/users.js +100 -0
  100. package/dist/commands/users.js.map +1 -0
  101. package/dist/commands/webhooks.d.ts +34 -0
  102. package/dist/commands/webhooks.js +301 -0
  103. package/dist/commands/webhooks.js.map +1 -0
  104. package/dist/config-http.d.ts +29 -0
  105. package/dist/config-http.js +64 -0
  106. package/dist/config-http.js.map +1 -0
  107. package/dist/config.d.ts +64 -0
  108. package/dist/config.js +69 -0
  109. package/dist/config.js.map +1 -0
  110. package/dist/context.d.ts +72 -0
  111. package/dist/context.js +27 -0
  112. package/dist/context.js.map +1 -0
  113. package/dist/define-config.d.ts +9 -0
  114. package/dist/define-config.js +8 -0
  115. package/dist/define-config.js.map +1 -0
  116. package/dist/errors.d.ts +15 -0
  117. package/dist/errors.js +25 -0
  118. package/dist/errors.js.map +1 -0
  119. package/dist/help.d.ts +8 -0
  120. package/dist/help.js +868 -0
  121. package/dist/help.js.map +1 -0
  122. package/dist/import/csv.d.ts +6 -0
  123. package/dist/import/csv.js +63 -0
  124. package/dist/import/csv.js.map +1 -0
  125. package/dist/import/vendors.d.ts +57 -0
  126. package/dist/import/vendors.js +568 -0
  127. package/dist/import/vendors.js.map +1 -0
  128. package/dist/index.d.ts +33 -0
  129. package/dist/index.js +81 -0
  130. package/dist/index.js.map +1 -0
  131. package/dist/io.d.ts +21 -0
  132. package/dist/io.js +28 -0
  133. package/dist/io.js.map +1 -0
  134. package/dist/migrate/appwrite/plugin.d.ts +2 -0
  135. package/dist/migrate/appwrite/plugin.js +103 -0
  136. package/dist/migrate/appwrite/plugin.js.map +1 -0
  137. package/dist/migrate/auth0/plugin.d.ts +2 -0
  138. package/dist/migrate/auth0/plugin.js +126 -0
  139. package/dist/migrate/auth0/plugin.js.map +1 -0
  140. package/dist/migrate/authentik/plugin.d.ts +2 -0
  141. package/dist/migrate/authentik/plugin.js +135 -0
  142. package/dist/migrate/authentik/plugin.js.map +1 -0
  143. package/dist/migrate/azure-ad-b2c/plugin.d.ts +8 -0
  144. package/dist/migrate/azure-ad-b2c/plugin.js +165 -0
  145. package/dist/migrate/azure-ad-b2c/plugin.js.map +1 -0
  146. package/dist/migrate/better-auth/integration.d.ts +59 -0
  147. package/dist/migrate/better-auth/integration.js +81 -0
  148. package/dist/migrate/better-auth/integration.js.map +1 -0
  149. package/dist/migrate/better-auth/orchestrator.d.ts +43 -0
  150. package/dist/migrate/better-auth/orchestrator.js +525 -0
  151. package/dist/migrate/better-auth/orchestrator.js.map +1 -0
  152. package/dist/migrate/better-auth/output.d.ts +20 -0
  153. package/dist/migrate/better-auth/output.js +146 -0
  154. package/dist/migrate/better-auth/output.js.map +1 -0
  155. package/dist/migrate/better-auth/translate.d.ts +77 -0
  156. package/dist/migrate/better-auth/translate.js +1989 -0
  157. package/dist/migrate/better-auth/translate.js.map +1 -0
  158. package/dist/migrate/clerk/plugin.d.ts +2 -0
  159. package/dist/migrate/clerk/plugin.js +76 -0
  160. package/dist/migrate/clerk/plugin.js.map +1 -0
  161. package/dist/migrate/cognito/plugin.d.ts +5 -0
  162. package/dist/migrate/cognito/plugin.js +170 -0
  163. package/dist/migrate/cognito/plugin.js.map +1 -0
  164. package/dist/migrate/corbado/plugin.d.ts +2 -0
  165. package/dist/migrate/corbado/plugin.js +63 -0
  166. package/dist/migrate/corbado/plugin.js.map +1 -0
  167. package/dist/migrate/descope/plugin.d.ts +2 -0
  168. package/dist/migrate/descope/plugin.js +83 -0
  169. package/dist/migrate/descope/plugin.js.map +1 -0
  170. package/dist/migrate/entra-external-id/plugin.d.ts +8 -0
  171. package/dist/migrate/entra-external-id/plugin.js +12 -0
  172. package/dist/migrate/entra-external-id/plugin.js.map +1 -0
  173. package/dist/migrate/export/appwrite-config.d.ts +28 -0
  174. package/dist/migrate/export/appwrite-config.js +170 -0
  175. package/dist/migrate/export/appwrite-config.js.map +1 -0
  176. package/dist/migrate/export/appwrite.d.ts +51 -0
  177. package/dist/migrate/export/appwrite.js +288 -0
  178. package/dist/migrate/export/appwrite.js.map +1 -0
  179. package/dist/migrate/export/auth0-config.d.ts +29 -0
  180. package/dist/migrate/export/auth0-config.js +249 -0
  181. package/dist/migrate/export/auth0-config.js.map +1 -0
  182. package/dist/migrate/export/auth0.d.ts +62 -0
  183. package/dist/migrate/export/auth0.js +575 -0
  184. package/dist/migrate/export/auth0.js.map +1 -0
  185. package/dist/migrate/export/authentik-config.d.ts +45 -0
  186. package/dist/migrate/export/authentik-config.js +357 -0
  187. package/dist/migrate/export/authentik-config.js.map +1 -0
  188. package/dist/migrate/export/authentik.d.ts +110 -0
  189. package/dist/migrate/export/authentik.js +838 -0
  190. package/dist/migrate/export/authentik.js.map +1 -0
  191. package/dist/migrate/export/azure-config.d.ts +58 -0
  192. package/dist/migrate/export/azure-config.js +344 -0
  193. package/dist/migrate/export/azure-config.js.map +1 -0
  194. package/dist/migrate/export/azure.d.ts +85 -0
  195. package/dist/migrate/export/azure.js +373 -0
  196. package/dist/migrate/export/azure.js.map +1 -0
  197. package/dist/migrate/export/clerk-config.d.ts +26 -0
  198. package/dist/migrate/export/clerk-config.js +227 -0
  199. package/dist/migrate/export/clerk-config.js.map +1 -0
  200. package/dist/migrate/export/clerk.d.ts +46 -0
  201. package/dist/migrate/export/clerk.js +486 -0
  202. package/dist/migrate/export/clerk.js.map +1 -0
  203. package/dist/migrate/export/cognito-config.d.ts +25 -0
  204. package/dist/migrate/export/cognito-config.js +273 -0
  205. package/dist/migrate/export/cognito-config.js.map +1 -0
  206. package/dist/migrate/export/cognito.d.ts +103 -0
  207. package/dist/migrate/export/cognito.js +441 -0
  208. package/dist/migrate/export/cognito.js.map +1 -0
  209. package/dist/migrate/export/corbado-config.d.ts +20 -0
  210. package/dist/migrate/export/corbado-config.js +63 -0
  211. package/dist/migrate/export/corbado-config.js.map +1 -0
  212. package/dist/migrate/export/corbado.d.ts +37 -0
  213. package/dist/migrate/export/corbado.js +132 -0
  214. package/dist/migrate/export/corbado.js.map +1 -0
  215. package/dist/migrate/export/descope.d.ts +35 -0
  216. package/dist/migrate/export/descope.js +208 -0
  217. package/dist/migrate/export/descope.js.map +1 -0
  218. package/dist/migrate/export/fake-vendor.test-helper.d.ts +27 -0
  219. package/dist/migrate/export/fake-vendor.test-helper.js +41 -0
  220. package/dist/migrate/export/fake-vendor.test-helper.js.map +1 -0
  221. package/dist/migrate/export/firebase-config.d.ts +24 -0
  222. package/dist/migrate/export/firebase-config.js +215 -0
  223. package/dist/migrate/export/firebase-config.js.map +1 -0
  224. package/dist/migrate/export/firebase.d.ts +102 -0
  225. package/dist/migrate/export/firebase.js +464 -0
  226. package/dist/migrate/export/firebase.js.map +1 -0
  227. package/dist/migrate/export/frameworks/app-users.d.ts +42 -0
  228. package/dist/migrate/export/frameworks/app-users.js +161 -0
  229. package/dist/migrate/export/frameworks/app-users.js.map +1 -0
  230. package/dist/migrate/export/frameworks/authjs.d.ts +41 -0
  231. package/dist/migrate/export/frameworks/authjs.js +146 -0
  232. package/dist/migrate/export/frameworks/authjs.js.map +1 -0
  233. package/dist/migrate/export/frameworks/devise.d.ts +39 -0
  234. package/dist/migrate/export/frameworks/devise.js +218 -0
  235. package/dist/migrate/export/frameworks/devise.js.map +1 -0
  236. package/dist/migrate/export/frameworks/django.d.ts +45 -0
  237. package/dist/migrate/export/frameworks/django.js +315 -0
  238. package/dist/migrate/export/frameworks/django.js.map +1 -0
  239. package/dist/migrate/export/frameworks/lucia.d.ts +42 -0
  240. package/dist/migrate/export/frameworks/lucia.js +263 -0
  241. package/dist/migrate/export/frameworks/lucia.js.map +1 -0
  242. package/dist/migrate/export/frameworks/tables.d.ts +90 -0
  243. package/dist/migrate/export/frameworks/tables.js +325 -0
  244. package/dist/migrate/export/frameworks/tables.js.map +1 -0
  245. package/dist/migrate/export/frameworks/webauthn.d.ts +25 -0
  246. package/dist/migrate/export/frameworks/webauthn.js +130 -0
  247. package/dist/migrate/export/frameworks/webauthn.js.map +1 -0
  248. package/dist/migrate/export/frontegg-config.d.ts +29 -0
  249. package/dist/migrate/export/frontegg-config.js +238 -0
  250. package/dist/migrate/export/frontegg-config.js.map +1 -0
  251. package/dist/migrate/export/frontegg.d.ts +67 -0
  252. package/dist/migrate/export/frontegg.js +410 -0
  253. package/dist/migrate/export/frontegg.js.map +1 -0
  254. package/dist/migrate/export/fusionauth-config.d.ts +26 -0
  255. package/dist/migrate/export/fusionauth-config.js +226 -0
  256. package/dist/migrate/export/fusionauth-config.js.map +1 -0
  257. package/dist/migrate/export/fusionauth.d.ts +99 -0
  258. package/dist/migrate/export/fusionauth.js +642 -0
  259. package/dist/migrate/export/fusionauth.js.map +1 -0
  260. package/dist/migrate/export/hanko-config.d.ts +27 -0
  261. package/dist/migrate/export/hanko-config.js +265 -0
  262. package/dist/migrate/export/hanko-config.js.map +1 -0
  263. package/dist/migrate/export/hanko.d.ts +52 -0
  264. package/dist/migrate/export/hanko.js +605 -0
  265. package/dist/migrate/export/hanko.js.map +1 -0
  266. package/dist/migrate/export/keycloak-config.d.ts +19 -0
  267. package/dist/migrate/export/keycloak-config.js +219 -0
  268. package/dist/migrate/export/keycloak-config.js.map +1 -0
  269. package/dist/migrate/export/keycloak.d.ts +155 -0
  270. package/dist/migrate/export/keycloak.js +878 -0
  271. package/dist/migrate/export/keycloak.js.map +1 -0
  272. package/dist/migrate/export/kinde-descope-config.d.ts +38 -0
  273. package/dist/migrate/export/kinde-descope-config.js +172 -0
  274. package/dist/migrate/export/kinde-descope-config.js.map +1 -0
  275. package/dist/migrate/export/kinde.d.ts +57 -0
  276. package/dist/migrate/export/kinde.js +333 -0
  277. package/dist/migrate/export/kinde.js.map +1 -0
  278. package/dist/migrate/export/ldap.d.ts +53 -0
  279. package/dist/migrate/export/ldap.js +277 -0
  280. package/dist/migrate/export/ldap.js.map +1 -0
  281. package/dist/migrate/export/logto-config.d.ts +27 -0
  282. package/dist/migrate/export/logto-config.js +264 -0
  283. package/dist/migrate/export/logto-config.js.map +1 -0
  284. package/dist/migrate/export/logto.d.ts +150 -0
  285. package/dist/migrate/export/logto.js +809 -0
  286. package/dist/migrate/export/logto.js.map +1 -0
  287. package/dist/migrate/export/magic-config.d.ts +14 -0
  288. package/dist/migrate/export/magic-config.js +28 -0
  289. package/dist/migrate/export/magic-config.js.map +1 -0
  290. package/dist/migrate/export/magic.d.ts +31 -0
  291. package/dist/migrate/export/magic.js +93 -0
  292. package/dist/migrate/export/magic.js.map +1 -0
  293. package/dist/migrate/export/mini-yaml.d.ts +19 -0
  294. package/dist/migrate/export/mini-yaml.js +581 -0
  295. package/dist/migrate/export/mini-yaml.js.map +1 -0
  296. package/dist/migrate/export/nhost-config.d.ts +26 -0
  297. package/dist/migrate/export/nhost-config.js +360 -0
  298. package/dist/migrate/export/nhost-config.js.map +1 -0
  299. package/dist/migrate/export/nhost.d.ts +64 -0
  300. package/dist/migrate/export/nhost.js +304 -0
  301. package/dist/migrate/export/nhost.js.map +1 -0
  302. package/dist/migrate/export/okta-config.d.ts +30 -0
  303. package/dist/migrate/export/okta-config.js +205 -0
  304. package/dist/migrate/export/okta-config.js.map +1 -0
  305. package/dist/migrate/export/okta.d.ts +43 -0
  306. package/dist/migrate/export/okta.js +337 -0
  307. package/dist/migrate/export/okta.js.map +1 -0
  308. package/dist/migrate/export/onelogin.d.ts +22 -0
  309. package/dist/migrate/export/onelogin.js +123 -0
  310. package/dist/migrate/export/onelogin.js.map +1 -0
  311. package/dist/migrate/export/ory-config.d.ts +58 -0
  312. package/dist/migrate/export/ory-config.js +451 -0
  313. package/dist/migrate/export/ory-config.js.map +1 -0
  314. package/dist/migrate/export/ory.d.ts +81 -0
  315. package/dist/migrate/export/ory.js +555 -0
  316. package/dist/migrate/export/ory.js.map +1 -0
  317. package/dist/migrate/export/password-detect.d.ts +29 -0
  318. package/dist/migrate/export/password-detect.js +81 -0
  319. package/dist/migrate/export/password-detect.js.map +1 -0
  320. package/dist/migrate/export/pingone.d.ts +36 -0
  321. package/dist/migrate/export/pingone.js +218 -0
  322. package/dist/migrate/export/pingone.js.map +1 -0
  323. package/dist/migrate/export/plugin-kit.d.ts +25 -0
  324. package/dist/migrate/export/plugin-kit.js +82 -0
  325. package/dist/migrate/export/plugin-kit.js.map +1 -0
  326. package/dist/migrate/export/pocketbase-config.d.ts +28 -0
  327. package/dist/migrate/export/pocketbase-config.js +180 -0
  328. package/dist/migrate/export/pocketbase-config.js.map +1 -0
  329. package/dist/migrate/export/pocketbase.d.ts +52 -0
  330. package/dist/migrate/export/pocketbase.js +243 -0
  331. package/dist/migrate/export/pocketbase.js.map +1 -0
  332. package/dist/migrate/export/project-files.d.ts +15 -0
  333. package/dist/migrate/export/project-files.js +43 -0
  334. package/dist/migrate/export/project-files.js.map +1 -0
  335. package/dist/migrate/export/propelauth-config.d.ts +18 -0
  336. package/dist/migrate/export/propelauth-config.js +58 -0
  337. package/dist/migrate/export/propelauth-config.js.map +1 -0
  338. package/dist/migrate/export/propelauth-harness.test-helper.d.ts +62 -0
  339. package/dist/migrate/export/propelauth-harness.test-helper.js +109 -0
  340. package/dist/migrate/export/propelauth-harness.test-helper.js.map +1 -0
  341. package/dist/migrate/export/propelauth.d.ts +48 -0
  342. package/dist/migrate/export/propelauth.js +255 -0
  343. package/dist/migrate/export/propelauth.js.map +1 -0
  344. package/dist/migrate/export/record-set.d.ts +44 -0
  345. package/dist/migrate/export/record-set.js +98 -0
  346. package/dist/migrate/export/record-set.js.map +1 -0
  347. package/dist/migrate/export/source-lines.d.ts +17 -0
  348. package/dist/migrate/export/source-lines.js +43 -0
  349. package/dist/migrate/export/source-lines.js.map +1 -0
  350. package/dist/migrate/export/sso-metadata.d.ts +47 -0
  351. package/dist/migrate/export/sso-metadata.js +180 -0
  352. package/dist/migrate/export/sso-metadata.js.map +1 -0
  353. package/dist/migrate/export/stytch-config.d.ts +22 -0
  354. package/dist/migrate/export/stytch-config.js +102 -0
  355. package/dist/migrate/export/stytch-config.js.map +1 -0
  356. package/dist/migrate/export/stytch.d.ts +68 -0
  357. package/dist/migrate/export/stytch.js +510 -0
  358. package/dist/migrate/export/stytch.js.map +1 -0
  359. package/dist/migrate/export/supabase-config.d.ts +48 -0
  360. package/dist/migrate/export/supabase-config.js +408 -0
  361. package/dist/migrate/export/supabase-config.js.map +1 -0
  362. package/dist/migrate/export/supabase.d.ts +86 -0
  363. package/dist/migrate/export/supabase.js +524 -0
  364. package/dist/migrate/export/supabase.js.map +1 -0
  365. package/dist/migrate/export/supertokens-config.d.ts +20 -0
  366. package/dist/migrate/export/supertokens-config.js +150 -0
  367. package/dist/migrate/export/supertokens-config.js.map +1 -0
  368. package/dist/migrate/export/supertokens.d.ts +125 -0
  369. package/dist/migrate/export/supertokens.js +464 -0
  370. package/dist/migrate/export/supertokens.js.map +1 -0
  371. package/dist/migrate/export/table.d.ts +35 -0
  372. package/dist/migrate/export/table.js +248 -0
  373. package/dist/migrate/export/table.js.map +1 -0
  374. package/dist/migrate/export/translate-kit.d.ts +46 -0
  375. package/dist/migrate/export/translate-kit.js +148 -0
  376. package/dist/migrate/export/translate-kit.js.map +1 -0
  377. package/dist/migrate/export/userfront-config.d.ts +15 -0
  378. package/dist/migrate/export/userfront-config.js +49 -0
  379. package/dist/migrate/export/userfront-config.js.map +1 -0
  380. package/dist/migrate/export/userfront.d.ts +38 -0
  381. package/dist/migrate/export/userfront.js +189 -0
  382. package/dist/migrate/export/userfront.js.map +1 -0
  383. package/dist/migrate/export/vendor-http.d.ts +46 -0
  384. package/dist/migrate/export/vendor-http.js +138 -0
  385. package/dist/migrate/export/vendor-http.js.map +1 -0
  386. package/dist/migrate/export/workos-config.d.ts +23 -0
  387. package/dist/migrate/export/workos-config.js +125 -0
  388. package/dist/migrate/export/workos-config.js.map +1 -0
  389. package/dist/migrate/export/workos.d.ts +46 -0
  390. package/dist/migrate/export/workos.js +272 -0
  391. package/dist/migrate/export/workos.js.map +1 -0
  392. package/dist/migrate/export/zip.d.ts +8 -0
  393. package/dist/migrate/export/zip.js +66 -0
  394. package/dist/migrate/export/zip.js.map +1 -0
  395. package/dist/migrate/export/zitadel-config.d.ts +37 -0
  396. package/dist/migrate/export/zitadel-config.js +279 -0
  397. package/dist/migrate/export/zitadel-config.js.map +1 -0
  398. package/dist/migrate/export/zitadel.d.ts +82 -0
  399. package/dist/migrate/export/zitadel.js +447 -0
  400. package/dist/migrate/export/zitadel.js.map +1 -0
  401. package/dist/migrate/firebase/plugin.d.ts +2 -0
  402. package/dist/migrate/firebase/plugin.js +152 -0
  403. package/dist/migrate/firebase/plugin.js.map +1 -0
  404. package/dist/migrate/framework/builtins.d.ts +2 -0
  405. package/dist/migrate/framework/builtins.js +52 -0
  406. package/dist/migrate/framework/builtins.js.map +1 -0
  407. package/dist/migrate/framework/commands.d.ts +20 -0
  408. package/dist/migrate/framework/commands.js +58 -0
  409. package/dist/migrate/framework/commands.js.map +1 -0
  410. package/dist/migrate/framework/custom.d.ts +12 -0
  411. package/dist/migrate/framework/custom.js +96 -0
  412. package/dist/migrate/framework/custom.js.map +1 -0
  413. package/dist/migrate/framework/orchestrator.d.ts +113 -0
  414. package/dist/migrate/framework/orchestrator.js +532 -0
  415. package/dist/migrate/framework/orchestrator.js.map +1 -0
  416. package/dist/migrate/framework/plugin.d.ts +167 -0
  417. package/dist/migrate/framework/plugin.js +3 -0
  418. package/dist/migrate/framework/plugin.js.map +1 -0
  419. package/dist/migrate/framework/registry.d.ts +11 -0
  420. package/dist/migrate/framework/registry.js +44 -0
  421. package/dist/migrate/framework/registry.js.map +1 -0
  422. package/dist/migrate/framework/report.d.ts +17 -0
  423. package/dist/migrate/framework/report.js +103 -0
  424. package/dist/migrate/framework/report.js.map +1 -0
  425. package/dist/migrate/frameworks/plugins.d.ts +29 -0
  426. package/dist/migrate/frameworks/plugins.js +402 -0
  427. package/dist/migrate/frameworks/plugins.js.map +1 -0
  428. package/dist/migrate/frameworks/report.d.ts +92 -0
  429. package/dist/migrate/frameworks/report.js +207 -0
  430. package/dist/migrate/frameworks/report.js.map +1 -0
  431. package/dist/migrate/frameworks/translate-js.d.ts +5 -0
  432. package/dist/migrate/frameworks/translate-js.js +503 -0
  433. package/dist/migrate/frameworks/translate-js.js.map +1 -0
  434. package/dist/migrate/frameworks/translate-rails-django.d.ts +3 -0
  435. package/dist/migrate/frameworks/translate-rails-django.js +1391 -0
  436. package/dist/migrate/frameworks/translate-rails-django.js.map +1 -0
  437. package/dist/migrate/frontegg/plugin.d.ts +2 -0
  438. package/dist/migrate/frontegg/plugin.js +78 -0
  439. package/dist/migrate/frontegg/plugin.js.map +1 -0
  440. package/dist/migrate/fusionauth/plugin.d.ts +2 -0
  441. package/dist/migrate/fusionauth/plugin.js +109 -0
  442. package/dist/migrate/fusionauth/plugin.js.map +1 -0
  443. package/dist/migrate/hanko/plugin.d.ts +2 -0
  444. package/dist/migrate/hanko/plugin.js +100 -0
  445. package/dist/migrate/hanko/plugin.js.map +1 -0
  446. package/dist/migrate/keycloak/plugin.d.ts +2 -0
  447. package/dist/migrate/keycloak/plugin.js +148 -0
  448. package/dist/migrate/keycloak/plugin.js.map +1 -0
  449. package/dist/migrate/kinde/plugin.d.ts +2 -0
  450. package/dist/migrate/kinde/plugin.js +105 -0
  451. package/dist/migrate/kinde/plugin.js.map +1 -0
  452. package/dist/migrate/ldap/plugin.d.ts +2 -0
  453. package/dist/migrate/ldap/plugin.js +73 -0
  454. package/dist/migrate/ldap/plugin.js.map +1 -0
  455. package/dist/migrate/logto/plugin.d.ts +2 -0
  456. package/dist/migrate/logto/plugin.js +131 -0
  457. package/dist/migrate/logto/plugin.js.map +1 -0
  458. package/dist/migrate/magic/plugin.d.ts +2 -0
  459. package/dist/migrate/magic/plugin.js +56 -0
  460. package/dist/migrate/magic/plugin.js.map +1 -0
  461. package/dist/migrate/nhost/plugin.d.ts +2 -0
  462. package/dist/migrate/nhost/plugin.js +115 -0
  463. package/dist/migrate/nhost/plugin.js.map +1 -0
  464. package/dist/migrate/oidc/plugin.d.ts +2 -0
  465. package/dist/migrate/oidc/plugin.js +73 -0
  466. package/dist/migrate/oidc/plugin.js.map +1 -0
  467. package/dist/migrate/okta/plugin.d.ts +2 -0
  468. package/dist/migrate/okta/plugin.js +105 -0
  469. package/dist/migrate/okta/plugin.js.map +1 -0
  470. package/dist/migrate/onelogin/plugin.d.ts +2 -0
  471. package/dist/migrate/onelogin/plugin.js +61 -0
  472. package/dist/migrate/onelogin/plugin.js.map +1 -0
  473. package/dist/migrate/ory/plugin.d.ts +2 -0
  474. package/dist/migrate/ory/plugin.js +186 -0
  475. package/dist/migrate/ory/plugin.js.map +1 -0
  476. package/dist/migrate/ping-identity/plugin.d.ts +2 -0
  477. package/dist/migrate/ping-identity/plugin.js +100 -0
  478. package/dist/migrate/ping-identity/plugin.js.map +1 -0
  479. package/dist/migrate/pocketbase/plugin.d.ts +2 -0
  480. package/dist/migrate/pocketbase/plugin.js +99 -0
  481. package/dist/migrate/pocketbase/plugin.js.map +1 -0
  482. package/dist/migrate/propelauth/plugin.d.ts +2 -0
  483. package/dist/migrate/propelauth/plugin.js +65 -0
  484. package/dist/migrate/propelauth/plugin.js.map +1 -0
  485. package/dist/migrate/saml/plugin.d.ts +2 -0
  486. package/dist/migrate/saml/plugin.js +79 -0
  487. package/dist/migrate/saml/plugin.js.map +1 -0
  488. package/dist/migrate/stytch/plugin.d.ts +2 -0
  489. package/dist/migrate/stytch/plugin.js +97 -0
  490. package/dist/migrate/stytch/plugin.js.map +1 -0
  491. package/dist/migrate/supabase/plugin.d.ts +2 -0
  492. package/dist/migrate/supabase/plugin.js +149 -0
  493. package/dist/migrate/supabase/plugin.js.map +1 -0
  494. package/dist/migrate/supertokens/plugin.d.ts +2 -0
  495. package/dist/migrate/supertokens/plugin.js +114 -0
  496. package/dist/migrate/supertokens/plugin.js.map +1 -0
  497. package/dist/migrate/user-table/plugin.d.ts +2 -0
  498. package/dist/migrate/user-table/plugin.js +62 -0
  499. package/dist/migrate/user-table/plugin.js.map +1 -0
  500. package/dist/migrate/userfront/plugin.d.ts +2 -0
  501. package/dist/migrate/userfront/plugin.js +60 -0
  502. package/dist/migrate/userfront/plugin.js.map +1 -0
  503. package/dist/migrate/workos/plugin.d.ts +2 -0
  504. package/dist/migrate/workos/plugin.js +81 -0
  505. package/dist/migrate/workos/plugin.js.map +1 -0
  506. package/dist/migrate/zitadel/plugin.d.ts +2 -0
  507. package/dist/migrate/zitadel/plugin.js +114 -0
  508. package/dist/migrate/zitadel/plugin.js.map +1 -0
  509. package/dist/output.d.ts +41 -0
  510. package/dist/output.js +72 -0
  511. package/dist/output.js.map +1 -0
  512. package/dist/project.d.ts +64 -0
  513. package/dist/project.js +86 -0
  514. package/dist/project.js.map +1 -0
  515. package/dist/prompt.d.ts +15 -0
  516. package/dist/prompt.js +46 -0
  517. package/dist/prompt.js.map +1 -0
  518. package/dist/run.d.ts +12 -0
  519. package/dist/run.js +157 -0
  520. package/dist/run.js.map +1 -0
  521. package/dist/secrets.d.ts +41 -0
  522. package/dist/secrets.js +142 -0
  523. package/dist/secrets.js.map +1 -0
  524. package/dist/serialize.d.ts +30 -0
  525. package/dist/serialize.js +131 -0
  526. package/dist/serialize.js.map +1 -0
  527. package/dist/version.d.ts +7 -0
  528. package/dist/version.js +21 -0
  529. package/dist/version.js.map +1 -0
  530. package/package.json +3 -3
package/dist/help.js ADDED
@@ -0,0 +1,868 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COMMAND_HELP = exports.TOP_HELP = void 0;
4
+ const resources_1 = require("./commands/resources");
5
+ /**
6
+ * All help text lives here as plain strings — the CLI's "docs" surface. Kept
7
+ * out of the handlers so the dispatch code stays about control flow and the
8
+ * copy can be read (and kept consistent) in one place.
9
+ */
10
+ exports.TOP_HELP = `atlas — manage an Atlas instance from the terminal
11
+
12
+ Usage: atlas <command> [subcommand] [arguments] [options]
13
+
14
+ Commands:
15
+ login Authenticate and store a profile credential
16
+ (--device: operator sign-in in the browser, no key stored)
17
+ token --resource <id> A one-hour token for one instance/app from your operator sign-in
18
+ keys whoami|list|create|rotate|revoke|revoke-leaked|data|op
19
+ Scoped secret keys; new secrets go sealed into 0600 files
20
+ logout Remove a stored profile credential
21
+ whoami Show the active profile and instance
22
+ users list|get|create|merge|delete
23
+ orgs list|get|members
24
+ api-keys list|create|revoke
25
+ webhooks list|create|upsert|update|test|deliveries|redeliver|replay|rotate|reveal
26
+ listen --forward-to <url> Forward live events to your local server, signed (no tunnel)
27
+ dev [proxy] Local in-memory Atlas (emulator) / one-origin dev proxy
28
+ move-origin --from --to Move an app to a new domain in one step (--dry-run first)
29
+ workflows list|run|resume|status|templates|approvals|decide
30
+ chat list|test|links|interactions Chat approval integrations
31
+ cloud targets|setup|login <id> Cloud access portal (AWS, Google Cloud, Azure)
32
+ device-sso list|show|revoke|delete Native OS single sign-on registrations
33
+ connection-actions catalog|list|run|define|remove
34
+ triggers list|get|create|set|delete Connection triggers
35
+ agents list|lifecycle|renew|activity|reviews|review-decide ...
36
+ telemetry show|set|test OTLP export of gateway and relay calls
37
+ pdp list|remove Local decision points
38
+ billing coupons|credits ... Discount codes and account credit
39
+ audit retention|set-retention Audit log retention
40
+ federation show|resolve OpenID federation
41
+ vc deferred|approve|deny Deferred credential issuance
42
+ csp --framework next|express|nginx
43
+ Print the Content Security Policy sources Atlas needs
44
+ fga test|validate|transform <file>
45
+ fga export|import|watch|materialize <store>
46
+ Run .fga.yaml test suites, validate and convert authorization models
47
+ integrations list|get|set|remove|deliveries Identity integrations (chat, docs, consent, referrals, custom)
48
+ partner-platforms list|get|set|registration|token|deliveries|remove
49
+ This instance as a partner platform (signed consent deliveries in)
50
+ id-accounts provision|list|rotate|remove
51
+ Test and review accounts for a Sign in with Atlas app (passwords go to 0600 files)
52
+ admin id-accounts list|provision|extend|rotate|revoke
53
+ admin developer-accounts provision|revoke
54
+ Atlas staff: accounts for other platforms' integration teams
55
+ (operator sign-in with a recent second factor; passwords to 0600 files)
56
+ sessions revoke
57
+ config export|import|plan|promote
58
+ Config-as-code: round-trip the instance's config; plan = drift diff;
59
+ promote = copy one environment's config to another
60
+ plan [<file|dir>] Drift diff of a config file or directory; --check exits 2 on drift
61
+ apply [<file|dir>] Plan, confirm (--yes to skip), then apply; --check = plan only, exit 2 on drift
62
+ actions list|deploy|test|logs|gallery|show|install|installs|update|publish
63
+ pages list|push|preview|promote|pull|discard
64
+ Code-defined hosted-page templates: draft, signed preview link, promote
65
+ init Create or complete an app's setup (idempotent); secrets to 0600 files
66
+ preflight Check an instance's setup; non-zero exit on errors (for CI)
67
+ doctor Integration health: webhooks, logout, referrals, email, consent (exit 1 on a failure)
68
+ golive --origin <url> Take an instance live for an app origin, step by step; stops at the first failure
69
+ env Print deploy variables: public values + secret file paths
70
+ client rotate Rotate an OAuth client secret straight into its file
71
+ referrals connect|backfill|resync|status
72
+ Connect a referral platform, backfill, check the connection
73
+ status Atlas status, incidents that concern the instance and its
74
+ upstream status pages; non-zero exit on an outage
75
+ import --from <vendor> <file>
76
+ Move users from Auth0, Clerk, Supabase, Firebase, Cognito,
77
+ Auth.js, WorkOS or Better Auth (resumable; --dry-run first)
78
+ migrate code --from <vendor> [path]
79
+ Rewrite an app's auth code onto Atlas (Clerk, Auth.js,
80
+ Supabase, Auth0, Better Auth); a dry run with a diff unless --yes
81
+ migrate better-auth [path] Move a Better Auth app to Atlas end to end: config, users,
82
+ sessions and code, resumable (--dry-run, --resume, --yes)
83
+ migrate better-auth config [path]
84
+ Translate the app's betterAuth({...}) options into Atlas
85
+ config files plus a report (offline)
86
+ migrate <vendor> [step] [path]
87
+ Move from any vendor (config, export, import, bridge, lazy):
88
+ resumable; vendor credentials never leave this machine
89
+ info [path] Print the environment for a support ticket (versions, SDKs,
90
+ instance, API latency, preflight); secrets redacted
91
+ mcp install Add the Atlas MCP server (docs search) to Cursor, Claude Code,
92
+ Codex or VS Code
93
+
94
+ Global options:
95
+ --profile <name> Use a named profile (default: active, else "default")
96
+ --json Emit raw JSON instead of a human table
97
+ --limit <n> Page size for list commands that paginate
98
+ --starting-after <cursor> Pagination cursor (from a prior page's hint)
99
+ -h, --help Show this help, or help for a command
100
+ -v, --version Print the version
101
+
102
+ Environment overrides:
103
+ ATLAS_SECRET_KEY Secret key to use instead of the stored one
104
+ ATLAS_API_BASE API URL to use instead of the stored one
105
+ ATLAS_API_URL Same (the older name); ATLAS_API_BASE wins when both are set
106
+ ATLAS_PLATFORM_KEY Platform key (psk_) for atlas init
107
+ REFERALLI_BASE_URL Referalli base URL for atlas referrals connect
108
+ REFERALLI_API_KEY Referalli merchant key for atlas referrals connect (never stored)
109
+ (the old REFERALLY_BASE_URL / REFERALLY_API_KEY still work, with a notice)
110
+
111
+ Secrets: a command that receives a secret writes it to a 0600 file under
112
+ ~/.config/<product>/ and prints only the path. --print-secret prints it instead.
113
+
114
+ Run 'atlas <command> --help' for command-specific help.`;
115
+ /** Per-command help, keyed by the resource word. */
116
+ exports.COMMAND_HELP = {
117
+ migrate: `atlas migrate — move an app's auth onto Atlas
118
+
119
+ Usage:
120
+ atlas migrate code --from <vendor> [path] [--yes] [--json]
121
+ atlas migrate better-auth config [path] [--dir <dir>] [--format json|yaml] [--entry <file>] [--json]
122
+ atlas migrate better-auth [path] [--dry-run] [--yes] [--resume] [--force] [--json]
123
+ [--dir <dir>] [--state-file <file>] [--entry <file>] [--bundle <file>] [--run-export]
124
+ [--confirm-conflicts] [--bridge-days <n>] [--skip <step,...>]
125
+ atlas migrate <vendor> [path] [--dry-run] [--yes] [--resume] [--force] [--json]
126
+ [--set name=value ...] [--skip <step,...>] [--bridge-days <n>] [--confirm-conflicts]
127
+ atlas migrate <vendor> config|export|import|bridge|lazy [path] [--set name=value ...]
128
+ atlas migrate export <vendor> [path] (same as: atlas migrate <vendor> export)
129
+ atlas migrate custom export --file <records.ndjson|.json> [path]
130
+
131
+ migrate <vendor> is the program for every other vendor, one plugin each
132
+ (atlas migrate --help lists them). Steps, checkpointed in
133
+ atlas-migrate/<vendor>/state.json (--state-file):
134
+ preflight instance and key
135
+ config read the vendor's configuration, write Atlas config files and
136
+ <vendor>-report.md (1:1 / differs / manual, with where each came from)
137
+ export read the vendor (its API with YOUR vendor credentials, an export
138
+ file, or your database) and write atlas-migrate/<vendor>/bundle.atlas,
139
+ sealed to this instance's import key; resumable from a checkpoint
140
+ import upload, dry-run report, confirm, import (resumes a stopped import)
141
+ bridge accept the vendor's sessions for --bridge-days (default 30)
142
+ lazy verify passwords against the vendor on first sign-in (vendors whose
143
+ hashes never leave them)
144
+ code atlas migrate code --from <vendor>, after a confirmation
145
+ verify the import's counts and a checklist
146
+ Vendor settings and credentials are --set name=value (e.g. --set auth0-domain=…)
147
+ or the environment variable the plugin names; they are used here only.
148
+
149
+ Self-hosted frameworks (authjs, lucia, passport, iron-session, devise, django)
150
+ keep users in your own database, so nothing calls a vendor: config reads your
151
+ app's source, and export reads table dumps you make with your own tools
152
+ (--set dump=<dir>: one <table>.csv/.json/.ndjson per table) or, for devise and
153
+ django, the export script it writes on the first run, piped in with --file -.
154
+
155
+ migrate better-auth config reads your betterAuth({...}) setup statically (it
156
+ follows imports and resolves env vars by NAME, never their values) and writes
157
+ Atlas config-as-code files (the 'atlas config import' format) plus
158
+ better-auth-report.md: what maps 1:1, what maps with a difference, and what
159
+ needs a manual step, each with file:line. Default --dir: atlas-migrate/config.
160
+
161
+ migrate better-auth runs the whole program, checkpointing each step in
162
+ atlas-migrate/state.json (--state-file):
163
+ preflight instance and key, CLI version, the betterAuth() call
164
+ translate the config files and report (as above)
165
+ apply review the diff, confirm, push the config (env placeholders are
166
+ filled from the environment and the app's .env files)
167
+ export run the exporter in the app (prints the command; --run-export runs it)
168
+ import upload the bundle, dry-run report, confirm, import (conflicts with
169
+ existing Atlas users need --confirm-conflicts; a stopped import resumes)
170
+ bridge accept Better Auth sessions for --bridge-days (default 30): no forced logout
171
+ code atlas migrate code --from better-auth, after a confirmation
172
+ verify counts, preflight and a sign-in checklist
173
+ --dry-run walks every step without changing the instance or the code. --yes
174
+ answers every confirmation. --resume continues a stopped run. --json prints the
175
+ step summary (with --json and no --yes it stops at the first confirmation).
176
+
177
+ Code rewrite (migrate code):
178
+
179
+ Vendors:
180
+ clerk @clerk/* SDKs
181
+ authjs Auth.js / NextAuth (next-auth v4 and v5, @auth/*)
182
+ supabase Supabase Auth (supabase.auth.*, auth-helpers, auth-ui); the
183
+ Supabase client itself stays for your database
184
+ auth0 @auth0/auth0-react, @auth0/nextjs-auth0 (v3 and v4), @auth0/auth0-spa-js
185
+ better-auth better-auth (client, server, Next.js handler, cookies)
186
+ lucia lucia v2 / v3 (validateSession, cookies, invalidate…): TODO markers
187
+ naming the Atlas call for each, since no call has the same shape
188
+ passport passport + express-session (initialize, session, authenticate('jwt'),
189
+ req.isAuthenticated()); strategies and req.user are reported
190
+ iron-session getIronSession() reads of the user id -> auth()
191
+ keycloak keycloak-js, @react-keycloak, keycloak-connect, the Keycloak Auth.js provider
192
+ ory @ory/client, @ory/nextjs, @ory/elements (Kratos and Hydra)
193
+ zitadel @zitadel/react, @zitadel/node, @zitadel/next
194
+ logto @logto/react, @logto/next, @logto/node and the other Logto SDKs
195
+ supertokens supertokens-node, supertokens-web-js, supertokens-auth-react
196
+ authentik react-oidc-context / oidc-client-ts pointed at authentik, @goauthentik/api
197
+ fusionauth @fusionauth/react-sdk, @fusionauth/typescript-client and the other FusionAuth SDKs
198
+ hanko @teamhanko/hanko-elements and hanko-frontend-sdk
199
+ openid-client openid-client (Issuer.discover, authorizationUrl, callback, endSessionUrl)
200
+ jose jose used to verify OIDC ID tokens (jwtVerify + createRemoteJWKSet)
201
+ generic-oidc a hand-rolled relying party (discovery, PKCE, code exchange, JWKS) found
202
+ by its code; replaced by oidc.start / oidc.callback / oidc.logoutUrl
203
+ firebase firebase/auth (modular and v8 compat), react-firebase-hooks, FirebaseUI,
204
+ firebase-admin auth calls; Firebase itself stays for Firestore/Storage
205
+ cognito aws-amplify/auth (v6 and v5 Auth), Hub auth events, @aws-amplify/ui-react,
206
+ amazon-cognito-identity-js, aws-jwt-verify
207
+ azure-ad-b2c @azure/msal-browser, @azure/msal-react, @azure/msal-node, passport-azure-ad
208
+ entra-external-id the same MSAL rewrite, for Entra External ID tenants
209
+ appwrite the Appwrite Account API (new Account(client)), node-appwrite Users/Teams;
210
+ Databases/Storage stay
211
+ pocketbase pb.authStore and collection auth calls; collections and files stay
212
+ nhost @nhost/react / @nhost/nextjs hooks and nhost.auth.*; GraphQL/Storage stay
213
+
214
+ What it rewrites: imports, providers, hooks, server session helpers, middleware,
215
+ sign-in/out calls and env var names, onto native Atlas APIs and the drop-in
216
+ compat helpers in @atlasauth/react/compat and @atlasauth/nextjs/compat that keep the
217
+ old shapes. Everything it cannot rewrite is listed with file:line and marked in
218
+ code with TODO(atlas-migrate).
219
+
220
+ Options:
221
+ --yes Write the changes (without it: a dry run printing the diff)
222
+ --dry-run Force a dry run even with --yes
223
+ --json Machine-readable result (diffs, report, packages, env)
224
+
225
+ Safe to re-run: migrated code is left as it is. Move your users with
226
+ 'atlas migrate <vendor>' (Clerk, Auth0, Okta, Kinde, Descope, Better Auth) or
227
+ 'atlas import --from <vendor> <export-file>'.`,
228
+ info: `atlas info — the environment, for support tickets
229
+
230
+ Usage:
231
+ atlas info [path] [--json] [--product <name> | --instance <id>]
232
+
233
+ Prints the CLI, Node and OS versions; the project's framework and Atlas SDK
234
+ packages with the installed version and whether npm has a newer one; the
235
+ configured instance (key prefixes only, never a key) and whether the app's
236
+ publishable key belongs to it; API reachability and latency; and the
237
+ instance's preflight summary. Network steps time out after 5 s and are
238
+ reported, not fatal. Anything shaped like a secret is redacted.`,
239
+ import: `atlas import — move users from another auth provider
240
+
241
+ Usage:
242
+ atlas import --from <vendor> <export-file> [--dry-run]
243
+ atlas import --from better-auth --bundle <file> [--dry-run] [--yes]
244
+ atlas import --from better-auth --import <id> [--confirm-conflicts]
245
+ atlas import --from better-auth (prints the import key and export command)
246
+
247
+ Vendors and the file each one reads:
248
+ auth0 the user export job (NDJSON/JSON); --hashes <file> merges the password export
249
+ clerk the dashboard CSV export, or users JSON from the Backend API
250
+ supabase auth.users rows as CSV or JSON (with an identities array for social links)
251
+ firebase firebase auth:export --format=json; needs --hash-config <file>
252
+ cognito aws cognito-idp list-users JSON, or the user-pool CSV
253
+ authjs the adapter's users + accounts tables as JSON
254
+ workos User Management users JSON (+ organization_memberships)
255
+ better-auth JSON of the user, account, member and organization tables
256
+
257
+ Options:
258
+ --dry-run Map and summarise only; nothing is sent
259
+ --batch-size <n> Users per request, 1-100 (default 100)
260
+ --state-file <file> Progress file (default <export-file>.atlas-import.json); re-running resumes
261
+ --hash-config <file> Firebase hash parameters: {signer_key, salt_separator, rounds, mem_cost}
262
+ --hashes <file> Password hashes keyed by email, merged onto the users
263
+ --create-orgs Create organizations that memberships name but that do not exist yet
264
+ --json Machine-readable summary
265
+
266
+ Better Auth bundle (npx atlas-better-auth-export --out <file> --public-key <key>):
267
+ --bundle <file> Upload the sealed bundle, show the dry run, then apply
268
+ --import <id> Continue an uploaded import (apply it, or resume a failed one)
269
+ --confirm-conflicts Apply although the dry run found conflicts with existing users
270
+ --options <json|@file> Import options, e.g. '{"import_sessions":false}'
271
+ --yes Apply without asking
272
+
273
+ Batches are sent with upsert, so a resumed or repeated run never duplicates a
274
+ user or a membership. Exit code 2 means some rows were reported as issues.`,
275
+ mcp: `atlas mcp — connect AI coding agents to Atlas
276
+
277
+ Usage:
278
+ atlas mcp install --cursor | --claude-code | --codex | --vscode [--dir <project>] [--global]
279
+ atlas mcp gateways | upstreams <gw> | upstream-add|upstream-test|upstream-remove | packs|pack-add|pack-remove
280
+ atlas mcp pins <gw> | pin-approve <gw> <tool> | pin-remove | registry|registry-add|registry-decide|registry-remove
281
+
282
+ Adds the Atlas MCP server (npx -y @atlasauth/mcp) to the client's config so the
283
+ agent can search and read the Atlas docs. Servers already in the file are kept.
284
+
285
+ --cursor .cursor/mcp.json in the project (~/.cursor/mcp.json with --global)
286
+ --claude-code .mcp.json in the project
287
+ --codex ~/.codex/config.toml (or $CODEX_HOME/config.toml)
288
+ --vscode .vscode/mcp.json in the project
289
+ --dir <path> The project directory (default: the current directory)
290
+
291
+ No key is written. To also manage your instance from the agent, add
292
+ ATLAS_SECRET_KEY to the server's env yourself.`,
293
+ status: `atlas status — is it Atlas, a service you depend on, or you?
294
+
295
+ Usage:
296
+ atlas status [--json]
297
+
298
+ Shows Atlas's components (with their regions), the open Atlas incidents that
299
+ concern this instance (its status subscription's regions, components and
300
+ minimum impact), the subscription itself, and the state of every upstream
301
+ status page the instance declared (POST /v1/instance/status_dependencies).
302
+
303
+ Exit code 1 when Atlas reports a major outage or an open major / critical
304
+ incident concerns the instance, or an enabled upstream status page reports a
305
+ partial or major outage; 0 otherwise.`,
306
+ referrals: `atlas referrals — referral attribution
307
+
308
+ Usage:
309
+ atlas referrals connect --provider referalli --program <prg_…> --base-url <url>
310
+ [--referalli-key-file <path|-> | --referalli-key <rk_…>]
311
+ [--auto-enroll] [--destination <url>] [--tracking-token <token>] [--link-template <url>]
312
+ [--enable] [--no-sync] [--no-identity-backfill] [--allow-mode-mismatch] [--dry-run]
313
+ atlas referrals connect --oauth [--preset <id>] [--enable] (default preset: referalli)
314
+ atlas referrals connect --provider webhook --endpoint <https-url>
315
+ [--secret-file <path|->] [--program <id>] [--auto-enroll] [--enable]
316
+ atlas referrals backfill --since <YYYY-MM-DD> [--map <file.csv>]
317
+ [--metadata-path public_metadata.referral_code]
318
+ [--own-map <file.csv>] [--own-metadata-path public_metadata.my_code] [--wait]
319
+ atlas referrals resync <user_id> [--dry-run] re-report one user and apply the answer (code, link)
320
+ atlas referrals status [--json] [--referalli-key-file <path|->]
321
+ atlas referrals conformance [--protocol webhook|connection] [--base-url <url>] [--connection-id <id>] --secret-file <path|->
322
+ [--only <case ids or areas>] [--simulate]
323
+
324
+ connect --dry-run (any provider) makes no change anywhere: it lists the calls it would make to the
325
+ platform and validates the Atlas settings write with ?dry_run=true. No secret is saved or printed and
326
+ no connection test is run.
327
+
328
+ connect --provider referalli --oauth is one-click: it prints a Referalli link, you choose the
329
+ organization and program there, and Referalli hands Atlas the connection secret directly (nothing to
330
+ copy). It needs no key, --program or --base-url, and waits until the connection appears. Where the
331
+ deployment does not offer it yet, use a key as below.
332
+
333
+ conformance runs the referral protocol conformance suite (@atlasauth/referral-conformance) against
334
+ any platform (--protocol webhook: the generic Atlas referral protocol; connection: the Referalli dialect): signed calls with the answers a conforming server must give (401 for a bad signature,
335
+ an empty export for an unknown customer, nulls accepted, …). It defaults to the connected Referalli;
336
+ the secret is read from --secret-file because Atlas never shows it. --simulate also sends Atlas's own
337
+ simulated sign-up. It exits 1 on any failed case.
338
+
339
+ connect --provider referalli creates the Atlas connection on Referalli with
340
+ your merchant key (bring your own key: used for this one call, never stored or
341
+ printed), saves the connection id and secret on the instance, and runs a ping.
342
+ It requires v2 signatures on the connection from the start and registers a
343
+ Referalli webhook that sends referral changes (voided, approved, reassigned…)
344
+ back to Atlas, limited to --program (programIds), so other programs in a shared
345
+ organization never reach the instance; --no-sync skips the webhook. The instance's app origins
346
+ (allowed origins and Frontend API host) are sent with the connection, and Atlas keeps them current
347
+ when they change. With --enable, Atlas also reads the referral code of every existing user from
348
+ Referalli (10 per second at most); --no-identity-backfill skips that. It is safe to
349
+ run again: the instance's existing connection and webhook are reused and updated
350
+ in place (an unscoped webhook is re-scoped), never duplicated. The tracking token
351
+ and link template are read from Referalli (GET /v1/org, the link domain); a link
352
+ template you set before is kept. Whatever it cannot read is printed as the exact
353
+ PATCH /v1/instance/referrals body left to send. A test key (rk_test_) belongs with a
354
+ development instance and a live key with production: a mismatch is refused
355
+ unless --allow-mode-mismatch. --auto-enroll and --destination are passed to
356
+ Referalli. --enable turns referrals on when the ping passes. Prefer --referalli-key-file (or
357
+ REFERALLI_API_KEY) to --referalli-key: a key on the command line can end up in
358
+ your shell history. The old names (--provider referally, --referally-key-file,
359
+ --referally-key, REFERALLY_*) still work and print a notice.
360
+
361
+ connect --provider webhook points the instance at a platform that speaks the
362
+ Atlas referral protocol. Without --secret-file, a signing secret is generated
363
+ and written to a 0600 file for you to configure on the platform.
364
+
365
+ backfill reports users who signed up since the date, with their real sign-up
366
+ time. --map reads customerRef,code lines; --metadata-path reads a stored code.
367
+ Those are the codes users ARRIVED with. To keep each user's OWN code (the one
368
+ they share), use --own-map (customerRef,code lines) or --own-metadata-path:
369
+ Atlas stores it and sends it to the platform before the sign-up, so the
370
+ platform does not hand out a new one.
371
+
372
+ status prints the connection, its health and the referral preflight findings;
373
+ it exits 1 when one is an error. --json prints a machine-readable status object
374
+ (connection id, program, webhook endpoint id and scope, link template and tracking
375
+ token set, last sync) next to the raw settings. The webhook's program scope is read
376
+ from Referalli when a merchant key is given (--referalli-key-file or
377
+ REFERALLI_API_KEY); without one it is "unknown".
378
+
379
+ All subcommands take --instance <id> or --product <name> like preflight.`,
380
+ login: `atlas login — authenticate and store a profile credential
381
+
382
+ Usage: atlas login [--profile <name>] [--url <api-url>] [--secret-key <sk_...>]
383
+
384
+ Prompts for an API URL and a secret key, validates the key with one Backend
385
+ call, then stores it (0600) under the profile. --url / --secret-key skip the
386
+ prompts for non-interactive setup.
387
+
388
+ Operator sign-in (no key on disk):
389
+ atlas login --device [--resource <ins_…|app_…>] [--scope "<scopes>"]
390
+ Opens Atlas's sign-in (passkey, multi-factor) with a device code. Only
391
+ short-lived tokens are stored: the operator token, and with --resource a
392
+ one-hour token bound to that instance or app (scope "read" by default).
393
+ Creating apps or instances and minting keys need a multi-factor sign-in
394
+ within the last 5 minutes.
395
+
396
+ An operator token for another product that trusts Atlas operators:
397
+ atlas login --device --audience <id> [--json]
398
+ <id> is one of the audiences GET /v1/operator lists. The token carries
399
+ aud=<id>, auth_time, amr/acr and your verified email; it is printed (for
400
+ that product's own token exchange), never stored, and Atlas refuses it.`,
401
+ token: `atlas token — a one-hour token bound to one instance or app
402
+
403
+ Usage: atlas token --resource <ins_…|app_…|acct_…> [--scope "<scopes>"] [--json]
404
+
405
+ Swaps your operator sign-in (atlas login --device) for an Atlas token (RFC 8693
406
+ token exchange). "read" = every read scope.`,
407
+ keys: `atlas keys — the instance's secret keys
408
+
409
+ Usage:
410
+ atlas keys whoami What the current key is and can do
411
+ atlas keys list Every credential on the instance
412
+ atlas keys create --scopes "<scopes>" [--name n] [--owner o] [--expires-at <ISO>] [--allowed-ips <cidr,…>] [--out <file>]
413
+ atlas keys rotate <id> [--overlap <seconds>] [--out <file>]
414
+ atlas keys data status|enable|rotate|rewrap|check|shred Customer-managed data key (shred needs the instance id typed or --confirm)
415
+ atlas keys op list|rotate OpenID provider signing keys
416
+ atlas keys revoke <id>
417
+ atlas keys revoke-leaked [<secret>] Revoke a leaked Atlas credential (no login needed)
418
+
419
+ New secrets come back sealed to a key pair made on this machine and are
420
+ written to a 0600 file (default .atlas/secret-key-<id>.env); --print-secret
421
+ prints them instead.`,
422
+ logout: `atlas logout — remove a stored profile credential
423
+
424
+ Usage: atlas logout [--profile <name>]`,
425
+ whoami: `atlas whoami — show the active profile and instance
426
+
427
+ Usage: atlas whoami [--profile <name>] [--json]`,
428
+ users: `atlas users — manage users
429
+
430
+ Usage:
431
+ atlas users list [--limit <n>] [--starting-after <cursor>] [--json]
432
+ atlas users get <user-id> [--json]
433
+ atlas users create --email <address> [--first-name <n>] [--last-name <n>] [--password <p>] [--json]
434
+ atlas users delete <user-id> [--json]`,
435
+ orgs: `atlas orgs — manage organizations
436
+
437
+ Usage:
438
+ atlas orgs list [--limit <n>] [--starting-after <cursor>] [--json]
439
+ atlas orgs get <org-id> [--json]
440
+ atlas orgs members <org-id> [--json]`,
441
+ 'api-keys': `atlas api-keys — manage end-user API keys
442
+
443
+ Usage:
444
+ atlas api-keys list [--subject-type <user|organization>] [--subject-id <id>] [--json]
445
+ atlas api-keys create --subject-type <user|organization> --subject-id <id> [--name <n>]
446
+ [--product <name>] [--force] [--print-secret] [--json]
447
+ atlas api-keys revoke <api-key-id> [--json]`,
448
+ webhooks: `atlas webhooks — manage webhook endpoints
449
+
450
+ Usage:
451
+ atlas webhooks list [--json]
452
+ atlas webhooks create --url <https-url> [--events a,b] [--product <name>] [--print-secret] [--json]
453
+ atlas webhooks upsert --url <https-url> [--events a,b] one endpoint per URL; idempotent
454
+ atlas webhooks update <id> [--url <u>] [--events a,b] [--active | --inactive]
455
+ atlas webhooks test <id> [--timeout 10s] [--no-wait] [--json]
456
+ atlas webhooks deliveries <id> [--status failed] [--event-type user.created]
457
+ [--since <iso|2h|7d>] [--until <iso>] [--limit <n>] [--starting-after <id>] [--json]
458
+ atlas webhooks redeliver <id> --delivery <delivery-id>
459
+ atlas webhooks redeliver <id> --since <iso|2h|7d> [--until <iso>] [--status failed]
460
+ atlas webhooks replay <id> [--since failing_since] re-send what a disabled endpoint missed
461
+ atlas webhooks rotate <id> [--now | --overlap <seconds>]
462
+ atlas webhooks reveal <id>
463
+
464
+ create, upsert, rotate and reveal write the signing secret to a 0600 file and
465
+ print only its path (--print-secret prints it instead; --force replaces a file).
466
+ test sends a signed webhook.test event and waits for your endpoint's answer;
467
+ the exit code is 1 when it did not answer 2xx. rotate --overlap keeps the old
468
+ secret signing alongside the new one for that many seconds.`,
469
+ listen: `atlas listen — forward live events to your local server
470
+
471
+ Usage:
472
+ atlas listen --forward-to <url> [--events user.*,session.created] [--count <n>] [--timeout <dur>] [--json]
473
+ atlas listen --no-forward [--events ...] only print events
474
+
475
+ Opens a signed event stream from your instance and POSTs each event to
476
+ --forward-to with the same atlas-id, atlas-timestamp and atlas-signature headers a
477
+ real delivery carries, then prints the status your server returned. No tunnel
478
+ and no second endpoint. The signing secret belongs to this session only and is
479
+ written to a 0600 file (webhook-listen.env): point your verifier at it. --events
480
+ takes names or patterns (user.*, *.created). The session lasts up to an hour;
481
+ Ctrl-C stops it. --count n exits after n events (exit 1 if any forward failed).`,
482
+ dev: `atlas dev — a local, in-memory Atlas
483
+
484
+ Usage:
485
+ atlas dev [--port 4400] [--seed seed.json] [--app http://localhost:3000]
486
+ atlas dev proxy --app <url> --api <fapi url> [--port 4401]
487
+
488
+ The emulator serves the Frontend API, a minimal Backend API, OIDC discovery and
489
+ a mail/SMS catcher at /__emulator/mail. Every code is 424242. With --app it also
490
+ forwards everything it does not own to your app, so both share one origin.
491
+ 'dev proxy' does the same against a real instance. No account, no network.`,
492
+ 'move-origin': `atlas move-origin — move an app to a new domain
493
+
494
+ Usage: atlas move-origin --from <origin> --to <origin> [--dry-run] [--yes] [--json]
495
+
496
+ Rewrites every field that points at the old origin: allowed origins, branding
497
+ links, OAuth client redirect and logout URIs, webhook URLs, the redirect-URL
498
+ allowlist and your Sign in with Atlas apps. Shows the before and after of every
499
+ field first and asks before writing (--yes skips the question). After a real
500
+ move it sends a signed test delivery to each webhook endpoint that moved.
501
+ --dry-run prints the diff and writes nothing; running it twice changes nothing.`,
502
+ fga: `atlas fga — author and test authorization models
503
+
504
+ Usage:
505
+ atlas fga test <suite.fga.yaml> [--store <id>] [--json]
506
+ atlas fga validate <model.fga|model.json>
507
+ atlas fga transform <model.fga|model.json> [--to dsl|json]
508
+ atlas fga export|materializations <store>
509
+ atlas fga import <store> --file tuples.json [--data '{"dry_run":true}']
510
+ atlas fga watch <store> [--since <revision>]
511
+ atlas fga materialize <store> --data '{"object_type":…,"relation":…,"user_type":…}' --yes
512
+ atlas fga rebuild|unmaterialize <store> <id> --yes
513
+
514
+ A test file follows the OpenFGA format: model (DSL text) or model_file, tuples or tuple_file,
515
+ and tests, each with check, list_objects and list_users assertions. The suite runs in memory on
516
+ the Atlas engine; no stored tuples are read or written. Exit code 1 when any test fails, so it
517
+ gates CI. Prints which model relations the assertions cover.`,
518
+ csp: `atlas csp — the Content Security Policy sources Atlas needs
519
+
520
+ Usage: atlas csp [--framework next|express|nginx] [--shape redirect|panel|button]
521
+ [--instance <id> | --product <name> [--instance-env <env>]] [--origin <url>]
522
+ [--manifest <url|file>]... [--no-atlas] [--json]
523
+
524
+ Reads your instance's embed manifest (including a custom Frontend API host) and
525
+ prints the script-src, connect-src, img-src and frame-src sources for your
526
+ setup, as a next.config.ts headers() block, a helmet() config or an nginx
527
+ add_header line. Read-only. --shape redirect (hosted sign-in) needs none.
528
+ With --origin, warns when that origin is not one of the instance's allowed origins.
529
+
530
+ Any provider that publishes the open embed-manifest format ({surfaces:{name:{csp:{directive:[sources]}}}},
531
+ usually at /.well-known/atlas-embed.json) can be merged in with --manifest <url|file>
532
+ (repeatable): a consent platform, chat widget, captcha or analytics vendor. --no-atlas
533
+ skips the Atlas instance and uses only the manifests you list.`,
534
+ 'partner-platforms': `atlas partner-platforms — this instance as a partner platform of another product
535
+
536
+ Usage:
537
+ atlas partner-platforms list [--json]
538
+ atlas partner-platforms get <partner>
539
+ atlas partner-platforms set <partner> [--platform-id <id>] [--jwks-url <url>] [--signature-header <name>]
540
+ [--allowed-source <site id>]... [--disable] [--json]
541
+ atlas partner-platforms registration <partner> [--json]
542
+ atlas partner-platforms token <partner> --token-file <path|-> [--rotate] [--base-url <partner api>]
543
+ atlas partner-platforms deliveries <partner> [--limit <n>] [--json]
544
+ atlas partner-platforms remove <partner> [--json]
545
+
546
+ <partner> is a preset (cookiemunch) or your own id (then --platform-id, --jwks-url
547
+ and --signature-header are required). "registration" prints what to send the
548
+ partner; the partner registers the receiver and hands back a partner token once.
549
+ "token" stores it encrypted (from a file, stdin with -, or ATLAS_PARTNER_TOKEN);
550
+ it is never printed or shown again.`,
551
+ admin: `atlas admin — Atlas staff: Sign in with Atlas accounts for other platforms' integration teams
552
+
553
+ Usage:
554
+ atlas admin id-accounts list [--team <team>] [--kind provisioned|developer] [--limit <n>] [--json]
555
+ atlas admin id-accounts provision --email <address> --team <team> (--app <id[,id…]> | --any-app)
556
+ [--days <n> | --expires-at <ISO date|epoch ms>] [--two-factor-exempt]
557
+ [--password-file <path|->] [--unverified] [--product <name>] [--print-secret] [--json]
558
+ atlas admin id-accounts extend <account id> [--days <n> | --expires-at <ISO date|epoch ms>] [--json]
559
+ atlas admin id-accounts rotate <account id> [--password-file <path|->] [--print-secret] [--json]
560
+ atlas admin id-accounts revoke <account id> [--json]
561
+ atlas admin developer-accounts provision --email <address> --team <team>
562
+ [--account-name <name>] [--application-name <name>]
563
+ [--days <n> | --expires-at <ISO date|epoch ms>] [--password-file <path|->] [--json]
564
+ atlas admin developer-accounts revoke <account id> [--json]
565
+
566
+ Common: [--profile <name>] [--staff-account <acct_…>] [--no-step-up]
567
+
568
+ Only owners and admins of Atlas's own account can use these. The credential is your
569
+ operator sign-in ('atlas login --device'), exchanged for a one-hour token on Atlas's
570
+ account (--staff-account, or ATLAS_STAFF_ACCOUNT_ID; remembered on the profile) with
571
+ the platform:atlas_id_apps:provision scope. Every call needs a sign-in verified with a
572
+ second factor; writes need one from the last 5 minutes. When Atlas asks for that, the
573
+ CLI starts the operator sign-in again and retries once (--no-step-up: just fail).
574
+
575
+ Accounts expire (30 days by default, at most a year; never "never"). An "id-account"
576
+ signs in only to the named apps (or any customer app with --any-app), never to the
577
+ Atlas dashboard, the CLI or account settings. A developer account is a dashboard
578
+ account owning a test application. Passwords come back sealed to a key made for the
579
+ run and are written to a 0600 file (staff-account-<id>.env under ~/.config/<product>/),
580
+ never printed unless you pass --print-secret.`,
581
+ 'id-accounts': `atlas id-accounts — test and review accounts for a Sign in with Atlas app
582
+
583
+ Usage:
584
+ atlas id-accounts provision --app <app id> --email <address> --label <purpose>
585
+ [--password-file <path|->] [--two-factor-exempt]
586
+ [--expires-at <ISO date|epoch ms>] [--unverified]
587
+ [--product <name>] [--print-secret] [--json]
588
+ atlas id-accounts list --app <app id> [--json]
589
+ atlas id-accounts rotate <account id> --app <app id> [--password-file <path|->]
590
+ [--product <name>] [--print-secret] [--json]
591
+ atlas id-accounts remove <account id> --app <app id> [--json]
592
+
593
+ For directory and app-store reviewer logins, end-to-end tests in CI, demos and
594
+ partner testing. The account is a real Atlas account that works with THIS app
595
+ only (never other apps, the Atlas dashboard or account settings). Needs a
596
+ platform key scoped platform:atlas_id_apps:provision, or atlas_id_apps:<app id>:provision
597
+ for one app (ATLAS_PLATFORM_KEY, or a psk_ profile from atlas login).
598
+
599
+ Without --password-file Atlas generates a strong password. Either way the password
600
+ is returned once and written to a 0600 file (id-account-<id>.env under
601
+ ~/.config/<product>/); it is never printed unless you pass --print-secret.
602
+ --two-factor-exempt lets the account skip the second factor for this app: anyone who
603
+ holds the password can sign in, so use it only for reviewer logins. Without
604
+ --expires-at the account never expires. "remove" deletes the account and ends its
605
+ sessions and grants.`,
606
+ integrations: `atlas integrations — identity integrations (presets and custom)
607
+
608
+ Usage:
609
+ atlas integrations list [--json]
610
+ atlas integrations get <id>
611
+ atlas integrations set <id> --audience <aud> [--name <n>] [--events-url <url|none>]
612
+ [--backchannel-logout-url <url|none>] [--oauth-client-id <client_id|none>]
613
+ [--disable] [--dry-run] [--json]
614
+ atlas integrations remove <id> [--json]
615
+ atlas integrations deliveries <id> [--trace <id>] [--json]
616
+
617
+ <id> is a preset (chatly, forumulate, cookiemunch, referalli) or your own id.
618
+ --oauth-client-id names the first-party OAuth client the service signs users in
619
+ with: while no --backchannel-logout-url is set, its backchannel_logout_uri is the
620
+ integration's back-channel receiver.`,
621
+ init: `atlas init — create or complete an app's setup, idempotently
622
+
623
+ Usage:
624
+ atlas init --product <name> [--domain <domain>] [--auth-host <host>]
625
+ [--instance-env development|production] [--name <app-name>]
626
+ [--strategies password,email_code,...]
627
+ [--email managed|development|none] [--email-from <address>]
628
+ [--email-provider resend|brevo --email-key-file <path|->]
629
+ [--client-redirect <url>]... [--webhook-url <url>]
630
+ [--backchannel <url>]
631
+ [--yes] [--force] [--rotate-secret] [--json]
632
+
633
+ Needs a platform key (ATLAS_PLATFORM_KEY, or a psk_ profile from atlas login).
634
+ Finds the app by name and environment, or creates it, then sets strategies, the
635
+ email sender, the custom domain (auth.<domain> unless --auth-host; prints the
636
+ CNAME), a first-party OAuth client and a webhook. Re-running only fills what is
637
+ missing. --backchannel <url> sets the client's back-channel logout URI (your
638
+ route that ends the app session when Atlas ends one; @atlasauth/backend has
639
+ ready-made handlers).
640
+
641
+ Email always goes through YOUR provider account (Atlas lends none):
642
+ managed Atlas sets your domain up on your Resend or Brevo account and
643
+ prints the DNS records.
644
+ development development instances only: your provider without a verified
645
+ domain (Resend's onboarding@resend.dev by default), capped.
646
+ The key is read from --email-key-file (a file holding the key or KEY=value; '-'
647
+ reads stdin). It is never taken from argv and never printed.
648
+
649
+ Every secret goes to ~/.config/<product>/<env>*.env (dir 0700, files 0600) and
650
+ is never printed. An existing file is never overwritten without --force.
651
+ --rotate-secret mints a new secret key when the app exists but its file is gone.
652
+ Public values and file paths are kept in ~/.config/<product>/atlas.json.`,
653
+ preflight: `atlas preflight — check an instance's setup (a CI / deploy gate)
654
+
655
+ Usage: atlas preflight [--instance <id> | --product <name> [--instance-env <env>]]
656
+ [--fail-on error|warning] [--json]
657
+
658
+ Prints every finding (severity, code, message, fix). Exits 1 when there is an
659
+ error, or with --fail-on warning also on a warning.`,
660
+ doctor: `atlas doctor — integration health (a CI / deploy gate)
661
+
662
+ Usage: atlas doctor [--instance <id> | --product <name> [--instance-env <env>]]
663
+ [--only <source,...>] [--no-probe] [--origin <url>] [--json]
664
+
665
+ Prints every check: setup findings, webhook receivers (with the failing hop:
666
+ dns, tls, http, challenge or auth), back-channel logout, the referral
667
+ platform, email, the consent manager and SDK versions. Exits 1 when a check
668
+ fails. --no-probe uses recorded deliveries only (no live calls).
669
+
670
+ --origin <url> adds the go-live checks for that app origin to the same report:
671
+ setup errors (preflight), login readiness (live), the path-mount verification
672
+ state on that host, and whether the consent declaration lists every cookie the
673
+ SDKs read (__session, __atlas_uat, __atlas_rt, __client).`,
674
+ golive: `atlas golive — take an instance live for one app origin
675
+
676
+ Usage: atlas golive --origin <https://app.example.com> [--dry-run] [--json]
677
+ [--instance <id> | --product <name> [--instance-env <env>]]
678
+
679
+ Runs, in order, and stops at the first failure with its fix:
680
+ domains verify the custom domain for the origin's host if it is not yet
681
+ issuer the origin's discovery document serves the instance's issuer
682
+ sign_in_with_atlas turned on when the instance declares it
683
+ webhooks each inactive endpoint: test delivery, then activate if it succeeded
684
+ hooks a configured but disabled hook: test call, then enable if it succeeded
685
+ preflight no error findings
686
+ login_readiness ready for the origin (live JWKS round-trip)
687
+ integrations referrals, privacy and identity integrations the instance declares
688
+
689
+ --dry-run sends every write with ?dry_run=true: the server validates it and
690
+ nothing changes. Exits 0 when every step passes, 1 on the first failure.`,
691
+ env: `atlas env — print deploy variables without secrets
692
+
693
+ Usage: atlas env [--product <name> [--instance-env <env>]] [--format dotenv|coolify|vercel|k8s] [--json]
694
+
695
+ Public values (publishable key, Frontend API, issuer, discovery and JWKS URLs,
696
+ OAuth client id) are printed as-is. Secrets are printed as references to their
697
+ 0600 files: *_FILE=<path> (dotenv), KEY=@<path> (coolify), or a vercel env add
698
+ command that pipes the value from the file (vercel). k8s prints a ConfigMap plus
699
+ kubectl create secret commands that read each file. Without --product it reads
700
+ the public values from the instance your key belongs to (no secret references).
701
+ Both ATLAS_API_BASE and ATLAS_API_URL are printed.`,
702
+ client: `atlas client — OAuth clients
703
+
704
+ Usage: atlas client rotate <client-id> [--now | --overlap <seconds>]
705
+ [--instance <id> | --product <name> [--instance-env <env>]]
706
+ [--print-secret]
707
+
708
+ Rotates the client secret and writes the new one straight to its 0600 file.
709
+ --now revokes the old secret immediately; --overlap keeps it working for that
710
+ many seconds. Prints when the old secret stops working.`,
711
+ sessions: `atlas sessions — manage sessions
712
+
713
+ Usage:
714
+ atlas sessions revoke <session-id> [--json]`,
715
+ config: `atlas config — config-as-code for an Atlas instance (the Auth0 deploy-cli peer)
716
+
717
+ Usage:
718
+ atlas config export [--dir <path>] [--format json|yaml]
719
+ atlas config import [--dir <path>] [--format json|yaml] [--dry-run] [--prune] [--force-hook]
720
+ atlas config plan [--dir <path>] [--format json|yaml] [--prune] [--check|--exit-code] [--json]
721
+ atlas config promote --from <profile> --to <profile> [--dry-run] [--prune] [--yes] [--format json|yaml]
722
+
723
+ export Read the instance's current config (instance/auth config, OAuth clients
724
+ and providers, SSO connections, resource servers, JWT templates, roles,
725
+ webhook endpoints, billing plans, redirect URLs, org settings schema,
726
+ email provider, before_user_create hook, branding,
727
+ notification and email templates, org policies) and write a deterministic
728
+ directory tree — one file per resource type, keys sorted, SECRETS OMITTED.
729
+
730
+ import Diff the directory against live config and apply creates/updates
731
+ idempotently. A resource type with no file is left untouched.
732
+ --dry-run print the plan and apply nothing
733
+ --prune also delete live resources absent from the config
734
+ --force-hook enable a before_user_create hook even if its test call fails
735
+ --dir config directory (default: ./atlas-config)
736
+ --format json (default) or yaml
737
+
738
+ plan A Terraform-style, read-only diff of the directory against the live
739
+ instance: field-by-field before -> after for updates. --check (alias
740
+ --exit-code) exits 2 when there is drift (for CI); --json for tooling.
741
+
742
+ promote Copy one environment's configuration to another (development ->
743
+ staging -> production). Each environment is a profile holding that
744
+ instance's secret key ('atlas login --profile staging'). Uses the same
745
+ plan/apply engine as import; --dry-run prints the plan only, and
746
+ applying to a live key needs --yes. Secrets never travel.
747
+
748
+ Secrets never live in config files. Inject a credential at import with a
749
+ \${ENV_VAR} placeholder in a file (e.g. a provider "client_secret": "\${GOOGLE_SECRET}"),
750
+ resolved from the environment or from --secrets-file <dotenv> (must be mode 0600).
751
+
752
+ See also 'atlas apply' and 'atlas plan' (one config file or a directory).`,
753
+ pages: `atlas pages — code-defined hosted-page templates
754
+
755
+ Usage:
756
+ atlas pages list [--json]
757
+ atlas pages push <file> --page <sign-in|sign-up|user-profile> [--promote] [--json]
758
+ atlas pages preview --page <page> [--json]
759
+ atlas pages promote --page <page> [--json]
760
+ atlas pages pull --page <page> [--draft]
761
+ atlas pages discard --page <page> --status <draft|live> [--json]
762
+
763
+ A template is a JSON file of components (heading, text, image, link, button_link,
764
+ list, divider, spacer, columns) in four regions around the sign-in card: header,
765
+ above_form, below_form and footer. There is no raw HTML, CSS or script; Atlas
766
+ validates the file and renders it. push saves a draft only; the live page does not
767
+ change until promote (or push --promote). preview prints a signed link, valid for an
768
+ hour, that shows the draft with a preview banner.`,
769
+ actions: `atlas actions — manage Actions (tenant code run in the auth pipeline)
770
+
771
+ Usage:
772
+ atlas actions list [--json]
773
+ atlas actions deploy <file> --trigger <trigger> [--name <n>] [--json]
774
+ atlas actions test <file> [--trigger <t>] [--json]
775
+ atlas actions logs <action-id> [--json]
776
+
777
+ atlas actions gallery [query] [--trigger <t>] [--json]
778
+ atlas actions show <slug> [--json]
779
+ atlas actions install <slug> [--name <n>] [--secrets-file <dotenv>] [--json]
780
+ atlas actions installs [--json]
781
+ atlas actions update <action-id> [--secrets-file <dotenv>] [--json]
782
+ atlas actions publish <template.json> [--draft] [--json]
783
+
784
+ deploy uploads the file's code verbatim as a new action (created, not yet bound).
785
+ test runs the file OFFLINE through the @atlasauth/actions harness — no network,
786
+ no real users — and exits non-zero if the action throws. logs explains where an
787
+ action's execution history is recorded (Atlas has no live log-stream endpoint).
788
+
789
+ The gallery: gallery lists first-party and community templates; install copies
790
+ one into the instance as a DISABLED, unbound action (secret values come from a
791
+ dotenv file, never argv); installs shows which actions came from the gallery
792
+ and whether a newer version exists; update moves one to the latest version.
793
+ publish reads a manifest {slug, name, author_name, summary, description,
794
+ category, tags, trigger, license, version, code_file, secrets, changelog},
795
+ creates the template or adds the version, and submits it for review.`,
796
+ };
797
+ /** Help for the table-driven resource commands, generated from their route tables. */
798
+ function resHelp(name, blurb, ops) {
799
+ const lines = Object.entries(ops).map(([sub, o]) => {
800
+ const args = (o.p.match(/\{\}/g) ?? []).map(() => '<id>').join(' ');
801
+ return ` atlas ${name} ${`${sub} ${args}`.trim().padEnd(26)} ${o.m} ${o.p.replace(/\{\}/g, '…')}${o.f?.includes('y') ? ' (--yes)' : ''}`;
802
+ });
803
+ return `atlas ${name} — ${blurb}
804
+
805
+ Usage:
806
+ ${lines.join('\n')}
807
+
808
+ A request body is JSON from --data '<json>' or --file <path>. Anything that changes or removes
809
+ data needs --yes. --json prints raw JSON. Secrets the API returns once are shown once; store them
810
+ right away.`;
811
+ }
812
+ Object.assign(exports.COMMAND_HELP, {
813
+ apply: `atlas apply — make the instance match a config file (plan, confirm, apply)
814
+
815
+ Usage:
816
+ atlas apply [<file|dir>] [--yes] [--prune] [--force-hook] [--secrets-file <dotenv>] [--out <dir>] [--format json|yaml]
817
+ atlas apply [<file|dir>] --check
818
+
819
+ <file> One JSON or YAML document keyed by resource type, for example:
820
+ instance: { auth_config: {...}, allowed_origins: [...] }
821
+ redirect_urls: [ { url: ... } ]
822
+ oauth_clients: [ { name: ..., redirect_uris: [...] } ]
823
+ webhook_endpoints: [ { url: ..., enabled_events: [...], active: false } ]
824
+ email_provider: { transport: brevo, from_address: ..., config: { api_key: "\${BREVO_KEY}" } }
825
+ hooks: { before_user_create: { url: ..., timeout_ms, fail_closed, enabled } }
826
+ branding: { applicationName: ..., logoUrl: ... }
827
+ or a directory from 'atlas config export' (default ./atlas-config).
828
+
829
+ Shows the plan, asks before applying (--yes skips the question; needed without a
830
+ terminal), then applies creates and updates in a fixed order: email_provider, instance,
831
+ org_settings_schema, redirect_urls, oauth_clients, hooks, oauth_providers,
832
+ custom_oauth_providers, resource_servers, jwt_templates, permissions, roles,
833
+ webhook_endpoints, sso_connections, billing_plans, notification_templates,
834
+ email_templates, organization_policies, branding. Re-running is a no-op.
835
+ Without --prune the plan compares only the keys the file sets.
836
+ --check plan only; exit 2 when anything would change (CI)
837
+ --prune also delete live resources missing from the config, and compare every live key
838
+ --force-hook enable the before_user_create hook even when its test call fails (409)
839
+ --secrets-file dotenv file for \${VAR} placeholders; refused unless mode 0600
840
+ --out <dir> where a new client or webhook secret is saved (mode 0600;
841
+ default ~/.config/atlas). It is shown only once.
842
+ Applying stops if any \${VAR} is unresolved. Provider and hook secrets come only from
843
+ \${VAR} placeholders (--secrets-file) and are shown as "(secret set)", never echoed.`,
844
+ plan: `atlas plan — read-only drift diff of a config file or directory
845
+
846
+ Usage:
847
+ atlas plan [<file|dir>] [--check|--exit-code] [--json] [--prune] [--secrets-file <dotenv>]
848
+
849
+ The same diff as 'atlas config plan', also for a single config file (see 'atlas
850
+ apply --help'). --check exits 2 when there is drift; nothing is ever written.`,
851
+ workflows: resHelp('workflows', 'workflow runs, templates and approvals', resources_1.WORKFLOWS),
852
+ chat: resHelp('chat', 'chat approval integrations (test a bot, list user links)', resources_1.CHAT),
853
+ 'saml-idp': resHelp('saml-idp', 'SAML identity provider service providers (import-metadata takes --data with url, entity_id, mdq_base_url)', resources_1.SAML_IDP),
854
+ provisioning: resHelp('provisioning', 'outbound provisioning connectors, preview, logs and the failure inbox', resources_1.PROVISIONING),
855
+ catalog: resHelp('catalog', 'app catalog requests', resources_1.CATALOG),
856
+ cloud: resHelp('cloud', 'cloud access portal; login prints the https launch URL for a target', resources_1.CLOUD),
857
+ 'device-sso': resHelp('device-sso', 'native OS SSO device registrations', resources_1.DEVICE_SSO),
858
+ 'connection-actions': resHelp('connection-actions', 'actions on a connected provider account', resources_1.CONNECTION_ACTIONS),
859
+ triggers: resHelp('triggers', 'connection triggers', resources_1.TRIGGERS),
860
+ agents: resHelp('agents', 'agent lifecycle, activity and access reviews', resources_1.AGENTS),
861
+ telemetry: resHelp('telemetry', 'OTLP export of gateway and relay calls', resources_1.TELEMETRY),
862
+ pdp: resHelp('pdp', 'local decision points', resources_1.PDP),
863
+ billing: resHelp('billing', 'discount codes and account credit', resources_1.BILLING),
864
+ audit: resHelp('audit', 'audit log retention (shortening needs confirm_deletion in --data)', resources_1.AUDIT),
865
+ federation: resHelp('federation', 'OpenID federation', resources_1.FEDERATION),
866
+ vc: resHelp('vc', 'deferred verifiable credential issuance', resources_1.VC),
867
+ });
868
+ //# sourceMappingURL=help.js.map