@atlasauth/cli 0.25.0 → 0.26.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.
- package/CHANGELOG.md +37 -0
- package/README.md +26 -5
- package/dist/args.d.ts +631 -0
- package/dist/args.js +304 -0
- package/dist/args.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/actions-gallery.d.ts +8 -0
- package/dist/commands/actions-gallery.js +197 -0
- package/dist/commands/actions-gallery.js.map +1 -0
- package/dist/commands/actions.d.ts +13 -0
- package/dist/commands/actions.js +135 -0
- package/dist/commands/actions.js.map +1 -0
- package/dist/commands/admin.d.ts +49 -0
- package/dist/commands/admin.js +353 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/api-keys.d.ts +4 -0
- package/dist/commands/api-keys.js +96 -0
- package/dist/commands/api-keys.js.map +1 -0
- package/dist/commands/auth.d.ts +25 -0
- package/dist/commands/auth.js +102 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/config.d.ts +128 -0
- package/dist/commands/config.js +1822 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/csp.d.ts +32 -0
- package/dist/commands/csp.js +180 -0
- package/dist/commands/csp.js.map +1 -0
- package/dist/commands/dev.d.ts +8 -0
- package/dist/commands/dev.js +84 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/doctor-scan.d.ts +27 -0
- package/dist/commands/doctor-scan.js +221 -0
- package/dist/commands/doctor-scan.js.map +1 -0
- package/dist/commands/fga.d.ts +10 -0
- package/dist/commands/fga.js +146 -0
- package/dist/commands/fga.js.map +1 -0
- package/dist/commands/golive.d.ts +40 -0
- package/dist/commands/golive.js +297 -0
- package/dist/commands/golive.js.map +1 -0
- package/dist/commands/id-accounts.d.ts +13 -0
- package/dist/commands/id-accounts.js +195 -0
- package/dist/commands/id-accounts.js.map +1 -0
- package/dist/commands/import-better-auth.d.ts +3 -0
- package/dist/commands/import-better-auth.js +164 -0
- package/dist/commands/import-better-auth.js.map +1 -0
- package/dist/commands/import-jsonl.d.ts +50 -0
- package/dist/commands/import-jsonl.js +252 -0
- package/dist/commands/import-jsonl.js.map +1 -0
- package/dist/commands/import.d.ts +3 -0
- package/dist/commands/import.js +133 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/info.d.ts +75 -0
- package/dist/commands/info.js +362 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init-next.d.ts +4 -0
- package/dist/commands/init-next.js +86 -0
- package/dist/commands/init-next.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.js +525 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/integrations.d.ts +8 -0
- package/dist/commands/integrations.js +112 -0
- package/dist/commands/integrations.js.map +1 -0
- package/dist/commands/listen.d.ts +17 -0
- package/dist/commands/listen.js +223 -0
- package/dist/commands/listen.js.map +1 -0
- package/dist/commands/mcp.d.ts +38 -0
- package/dist/commands/mcp.js +111 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/migrate.d.ts +16 -0
- package/dist/commands/migrate.js +114 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/move-origin.d.ts +11 -0
- package/dist/commands/move-origin.js +95 -0
- package/dist/commands/move-origin.js.map +1 -0
- package/dist/commands/operator.d.ts +18 -0
- package/dist/commands/operator.js +238 -0
- package/dist/commands/operator.js.map +1 -0
- package/dist/commands/orgs.d.ts +4 -0
- package/dist/commands/orgs.js +72 -0
- package/dist/commands/orgs.js.map +1 -0
- package/dist/commands/pages.d.ts +14 -0
- package/dist/commands/pages.js +113 -0
- package/dist/commands/pages.js.map +1 -0
- package/dist/commands/partner-platforms.d.ts +10 -0
- package/dist/commands/partner-platforms.js +157 -0
- package/dist/commands/partner-platforms.js.map +1 -0
- package/dist/commands/project-commands.d.ts +38 -0
- package/dist/commands/project-commands.js +431 -0
- package/dist/commands/project-commands.js.map +1 -0
- package/dist/commands/referrals.d.ts +69 -0
- package/dist/commands/referrals.js +1056 -0
- package/dist/commands/referrals.js.map +1 -0
- package/dist/commands/resources.d.ts +44 -0
- package/dist/commands/resources.js +234 -0
- package/dist/commands/resources.js.map +1 -0
- package/dist/commands/sessions.d.ts +4 -0
- package/dist/commands/sessions.js +28 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/setup-guide.d.ts +3 -0
- package/dist/commands/setup-guide.js +38 -0
- package/dist/commands/setup-guide.js.map +1 -0
- package/dist/commands/shared.d.ts +38 -0
- package/dist/commands/shared.js +69 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.js +77 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/users.d.ts +4 -0
- package/dist/commands/users.js +111 -0
- package/dist/commands/users.js.map +1 -0
- package/dist/commands/webhooks.d.ts +34 -0
- package/dist/commands/webhooks.js +301 -0
- package/dist/commands/webhooks.js.map +1 -0
- package/dist/config-http.d.ts +38 -0
- package/dist/config-http.js +70 -0
- package/dist/config-http.js.map +1 -0
- package/dist/config.d.ts +64 -0
- package/dist/config.js +69 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +89 -0
- package/dist/context.js +32 -0
- package/dist/context.js.map +1 -0
- package/dist/define-config.d.ts +9 -0
- package/dist/define-config.js +8 -0
- package/dist/define-config.js.map +1 -0
- package/dist/errors.d.ts +15 -0
- package/dist/errors.js +25 -0
- package/dist/errors.js.map +1 -0
- package/dist/help.d.ts +8 -0
- package/dist/help.js +926 -0
- package/dist/help.js.map +1 -0
- package/dist/import/csv.d.ts +6 -0
- package/dist/import/csv.js +63 -0
- package/dist/import/csv.js.map +1 -0
- package/dist/import/vendors.d.ts +57 -0
- package/dist/import/vendors.js +568 -0
- package/dist/import/vendors.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/io.d.ts +21 -0
- package/dist/io.js +28 -0
- package/dist/io.js.map +1 -0
- package/dist/migrate/appwrite/plugin.d.ts +2 -0
- package/dist/migrate/appwrite/plugin.js +103 -0
- package/dist/migrate/appwrite/plugin.js.map +1 -0
- package/dist/migrate/auth0/plugin.d.ts +2 -0
- package/dist/migrate/auth0/plugin.js +126 -0
- package/dist/migrate/auth0/plugin.js.map +1 -0
- package/dist/migrate/authentik/plugin.d.ts +2 -0
- package/dist/migrate/authentik/plugin.js +135 -0
- package/dist/migrate/authentik/plugin.js.map +1 -0
- package/dist/migrate/azure-ad-b2c/plugin.d.ts +8 -0
- package/dist/migrate/azure-ad-b2c/plugin.js +165 -0
- package/dist/migrate/azure-ad-b2c/plugin.js.map +1 -0
- package/dist/migrate/better-auth/integration.d.ts +59 -0
- package/dist/migrate/better-auth/integration.js +81 -0
- package/dist/migrate/better-auth/integration.js.map +1 -0
- package/dist/migrate/better-auth/orchestrator.d.ts +43 -0
- package/dist/migrate/better-auth/orchestrator.js +525 -0
- package/dist/migrate/better-auth/orchestrator.js.map +1 -0
- package/dist/migrate/better-auth/output.d.ts +20 -0
- package/dist/migrate/better-auth/output.js +146 -0
- package/dist/migrate/better-auth/output.js.map +1 -0
- package/dist/migrate/better-auth/translate.d.ts +77 -0
- package/dist/migrate/better-auth/translate.js +1989 -0
- package/dist/migrate/better-auth/translate.js.map +1 -0
- package/dist/migrate/clerk/plugin.d.ts +2 -0
- package/dist/migrate/clerk/plugin.js +76 -0
- package/dist/migrate/clerk/plugin.js.map +1 -0
- package/dist/migrate/cognito/plugin.d.ts +5 -0
- package/dist/migrate/cognito/plugin.js +170 -0
- package/dist/migrate/cognito/plugin.js.map +1 -0
- package/dist/migrate/corbado/plugin.d.ts +2 -0
- package/dist/migrate/corbado/plugin.js +63 -0
- package/dist/migrate/corbado/plugin.js.map +1 -0
- package/dist/migrate/descope/plugin.d.ts +2 -0
- package/dist/migrate/descope/plugin.js +83 -0
- package/dist/migrate/descope/plugin.js.map +1 -0
- package/dist/migrate/entra-external-id/plugin.d.ts +8 -0
- package/dist/migrate/entra-external-id/plugin.js +12 -0
- package/dist/migrate/entra-external-id/plugin.js.map +1 -0
- package/dist/migrate/export/appwrite-config.d.ts +28 -0
- package/dist/migrate/export/appwrite-config.js +170 -0
- package/dist/migrate/export/appwrite-config.js.map +1 -0
- package/dist/migrate/export/appwrite.d.ts +51 -0
- package/dist/migrate/export/appwrite.js +288 -0
- package/dist/migrate/export/appwrite.js.map +1 -0
- package/dist/migrate/export/auth0-config.d.ts +29 -0
- package/dist/migrate/export/auth0-config.js +249 -0
- package/dist/migrate/export/auth0-config.js.map +1 -0
- package/dist/migrate/export/auth0.d.ts +62 -0
- package/dist/migrate/export/auth0.js +575 -0
- package/dist/migrate/export/auth0.js.map +1 -0
- package/dist/migrate/export/authentik-config.d.ts +45 -0
- package/dist/migrate/export/authentik-config.js +357 -0
- package/dist/migrate/export/authentik-config.js.map +1 -0
- package/dist/migrate/export/authentik.d.ts +110 -0
- package/dist/migrate/export/authentik.js +838 -0
- package/dist/migrate/export/authentik.js.map +1 -0
- package/dist/migrate/export/azure-config.d.ts +58 -0
- package/dist/migrate/export/azure-config.js +344 -0
- package/dist/migrate/export/azure-config.js.map +1 -0
- package/dist/migrate/export/azure.d.ts +85 -0
- package/dist/migrate/export/azure.js +373 -0
- package/dist/migrate/export/azure.js.map +1 -0
- package/dist/migrate/export/clerk-config.d.ts +26 -0
- package/dist/migrate/export/clerk-config.js +227 -0
- package/dist/migrate/export/clerk-config.js.map +1 -0
- package/dist/migrate/export/clerk.d.ts +46 -0
- package/dist/migrate/export/clerk.js +486 -0
- package/dist/migrate/export/clerk.js.map +1 -0
- package/dist/migrate/export/cognito-config.d.ts +25 -0
- package/dist/migrate/export/cognito-config.js +273 -0
- package/dist/migrate/export/cognito-config.js.map +1 -0
- package/dist/migrate/export/cognito.d.ts +103 -0
- package/dist/migrate/export/cognito.js +441 -0
- package/dist/migrate/export/cognito.js.map +1 -0
- package/dist/migrate/export/corbado-config.d.ts +20 -0
- package/dist/migrate/export/corbado-config.js +63 -0
- package/dist/migrate/export/corbado-config.js.map +1 -0
- package/dist/migrate/export/corbado.d.ts +37 -0
- package/dist/migrate/export/corbado.js +132 -0
- package/dist/migrate/export/corbado.js.map +1 -0
- package/dist/migrate/export/descope.d.ts +35 -0
- package/dist/migrate/export/descope.js +208 -0
- package/dist/migrate/export/descope.js.map +1 -0
- package/dist/migrate/export/fake-vendor.test-helper.d.ts +27 -0
- package/dist/migrate/export/fake-vendor.test-helper.js +41 -0
- package/dist/migrate/export/fake-vendor.test-helper.js.map +1 -0
- package/dist/migrate/export/firebase-config.d.ts +24 -0
- package/dist/migrate/export/firebase-config.js +215 -0
- package/dist/migrate/export/firebase-config.js.map +1 -0
- package/dist/migrate/export/firebase.d.ts +102 -0
- package/dist/migrate/export/firebase.js +464 -0
- package/dist/migrate/export/firebase.js.map +1 -0
- package/dist/migrate/export/frameworks/app-users.d.ts +42 -0
- package/dist/migrate/export/frameworks/app-users.js +161 -0
- package/dist/migrate/export/frameworks/app-users.js.map +1 -0
- package/dist/migrate/export/frameworks/authjs.d.ts +41 -0
- package/dist/migrate/export/frameworks/authjs.js +146 -0
- package/dist/migrate/export/frameworks/authjs.js.map +1 -0
- package/dist/migrate/export/frameworks/devise.d.ts +39 -0
- package/dist/migrate/export/frameworks/devise.js +218 -0
- package/dist/migrate/export/frameworks/devise.js.map +1 -0
- package/dist/migrate/export/frameworks/django.d.ts +45 -0
- package/dist/migrate/export/frameworks/django.js +315 -0
- package/dist/migrate/export/frameworks/django.js.map +1 -0
- package/dist/migrate/export/frameworks/lucia.d.ts +42 -0
- package/dist/migrate/export/frameworks/lucia.js +263 -0
- package/dist/migrate/export/frameworks/lucia.js.map +1 -0
- package/dist/migrate/export/frameworks/tables.d.ts +90 -0
- package/dist/migrate/export/frameworks/tables.js +325 -0
- package/dist/migrate/export/frameworks/tables.js.map +1 -0
- package/dist/migrate/export/frameworks/webauthn.d.ts +25 -0
- package/dist/migrate/export/frameworks/webauthn.js +130 -0
- package/dist/migrate/export/frameworks/webauthn.js.map +1 -0
- package/dist/migrate/export/frontegg-config.d.ts +29 -0
- package/dist/migrate/export/frontegg-config.js +238 -0
- package/dist/migrate/export/frontegg-config.js.map +1 -0
- package/dist/migrate/export/frontegg.d.ts +67 -0
- package/dist/migrate/export/frontegg.js +410 -0
- package/dist/migrate/export/frontegg.js.map +1 -0
- package/dist/migrate/export/fusionauth-config.d.ts +26 -0
- package/dist/migrate/export/fusionauth-config.js +226 -0
- package/dist/migrate/export/fusionauth-config.js.map +1 -0
- package/dist/migrate/export/fusionauth.d.ts +99 -0
- package/dist/migrate/export/fusionauth.js +642 -0
- package/dist/migrate/export/fusionauth.js.map +1 -0
- package/dist/migrate/export/hanko-config.d.ts +27 -0
- package/dist/migrate/export/hanko-config.js +265 -0
- package/dist/migrate/export/hanko-config.js.map +1 -0
- package/dist/migrate/export/hanko.d.ts +52 -0
- package/dist/migrate/export/hanko.js +605 -0
- package/dist/migrate/export/hanko.js.map +1 -0
- package/dist/migrate/export/keycloak-config.d.ts +19 -0
- package/dist/migrate/export/keycloak-config.js +219 -0
- package/dist/migrate/export/keycloak-config.js.map +1 -0
- package/dist/migrate/export/keycloak.d.ts +155 -0
- package/dist/migrate/export/keycloak.js +878 -0
- package/dist/migrate/export/keycloak.js.map +1 -0
- package/dist/migrate/export/kinde-descope-config.d.ts +38 -0
- package/dist/migrate/export/kinde-descope-config.js +172 -0
- package/dist/migrate/export/kinde-descope-config.js.map +1 -0
- package/dist/migrate/export/kinde.d.ts +57 -0
- package/dist/migrate/export/kinde.js +333 -0
- package/dist/migrate/export/kinde.js.map +1 -0
- package/dist/migrate/export/ldap.d.ts +53 -0
- package/dist/migrate/export/ldap.js +277 -0
- package/dist/migrate/export/ldap.js.map +1 -0
- package/dist/migrate/export/logto-config.d.ts +27 -0
- package/dist/migrate/export/logto-config.js +264 -0
- package/dist/migrate/export/logto-config.js.map +1 -0
- package/dist/migrate/export/logto.d.ts +150 -0
- package/dist/migrate/export/logto.js +809 -0
- package/dist/migrate/export/logto.js.map +1 -0
- package/dist/migrate/export/magic-config.d.ts +14 -0
- package/dist/migrate/export/magic-config.js +28 -0
- package/dist/migrate/export/magic-config.js.map +1 -0
- package/dist/migrate/export/magic.d.ts +31 -0
- package/dist/migrate/export/magic.js +93 -0
- package/dist/migrate/export/magic.js.map +1 -0
- package/dist/migrate/export/mini-yaml.d.ts +19 -0
- package/dist/migrate/export/mini-yaml.js +581 -0
- package/dist/migrate/export/mini-yaml.js.map +1 -0
- package/dist/migrate/export/nhost-config.d.ts +26 -0
- package/dist/migrate/export/nhost-config.js +360 -0
- package/dist/migrate/export/nhost-config.js.map +1 -0
- package/dist/migrate/export/nhost.d.ts +64 -0
- package/dist/migrate/export/nhost.js +304 -0
- package/dist/migrate/export/nhost.js.map +1 -0
- package/dist/migrate/export/okta-config.d.ts +30 -0
- package/dist/migrate/export/okta-config.js +205 -0
- package/dist/migrate/export/okta-config.js.map +1 -0
- package/dist/migrate/export/okta.d.ts +43 -0
- package/dist/migrate/export/okta.js +337 -0
- package/dist/migrate/export/okta.js.map +1 -0
- package/dist/migrate/export/onelogin.d.ts +22 -0
- package/dist/migrate/export/onelogin.js +123 -0
- package/dist/migrate/export/onelogin.js.map +1 -0
- package/dist/migrate/export/ory-config.d.ts +58 -0
- package/dist/migrate/export/ory-config.js +451 -0
- package/dist/migrate/export/ory-config.js.map +1 -0
- package/dist/migrate/export/ory.d.ts +81 -0
- package/dist/migrate/export/ory.js +555 -0
- package/dist/migrate/export/ory.js.map +1 -0
- package/dist/migrate/export/password-detect.d.ts +29 -0
- package/dist/migrate/export/password-detect.js +81 -0
- package/dist/migrate/export/password-detect.js.map +1 -0
- package/dist/migrate/export/pingone.d.ts +36 -0
- package/dist/migrate/export/pingone.js +218 -0
- package/dist/migrate/export/pingone.js.map +1 -0
- package/dist/migrate/export/plugin-kit.d.ts +25 -0
- package/dist/migrate/export/plugin-kit.js +82 -0
- package/dist/migrate/export/plugin-kit.js.map +1 -0
- package/dist/migrate/export/pocketbase-config.d.ts +28 -0
- package/dist/migrate/export/pocketbase-config.js +180 -0
- package/dist/migrate/export/pocketbase-config.js.map +1 -0
- package/dist/migrate/export/pocketbase.d.ts +52 -0
- package/dist/migrate/export/pocketbase.js +243 -0
- package/dist/migrate/export/pocketbase.js.map +1 -0
- package/dist/migrate/export/project-files.d.ts +15 -0
- package/dist/migrate/export/project-files.js +43 -0
- package/dist/migrate/export/project-files.js.map +1 -0
- package/dist/migrate/export/propelauth-config.d.ts +18 -0
- package/dist/migrate/export/propelauth-config.js +58 -0
- package/dist/migrate/export/propelauth-config.js.map +1 -0
- package/dist/migrate/export/propelauth-harness.test-helper.d.ts +62 -0
- package/dist/migrate/export/propelauth-harness.test-helper.js +109 -0
- package/dist/migrate/export/propelauth-harness.test-helper.js.map +1 -0
- package/dist/migrate/export/propelauth.d.ts +48 -0
- package/dist/migrate/export/propelauth.js +255 -0
- package/dist/migrate/export/propelauth.js.map +1 -0
- package/dist/migrate/export/record-set.d.ts +44 -0
- package/dist/migrate/export/record-set.js +98 -0
- package/dist/migrate/export/record-set.js.map +1 -0
- package/dist/migrate/export/source-lines.d.ts +17 -0
- package/dist/migrate/export/source-lines.js +43 -0
- package/dist/migrate/export/source-lines.js.map +1 -0
- package/dist/migrate/export/sso-metadata.d.ts +47 -0
- package/dist/migrate/export/sso-metadata.js +180 -0
- package/dist/migrate/export/sso-metadata.js.map +1 -0
- package/dist/migrate/export/stytch-config.d.ts +22 -0
- package/dist/migrate/export/stytch-config.js +102 -0
- package/dist/migrate/export/stytch-config.js.map +1 -0
- package/dist/migrate/export/stytch.d.ts +68 -0
- package/dist/migrate/export/stytch.js +510 -0
- package/dist/migrate/export/stytch.js.map +1 -0
- package/dist/migrate/export/supabase-config.d.ts +48 -0
- package/dist/migrate/export/supabase-config.js +408 -0
- package/dist/migrate/export/supabase-config.js.map +1 -0
- package/dist/migrate/export/supabase.d.ts +86 -0
- package/dist/migrate/export/supabase.js +524 -0
- package/dist/migrate/export/supabase.js.map +1 -0
- package/dist/migrate/export/supertokens-config.d.ts +20 -0
- package/dist/migrate/export/supertokens-config.js +150 -0
- package/dist/migrate/export/supertokens-config.js.map +1 -0
- package/dist/migrate/export/supertokens.d.ts +125 -0
- package/dist/migrate/export/supertokens.js +464 -0
- package/dist/migrate/export/supertokens.js.map +1 -0
- package/dist/migrate/export/table.d.ts +35 -0
- package/dist/migrate/export/table.js +248 -0
- package/dist/migrate/export/table.js.map +1 -0
- package/dist/migrate/export/translate-kit.d.ts +46 -0
- package/dist/migrate/export/translate-kit.js +148 -0
- package/dist/migrate/export/translate-kit.js.map +1 -0
- package/dist/migrate/export/userfront-config.d.ts +15 -0
- package/dist/migrate/export/userfront-config.js +49 -0
- package/dist/migrate/export/userfront-config.js.map +1 -0
- package/dist/migrate/export/userfront.d.ts +38 -0
- package/dist/migrate/export/userfront.js +189 -0
- package/dist/migrate/export/userfront.js.map +1 -0
- package/dist/migrate/export/vendor-http.d.ts +46 -0
- package/dist/migrate/export/vendor-http.js +138 -0
- package/dist/migrate/export/vendor-http.js.map +1 -0
- package/dist/migrate/export/workos-config.d.ts +23 -0
- package/dist/migrate/export/workos-config.js +125 -0
- package/dist/migrate/export/workos-config.js.map +1 -0
- package/dist/migrate/export/workos.d.ts +46 -0
- package/dist/migrate/export/workos.js +272 -0
- package/dist/migrate/export/workos.js.map +1 -0
- package/dist/migrate/export/zip.d.ts +8 -0
- package/dist/migrate/export/zip.js +66 -0
- package/dist/migrate/export/zip.js.map +1 -0
- package/dist/migrate/export/zitadel-config.d.ts +37 -0
- package/dist/migrate/export/zitadel-config.js +279 -0
- package/dist/migrate/export/zitadel-config.js.map +1 -0
- package/dist/migrate/export/zitadel.d.ts +82 -0
- package/dist/migrate/export/zitadel.js +447 -0
- package/dist/migrate/export/zitadel.js.map +1 -0
- package/dist/migrate/firebase/plugin.d.ts +2 -0
- package/dist/migrate/firebase/plugin.js +152 -0
- package/dist/migrate/firebase/plugin.js.map +1 -0
- package/dist/migrate/framework/builtins.d.ts +2 -0
- package/dist/migrate/framework/builtins.js +52 -0
- package/dist/migrate/framework/builtins.js.map +1 -0
- package/dist/migrate/framework/commands.d.ts +20 -0
- package/dist/migrate/framework/commands.js +58 -0
- package/dist/migrate/framework/commands.js.map +1 -0
- package/dist/migrate/framework/custom.d.ts +12 -0
- package/dist/migrate/framework/custom.js +96 -0
- package/dist/migrate/framework/custom.js.map +1 -0
- package/dist/migrate/framework/orchestrator.d.ts +113 -0
- package/dist/migrate/framework/orchestrator.js +532 -0
- package/dist/migrate/framework/orchestrator.js.map +1 -0
- package/dist/migrate/framework/plugin.d.ts +167 -0
- package/dist/migrate/framework/plugin.js +3 -0
- package/dist/migrate/framework/plugin.js.map +1 -0
- package/dist/migrate/framework/registry.d.ts +11 -0
- package/dist/migrate/framework/registry.js +44 -0
- package/dist/migrate/framework/registry.js.map +1 -0
- package/dist/migrate/framework/report.d.ts +17 -0
- package/dist/migrate/framework/report.js +103 -0
- package/dist/migrate/framework/report.js.map +1 -0
- package/dist/migrate/frameworks/plugins.d.ts +29 -0
- package/dist/migrate/frameworks/plugins.js +402 -0
- package/dist/migrate/frameworks/plugins.js.map +1 -0
- package/dist/migrate/frameworks/report.d.ts +92 -0
- package/dist/migrate/frameworks/report.js +207 -0
- package/dist/migrate/frameworks/report.js.map +1 -0
- package/dist/migrate/frameworks/translate-js.d.ts +5 -0
- package/dist/migrate/frameworks/translate-js.js +503 -0
- package/dist/migrate/frameworks/translate-js.js.map +1 -0
- package/dist/migrate/frameworks/translate-rails-django.d.ts +3 -0
- package/dist/migrate/frameworks/translate-rails-django.js +1391 -0
- package/dist/migrate/frameworks/translate-rails-django.js.map +1 -0
- package/dist/migrate/frontegg/plugin.d.ts +2 -0
- package/dist/migrate/frontegg/plugin.js +78 -0
- package/dist/migrate/frontegg/plugin.js.map +1 -0
- package/dist/migrate/fusionauth/plugin.d.ts +2 -0
- package/dist/migrate/fusionauth/plugin.js +109 -0
- package/dist/migrate/fusionauth/plugin.js.map +1 -0
- package/dist/migrate/hanko/plugin.d.ts +2 -0
- package/dist/migrate/hanko/plugin.js +100 -0
- package/dist/migrate/hanko/plugin.js.map +1 -0
- package/dist/migrate/keycloak/plugin.d.ts +2 -0
- package/dist/migrate/keycloak/plugin.js +148 -0
- package/dist/migrate/keycloak/plugin.js.map +1 -0
- package/dist/migrate/kinde/plugin.d.ts +2 -0
- package/dist/migrate/kinde/plugin.js +105 -0
- package/dist/migrate/kinde/plugin.js.map +1 -0
- package/dist/migrate/ldap/plugin.d.ts +2 -0
- package/dist/migrate/ldap/plugin.js +73 -0
- package/dist/migrate/ldap/plugin.js.map +1 -0
- package/dist/migrate/logto/plugin.d.ts +2 -0
- package/dist/migrate/logto/plugin.js +131 -0
- package/dist/migrate/logto/plugin.js.map +1 -0
- package/dist/migrate/magic/plugin.d.ts +2 -0
- package/dist/migrate/magic/plugin.js +56 -0
- package/dist/migrate/magic/plugin.js.map +1 -0
- package/dist/migrate/nhost/plugin.d.ts +2 -0
- package/dist/migrate/nhost/plugin.js +115 -0
- package/dist/migrate/nhost/plugin.js.map +1 -0
- package/dist/migrate/oidc/plugin.d.ts +2 -0
- package/dist/migrate/oidc/plugin.js +73 -0
- package/dist/migrate/oidc/plugin.js.map +1 -0
- package/dist/migrate/okta/plugin.d.ts +2 -0
- package/dist/migrate/okta/plugin.js +105 -0
- package/dist/migrate/okta/plugin.js.map +1 -0
- package/dist/migrate/onelogin/plugin.d.ts +2 -0
- package/dist/migrate/onelogin/plugin.js +61 -0
- package/dist/migrate/onelogin/plugin.js.map +1 -0
- package/dist/migrate/ory/plugin.d.ts +2 -0
- package/dist/migrate/ory/plugin.js +186 -0
- package/dist/migrate/ory/plugin.js.map +1 -0
- package/dist/migrate/ping-identity/plugin.d.ts +2 -0
- package/dist/migrate/ping-identity/plugin.js +100 -0
- package/dist/migrate/ping-identity/plugin.js.map +1 -0
- package/dist/migrate/pocketbase/plugin.d.ts +2 -0
- package/dist/migrate/pocketbase/plugin.js +99 -0
- package/dist/migrate/pocketbase/plugin.js.map +1 -0
- package/dist/migrate/propelauth/plugin.d.ts +2 -0
- package/dist/migrate/propelauth/plugin.js +65 -0
- package/dist/migrate/propelauth/plugin.js.map +1 -0
- package/dist/migrate/saml/plugin.d.ts +2 -0
- package/dist/migrate/saml/plugin.js +79 -0
- package/dist/migrate/saml/plugin.js.map +1 -0
- package/dist/migrate/stytch/plugin.d.ts +2 -0
- package/dist/migrate/stytch/plugin.js +97 -0
- package/dist/migrate/stytch/plugin.js.map +1 -0
- package/dist/migrate/supabase/plugin.d.ts +2 -0
- package/dist/migrate/supabase/plugin.js +149 -0
- package/dist/migrate/supabase/plugin.js.map +1 -0
- package/dist/migrate/supertokens/plugin.d.ts +2 -0
- package/dist/migrate/supertokens/plugin.js +114 -0
- package/dist/migrate/supertokens/plugin.js.map +1 -0
- package/dist/migrate/user-table/plugin.d.ts +2 -0
- package/dist/migrate/user-table/plugin.js +62 -0
- package/dist/migrate/user-table/plugin.js.map +1 -0
- package/dist/migrate/userfront/plugin.d.ts +2 -0
- package/dist/migrate/userfront/plugin.js +60 -0
- package/dist/migrate/userfront/plugin.js.map +1 -0
- package/dist/migrate/workos/plugin.d.ts +2 -0
- package/dist/migrate/workos/plugin.js +81 -0
- package/dist/migrate/workos/plugin.js.map +1 -0
- package/dist/migrate/zitadel/plugin.d.ts +2 -0
- package/dist/migrate/zitadel/plugin.js +114 -0
- package/dist/migrate/zitadel/plugin.js.map +1 -0
- package/dist/output.d.ts +41 -0
- package/dist/output.js +72 -0
- package/dist/output.js.map +1 -0
- package/dist/project.d.ts +64 -0
- package/dist/project.js +86 -0
- package/dist/project.js.map +1 -0
- package/dist/prompt.d.ts +15 -0
- package/dist/prompt.js +46 -0
- package/dist/prompt.js.map +1 -0
- package/dist/redact.d.ts +41 -0
- package/dist/redact.js +115 -0
- package/dist/redact.js.map +1 -0
- package/dist/run.d.ts +12 -0
- package/dist/run.js +169 -0
- package/dist/run.js.map +1 -0
- package/dist/secrets.d.ts +41 -0
- package/dist/secrets.js +142 -0
- package/dist/secrets.js.map +1 -0
- package/dist/serialize.d.ts +30 -0
- package/dist/serialize.js +131 -0
- package/dist/serialize.js.map +1 -0
- package/dist/version.d.ts +7 -0
- package/dist/version.js +21 -0
- package/dist/version.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth0.js","sourceRoot":"","sources":["../../../src/migrate/export/auth0.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { TranslationResult } from '../framework/plugin';
|
|
2
|
+
import { type Obj } from './record-set';
|
|
3
|
+
/**
|
|
4
|
+
* `atlas migrate authentik config` — an authentik instance's settings → Atlas
|
|
5
|
+
* config. authentik keeps its configuration as objects (flows, stages,
|
|
6
|
+
* policies, sources, providers, applications, brands), so there are two
|
|
7
|
+
* readers of the same model and one translation:
|
|
8
|
+
*
|
|
9
|
+
* - a BLUEPRINT file (`ak export_blueprint`, or the YAML you keep in
|
|
10
|
+
* version control): `entries: [{ model, identifiers, attrs }]`, every
|
|
11
|
+
* report line carrying file:line. Tags (`!Env X`, `!KeyOf name`, `!File …`)
|
|
12
|
+
* are read as references, never as values: a secret or id written with a
|
|
13
|
+
* tag is never copied.
|
|
14
|
+
* - the API (`/api/v3` with an API token): the same objects, listed.
|
|
15
|
+
*
|
|
16
|
+
* Secrets are never copied; a client secret becomes a `${NAME}` placeholder.
|
|
17
|
+
*/
|
|
18
|
+
export interface AuthentikEntry {
|
|
19
|
+
/** The lowercase model (`authentik_stages_password.passwordstage`). */
|
|
20
|
+
model: string;
|
|
21
|
+
identifiers: Obj;
|
|
22
|
+
attrs: Obj;
|
|
23
|
+
file?: string;
|
|
24
|
+
line?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface AuthentikSnapshot {
|
|
27
|
+
origin: string;
|
|
28
|
+
/** The authentik URL, when known (the API reader, or a flag): it builds the bridge issuer. */
|
|
29
|
+
baseUrl?: string;
|
|
30
|
+
entries: AuthentikEntry[];
|
|
31
|
+
/** The snapshot lists every flow (the API): an absent enrollment flow then means sign-up is closed. */
|
|
32
|
+
complete: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare function snapshotFromBlueprint(text: string, file: string, baseUrl?: string): AuthentikSnapshot;
|
|
35
|
+
export declare const AUTHENTIK_CONFIG_ENDPOINTS: Array<[string, string]>;
|
|
36
|
+
/** Read the settings objects through the API (the token needs read access to them). */
|
|
37
|
+
export declare function fetchAuthentikConfig(o: {
|
|
38
|
+
baseUrl: string;
|
|
39
|
+
token: string;
|
|
40
|
+
fetchImpl?: typeof fetch;
|
|
41
|
+
sleep?: (ms: number) => Promise<void>;
|
|
42
|
+
}): Promise<AuthentikSnapshot>;
|
|
43
|
+
/** authentik's timedelta strings: `hours=1,minutes=30`, `seconds=0`, `days=1`. */
|
|
44
|
+
export declare function timedeltaMs(v: unknown): number | undefined;
|
|
45
|
+
export declare function translateAuthentikConfig(snap: AuthentikSnapshot): TranslationResult;
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AUTHENTIK_CONFIG_ENDPOINTS = void 0;
|
|
4
|
+
exports.snapshotFromBlueprint = snapshotFromBlueprint;
|
|
5
|
+
exports.fetchAuthentikConfig = fetchAuthentikConfig;
|
|
6
|
+
exports.timedeltaMs = timedeltaMs;
|
|
7
|
+
exports.translateAuthentikConfig = translateAuthentikConfig;
|
|
8
|
+
const authentik_1 = require("./authentik");
|
|
9
|
+
const mini_yaml_1 = require("./mini-yaml");
|
|
10
|
+
const vendor_http_1 = require("./vendor-http");
|
|
11
|
+
const record_set_1 = require("./record-set");
|
|
12
|
+
const translate_kit_1 = require("./translate-kit");
|
|
13
|
+
// ── readers ─────────────────────────────────────────────────────────────────
|
|
14
|
+
/** `key: !Env NAME` → `key: "@env:NAME"`: tagged values are references, not values. */
|
|
15
|
+
function neutralizeTags(text) {
|
|
16
|
+
return text
|
|
17
|
+
.split('\n')
|
|
18
|
+
.map((line) => {
|
|
19
|
+
const m = /^(\s*(?:-\s+)?[^\s#:][^:#]*:\s+)!([A-Za-z]+)\s+(.*?)\s*$/.exec(line);
|
|
20
|
+
if (!m)
|
|
21
|
+
return line;
|
|
22
|
+
const first = m[3].replace(/^[[(]\s*/, '').split(/[\s,\])]/)[0].replace(/^['"]|['"]$/g, '');
|
|
23
|
+
return `${m[1]}"@${m[2].toLowerCase()}:${first}"`;
|
|
24
|
+
})
|
|
25
|
+
.join('\n');
|
|
26
|
+
}
|
|
27
|
+
function snapshotFromBlueprint(text, file, baseUrl) {
|
|
28
|
+
const doc = (0, mini_yaml_1.parseYaml)(neutralizeTags(text));
|
|
29
|
+
const root = (0, record_set_1.isObj)(doc.value) ? doc.value : {};
|
|
30
|
+
const entries = [];
|
|
31
|
+
(0, record_set_1.objs)(root.entries).forEach((e, i) => {
|
|
32
|
+
const model = (0, record_set_1.str)(e.model)?.toLowerCase();
|
|
33
|
+
if (!model)
|
|
34
|
+
return;
|
|
35
|
+
entries.push({
|
|
36
|
+
model,
|
|
37
|
+
identifiers: (0, record_set_1.isObj)(e.identifiers) ? e.identifiers : {},
|
|
38
|
+
attrs: (0, record_set_1.isObj)(e.attrs) ? e.attrs : {},
|
|
39
|
+
file,
|
|
40
|
+
line: doc.line(`entries.${i}.model`) ?? doc.line(`entries.${i}`),
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
return { origin: `authentik blueprint ${file}`, baseUrl, entries, complete: false };
|
|
44
|
+
}
|
|
45
|
+
exports.AUTHENTIK_CONFIG_ENDPOINTS = [
|
|
46
|
+
['/policies/password/', 'authentik_policies_password.passwordpolicy'],
|
|
47
|
+
['/stages/password/', 'authentik_stages_password.passwordstage'],
|
|
48
|
+
['/stages/user_login/', 'authentik_stages_user_login.userloginstage'],
|
|
49
|
+
['/stages/user_write/', 'authentik_stages_user_write.userwritestage'],
|
|
50
|
+
['/stages/identification/', 'authentik_stages_identification.identificationstage'],
|
|
51
|
+
['/stages/email/', 'authentik_stages_email.emailstage'],
|
|
52
|
+
['/stages/authenticator/totp/', 'authentik_stages_authenticator_totp.authenticatortotpstage'],
|
|
53
|
+
['/stages/authenticator/webauthn/', 'authentik_stages_authenticator_webauthn.authenticatorwebauthnstage'],
|
|
54
|
+
['/stages/authenticator/sms/', 'authentik_stages_authenticator_sms.authenticatorsmsstage'],
|
|
55
|
+
['/stages/authenticator/static/', 'authentik_stages_authenticator_static.authenticatorstaticstage'],
|
|
56
|
+
['/stages/authenticator/validate/', 'authentik_stages_authenticator_validate.authenticatorvalidatestage'],
|
|
57
|
+
['/flows/instances/', 'authentik_flows.flow'],
|
|
58
|
+
['/sources/oauth/', 'authentik_sources_oauth.oauthsource'],
|
|
59
|
+
['/sources/saml/', 'authentik_sources_saml.samlsource'],
|
|
60
|
+
['/sources/ldap/', 'authentik_sources_ldap.ldapsource'],
|
|
61
|
+
['/providers/oauth2/', 'authentik_providers_oauth2.oauth2provider'],
|
|
62
|
+
['/providers/saml/', 'authentik_providers_saml.samlprovider'],
|
|
63
|
+
['/core/applications/', 'authentik_core.application'],
|
|
64
|
+
['/core/brands/', 'authentik_brands.brand'],
|
|
65
|
+
];
|
|
66
|
+
/** Read the settings objects through the API (the token needs read access to them). */
|
|
67
|
+
async function fetchAuthentikConfig(o) {
|
|
68
|
+
const base = o.baseUrl.replace(/\/+$/, '');
|
|
69
|
+
const http = new vendor_http_1.VendorHttp({ vendor: 'authentik', baseUrl: `${base}/api/v3`, headers: { authorization: `Bearer ${o.token}` }, fetchImpl: o.fetchImpl, sleep: o.sleep });
|
|
70
|
+
const entries = [];
|
|
71
|
+
let missing = 0;
|
|
72
|
+
for (const [path, model] of exports.AUTHENTIK_CONFIG_ENDPOINTS) {
|
|
73
|
+
let list;
|
|
74
|
+
try {
|
|
75
|
+
list = await (0, authentik_1.authentikList)(http, path);
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
// An authentik without that object type, or a token that cannot read it.
|
|
79
|
+
if (err instanceof vendor_http_1.VendorApiError && [403, 404].includes(err.status)) {
|
|
80
|
+
missing++;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
throw err;
|
|
84
|
+
}
|
|
85
|
+
for (const attrs of list)
|
|
86
|
+
entries.push({ model, identifiers: { pk: attrs.pk ?? attrs.pbm_uuid, name: attrs.name, slug: attrs.slug }, attrs });
|
|
87
|
+
}
|
|
88
|
+
return { origin: `authentik ${base.replace(/^https?:\/\//, '')}`, baseUrl: base, entries, complete: missing === 0 };
|
|
89
|
+
}
|
|
90
|
+
// ── translation ─────────────────────────────────────────────────────────────
|
|
91
|
+
const UNITS = { weeks: 604_800_000, days: 86_400_000, hours: 3_600_000, minutes: 60_000, seconds: 1000, milliseconds: 1 };
|
|
92
|
+
/** authentik's timedelta strings: `hours=1,minutes=30`, `seconds=0`, `days=1`. */
|
|
93
|
+
function timedeltaMs(v) {
|
|
94
|
+
if (typeof v === 'number')
|
|
95
|
+
return v;
|
|
96
|
+
const s = (0, record_set_1.str)(v);
|
|
97
|
+
if (!s)
|
|
98
|
+
return undefined;
|
|
99
|
+
let total = 0;
|
|
100
|
+
for (const part of s.split(/[,;\s]+/).filter(Boolean)) {
|
|
101
|
+
const m = /^([a-z]+)=(-?\d+(?:\.\d+)?)$/.exec(part);
|
|
102
|
+
const unit = m ? UNITS[m[1]] : undefined;
|
|
103
|
+
if (!m || unit === undefined)
|
|
104
|
+
return undefined;
|
|
105
|
+
total += Number(m[2]) * unit;
|
|
106
|
+
}
|
|
107
|
+
return total;
|
|
108
|
+
}
|
|
109
|
+
const isRef = (v) => typeof v === 'string' && v.startsWith('@');
|
|
110
|
+
/** A literal string attribute (a tagged reference or an empty value is not one). */
|
|
111
|
+
const lit = (v) => (isRef(v) ? undefined : (0, record_set_1.str)(v));
|
|
112
|
+
const num = (v) => (typeof v === 'number' ? v : typeof v === 'string' && /^\d+$/.test(v) ? Number(v) : undefined);
|
|
113
|
+
/** The `@env:NAME` a tagged value reads, for the report. */
|
|
114
|
+
const envName = (v) => (typeof v === 'string' && v.startsWith('@env:') ? v.slice(5) : undefined);
|
|
115
|
+
const OIDC_SOURCE_TYPES = new Set(['openidconnect', 'okta', 'keycloak', 'authentik', 'entraid_oidc']);
|
|
116
|
+
function translateAuthentikConfig(snap) {
|
|
117
|
+
const b = new translate_kit_1.ConfigBuilder();
|
|
118
|
+
const m = (suffix) => snap.entries.filter((e) => e.model.endsWith(`.${suffix}`));
|
|
119
|
+
const add = (status, area, e, attr, note, atlas) => {
|
|
120
|
+
const name = (0, record_set_1.str)(e.identifiers.name) ?? (0, record_set_1.str)(e.identifiers.slug) ?? (0, record_set_1.str)(e.attrs.name) ?? (0, record_set_1.str)(e.attrs.slug) ?? '?';
|
|
121
|
+
b.report.push({
|
|
122
|
+
status,
|
|
123
|
+
area,
|
|
124
|
+
setting: `${e.model} ${name}${attr ? `.${attr}` : ''}`,
|
|
125
|
+
note,
|
|
126
|
+
...(atlas ? { atlas } : {}),
|
|
127
|
+
...(e.file ? { file: e.file, line: e.line } : {}),
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
// ── passwords ──
|
|
131
|
+
const policies = m('passwordpolicy');
|
|
132
|
+
policies.forEach((p, i) => {
|
|
133
|
+
if (i > 0) {
|
|
134
|
+
add('differs', 'passwords', p, null, 'Atlas has one password policy: only the first authentik policy was translated; fold the rules of this one into it.');
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const min = num(p.attrs.length_min);
|
|
138
|
+
if (min !== undefined) {
|
|
139
|
+
b.set('passwordPolicy.minLength', Math.max(min, 6));
|
|
140
|
+
add(min >= 6 ? 'mapped' : 'differs', 'passwords', p, 'length_min', min >= 6 ? `Minimum ${min} characters.` : `authentik allowed ${min} characters; Atlas requires at least 6.`, 'auth_config.passwordPolicy.minLength');
|
|
141
|
+
}
|
|
142
|
+
for (const [attr, key, label] of [
|
|
143
|
+
['amount_digits', 'requireNumber', 'a digit'],
|
|
144
|
+
['amount_uppercase', 'requireUppercase', 'an uppercase letter'],
|
|
145
|
+
['amount_lowercase', 'requireLowercase', 'a lowercase letter'],
|
|
146
|
+
['amount_symbols', 'requireSymbol', 'a symbol'],
|
|
147
|
+
]) {
|
|
148
|
+
if ((num(p.attrs[attr]) ?? 0) > 0) {
|
|
149
|
+
b.set(`passwordPolicy.${key}`, true);
|
|
150
|
+
add('mapped', 'passwords', p, attr, `Passwords need ${label}${(num(p.attrs[attr]) ?? 0) > 1 ? ' (Atlas asks for one, not a count)' : ''}.`, `auth_config.passwordPolicy.${key}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (p.attrs.check_have_i_been_pwned === true)
|
|
154
|
+
add('manual', 'passwords', p, 'check_have_i_been_pwned', 'Turn on breached-password protection in Atlas attack protection (the Have I Been Pwned check does not carry over).');
|
|
155
|
+
if (p.attrs.check_zxcvbn === true)
|
|
156
|
+
add('differs', 'passwords', p, 'check_zxcvbn', 'The zxcvbn strength score has no Atlas setting; Atlas rejects common and breached passwords instead.');
|
|
157
|
+
if ((0, record_set_1.str)(p.attrs.password_field) && p.attrs.password_field !== 'password')
|
|
158
|
+
add('differs', 'passwords', p, 'password_field', 'Policy applied to a custom prompt field; Atlas applies its policy to the password field.');
|
|
159
|
+
});
|
|
160
|
+
// ── sessions ──
|
|
161
|
+
for (const s of m('userloginstage')) {
|
|
162
|
+
const ms = timedeltaMs(s.attrs.session_duration);
|
|
163
|
+
if (ms === 0)
|
|
164
|
+
add('differs', 'sessions', s, 'session_duration', 'authentik ended the session with the browser (seconds=0); Atlas sessions persist until their idle and absolute limits (auth_config.session).');
|
|
165
|
+
else if (ms !== undefined) {
|
|
166
|
+
b.set('session.absoluteMs', (0, translate_kit_1.clampSessionMs)(ms));
|
|
167
|
+
add((0, translate_kit_1.clampSessionMs)(ms) === ms ? 'mapped' : 'differs', 'sessions', s, 'session_duration', 'Session duration becomes the absolute session lifetime.', 'auth_config.session.absoluteMs');
|
|
168
|
+
}
|
|
169
|
+
if (s.attrs.terminate_other_sessions === true)
|
|
170
|
+
add('manual', 'sessions', s, 'terminate_other_sessions', 'Signing in no longer ends the user\'s other sessions: use a session limit or revoke sessions from an Action.');
|
|
171
|
+
if ((0, record_set_1.str)(s.attrs.network_binding) && s.attrs.network_binding !== 'no_binding')
|
|
172
|
+
add('differs', 'sessions', s, 'network_binding', 'Sessions are not bound to the client network; Atlas applies device and risk checks instead.');
|
|
173
|
+
if ((0, record_set_1.str)(s.attrs.geoip_binding) && s.attrs.geoip_binding !== 'no_binding')
|
|
174
|
+
add('differs', 'sessions', s, 'geoip_binding', 'Sessions are not bound to the client location; Atlas applies device and risk checks instead.');
|
|
175
|
+
if (timedeltaMs(s.attrs.remember_me_offset))
|
|
176
|
+
add('differs', 'sessions', s, 'remember_me_offset', 'Atlas has no separate "remember me" lifetime.');
|
|
177
|
+
}
|
|
178
|
+
// ── sign-up, sign-in methods ──
|
|
179
|
+
const flows = m('flow');
|
|
180
|
+
const enrollment = flows.find((f) => f.attrs.designation === 'enrollment');
|
|
181
|
+
if (enrollment) {
|
|
182
|
+
b.set('signUpMode', 'public');
|
|
183
|
+
add('mapped', 'sign-up', enrollment, 'designation', 'An enrollment flow exists: public sign-up.', 'auth_config.signUpMode');
|
|
184
|
+
}
|
|
185
|
+
else if (snap.complete) {
|
|
186
|
+
b.set('signUpMode', 'restricted');
|
|
187
|
+
b.add('mapped', 'sign-up', 'flows (no enrollment flow)', 'No enrollment flow: sign-up is closed (invitations and imports still work).', 'auth_config.signUpMode');
|
|
188
|
+
}
|
|
189
|
+
const recovery = flows.find((f) => f.attrs.designation === 'recovery');
|
|
190
|
+
if (recovery)
|
|
191
|
+
add('mapped', 'sign-in', recovery, 'designation', 'A recovery flow exists: password reset by email is on in Atlas by default.', 'auth_config.strategies.password');
|
|
192
|
+
for (const s of m('identificationstage')) {
|
|
193
|
+
const passwordless = s.attrs.passwordless_flow;
|
|
194
|
+
if (passwordless !== undefined && passwordless !== null && passwordless !== '') {
|
|
195
|
+
b.set('strategies.passkey', true);
|
|
196
|
+
add('mapped', 'sign-in', s, 'passwordless_flow', 'Passwordless (WebAuthn) sign-in becomes passkey sign-in.', 'auth_config.strategies.passkey');
|
|
197
|
+
}
|
|
198
|
+
const fields = (0, record_set_1.strs)(s.attrs.user_fields);
|
|
199
|
+
if (fields.length)
|
|
200
|
+
add('differs', 'sign-in', s, 'user_fields', `Sign-in by ${fields.join(', ')}: Atlas accepts the identifiers the sign-up form collects (email, username, phone); check the instance's sign-in identifiers.`);
|
|
201
|
+
if ((0, record_set_1.strs)(s.attrs.sources).length)
|
|
202
|
+
add('mapped', 'sign-in', s, 'sources', 'The social and SAML sources offered here are translated below.');
|
|
203
|
+
}
|
|
204
|
+
for (const s of m('userwritestage')) {
|
|
205
|
+
if (s.attrs.create_users_as_inactive === true)
|
|
206
|
+
add('differs', 'sign-up', s, 'create_users_as_inactive', 'New users were created inactive until activated by another stage; Atlas holds sign-ups with its email verification and approval settings instead.');
|
|
207
|
+
}
|
|
208
|
+
for (const s of m('emailstage')) {
|
|
209
|
+
add('manual', 'email', s, null, `Connect your own email provider in Atlas (SMTP host ${lit(s.attrs.host) ?? 'from authentik settings'} is not copied) and recreate the template "${lit(s.attrs.template) ?? 'email/…'}" as an Atlas email template.`);
|
|
210
|
+
const exp = num(s.attrs.token_expiry);
|
|
211
|
+
if (exp !== undefined)
|
|
212
|
+
add('differs', 'email', s, 'token_expiry', `Links expired after ${exp} minutes; Atlas uses its own link and code lifetimes.`);
|
|
213
|
+
}
|
|
214
|
+
// ── multi-factor ──
|
|
215
|
+
for (const s of m('authenticatortotpstage')) {
|
|
216
|
+
b.set('mfa.factors.totp', true);
|
|
217
|
+
add('mapped', 'multi-factor', s, null, `Authenticator-app second factor on${num(s.attrs.digits) === 8 || s.attrs.digits === '8' ? ' (8-digit devices keep their shape when imported)' : ''}. Enrolled devices move with the database export (seeds included).`, 'auth_config.mfa.factors.totp');
|
|
218
|
+
}
|
|
219
|
+
for (const s of m('authenticatorwebauthnstage')) {
|
|
220
|
+
b.set('mfa.factors.passkey', true);
|
|
221
|
+
add('mapped', 'multi-factor', s, null, 'WebAuthn second factor on. Devices move only with the database export and the same RP id (your authentik host).', 'auth_config.mfa.factors.passkey');
|
|
222
|
+
if (lit(s.attrs.authenticator_attachment))
|
|
223
|
+
add('differs', 'multi-factor', s, 'authenticator_attachment', 'Atlas lets the user pick a platform or roaming authenticator.');
|
|
224
|
+
}
|
|
225
|
+
for (const s of m('authenticatorsmsstage')) {
|
|
226
|
+
b.set('mfa.factors.sms', true);
|
|
227
|
+
add('mapped', 'multi-factor', s, null, 'SMS second factor on.', 'auth_config.mfa.factors.sms');
|
|
228
|
+
add('manual', 'multi-factor', s, 'provider', `Connect your own SMS provider (${lit(s.attrs.provider) ?? 'twilio / generic'}); its credentials are not copied.`);
|
|
229
|
+
}
|
|
230
|
+
for (const s of m('authenticatorstaticstage')) {
|
|
231
|
+
add('differs', 'multi-factor', s, null, 'Static recovery tokens move as backup codes with the database export; Atlas generates its own codes for new enrolments.', 'auth_config.mfa');
|
|
232
|
+
}
|
|
233
|
+
for (const s of m('authenticatorvalidatestage')) {
|
|
234
|
+
const action = lit(s.attrs.not_configured_action);
|
|
235
|
+
add('differs', 'multi-factor', s, 'not_configured_action', action === 'deny' ? 'Users without a factor were refused: turn on "require a second factor" in the Atlas MFA settings.' : action === 'configure' ? 'Users without a factor had to enrol one: turn on "require a second factor" in the Atlas MFA settings.' : 'Users without a factor skipped the check; Atlas asks for a second factor only from users who enrolled one unless you require it.', 'auth_config.mfa');
|
|
236
|
+
}
|
|
237
|
+
// ── social and SAML sources ──
|
|
238
|
+
for (const s of m('oauthsource')) {
|
|
239
|
+
if (s.attrs.enabled === false)
|
|
240
|
+
continue;
|
|
241
|
+
const slug = lit(s.identifiers.slug) ?? lit(s.attrs.slug) ?? '?';
|
|
242
|
+
const type = lit(s.attrs.provider_type)?.toLowerCase() ?? '';
|
|
243
|
+
const key = OIDC_SOURCE_TYPES.has(type) ? null : (0, translate_kit_1.socialKey)(type);
|
|
244
|
+
const clientId = lit(s.attrs.consumer_key);
|
|
245
|
+
if (key) {
|
|
246
|
+
b.socialProvider({ atlasKey: key, vendorName: slug, area: 'sources', setting: `${s.model} ${slug}.provider_type`, clientId });
|
|
247
|
+
const last = b.report[b.report.length - 1];
|
|
248
|
+
if (s.file)
|
|
249
|
+
Object.assign(last, { file: s.file, line: s.line });
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
if (OIDC_SOURCE_TYPES.has(type) || type === 'oauth' || type === '') {
|
|
253
|
+
const providerKey = slug.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '').slice(0, 48) || 'oidc';
|
|
254
|
+
const upper = providerKey.toUpperCase();
|
|
255
|
+
const doc = {
|
|
256
|
+
provider_key: providerKey,
|
|
257
|
+
display_name: (0, record_set_1.str)(s.attrs.name) ?? slug,
|
|
258
|
+
protocol: 'oidc',
|
|
259
|
+
client_id: clientId ?? b.placeholder(`${upper}_CLIENT_ID`, `${slug} client id`),
|
|
260
|
+
client_secret: b.placeholder(`${upper}_CLIENT_SECRET`, `${slug} client secret`),
|
|
261
|
+
enabled: true,
|
|
262
|
+
allow_sign_in: true,
|
|
263
|
+
allow_sign_up: s.attrs.enrollment_flow !== null,
|
|
264
|
+
};
|
|
265
|
+
const wellKnown = lit(s.attrs.oidc_well_known_url);
|
|
266
|
+
if (wellKnown)
|
|
267
|
+
doc.discovery_url = wellKnown;
|
|
268
|
+
if (lit(s.attrs.authorization_url))
|
|
269
|
+
doc.authorization_url = lit(s.attrs.authorization_url);
|
|
270
|
+
if (lit(s.attrs.access_token_url))
|
|
271
|
+
doc.token_url = lit(s.attrs.access_token_url);
|
|
272
|
+
if (lit(s.attrs.profile_url))
|
|
273
|
+
doc.userinfo_url = lit(s.attrs.profile_url);
|
|
274
|
+
b.push('custom_oauth_providers', doc);
|
|
275
|
+
b.providers[slug] = providerKey;
|
|
276
|
+
add('differs', 'sources', s, 'provider_type', `Source "${slug}" (${type || 'oauth'}) becomes the custom OIDC provider "${providerKey}". Add Atlas's redirect URI to the upstream app and set ${upper}_CLIENT_SECRET. Imported identities keep provider "${slug}"; map it with provider_map ${slug}=${providerKey}.`, `custom_oauth_providers ${providerKey}`);
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
add('manual', 'sources', s, 'provider_type', `"${type}" is not a built-in Atlas provider: add it as a custom OAuth provider with the same upstream app.`, 'custom_oauth_providers');
|
|
280
|
+
}
|
|
281
|
+
for (const s of m('samlsource')) {
|
|
282
|
+
add('mapped', 'sources', s, null, 'SAML source: moves with the data export as an SSO connection. Give the IdP Atlas\'s ACS URL and entity id (they replace authentik\'s) before turning it on.', 'sso_connections');
|
|
283
|
+
}
|
|
284
|
+
for (const s of m('ldapsource')) {
|
|
285
|
+
add('manual', 'sources', s, null, 'LDAP source: authentik checks these passwords against your directory. Connect the directory to Atlas (SCIM or an LDAP-backed connection), or let those users move by lazy migration (the authentik preset signs them in through authentik first).');
|
|
286
|
+
}
|
|
287
|
+
// ── applications, providers, the bridge ──
|
|
288
|
+
const providers = m('oauth2provider');
|
|
289
|
+
const apps = m('application');
|
|
290
|
+
const redirects = new Set();
|
|
291
|
+
let wildcard = false;
|
|
292
|
+
for (const p of providers) {
|
|
293
|
+
const list = Array.isArray(p.attrs.redirect_uris) ? p.attrs.redirect_uris : typeof p.attrs.redirect_uris === 'string' ? p.attrs.redirect_uris.split('\n').map((url) => ({ matching_mode: 'strict', url })) : [];
|
|
294
|
+
for (const r of list) {
|
|
295
|
+
const url = (0, record_set_1.isObj)(r) ? lit(r.url) : lit(r);
|
|
296
|
+
const regex = (0, record_set_1.isObj)(r) && r.matching_mode === 'regex';
|
|
297
|
+
if (!url)
|
|
298
|
+
continue;
|
|
299
|
+
if (regex || url.includes('*'))
|
|
300
|
+
wildcard = true;
|
|
301
|
+
else
|
|
302
|
+
redirects.add(url);
|
|
303
|
+
}
|
|
304
|
+
if (p.attrs.signing_key === null || p.attrs.signing_key === '') {
|
|
305
|
+
add('manual', 'providers', p, 'signing_key', 'No signing key: authentik signs tokens with the client secret (HS256), which the session bridge cannot verify. Select a certificate on the provider before the cutover.');
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
for (const url of redirects)
|
|
309
|
+
b.push('redirect_urls', { url });
|
|
310
|
+
if (redirects.size || wildcard) {
|
|
311
|
+
const p = providers[0];
|
|
312
|
+
add(wildcard ? 'differs' : 'mapped', 'providers', p, 'redirect_uris', `${redirects.size} redirect URI(s) become redirect URLs${wildcard ? '; regex and wildcard URIs are not translated (Atlas redirect URLs are exact: list each one)' : ''}.`, 'redirect_urls');
|
|
313
|
+
}
|
|
314
|
+
for (const a of apps) {
|
|
315
|
+
add('manual', 'applications', a, null, 'Application: the policy bindings that decide who may open it become Atlas roles or organization membership checks in your app; the launch URL and icon are not copied.');
|
|
316
|
+
}
|
|
317
|
+
for (const p of m('samlprovider'))
|
|
318
|
+
add('manual', 'providers', p, null, 'SAML provider (authentik as the identity provider): configure Atlas as the SAML IdP for that service provider, or keep authentik for it.');
|
|
319
|
+
for (const br of m('brand')) {
|
|
320
|
+
add('manual', 'branding', br, 'branding_title', `Brand "${lit(br.attrs.branding_title) ?? lit(br.attrs.domain) ?? ''}": recreate the logo, title and colours in Atlas branding.`);
|
|
321
|
+
}
|
|
322
|
+
// Bridge and lazy presets, when the snapshot tells enough.
|
|
323
|
+
const result = {};
|
|
324
|
+
// The application of the one provider: linked by primary key (API), or the only application (blueprint).
|
|
325
|
+
const linked = providers.length === 1
|
|
326
|
+
? (apps.find((a) => a.attrs.provider !== undefined && !isRef(a.attrs.provider) && String(a.attrs.provider) === String(providers[0].identifiers.pk)) ?? (apps.length === 1 ? apps[0] : undefined))
|
|
327
|
+
: undefined;
|
|
328
|
+
const appSlug = lit(linked?.attrs.slug ?? linked?.identifiers.slug);
|
|
329
|
+
const only = providers.length === 1 && appSlug ? { p: providers[0], slug: appSlug } : undefined;
|
|
330
|
+
if (snap.baseUrl && only) {
|
|
331
|
+
const clientId = lit(only.p.attrs.client_id);
|
|
332
|
+
result.bridge = { preset: 'authentik', vars: { issuer: `${snap.baseUrl}/application/o/${only.slug}`, ...(clientId ? { client_id: clientId } : {}) } };
|
|
333
|
+
add('mapped', 'bridge', only.p, 'client_id', `The bridge accepts tokens of "${only.slug}" (issuer ${snap.baseUrl}/application/o/${only.slug}/).`, 'migrations authentik bridge');
|
|
334
|
+
}
|
|
335
|
+
else if (providers.length > 1) {
|
|
336
|
+
add('differs', 'bridge', providers[0], null, `${providers.length} OAuth2 providers: the bridge accepts one provider's tokens at a time; pass --set authentik-issuer and --set authentik-client-id for the one your app uses.`);
|
|
337
|
+
}
|
|
338
|
+
const subModes = [...new Set(providers.map((p) => lit(p.attrs.sub_mode) ?? 'hashed_user_id'))];
|
|
339
|
+
for (const mode of subModes) {
|
|
340
|
+
if (mode === 'user_uuid' || mode === 'user_upn')
|
|
341
|
+
add('differs', 'providers', providers.find((p) => (lit(p.attrs.sub_mode) ?? 'hashed_user_id') === mode), 'sub_mode', `Subject mode ${mode}: export with --set authentik-sub-mode=${mode}; lazy migration cannot read it from a session, so use the database export.`);
|
|
342
|
+
}
|
|
343
|
+
if (subModes.length > 1)
|
|
344
|
+
add('differs', 'providers', providers[0], 'sub_mode', `Providers use different subject modes (${subModes.join(', ')}); the export keys users by one of them.`);
|
|
345
|
+
const authFlow = flows.find((f) => f.attrs.designation === 'authentication');
|
|
346
|
+
if (snap.baseUrl) {
|
|
347
|
+
const subMode = subModes.length === 1 && ['hashed_user_id', 'user_id', 'user_username', 'user_email'].includes(subModes[0]) ? subModes[0] : undefined;
|
|
348
|
+
result.lazy = { preset: 'authentik', config: { base_url: snap.baseUrl, ...(lit(authFlow?.attrs.slug ?? authFlow?.identifiers.slug) ? { flow_slug: lit(authFlow?.attrs.slug ?? authFlow?.identifiers.slug) } : {}), ...(subMode ? { sub_mode: subMode } : {}) } };
|
|
349
|
+
}
|
|
350
|
+
// Env names a blueprint read, for the operator.
|
|
351
|
+
for (const e of snap.entries)
|
|
352
|
+
for (const [k, v] of Object.entries(e.attrs))
|
|
353
|
+
if (envName(v) && /secret|password|token/i.test(k))
|
|
354
|
+
add('manual', 'secrets', e, k, `Read from the environment (${envName(v)}) in the blueprint: set the Atlas value separately, secrets are never copied.`);
|
|
355
|
+
return b.result(snap.origin, result);
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=authentik-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authentik-config.js","sourceRoot":"","sources":["../../../src/migrate/export/authentik-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { PasswordHash } from '@atlasauth/migrate';
|
|
2
|
+
import { type Tables } from './frameworks/tables';
|
|
3
|
+
import { RecordSet, type Obj } from './record-set';
|
|
4
|
+
import { VendorHttp } from './vendor-http';
|
|
5
|
+
/**
|
|
6
|
+
* `atlas migrate export authentik` — a self-hosted authentik (goauthentik)
|
|
7
|
+
* instance onto the canonical bundle models. Two ways in:
|
|
8
|
+
*
|
|
9
|
+
* DATABASE DUMP (the full export): authentik's API never returns password
|
|
10
|
+
* hashes, TOTP seeds, recovery codes or WebAuthn public keys, so the owner
|
|
11
|
+
* dumps authentik's own PostgreSQL tables (one `<table>.csv|json|ndjson` per
|
|
12
|
+
* table, `psql \copy`) and the exporter reads them on this machine:
|
|
13
|
+
*
|
|
14
|
+
* authentik_core_user → user (Django password digest verbatim,
|
|
15
|
+
* `!…` unusable passwords dropped)
|
|
16
|
+
* authentik_install_id → the hashed `sub` (see below); never
|
|
17
|
+
* written to the bundle (old installs
|
|
18
|
+
* use the SECRET_KEY as the install id)
|
|
19
|
+
* authentik_core_group (+ parentage, user_groups / user_ak_groups)
|
|
20
|
+
* → app roles (default) or organizations;
|
|
21
|
+
* superuser groups → the `admin` role
|
|
22
|
+
* authentik_rbac_role (+ user_roles, group_roles)
|
|
23
|
+
* → app roles `rbac:<name>`
|
|
24
|
+
* authentik_core_usersourceconnection (+ oauth / saml subtables, sources)
|
|
25
|
+
* → identities; SAML sources → SSO connections
|
|
26
|
+
* authentik_core_token → API keys (sha256 of the plaintext key,
|
|
27
|
+
* so `api` and `app_password` tokens keep working)
|
|
28
|
+
* authentik_stages_authenticator_* → TOTP (hex seed → base32, 6/8 digits,
|
|
29
|
+
* its step), static recovery tokens,
|
|
30
|
+
* WebAuthn passkeys, SMS / email factors
|
|
31
|
+
*
|
|
32
|
+
* API (no hashes): `/api/v3` with an API token — users, groups, roles,
|
|
33
|
+
* source links, API keys (`view_key`). Passwords then move by lazy
|
|
34
|
+
* migration (the `authentik` preset) and factors are re-enrolled.
|
|
35
|
+
*
|
|
36
|
+
* THE USER ID. Atlas keys imported users by the subject the vendor's tokens
|
|
37
|
+
* carry. authentik's OAuth2/OIDC providers choose `sub` per provider
|
|
38
|
+
* (`sub_mode`, core: authentik/providers/oauth2/id_token.py `_resolve_sub`):
|
|
39
|
+
* hashed_user_id (default) sha256(f"{pk}-{install_id}") hex — `User.uid`
|
|
40
|
+
* user_id the integer pk user_uuid the user's uuid
|
|
41
|
+
* user_username / user_email user_upn attributes.upn, else uid
|
|
42
|
+
* The export uses one mode (`--set authentik-sub-mode`, or the one every
|
|
43
|
+
* provider in the dump uses) and keeps the other ids in private metadata.
|
|
44
|
+
*/
|
|
45
|
+
export type AuthentikSubMode = 'hashed_user_id' | 'user_id' | 'user_uuid' | 'user_username' | 'user_email' | 'user_upn';
|
|
46
|
+
export declare const AUTHENTIK_SUB_MODES: readonly AuthentikSubMode[];
|
|
47
|
+
export interface AuthentikExportOptions {
|
|
48
|
+
/** authentik's tables (a dump directory read with `readDumpDir`): the full export. */
|
|
49
|
+
tables?: Tables;
|
|
50
|
+
/** The authentik URL (`https://auth.example.com`): the API export, and the SAML ACS URLs. */
|
|
51
|
+
baseUrl?: string;
|
|
52
|
+
/** An authentik API token (Directory → Tokens, intent API) for the API export. */
|
|
53
|
+
token?: string;
|
|
54
|
+
/** Which `sub` the apps' tokens carry; default: the mode the providers use, else hashed_user_id. */
|
|
55
|
+
subMode?: AuthentikSubMode;
|
|
56
|
+
/** The install id for `hashed_user_id` when the dump has no `authentik_install_id` table. */
|
|
57
|
+
installId?: string;
|
|
58
|
+
groupsAs?: 'roles' | 'organizations' | 'skip';
|
|
59
|
+
/** The WebAuthn RP id for passkeys registered before authentik stored one per device. */
|
|
60
|
+
rpId?: string;
|
|
61
|
+
/** authentik has no verified-email flag: treat every address as verified. Default false. */
|
|
62
|
+
trustEmails?: boolean;
|
|
63
|
+
/** Carry the stored upstream OAuth access tokens of social links. Default false. */
|
|
64
|
+
oauthTokens?: boolean;
|
|
65
|
+
now?: Date;
|
|
66
|
+
fetchImpl?: typeof fetch;
|
|
67
|
+
sleep?: (ms: number) => Promise<void>;
|
|
68
|
+
onProgress?: (message: string) => void;
|
|
69
|
+
}
|
|
70
|
+
/** One user as the dump or the API has it (the API never has `password`). */
|
|
71
|
+
interface AkUser {
|
|
72
|
+
pk: string;
|
|
73
|
+
uuid?: string;
|
|
74
|
+
/** `User.uid` when the API reported it. */
|
|
75
|
+
uid?: string;
|
|
76
|
+
username?: string;
|
|
77
|
+
email?: string;
|
|
78
|
+
name?: string;
|
|
79
|
+
password?: string;
|
|
80
|
+
isActive: boolean;
|
|
81
|
+
type?: string;
|
|
82
|
+
path?: string;
|
|
83
|
+
attributes: Obj;
|
|
84
|
+
lastLogin?: string | number;
|
|
85
|
+
dateJoined?: string | number;
|
|
86
|
+
}
|
|
87
|
+
export declare function exportAuthentik(opts: AuthentikExportOptions): Promise<RecordSet>;
|
|
88
|
+
/** `User.uid` (authentik/core/models.py): sha256 of "<pk>-<install id>", hex. */
|
|
89
|
+
export declare function authentikUid(pk: string, installId: string): string;
|
|
90
|
+
/** The id a user's tokens carry as `sub` under a provider's sub_mode; undefined when the user has none. */
|
|
91
|
+
export declare function authentikSubject(u: AkUser, mode: AuthentikSubMode, installId?: string): string | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* A Django password digest (authentik uses Django's default hashers) as a
|
|
94
|
+
* bundle password, in a form Atlas's registry verifies:
|
|
95
|
+
* pbkdf2_sha256$… / pbkdf2_sha1$… → pbkdf2_django (verbatim)
|
|
96
|
+
* bcrypt_sha256$$2b$… → bcrypt_sha256_django (verbatim)
|
|
97
|
+
* argon2$argon2id$v=19$… → argon2, the argon2-cffi PHC string
|
|
98
|
+
* (a version-less hash is Argon2 v1.0: `v=16`)
|
|
99
|
+
* bcrypt$$2b$… → bcrypt, the plain bcrypt digest
|
|
100
|
+
* scrypt$<n>$<salt>$<r>$<p>$<hash> → scrypt with its parameters (64-byte key)
|
|
101
|
+
* Null for an unusable (`!…`) or unknown digest.
|
|
102
|
+
*/
|
|
103
|
+
export declare function djangoPassword(digest: string | undefined): PasswordHash | null;
|
|
104
|
+
/** RFC 4648 base32, unpadded. */
|
|
105
|
+
export declare function base32(bytes: Buffer): string;
|
|
106
|
+
export declare function exportAuthentikDump(tables: Tables, opts?: Omit<AuthentikExportOptions, 'tables'>): RecordSet;
|
|
107
|
+
/** Every page of an authentik list endpoint (`{ pagination: { next }, results }`, next = 0 on the last page). */
|
|
108
|
+
export declare function authentikList(http: VendorHttp, path: string): Promise<Obj[]>;
|
|
109
|
+
export declare function exportAuthentikApi(opts: AuthentikExportOptions): Promise<RecordSet>;
|
|
110
|
+
export {};
|