@adonis-agora/authkit-server 0.34.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/LICENSE +21 -0
- package/README.md +158 -0
- package/build/assets/grafana/authkit-dashboard.json +118 -0
- package/build/commands/clients_create.d.ts +27 -0
- package/build/commands/clients_create.js +121 -0
- package/build/commands/commands.json +292 -0
- package/build/commands/configure.d.ts +2 -0
- package/build/commands/configure.js +45 -0
- package/build/commands/doctor.d.ts +10 -0
- package/build/commands/doctor.js +113 -0
- package/build/commands/eject.d.ts +11 -0
- package/build/commands/eject.js +96 -0
- package/build/commands/expire_scan.d.ts +28 -0
- package/build/commands/expire_scan.js +92 -0
- package/build/commands/import_users.d.ts +17 -0
- package/build/commands/import_users.js +80 -0
- package/build/commands/keys_rotate.d.ts +21 -0
- package/build/commands/keys_rotate.js +126 -0
- package/build/commands/main.d.ts +12 -0
- package/build/commands/main.js +38 -0
- package/build/commands/settings_get.d.ts +18 -0
- package/build/commands/settings_get.js +43 -0
- package/build/commands/settings_list.d.ts +17 -0
- package/build/commands/settings_list.js +39 -0
- package/build/commands/settings_set.d.ts +20 -0
- package/build/commands/settings_set.js +55 -0
- package/build/commands/settings_unset.d.ts +18 -0
- package/build/commands/settings_unset.js +46 -0
- package/build/commands/ui_preset.d.ts +4 -0
- package/build/commands/ui_preset.js +32 -0
- package/build/database/migrations/make_authkit_oidc_table.d.ts +6 -0
- package/build/database/migrations/make_authkit_oidc_table.js +19 -0
- package/build/host/ui/admin.html +29 -0
- package/build/host/views/account/apps.edge +59 -0
- package/build/host/views/account/confirm.edge +70 -0
- package/build/host/views/account/email-confirmed.edge +16 -0
- package/build/host/views/account/login.edge +33 -0
- package/build/host/views/account/mfa.edge +152 -0
- package/build/host/views/account/orgs.edge +58 -0
- package/build/host/views/account/security.edge +215 -0
- package/build/host/views/account/tokens.edge +75 -0
- package/build/host/views/consent.edge +20 -0
- package/build/host/views/forgot.edge +43 -0
- package/build/host/views/login.edge +251 -0
- package/build/host/views/maintenance.edge +32 -0
- package/build/host/views/mfa-challenge.edge +107 -0
- package/build/host/views/otp-unlock.edge +40 -0
- package/build/host/views/partials/styles.edge +2 -0
- package/build/host/views/reset.edge +30 -0
- package/build/host/views/signup.edge +62 -0
- package/build/host/views/verify-email.edge +17 -0
- package/build/index.d.ts +115 -0
- package/build/index.js +76 -0
- package/build/password/common_passwords.txt +10000 -0
- package/build/providers/authkit_server_provider.d.ts +27 -0
- package/build/providers/authkit_server_provider.js +242 -0
- package/build/src/accounts/account_store.d.ts +578 -0
- package/build/src/accounts/account_store.js +60 -0
- package/build/src/accounts/lucid_account_store.d.ts +156 -0
- package/build/src/accounts/lucid_account_store.js +294 -0
- package/build/src/accounts/lucid_store/core.d.ts +9 -0
- package/build/src/accounts/lucid_store/core.js +306 -0
- package/build/src/accounts/lucid_store/mfa.d.ts +15 -0
- package/build/src/accounts/lucid_store/mfa.js +108 -0
- package/build/src/accounts/lucid_store/organizations.d.ts +13 -0
- package/build/src/accounts/lucid_store/organizations.js +294 -0
- package/build/src/accounts/lucid_store/password_hygiene.d.ts +20 -0
- package/build/src/accounts/lucid_store/password_hygiene.js +130 -0
- package/build/src/accounts/lucid_store/provider_identity.d.ts +8 -0
- package/build/src/accounts/lucid_store/provider_identity.js +59 -0
- package/build/src/accounts/lucid_store/shared.d.ts +113 -0
- package/build/src/accounts/lucid_store/shared.js +130 -0
- package/build/src/accounts/lucid_store/status_profile.d.ts +34 -0
- package/build/src/accounts/lucid_store/status_profile.js +100 -0
- package/build/src/accounts/lucid_store/webauthn.d.ts +8 -0
- package/build/src/accounts/lucid_store/webauthn.js +140 -0
- package/build/src/accounts/lucid_stores.d.ts +45 -0
- package/build/src/accounts/lucid_stores.js +30 -0
- package/build/src/adapters/adapter_contract.d.ts +37 -0
- package/build/src/adapters/adapter_contract.js +1 -0
- package/build/src/adapters/database_adapter.d.ts +21 -0
- package/build/src/adapters/database_adapter.js +79 -0
- package/build/src/adapters/factory.d.ts +30 -0
- package/build/src/adapters/factory.js +43 -0
- package/build/src/adapters/redis_adapter.d.ts +24 -0
- package/build/src/adapters/redis_adapter.js +122 -0
- package/build/src/audit/audit_sink.d.ts +63 -0
- package/build/src/audit/audit_sink.js +1 -0
- package/build/src/audit/lucid_audit_sink.d.ts +10 -0
- package/build/src/audit/lucid_audit_sink.js +99 -0
- package/build/src/commands/expire_scan_command.d.ts +60 -0
- package/build/src/commands/expire_scan_command.js +229 -0
- package/build/src/commands/import_clients.d.ts +40 -0
- package/build/src/commands/import_clients.js +79 -0
- package/build/src/commands/import_users.d.ts +51 -0
- package/build/src/commands/import_users.js +94 -0
- package/build/src/commands/resolve_config.d.ts +13 -0
- package/build/src/commands/resolve_config.js +18 -0
- package/build/src/commands/settings_commands.d.ts +47 -0
- package/build/src/commands/settings_commands.js +270 -0
- package/build/src/controllers/oidc_callback_controller.d.ts +22 -0
- package/build/src/controllers/oidc_callback_controller.js +33 -0
- package/build/src/define_config.d.ts +772 -0
- package/build/src/define_config.js +351 -0
- package/build/src/doctor/checks.d.ts +197 -0
- package/build/src/doctor/checks.js +858 -0
- package/build/src/events/dispatcher.d.ts +45 -0
- package/build/src/events/dispatcher.js +117 -0
- package/build/src/host/account_api/account_api_controller.d.ts +245 -0
- package/build/src/host/account_api/account_api_controller.js +827 -0
- package/build/src/host/account_deletion_ops.d.ts +80 -0
- package/build/src/host/account_deletion_ops.js +118 -0
- package/build/src/host/account_deletion_service.d.ts +63 -0
- package/build/src/host/account_deletion_service.js +133 -0
- package/build/src/host/account_export_service.d.ts +76 -0
- package/build/src/host/account_export_service.js +140 -0
- package/build/src/host/account_home.d.ts +11 -0
- package/build/src/host/account_home.js +11 -0
- package/build/src/host/account_lockout.d.ts +86 -0
- package/build/src/host/account_lockout.js +185 -0
- package/build/src/host/active_org_cookie.d.ts +28 -0
- package/build/src/host/active_org_cookie.js +47 -0
- package/build/src/host/admin_api/admin_api_guard.d.ts +16 -0
- package/build/src/host/admin_api/admin_api_guard.js +59 -0
- package/build/src/host/admin_api/admin_orgs_service.d.ts +125 -0
- package/build/src/host/admin_api/admin_orgs_service.js +324 -0
- package/build/src/host/admin_api/admin_users_service.d.ts +163 -0
- package/build/src/host/admin_api/admin_users_service.js +308 -0
- package/build/src/host/admin_api/api_clients_controller.d.ts +54 -0
- package/build/src/host/admin_api/api_clients_controller.js +89 -0
- package/build/src/host/admin_api/api_keys_controller.d.ts +19 -0
- package/build/src/host/admin_api/api_keys_controller.js +36 -0
- package/build/src/host/admin_api/api_misc_controller.d.ts +19 -0
- package/build/src/host/admin_api/api_misc_controller.js +44 -0
- package/build/src/host/admin_api/api_orgs_controller.d.ts +108 -0
- package/build/src/host/admin_api/api_orgs_controller.js +189 -0
- package/build/src/host/admin_api/api_settings_controller.d.ts +55 -0
- package/build/src/host/admin_api/api_settings_controller.js +134 -0
- package/build/src/host/admin_api/api_users_controller.d.ts +108 -0
- package/build/src/host/admin_api/api_users_controller.js +187 -0
- package/build/src/host/admin_api/dto.d.ts +131 -0
- package/build/src/host/admin_api/dto.js +122 -0
- package/build/src/host/admin_api/token_verify_service.d.ts +34 -0
- package/build/src/host/admin_api/token_verify_service.js +74 -0
- package/build/src/host/admin_clients_service.d.ts +88 -0
- package/build/src/host/admin_clients_service.js +181 -0
- package/build/src/host/admin_console/admin_shell_controller.d.ts +27 -0
- package/build/src/host/admin_console/admin_shell_controller.js +167 -0
- package/build/src/host/admin_console/console_audit_controller.d.ts +17 -0
- package/build/src/host/admin_console/console_audit_controller.js +25 -0
- package/build/src/host/admin_console/console_clients_controller.d.ts +53 -0
- package/build/src/host/admin_console/console_clients_controller.js +102 -0
- package/build/src/host/admin_console/console_impersonation_controller.d.ts +23 -0
- package/build/src/host/admin_console/console_impersonation_controller.js +45 -0
- package/build/src/host/admin_console/console_keys_controller.d.ts +24 -0
- package/build/src/host/admin_console/console_keys_controller.js +41 -0
- package/build/src/host/admin_console/console_orgs_controller.d.ts +96 -0
- package/build/src/host/admin_console/console_orgs_controller.js +238 -0
- package/build/src/host/admin_console/console_overview_controller.d.ts +27 -0
- package/build/src/host/admin_console/console_overview_controller.js +44 -0
- package/build/src/host/admin_console/console_roles_controller.d.ts +31 -0
- package/build/src/host/admin_console/console_roles_controller.js +108 -0
- package/build/src/host/admin_console/console_sessions_controller.d.ts +91 -0
- package/build/src/host/admin_console/console_sessions_controller.js +125 -0
- package/build/src/host/admin_console/console_settings_controller.d.ts +47 -0
- package/build/src/host/admin_console/console_settings_controller.js +115 -0
- package/build/src/host/admin_console/console_users_controller.d.ts +110 -0
- package/build/src/host/admin_console/console_users_controller.js +212 -0
- package/build/src/host/admin_prefix.d.ts +50 -0
- package/build/src/host/admin_prefix.js +77 -0
- package/build/src/host/admin_sessions_service.d.ts +119 -0
- package/build/src/host/admin_sessions_service.js +284 -0
- package/build/src/host/admin_stats_service.d.ts +44 -0
- package/build/src/host/admin_stats_service.js +130 -0
- package/build/src/host/admin_validators.d.ts +247 -0
- package/build/src/host/admin_validators.js +197 -0
- package/build/src/host/augmentations.d.ts +12 -0
- package/build/src/host/augmentations.js +1 -0
- package/build/src/host/auth_host_config.d.ts +22 -0
- package/build/src/host/auth_host_config.js +13 -0
- package/build/src/host/avatar_storage.d.ts +68 -0
- package/build/src/host/avatar_storage.js +166 -0
- package/build/src/host/bot_protection.d.ts +187 -0
- package/build/src/host/bot_protection.js +132 -0
- package/build/src/host/branding.d.ts +19 -0
- package/build/src/host/branding.js +8 -0
- package/build/src/host/config_locks.d.ts +38 -0
- package/build/src/host/config_locks.js +70 -0
- package/build/src/host/console_session.d.ts +27 -0
- package/build/src/host/console_session.js +36 -0
- package/build/src/host/controllers/account_apps_controller.d.ts +15 -0
- package/build/src/host/controllers/account_apps_controller.js +61 -0
- package/build/src/host/controllers/account_confirm_controller.d.ts +24 -0
- package/build/src/host/controllers/account_confirm_controller.js +144 -0
- package/build/src/host/controllers/account_mfa_controller.d.ts +28 -0
- package/build/src/host/controllers/account_mfa_controller.js +208 -0
- package/build/src/host/controllers/account_orgs_controller.d.ts +80 -0
- package/build/src/host/controllers/account_orgs_controller.js +401 -0
- package/build/src/host/controllers/account_security_controller.d.ts +43 -0
- package/build/src/host/controllers/account_security_controller.js +546 -0
- package/build/src/host/controllers/account_session_controller.d.ts +21 -0
- package/build/src/host/controllers/account_session_controller.js +113 -0
- package/build/src/host/controllers/account_tokens_controller.d.ts +7 -0
- package/build/src/host/controllers/account_tokens_controller.js +67 -0
- package/build/src/host/controllers/interaction_controller.d.ts +125 -0
- package/build/src/host/controllers/interaction_controller.js +981 -0
- package/build/src/host/controllers/pat_introspection_controller.d.ts +22 -0
- package/build/src/host/controllers/pat_introspection_controller.js +46 -0
- package/build/src/host/controllers/registration_controller.d.ts +18 -0
- package/build/src/host/controllers/registration_controller.js +382 -0
- package/build/src/host/controllers/social_controller.d.ts +8 -0
- package/build/src/host/controllers/social_controller.js +89 -0
- package/build/src/host/csrf.d.ts +29 -0
- package/build/src/host/csrf.js +14 -0
- package/build/src/host/default_mailer.d.ts +112 -0
- package/build/src/host/default_mailer.js +417 -0
- package/build/src/host/durable/account_deletion_workflow.d.ts +48 -0
- package/build/src/host/durable/account_deletion_workflow.js +86 -0
- package/build/src/host/durable/account_export_workflow.d.ts +68 -0
- package/build/src/host/durable/account_export_workflow.js +93 -0
- package/build/src/host/durable/index.d.ts +68 -0
- package/build/src/host/durable/index.js +77 -0
- package/build/src/host/email_templates.d.ts +39 -0
- package/build/src/host/email_templates.js +69 -0
- package/build/src/host/geo.d.ts +22 -0
- package/build/src/host/geo.js +39 -0
- package/build/src/host/i18n.d.ts +1416 -0
- package/build/src/host/i18n.js +1583 -0
- package/build/src/host/impersonation.d.ts +25 -0
- package/build/src/host/impersonation.js +31 -0
- package/build/src/host/key_rotation.d.ts +14 -0
- package/build/src/host/key_rotation.js +27 -0
- package/build/src/host/key_rotation_actions.d.ts +42 -0
- package/build/src/host/key_rotation_actions.js +27 -0
- package/build/src/host/login_attempt.d.ts +98 -0
- package/build/src/host/login_attempt.js +211 -0
- package/build/src/host/login_notify.d.ts +27 -0
- package/build/src/host/login_notify.js +142 -0
- package/build/src/host/middleware/account_auth.d.ts +7 -0
- package/build/src/host/middleware/account_auth.js +11 -0
- package/build/src/host/otp_lockout.d.ts +103 -0
- package/build/src/host/otp_lockout.js +221 -0
- package/build/src/host/rate_limit.d.ts +39 -0
- package/build/src/host/rate_limit.js +94 -0
- package/build/src/host/register_auth_host.d.ts +97 -0
- package/build/src/host/register_auth_host.js +466 -0
- package/build/src/host/renderers/edge_renderer.d.ts +12 -0
- package/build/src/host/renderers/edge_renderer.js +38 -0
- package/build/src/host/renderers/inertia_renderer.d.ts +70 -0
- package/build/src/host/renderers/inertia_renderer.js +54 -0
- package/build/src/host/runtime_settings.d.ts +181 -0
- package/build/src/host/runtime_settings.js +307 -0
- package/build/src/host/runtime_toggles.d.ts +807 -0
- package/build/src/host/runtime_toggles.js +784 -0
- package/build/src/host/security_notice_service.d.ts +36 -0
- package/build/src/host/security_notice_service.js +87 -0
- package/build/src/host/session_context.d.ts +23 -0
- package/build/src/host/session_context.js +89 -0
- package/build/src/host/sudo_mode.d.ts +56 -0
- package/build/src/host/sudo_mode.js +99 -0
- package/build/src/host/svg_chart.d.ts +15 -0
- package/build/src/host/svg_chart.js +45 -0
- package/build/src/host/trusted_device.d.ts +61 -0
- package/build/src/host/trusted_device.js +65 -0
- package/build/src/host/ui-dist/assets/index-CRWcmsex.js +137 -0
- package/build/src/host/ui-dist/assets/index-DTSmD4RU.css +1 -0
- package/build/src/host/ui-dist/index.html +17 -0
- package/build/src/host/user_agent.d.ts +18 -0
- package/build/src/host/user_agent.js +50 -0
- package/build/src/host/validators.d.ts +127 -0
- package/build/src/host/validators.js +53 -0
- package/build/src/keys/jwks_manager.d.ts +6 -0
- package/build/src/keys/jwks_manager.js +11 -0
- package/build/src/keys/keystore.d.ts +52 -0
- package/build/src/keys/keystore.js +68 -0
- package/build/src/keys/keystore_codec.d.ts +20 -0
- package/build/src/keys/keystore_codec.js +42 -0
- package/build/src/keys/keystore_crypto.d.ts +9 -0
- package/build/src/keys/keystore_crypto.js +27 -0
- package/build/src/keys/keystore_manager.d.ts +43 -0
- package/build/src/keys/keystore_manager.js +104 -0
- package/build/src/keys/keystore_vault.d.ts +113 -0
- package/build/src/keys/keystore_vault.js +265 -0
- package/build/src/mixins/json_column.d.ts +33 -0
- package/build/src/mixins/json_column.js +38 -0
- package/build/src/mixins/with_audit_log.d.ts +19 -0
- package/build/src/mixins/with_audit_log.js +39 -0
- package/build/src/mixins/with_auth_user.d.ts +24 -0
- package/build/src/mixins/with_auth_user.js +46 -0
- package/build/src/mixins/with_credentials.d.ts +20 -0
- package/build/src/mixins/with_credentials.js +29 -0
- package/build/src/mixins/with_mfa.d.ts +35 -0
- package/build/src/mixins/with_mfa.js +21 -0
- package/build/src/mixins/with_personal_access_token.d.ts +19 -0
- package/build/src/mixins/with_personal_access_token.js +42 -0
- package/build/src/mixins/with_provider_identity.d.ts +20 -0
- package/build/src/mixins/with_provider_identity.js +32 -0
- package/build/src/mixins/with_webauthn_credential.d.ts +37 -0
- package/build/src/mixins/with_webauthn_credential.js +46 -0
- package/build/src/observability/diagnostics_bridge.d.ts +6 -0
- package/build/src/observability/diagnostics_bridge.js +27 -0
- package/build/src/observability/metrics_controller.d.ts +5 -0
- package/build/src/observability/metrics_controller.js +24 -0
- package/build/src/observability/metrics_service.d.ts +2 -0
- package/build/src/observability/metrics_service.js +7 -0
- package/build/src/observability/otel_recorder.d.ts +10 -0
- package/build/src/observability/otel_recorder.js +59 -0
- package/build/src/observability/telescope/data_providers.d.ts +24 -0
- package/build/src/observability/telescope/data_providers.js +235 -0
- package/build/src/observability/telescope/extension.d.ts +29 -0
- package/build/src/observability/telescope/extension.js +167 -0
- package/build/src/observability/telescope/index.d.ts +8 -0
- package/build/src/observability/telescope/index.js +8 -0
- package/build/src/observability/wire_provider_events.d.ts +12 -0
- package/build/src/observability/wire_provider_events.js +30 -0
- package/build/src/password/common_passwords.d.ts +31 -0
- package/build/src/password/common_passwords.js +73 -0
- package/build/src/password/password_manager.d.ts +163 -0
- package/build/src/password/password_manager.js +191 -0
- package/build/src/password/policy.d.ts +71 -0
- package/build/src/password/policy.js +55 -0
- package/build/src/password/pwned.d.ts +36 -0
- package/build/src/password/pwned.js +52 -0
- package/build/src/pat/lucid_pat_store.d.ts +6 -0
- package/build/src/pat/lucid_pat_store.js +62 -0
- package/build/src/pat/pat_store.d.ts +31 -0
- package/build/src/pat/pat_store.js +1 -0
- package/build/src/pat/pat_tokens.d.ts +4 -0
- package/build/src/pat/pat_tokens.js +9 -0
- package/build/src/provider/build_provider.d.ts +45 -0
- package/build/src/provider/build_provider.js +219 -0
- package/build/src/provider/device_sources.d.ts +6 -0
- package/build/src/provider/device_sources.js +65 -0
- package/build/src/provider/interaction_actions.d.ts +36 -0
- package/build/src/provider/interaction_actions.js +55 -0
- package/build/src/provider/key_rotation_scheduler.d.ts +28 -0
- package/build/src/provider/key_rotation_scheduler.js +40 -0
- package/build/src/provider/keystore_reload.d.ts +21 -0
- package/build/src/provider/keystore_reload.js +39 -0
- package/build/src/provider/logout_sources.d.ts +13 -0
- package/build/src/provider/logout_sources.js +64 -0
- package/build/src/provider/oidc_service.d.ts +81 -0
- package/build/src/provider/oidc_service.js +254 -0
- package/build/src/provider/single_flight_lock.d.ts +18 -0
- package/build/src/provider/single_flight_lock.js +31 -0
- package/build/src/provider/token_exchange.d.ts +21 -0
- package/build/src/provider/token_exchange.js +124 -0
- package/build/src/register_routes.d.ts +16 -0
- package/build/src/register_routes.js +21 -0
- package/build/src/schema/ensure.d.ts +41 -0
- package/build/src/schema/ensure.js +262 -0
- package/build/stubs/config/authkit.stub +20 -0
- package/build/stubs/config/authkit_react.stub +52 -0
- package/build/stubs/main.d.ts +1 -0
- package/build/stubs/main.js +2 -0
- package/build/stubs/models/auth_user.stub +22 -0
- package/build/stubs/ui/edge/views/consent.edge +13 -0
- package/build/stubs/ui/edge/views/login.edge +19 -0
- package/build/stubs/ui/react/components/auth_shell.tsx +67 -0
- package/build/stubs/ui/react/pages/account/login.tsx +56 -0
- package/build/stubs/ui/react/pages/account/mfa.tsx +132 -0
- package/build/stubs/ui/react/pages/account/tokens.tsx +88 -0
- package/build/stubs/ui/react/pages/consent.tsx +39 -0
- package/build/stubs/ui/react/pages/forgot.tsx +44 -0
- package/build/stubs/ui/react/pages/login.tsx +171 -0
- package/build/stubs/ui/react/pages/mfa-challenge.tsx +72 -0
- package/build/stubs/ui/react/pages/reset.tsx +58 -0
- package/build/stubs/ui/react/pages/signup.tsx +78 -0
- package/build/stubs/ui/react/pages/verify-email.tsx +24 -0
- package/build/types.d.ts +7 -0
- package/build/types.js +1 -0
- package/package.json +147 -0
- package/stubs/config/authkit.stub +20 -0
- package/stubs/config/authkit_react.stub +52 -0
- package/stubs/main.ts +2 -0
- package/stubs/models/auth_user.stub +22 -0
- package/stubs/ui/edge/views/consent.edge +13 -0
- package/stubs/ui/edge/views/login.edge +19 -0
- package/stubs/ui/react/components/auth_shell.tsx +67 -0
- package/stubs/ui/react/pages/account/login.tsx +56 -0
- package/stubs/ui/react/pages/account/mfa.tsx +132 -0
- package/stubs/ui/react/pages/account/tokens.tsx +88 -0
- package/stubs/ui/react/pages/consent.tsx +39 -0
- package/stubs/ui/react/pages/forgot.tsx +44 -0
- package/stubs/ui/react/pages/login.tsx +171 -0
- package/stubs/ui/react/pages/mfa-challenge.tsx +72 -0
- package/stubs/ui/react/pages/reset.tsx +58 -0
- package/stubs/ui/react/pages/signup.tsx +78 -0
- package/stubs/ui/react/pages/verify-email.tsx +24 -0
|
@@ -0,0 +1,772 @@
|
|
|
1
|
+
import type { HttpContext } from "@adonisjs/core/http";
|
|
2
|
+
import type { AccessTokenFormat, AccessTokensConfig, ClientConfig, JwksConfig, KeystoreStoreConfig, ObservabilityConfig, TtlConfig } from "@adonis-agora/authkit-core";
|
|
3
|
+
import { adapters, type AdapterFactory, type OidcAdapterClass } from "./adapters/factory.js";
|
|
4
|
+
import type { AccountStore, AuthAccount } from "./accounts/account_store.js";
|
|
5
|
+
import type { PatStore } from "./pat/pat_store.js";
|
|
6
|
+
import type { AuditSink } from "./audit/audit_sink.js";
|
|
7
|
+
import { type EventsConfigInput } from "./events/dispatcher.js";
|
|
8
|
+
import type { BrandingConfig } from "./host/branding.js";
|
|
9
|
+
import { type AuthMessages, type I18nConfig } from "./host/i18n.js";
|
|
10
|
+
import { type ResolvedTrustedDevicesConfig, type TrustedDevicesConfigInput } from "./host/trusted_device.js";
|
|
11
|
+
import { type BotProtectionConfigInput, type ResolvedBotProtectionConfig } from "./host/bot_protection.js";
|
|
12
|
+
import type { ResolveGeo } from "./host/geo.js";
|
|
13
|
+
export { adapters };
|
|
14
|
+
export type { AuthAccount };
|
|
15
|
+
export type AuthHostRenderer = (ctx: HttpContext, view: string, props: Record<string, unknown>) => unknown;
|
|
16
|
+
export interface AuthSocialConfig {
|
|
17
|
+
providers: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Hooks de e-mail plugáveis (best-effort). Quando ausentes, o host-kit cai no
|
|
21
|
+
* fallback de log em dev (sem enviar e-mail). O envio real fica a cargo do host
|
|
22
|
+
* (ex.: @adonisjs/mail), mantendo a lib agnóstica de transporte.
|
|
23
|
+
*/
|
|
24
|
+
export interface MailHooks {
|
|
25
|
+
/** Disparado após gerar o token de redefinição de senha. */
|
|
26
|
+
onPasswordReset?: (data: {
|
|
27
|
+
email: string;
|
|
28
|
+
resetUrl: string;
|
|
29
|
+
token: string;
|
|
30
|
+
}) => Promise<void>;
|
|
31
|
+
/** Disparado após gerar o token de verificação de e-mail. */
|
|
32
|
+
onEmailVerification?: (data: {
|
|
33
|
+
email: string;
|
|
34
|
+
verifyUrl: string;
|
|
35
|
+
token: string;
|
|
36
|
+
}) => Promise<void>;
|
|
37
|
+
/** Disparado após gerar o magic link de login (passwordless). */
|
|
38
|
+
onMagicLink?: (data: {
|
|
39
|
+
email: string;
|
|
40
|
+
magicUrl: string;
|
|
41
|
+
token: string;
|
|
42
|
+
}) => Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Disparado num login bem-sucedido a partir de um dispositivo NOVO (sem cookie
|
|
45
|
+
* de dispositivo confiável válido para a conta). Best-effort, fire-and-forget:
|
|
46
|
+
* uma falha aqui NUNCA quebra o login. Quando ausente mas o mail estiver
|
|
47
|
+
* configurado, o host-kit envia o e-mail default de "novo dispositivo".
|
|
48
|
+
*/
|
|
49
|
+
onNewDeviceLogin?: (data: {
|
|
50
|
+
account: {
|
|
51
|
+
id: string;
|
|
52
|
+
email: string | null;
|
|
53
|
+
};
|
|
54
|
+
ip?: string | null;
|
|
55
|
+
userAgent?: string | null;
|
|
56
|
+
timestamp: string;
|
|
57
|
+
}) => Promise<void>;
|
|
58
|
+
/** Disparado ao criar um convite de organização. */
|
|
59
|
+
onOrgInvitation?: (data: {
|
|
60
|
+
email: string;
|
|
61
|
+
invitationId: string;
|
|
62
|
+
orgName: string;
|
|
63
|
+
orgSlug: string;
|
|
64
|
+
role: string;
|
|
65
|
+
acceptUrl: string;
|
|
66
|
+
token: string;
|
|
67
|
+
}) => Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Disparado quando o usuário solicita troca de e-mail: envia o link de
|
|
70
|
+
* confirmação para o NOVO endereço. Quando ausente, o host-kit envia o
|
|
71
|
+
* e-mail default. Best-effort, fire-and-forget.
|
|
72
|
+
*/
|
|
73
|
+
onEmailChangeConfirm?: (data: {
|
|
74
|
+
/** Novo e-mail que receberá o link de confirmação. */
|
|
75
|
+
email: string;
|
|
76
|
+
confirmUrl: string;
|
|
77
|
+
token: string;
|
|
78
|
+
/** E-mail ATUAL da conta (para contexto no template). */
|
|
79
|
+
oldEmail: string;
|
|
80
|
+
}) => Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Disparado quando o usuário solicita troca de e-mail: envia aviso de
|
|
83
|
+
* segurança para o endereço ATUAL. Quando ausente, o host-kit envia o
|
|
84
|
+
* e-mail default. Best-effort, fire-and-forget.
|
|
85
|
+
*/
|
|
86
|
+
onEmailChangeNotice?: (data: {
|
|
87
|
+
/** E-mail ATUAL que receberá o aviso. */
|
|
88
|
+
email: string;
|
|
89
|
+
/** Novo e-mail solicitado (para informação). */
|
|
90
|
+
newEmail: string;
|
|
91
|
+
}) => Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Disparado quando o fator OTP (TOTP/recovery) fica travado por excesso de
|
|
94
|
+
* tentativas falhas. Envia o link de desbloqueio para o e-mail da conta.
|
|
95
|
+
* Best-effort, fire-and-forget.
|
|
96
|
+
*/
|
|
97
|
+
onOtpUnlock?: (data: {
|
|
98
|
+
email: string;
|
|
99
|
+
unlockUrl: string;
|
|
100
|
+
token: string;
|
|
101
|
+
}) => Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Disparado após um evento de segurança (senha alterada, MFA habilitado/desabilitado,
|
|
104
|
+
* passkey adicionada/removida, e-mail alterado). Substitui o e-mail default quando
|
|
105
|
+
* fornecido. Best-effort, fire-and-forget. Quando ausente, o host-kit envia o e-mail
|
|
106
|
+
* default correspondente a cada kind.
|
|
107
|
+
*/
|
|
108
|
+
onSecurityNotice?: (data: {
|
|
109
|
+
account: {
|
|
110
|
+
id: string;
|
|
111
|
+
email: string;
|
|
112
|
+
};
|
|
113
|
+
kind: "password_changed" | "mfa_enabled" | "mfa_disabled" | "passkey_added" | "passkey_removed" | "email_changed";
|
|
114
|
+
ip?: string | null;
|
|
115
|
+
userAgent?: string | null;
|
|
116
|
+
timestamp: string;
|
|
117
|
+
/** Metadados extras (ex.: oldEmail/newEmail para email_changed). */
|
|
118
|
+
metadata?: Record<string, string>;
|
|
119
|
+
}) => Promise<void>;
|
|
120
|
+
}
|
|
121
|
+
/** Bucket de rate-limit: pontos (requests) permitidos por janela de duração. */
|
|
122
|
+
export interface RateLimitBucket {
|
|
123
|
+
/** Número de requests permitidos na janela. */
|
|
124
|
+
points: number;
|
|
125
|
+
/** Duração da janela (ex.: '1 min', '15 mins', 60). */
|
|
126
|
+
duration: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Rate-limiting para as rotas sensíveis do host-kit.
|
|
130
|
+
* Backed pelo `@adonisjs/limiter` (o host precisa tê-lo configurado: config/limiter.ts).
|
|
131
|
+
* Ligado por default; se o limiter não estiver configurado, o throttle vira no-op
|
|
132
|
+
* (fail-safe, sem quebra). Passe `enabled: false` para montar as rotas SEM throttle.
|
|
133
|
+
*
|
|
134
|
+
* Política (buckets login/introspection) é gerenciada em runtime via setting `rate_limit`
|
|
135
|
+
* no admin console ou Admin API — sem necessidade de redeploy.
|
|
136
|
+
*/
|
|
137
|
+
export interface RateLimitConfigInput {
|
|
138
|
+
/** Liga o rate-limit. Default: true. Infra — permanece no config estático. */
|
|
139
|
+
enabled?: boolean;
|
|
140
|
+
/** Nome do store configurado em config/limiter.ts a usar. Infra — permanece no config estático. */
|
|
141
|
+
store?: string;
|
|
142
|
+
}
|
|
143
|
+
export interface ResolvedRateLimitConfig {
|
|
144
|
+
enabled: boolean;
|
|
145
|
+
login: RateLimitBucket;
|
|
146
|
+
introspection: RateLimitBucket;
|
|
147
|
+
/**
|
|
148
|
+
* Bucket por IP do grupo admin-api (R6). Anti-brute-force REAL da Bearer key:
|
|
149
|
+
* limita as tentativas vindas do MESMO IP independentemente de qual key foi
|
|
150
|
+
* usada (M8). Default: 30/min — generoso para uso legítimo machine-to-machine,
|
|
151
|
+
* apertado o suficiente para conter um ataque de força bruta por IP.
|
|
152
|
+
*/
|
|
153
|
+
adminIp: RateLimitBucket;
|
|
154
|
+
store?: string;
|
|
155
|
+
}
|
|
156
|
+
export declare function resolveRateLimit(input?: RateLimitConfigInput): ResolvedRateLimitConfig;
|
|
157
|
+
/**
|
|
158
|
+
* Bloqueio progressivo de conta (anti-brute-force keyed por EMAIL, complementar ao
|
|
159
|
+
* rate-limit por IP). Backed pelo mesmo `@adonisjs/limiter` do host (peer/opt-in) —
|
|
160
|
+
* SEM migração nem DB. Ligado por default; vira no-op se o limiter não existir.
|
|
161
|
+
*
|
|
162
|
+
* Política (enabled/maxAttempts/windowSec/etc.) é gerenciada em runtime via setting
|
|
163
|
+
* `lockout` no admin console ou Admin API — sem necessidade de redeploy.
|
|
164
|
+
*/
|
|
165
|
+
export interface LockoutConfigInput {
|
|
166
|
+
/** Store do `config/limiter.ts` a usar. Infra — permanece no config estático. */
|
|
167
|
+
store?: string;
|
|
168
|
+
}
|
|
169
|
+
export interface ResolvedLockoutConfig {
|
|
170
|
+
enabled: boolean;
|
|
171
|
+
maxAttempts: number;
|
|
172
|
+
windowSec: number;
|
|
173
|
+
baseLockoutSec: number;
|
|
174
|
+
maxLockoutSec: number;
|
|
175
|
+
store?: string;
|
|
176
|
+
}
|
|
177
|
+
export declare function resolveLockout(input?: LockoutConfigInput): ResolvedLockoutConfig;
|
|
178
|
+
export interface ResolvedNotificationsConfig {
|
|
179
|
+
newLoginEmail: boolean;
|
|
180
|
+
newDeviceEmail: boolean;
|
|
181
|
+
}
|
|
182
|
+
export declare function resolveNotifications(): ResolvedNotificationsConfig;
|
|
183
|
+
/**
|
|
184
|
+
* Registro dinâmico de clients (OIDC Dynamic Client Registration — RFC 7591).
|
|
185
|
+
*
|
|
186
|
+
* Quando habilitado, o oidc-provider expõe o endpoint de registro (`/reg`) e os
|
|
187
|
+
* clients criados ali são PERSISTIDOS pelo MESMO adapter usado para os demais
|
|
188
|
+
* artefatos OIDC. Assim, clients dinâmicos coexistem com os `clients` estáticos
|
|
189
|
+
* da config e ficam disponíveis para uma futura UI admin que gerencia clients no DB.
|
|
190
|
+
*/
|
|
191
|
+
export interface DynamicRegistrationConfigInput {
|
|
192
|
+
/** Liga o endpoint de registro dinâmico. Default: false (comportamento atual). */
|
|
193
|
+
enabled: boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Exige um Initial Access Token (IAT) como bearer para registrar (RFC 7591 §3).
|
|
196
|
+
* Quando ausente/false, o registro é ABERTO (qualquer um pode registrar um client) —
|
|
197
|
+
* isso raramente é desejável em produção; prefira sempre definir um IAT.
|
|
198
|
+
*/
|
|
199
|
+
initialAccessToken?: string;
|
|
200
|
+
/**
|
|
201
|
+
* Habilita o Registration Management (RFC 7592): ler/atualizar/deletar o client
|
|
202
|
+
* registrado via o `registration_access_token` devolvido no registro. Default: false.
|
|
203
|
+
*/
|
|
204
|
+
management?: boolean;
|
|
205
|
+
}
|
|
206
|
+
export interface ResolvedDynamicRegistrationConfig {
|
|
207
|
+
enabled: boolean;
|
|
208
|
+
initialAccessToken?: string;
|
|
209
|
+
management: boolean;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Resolve a config de registro dinâmico e VALIDA invariantes em tempo de resolução.
|
|
213
|
+
* O Registration Management (RFC 7592) só faz sentido com o registro habilitado
|
|
214
|
+
* (RFC 7591) — `management: true` com `enabled: false` é um erro de configuração.
|
|
215
|
+
*/
|
|
216
|
+
export declare function resolveDynamicRegistration(input?: DynamicRegistrationConfigInput): ResolvedDynamicRegistrationConfig;
|
|
217
|
+
/**
|
|
218
|
+
* Device Authorization Grant (RFC 8628). Quando habilitado, o oidc-provider expõe
|
|
219
|
+
* o `device_authorization_endpoint` (`/device/auth`) e a tela de verificação de
|
|
220
|
+
* user-code (`/device`). O grant `urn:ietf:params:oauth:grant-type:device_code`
|
|
221
|
+
* deve ser concedido ao client (lista `grants`) para o fluxo funcionar.
|
|
222
|
+
*/
|
|
223
|
+
export interface DeviceFlowConfigInput {
|
|
224
|
+
/** Liga o Device Authorization Grant. Default: false. */
|
|
225
|
+
enabled: boolean;
|
|
226
|
+
}
|
|
227
|
+
export interface ResolvedDeviceFlowConfig {
|
|
228
|
+
enabled: boolean;
|
|
229
|
+
}
|
|
230
|
+
export declare function resolveDeviceFlow(input?: DeviceFlowConfigInput): ResolvedDeviceFlowConfig;
|
|
231
|
+
/**
|
|
232
|
+
* Uploads — usa o `@adonisjs/drive` JÁ configurado no app (mesmo princípio do
|
|
233
|
+
* mailer/limiter: a infra do host por padrão, sobreponível aqui). Hoje cobre o
|
|
234
|
+
* upload de avatar no console de conta. Se o drive estiver ausente, a feature
|
|
235
|
+
* degrada para o input de URL.
|
|
236
|
+
*/
|
|
237
|
+
export interface UploadsConfigInput {
|
|
238
|
+
avatars?: {
|
|
239
|
+
/** Disk do `@adonisjs/drive` a usar. Default: o disk DEFAULT do app. */
|
|
240
|
+
disk?: string;
|
|
241
|
+
/** Diretório/prefixo das chaves. Default: 'authkit/avatars'. */
|
|
242
|
+
directory?: string;
|
|
243
|
+
/** Tamanho máximo em MB. Default: 5. */
|
|
244
|
+
maxSizeMb?: number;
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
export interface ResolvedUploadsConfig {
|
|
248
|
+
avatars: {
|
|
249
|
+
/** Disk explícito; `undefined` = disk DEFAULT do app. */
|
|
250
|
+
disk?: string;
|
|
251
|
+
directory: string;
|
|
252
|
+
maxSizeMb: number;
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
export declare function resolveUploads(input?: UploadsConfigInput): ResolvedUploadsConfig;
|
|
256
|
+
/**
|
|
257
|
+
* DPoP — Demonstrating Proof of Possession (RFC 9449). Quando habilitado, o
|
|
258
|
+
* oidc-provider aceita DPoP proofs e emite tokens sender-constrained
|
|
259
|
+
* (`token_type: DPoP`, com `cnf.jkt`). A discovery passa a anunciar
|
|
260
|
+
* `dpop_signing_alg_values_supported`. Os resolvers do authkit-client aceitam o
|
|
261
|
+
* token via introspecção (a cnf viaja no resultado) — a geração de provas DPoP no
|
|
262
|
+
* client está fora de escopo (documentado como trabalho futuro).
|
|
263
|
+
*/
|
|
264
|
+
export interface DpopConfigInput {
|
|
265
|
+
/** Liga o DPoP. Default: false. */
|
|
266
|
+
enabled: boolean;
|
|
267
|
+
}
|
|
268
|
+
export interface ResolvedDpopConfig {
|
|
269
|
+
enabled: boolean;
|
|
270
|
+
}
|
|
271
|
+
export declare function resolveDpop(input?: DpopConfigInput): ResolvedDpopConfig;
|
|
272
|
+
/**
|
|
273
|
+
* PAR — Pushed Authorization Requests (RFC 9126). Quando habilitado, o
|
|
274
|
+
* oidc-provider expõe o `pushed_authorization_request_endpoint` (`/request`): o
|
|
275
|
+
* client POSTa os parâmetros de authorize e recebe um `request_uri` opaco para
|
|
276
|
+
* usar no `/auth`. Com `requirePushedAuthorizationRequests`, o `/auth` SÓ aceita
|
|
277
|
+
* requests via `request_uri` (parâmetros inline são rejeitados).
|
|
278
|
+
*/
|
|
279
|
+
export interface ParConfigInput {
|
|
280
|
+
/** Liga o PAR. Default: false. */
|
|
281
|
+
enabled: boolean;
|
|
282
|
+
/** Exige que TODO authorize venha via request_uri do PAR. Default: false. */
|
|
283
|
+
requirePushedAuthorizationRequests?: boolean;
|
|
284
|
+
}
|
|
285
|
+
export interface ResolvedParConfig {
|
|
286
|
+
enabled: boolean;
|
|
287
|
+
requirePushedAuthorizationRequests: boolean;
|
|
288
|
+
}
|
|
289
|
+
export declare function resolvePar(input?: ParConfigInput): ResolvedParConfig;
|
|
290
|
+
/**
|
|
291
|
+
* Step-up authentication via `acr_values` (MVP pragmático de MFA por requisição).
|
|
292
|
+
* Quando o client solicita `acr_values` contendo `mfaAcr`, o login EXIGE o 2º
|
|
293
|
+
* fator: contas com MFA enrolado passam pelo desafio (o `acr` do id_token vira
|
|
294
|
+
* `mfaAcr` e `amr` recebe `['mfa', método]`); contas SEM MFA enrolado têm o login
|
|
295
|
+
* bloqueado naquela requisição com a instrução de configurar MFA no console.
|
|
296
|
+
*/
|
|
297
|
+
export interface StepUpConfigInput {
|
|
298
|
+
/** Lista de acr_values anunciados como suportados (discovery). */
|
|
299
|
+
acrValues?: string[];
|
|
300
|
+
/** O acr que dispara a exigência de MFA. Default: 'urn:authkit:mfa'. */
|
|
301
|
+
mfaAcr?: string;
|
|
302
|
+
}
|
|
303
|
+
export interface ResolvedStepUpConfig {
|
|
304
|
+
acrValues: string[];
|
|
305
|
+
mfaAcr: string;
|
|
306
|
+
}
|
|
307
|
+
export declare function resolveStepUp(input?: StepUpConfigInput): ResolvedStepUpConfig;
|
|
308
|
+
/**
|
|
309
|
+
* Login passwordless. Duas vias independentes e opcionais:
|
|
310
|
+
* - `magicLink`: na tela de senha, oferece "me envie um link de login". Um token
|
|
311
|
+
* de uso único e curta duração é enviado por e-mail; abrir o link finaliza o
|
|
312
|
+
* login (amr `['email']`). Sempre responde "link enviado" (não vaza contas).
|
|
313
|
+
* - `passkeyFirst`: na tela de senha, se a conta tem passkeys, oferece "entrar
|
|
314
|
+
* com passkey" ANTES da senha. Verificar a passkey já conta como o 2º fator
|
|
315
|
+
* (amr `['webauthn']`) — não pede senha nem MFA.
|
|
316
|
+
*
|
|
317
|
+
* Ambas exigem que o accountStore implemente a capacidade correspondente
|
|
318
|
+
* (MagicLinkCapability / WebauthnCapability), senão a opção fica oculta.
|
|
319
|
+
*/
|
|
320
|
+
export interface PasswordlessConfigInput {
|
|
321
|
+
/** Liga o login por magic link (e-mail). Default: false. */
|
|
322
|
+
magicLink?: boolean;
|
|
323
|
+
/** Liga o "entrar com passkey" antes da senha. Default: false. */
|
|
324
|
+
passkeyFirst?: boolean;
|
|
325
|
+
}
|
|
326
|
+
export interface ResolvedPasswordlessConfig {
|
|
327
|
+
magicLink: boolean;
|
|
328
|
+
passkeyFirst: boolean;
|
|
329
|
+
}
|
|
330
|
+
export declare function resolvePasswordless(input?: PasswordlessConfigInput): ResolvedPasswordlessConfig;
|
|
331
|
+
/**
|
|
332
|
+
* Política de login por senha/identidade. Hoje cobre `requireVerifiedEmail`:
|
|
333
|
+
* quando ligado, TODO fluxo de login que materializa uma sessão (login por senha,
|
|
334
|
+
* magic link e passkey-first) rejeita contas cujo e-mail ainda NÃO foi verificado,
|
|
335
|
+
* com a instrução de verificar o e-mail.
|
|
336
|
+
*
|
|
337
|
+
* Capability-probed: a checagem depende do accountStore expor
|
|
338
|
+
* {@link EmailVerificationStatusCapability} (`isEmailVerified`). Se o store não
|
|
339
|
+
* tem noção de "e-mail verificado", a feature degrada para NO-OP (não bloqueia
|
|
340
|
+
* ninguém) e o `authkit:doctor` avisa.
|
|
341
|
+
*/
|
|
342
|
+
export interface LoginConfigInput {
|
|
343
|
+
/** Exige e-mail verificado para autenticar (senha/magic link/passkey-first). Default: false. */
|
|
344
|
+
requireVerifiedEmail?: boolean;
|
|
345
|
+
}
|
|
346
|
+
export interface ResolvedLoginConfig {
|
|
347
|
+
requireVerifiedEmail: boolean;
|
|
348
|
+
}
|
|
349
|
+
export declare function resolveLogin(input?: LoginConfigInput): ResolvedLoginConfig;
|
|
350
|
+
/**
|
|
351
|
+
* Configuração de cadastro público (signup). Controla se novos usuários podem
|
|
352
|
+
* se auto-registrar. Quando `enabled: false`, a tela de signup mostra uma
|
|
353
|
+
* mensagem de "registro desabilitado" e o POST rejeita. Fluxos administrativos
|
|
354
|
+
* (admin create + org invite) NÃO são afetados — são fluxos privilegiados.
|
|
355
|
+
*
|
|
356
|
+
* O runtime setting `registration` (em `auth_settings`) sobrescreve este valor
|
|
357
|
+
* em tempo de execução sem necessidade de redeploy.
|
|
358
|
+
*/
|
|
359
|
+
export interface RegistrationConfigInput {
|
|
360
|
+
/** Permite o cadastro público (signup). Default: true. */
|
|
361
|
+
enabled?: boolean;
|
|
362
|
+
}
|
|
363
|
+
export interface ResolvedRegistrationConfig {
|
|
364
|
+
enabled: boolean;
|
|
365
|
+
}
|
|
366
|
+
export declare function resolveRegistration(input?: RegistrationConfigInput): ResolvedRegistrationConfig;
|
|
367
|
+
/**
|
|
368
|
+
* Access Tokens (RFC 9068) resolvido. `format` é o formato default; `audience` é a
|
|
369
|
+
* `aud` do JWT no modo simples (default issuer). `resources` é o mapa de Resource
|
|
370
|
+
* Servers (RFC 8707) com defaults já aplicados por entrada. Sempre presente — o
|
|
371
|
+
* default (`opaque`, sem resources) preserva 100% o comportamento atual.
|
|
372
|
+
*/
|
|
373
|
+
export interface ResolvedAccessTokensConfig {
|
|
374
|
+
format: AccessTokenFormat;
|
|
375
|
+
/** `aud` do JWT no modo simples e resource indicator default. */
|
|
376
|
+
audience: string;
|
|
377
|
+
/** Indica se ALGUM AT deve ser JWT (modo simples jwt OU alguma resource jwt). */
|
|
378
|
+
anyJwt: boolean;
|
|
379
|
+
resources: Record<string, {
|
|
380
|
+
audience: string;
|
|
381
|
+
scopes?: string[];
|
|
382
|
+
format: AccessTokenFormat;
|
|
383
|
+
expiresIn?: number;
|
|
384
|
+
}>;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Resolve a config de access tokens. No modo simples (`format: 'jwt'` sem
|
|
388
|
+
* `resources`), o `audience` default vira o próprio issuer e materializamos uma
|
|
389
|
+
* resource implícita com essa URI para que o oidc-provider emita o JWT (um JWT AT
|
|
390
|
+
* SEMPRE exige um resource indicator com `aud`). Cada entrada de `resources`
|
|
391
|
+
* herda o `format` raiz quando não especifica o seu.
|
|
392
|
+
*/
|
|
393
|
+
export declare function resolveAccessTokens(issuer: string, input?: AccessTokensConfig): ResolvedAccessTokensConfig;
|
|
394
|
+
/**
|
|
395
|
+
* Console admin opt-in do IdP (B6). Quando habilitado, monta o grupo `/admin/*`
|
|
396
|
+
* (dashboard, usuários/papéis, clients, audit) atrás de um guard que exige sessão
|
|
397
|
+
* de conta E que a conta tenha pelo menos um dos `roles` nas suas roles globais.
|
|
398
|
+
* Default: DESLIGADO — hosts existentes não mudam de comportamento.
|
|
399
|
+
*/
|
|
400
|
+
export interface AdminConfigInput {
|
|
401
|
+
/** Liga o console admin. Default: false. */
|
|
402
|
+
enabled: boolean;
|
|
403
|
+
/** Roles globais que dão acesso ao /admin. Default: ['ADMIN']. */
|
|
404
|
+
roles?: string[];
|
|
405
|
+
}
|
|
406
|
+
export interface ResolvedAdminConfig {
|
|
407
|
+
enabled: boolean;
|
|
408
|
+
roles: string[];
|
|
409
|
+
impersonation: boolean;
|
|
410
|
+
}
|
|
411
|
+
export declare function resolveAdmin(input?: AdminConfigInput): ResolvedAdminConfig;
|
|
412
|
+
/**
|
|
413
|
+
* Admin REST API (R6) — superfície de gestão machine-to-machine, consumida por um
|
|
414
|
+
* futuro SDK. Default: DESLIGADA. A autenticação é por API key (Bearer), checada
|
|
415
|
+
* em tempo constante contra `apiKeys`. Independente do console admin (B6): pode
|
|
416
|
+
* ligar uma sem a outra.
|
|
417
|
+
*/
|
|
418
|
+
export interface AdminApiConfigInput {
|
|
419
|
+
/**
|
|
420
|
+
* Liga a Admin REST API (`/api/authkit/v1`). Default: auto — ligada quando há
|
|
421
|
+
* ao menos uma apiKey resolvida (incl. via `'env'`). Passe `false` p/ forçar off.
|
|
422
|
+
*/
|
|
423
|
+
enabled?: boolean;
|
|
424
|
+
/**
|
|
425
|
+
* API keys aceitas em `Authorization: Bearer <key>`, OU `'env'` para ler de
|
|
426
|
+
* `AUTHKIT_ADMIN_API_KEY` (uma ou várias, separadas por vírgula). Elimina o
|
|
427
|
+
* spread condicional `...(env.get('AUTHKIT_ADMIN_API_KEY') ? {...} : {})`.
|
|
428
|
+
*/
|
|
429
|
+
apiKeys?: string[] | "env";
|
|
430
|
+
}
|
|
431
|
+
export interface ResolvedAdminApiConfig {
|
|
432
|
+
enabled: boolean;
|
|
433
|
+
apiKeys: string[];
|
|
434
|
+
}
|
|
435
|
+
export declare function resolveAdminApi(input?: AdminApiConfigInput): ResolvedAdminApiConfig;
|
|
436
|
+
/**
|
|
437
|
+
* Organizations (multi-tenancy). Feature opcional — ativa-se automaticamente
|
|
438
|
+
* quando as três tabelas (`auth_organizations`, `auth_organization_members`,
|
|
439
|
+
* `auth_organization_invitations`) estão presentes no DB (capability-probing).
|
|
440
|
+
*
|
|
441
|
+
* Roles disponíveis definem quais values são aceitos em `addMember`/`inviteByEmail`.
|
|
442
|
+
* A role `'owner'` é reservada: uma org SEMPRE precisa de pelo menos um owner.
|
|
443
|
+
* `allowSelfCreate`: se um usuário autenticado pode criar sua própria org (default false).
|
|
444
|
+
* `invitationTtlHours`: TTL dos convites em horas (default 168 = 7 dias).
|
|
445
|
+
* `claimStrategy: 'active'`: emite claims da org ATIVA da sessão (única estratégia implementada).
|
|
446
|
+
*/
|
|
447
|
+
export interface OrganizationsConfigInput {
|
|
448
|
+
/** Liga explicitamente. Default: auto (liga quando as tabelas existem). */
|
|
449
|
+
enabled?: boolean;
|
|
450
|
+
/**
|
|
451
|
+
* Estratégia de emissão de claims. Só 'active' é suportado:
|
|
452
|
+
* emite org_id/org_slug/org_role da org ativa da sessão via cookie assinado.
|
|
453
|
+
* Default: 'active'.
|
|
454
|
+
*/
|
|
455
|
+
claimStrategy?: "active";
|
|
456
|
+
}
|
|
457
|
+
export interface ResolvedOrganizationsConfig {
|
|
458
|
+
/** `undefined` = auto (decide em runtime pelo capability-probing do store). */
|
|
459
|
+
enabled: boolean | undefined;
|
|
460
|
+
roles: string[];
|
|
461
|
+
allowSelfCreate: boolean;
|
|
462
|
+
invitationTtlHours: number;
|
|
463
|
+
claimStrategy: "active";
|
|
464
|
+
}
|
|
465
|
+
export declare function resolveOrganizations(input?: OrganizationsConfigInput): ResolvedOrganizationsConfig;
|
|
466
|
+
/**
|
|
467
|
+
* Parâmetros do Relying Party (RP) das cerimônias WebAuthn / passkeys. Quando
|
|
468
|
+
* omitidos, são derivados do `issuer`: `rpId` = hostname (sem porta), `origin` =
|
|
469
|
+
* origem (scheme://host[:port]) do issuer, `rpName` = nome do app/branding.
|
|
470
|
+
*/
|
|
471
|
+
export interface WebauthnConfigInput {
|
|
472
|
+
/** Nome do RP mostrado pelo authenticator. Default: branding/app name. */
|
|
473
|
+
rpName?: string;
|
|
474
|
+
/** RP ID — hostname (sem porta) do issuer. Default: hostname do issuer. */
|
|
475
|
+
rpId?: string;
|
|
476
|
+
/** Origin(s) esperada(s) na verificação. Default: origem do issuer. */
|
|
477
|
+
origin?: string | string[];
|
|
478
|
+
}
|
|
479
|
+
export interface ResolvedWebauthnConfig {
|
|
480
|
+
rpName: string;
|
|
481
|
+
rpId: string;
|
|
482
|
+
origin: string | string[];
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* Resolve os parâmetros do RP de WebAuthn a partir do `issuer` quando omitidos.
|
|
486
|
+
* `rpName` cai no `fallbackName` (branding/mfaIssuer) quando ausente.
|
|
487
|
+
*/
|
|
488
|
+
export declare function resolveWebauthn(issuer: string, fallbackName: string, input?: WebauthnConfigInput): ResolvedWebauthnConfig;
|
|
489
|
+
export interface AuthServerConfigInput {
|
|
490
|
+
issuer: string;
|
|
491
|
+
adapter: AdapterFactory;
|
|
492
|
+
/**
|
|
493
|
+
* Clientes OIDC pré-carregados no provider ao subir. Útil para testes e
|
|
494
|
+
* migrações pontuais. Para uso em produção, gerencie clients via console admin
|
|
495
|
+
* ou Admin API (`node ace authkit:clients:create`).
|
|
496
|
+
* @internal
|
|
497
|
+
*/
|
|
498
|
+
clients?: ClientConfig[];
|
|
499
|
+
/**
|
|
500
|
+
* Config de JWKS, ou `'auto'` (recomendado p/ deploys efêmeros): se a env
|
|
501
|
+
* `AUTHKIT_JWKS` (JSON `{"keys":[...]}`) estiver presente, usa-a inline
|
|
502
|
+
* (`source: 'jwks'`) — sobrevive a restarts/deploys; senão cai no managed
|
|
503
|
+
* persistido em arquivo (`tmp/authkit_jwks.json`) p/ dev. Elimina o ternário
|
|
504
|
+
* env-aware que todo app escrevia.
|
|
505
|
+
*/
|
|
506
|
+
jwks: JwksConfig | "auto";
|
|
507
|
+
ttl?: TtlConfig;
|
|
508
|
+
/** Nome da CLAIM (não do scope) onde os papéis globais são emitidos. Default: 'roles'. */
|
|
509
|
+
globalRolesClaim?: string;
|
|
510
|
+
cookieKeys?: string[];
|
|
511
|
+
observability?: ObservabilityConfig;
|
|
512
|
+
/** Contrato primário de identidade. Deriva findAccount/verifyCredentials do provider. */
|
|
513
|
+
accountStore: AccountStore;
|
|
514
|
+
/** Opcional — necessário só para fluxos de Personal Access Token. */
|
|
515
|
+
patStore?: PatStore;
|
|
516
|
+
/** Caminho base onde o host-kit monta as rotas OIDC. Default: '/oidc'. */
|
|
517
|
+
mountPath?: string;
|
|
518
|
+
/**
|
|
519
|
+
* Destino default da área da conta: pós-login do console (sem `return_to`),
|
|
520
|
+
* confirmações de e-mail e fallback de redirects. Default: '/account/security'.
|
|
521
|
+
* Hosts que preferem mandar o usuário direto pro app podem apontar pra rota deles.
|
|
522
|
+
*/
|
|
523
|
+
accountHome?: string;
|
|
524
|
+
/** Renderer de páginas do host (Inertia ou Edge). */
|
|
525
|
+
render?: AuthHostRenderer;
|
|
526
|
+
/** Configuração de branding por cliente. */
|
|
527
|
+
branding?: BrandingConfig;
|
|
528
|
+
/** Internacionalização das telas. Default: pt-BR embutido (zero config). */
|
|
529
|
+
i18n?: I18nConfig;
|
|
530
|
+
/** Configuração de providers sociais. */
|
|
531
|
+
social?: AuthSocialConfig;
|
|
532
|
+
/** Segredo para autenticar requests de introspecção de PAT. */
|
|
533
|
+
patIntrospectionSecret?: string;
|
|
534
|
+
/** Rate-limiting das rotas sensíveis (anti-brute-force). Default: ligado (no-op se o limiter não estiver configurado). */
|
|
535
|
+
rateLimit?: RateLimitConfigInput;
|
|
536
|
+
/** Bloqueio progressivo de conta por email em falhas repetidas. Default: ligado (no-op sem limiter). */
|
|
537
|
+
lockout?: LockoutConfigInput;
|
|
538
|
+
/** Hooks de e-mail (reset de senha / verificação). Opcional — fallback de log em dev. */
|
|
539
|
+
mail?: MailHooks;
|
|
540
|
+
/** Sink de auditoria (best-effort). Opcional — quando ausente, auditoria é no-op. */
|
|
541
|
+
audit?: AuditSink;
|
|
542
|
+
/**
|
|
543
|
+
* Eventos/webhooks: o host observa CADA evento de auditoria via callback
|
|
544
|
+
* in-process (`onEvent`) e/ou POST de webhook (`webhook`). Best-effort, nunca
|
|
545
|
+
* lança para a request. Quando setado, o `audit` resolvido vira um fan-out
|
|
546
|
+
* (sink original + onEvent + webhook).
|
|
547
|
+
*/
|
|
548
|
+
events?: EventsConfigInput;
|
|
549
|
+
/**
|
|
550
|
+
* Label de issuer TOTP mostrado nos apps autenticadores (MFA). Default: 'AuthKit'.
|
|
551
|
+
* O `lucidAccountStore` lê isso para montar o keyuri/QR.
|
|
552
|
+
*/
|
|
553
|
+
mfaIssuer?: string;
|
|
554
|
+
/**
|
|
555
|
+
* Parâmetros do RP de WebAuthn / passkeys (2º fator alternativo ao TOTP).
|
|
556
|
+
* Opcional — quando omitido, é derivado do `issuer`. As passkeys só ficam
|
|
557
|
+
* disponíveis quando o accountStore + o model de credenciais suportam.
|
|
558
|
+
*/
|
|
559
|
+
webauthn?: WebauthnConfigInput;
|
|
560
|
+
/**
|
|
561
|
+
* Registro dinâmico de clients (RFC 7591/7592). Default: desligado. Quando ligado,
|
|
562
|
+
* os clients registrados são persistidos pelo mesmo adapter OIDC.
|
|
563
|
+
*/
|
|
564
|
+
dynamicRegistration?: DynamicRegistrationConfigInput;
|
|
565
|
+
/** Device Authorization Grant (RFC 8628). Default: desligado. */
|
|
566
|
+
deviceFlow?: DeviceFlowConfigInput;
|
|
567
|
+
/** Uploads (avatar) via o `@adonisjs/drive` do app. Default: drive default, 5MB. */
|
|
568
|
+
uploads?: UploadsConfigInput;
|
|
569
|
+
/** DPoP — sender-constrained tokens (RFC 9449). Default: desligado. */
|
|
570
|
+
dpop?: DpopConfigInput;
|
|
571
|
+
/** Pushed Authorization Requests (RFC 9126). Default: desligado. */
|
|
572
|
+
par?: ParConfigInput;
|
|
573
|
+
/** Step-up auth via acr_values (MFA por requisição). Default: vazio (só o mfaAcr derivado). */
|
|
574
|
+
stepUp?: StepUpConfigInput;
|
|
575
|
+
/**
|
|
576
|
+
* Trusted devices: pular o MFA neste dispositivo por N dias via cookie
|
|
577
|
+
* encriptado (appKey-backed), sem migração. Default: ligado, 30 dias. Step-up
|
|
578
|
+
* (acr_values) sempre ignora o cookie e força o MFA.
|
|
579
|
+
*/
|
|
580
|
+
trustedDevices?: TrustedDevicesConfigInput;
|
|
581
|
+
/**
|
|
582
|
+
* Bot protection plugável (CAPTCHA/challenge), agnóstica de vendor. O HOST
|
|
583
|
+
* fornece o `verify`; a lib injeta o widget nas telas e checa o token ANTES de
|
|
584
|
+
* processar credenciais. Default: desligado. Fail-safe: erro/timeout no `verify`
|
|
585
|
+
* PERMITE o fluxo (disponibilidade > proteção).
|
|
586
|
+
*/
|
|
587
|
+
botProtection?: BotProtectionConfigInput;
|
|
588
|
+
/**
|
|
589
|
+
* Login passwordless (magic link por e-mail e/ou passkey-first). Default: ambos
|
|
590
|
+
* desligados. Exigem as capacidades correspondentes no accountStore.
|
|
591
|
+
*/
|
|
592
|
+
passwordless?: PasswordlessConfigInput;
|
|
593
|
+
/**
|
|
594
|
+
* Política de login (hoje: `requireVerifiedEmail`). Default: tudo desligado.
|
|
595
|
+
* `requireVerifiedEmail` é capability-probed (precisa de `isEmailVerified` no store).
|
|
596
|
+
*/
|
|
597
|
+
login?: LoginConfigInput;
|
|
598
|
+
/**
|
|
599
|
+
* Configuração de cadastro público. Default: `{ enabled: true }` (aberto).
|
|
600
|
+
* O runtime setting `registration` em `auth_settings` sobrescreve este valor
|
|
601
|
+
* sem necessidade de redeploy.
|
|
602
|
+
*/
|
|
603
|
+
registration?: RegistrationConfigInput;
|
|
604
|
+
/**
|
|
605
|
+
* Access Tokens (RFC 9068). Default: `{ format: 'opaque' }` (comportamento atual).
|
|
606
|
+
* `{ format: 'jwt' }` faz TODO AT virar JWT RFC 9068 validável via jwks_uri.
|
|
607
|
+
* `resources` mapeia resource indicators (RFC 8707) para audiences/scopes/formato/TTL por API.
|
|
608
|
+
*/
|
|
609
|
+
accessTokens?: AccessTokensConfig;
|
|
610
|
+
/**
|
|
611
|
+
* Console admin do IdP (B6). Default: desligado. Quando ligado, o host também
|
|
612
|
+
* deve passar `admin: true` em {@link AuthHostOptions} no registro de rotas
|
|
613
|
+
* (a montagem das rotas acontece antes do config resolver).
|
|
614
|
+
*/
|
|
615
|
+
admin?: AdminConfigInput;
|
|
616
|
+
/**
|
|
617
|
+
* Admin REST API (R6). Default: desligada. Quando ligada, o host também deve
|
|
618
|
+
* passar `adminApi: true` em {@link AuthHostOptions} no registro de rotas (a
|
|
619
|
+
* montagem das rotas acontece antes do config resolver). Autenticação por API key.
|
|
620
|
+
*/
|
|
621
|
+
adminApi?: AdminApiConfigInput;
|
|
622
|
+
/**
|
|
623
|
+
* Organizations (multi-tenancy). Default: auto (liga quando as tabelas
|
|
624
|
+
* `auth_organizations`, `auth_organization_members`, `auth_organization_invitations`
|
|
625
|
+
* existem no DB). Veja {@link OrganizationsConfigInput}.
|
|
626
|
+
*/
|
|
627
|
+
organizations?: OrganizationsConfigInput;
|
|
628
|
+
/**
|
|
629
|
+
* Resolução de geolocalização PLUGÁVEL para o IP das sessões (console + Admin
|
|
630
|
+
* API). A lib NÃO embute banco de geo: o host pluga (ex.: MaxMind/ipapi). Default:
|
|
631
|
+
* ausente → as sessões mostram só o IP (sem localização). Fail-safe com timeout
|
|
632
|
+
* curto: erro/timeout → sem localização.
|
|
633
|
+
*/
|
|
634
|
+
resolveGeo?: ResolveGeo;
|
|
635
|
+
/**
|
|
636
|
+
* Gestão automática do schema das tabelas do authkit (`authkit_oidc_payloads`,
|
|
637
|
+
* `auth_settings`, `auth_password_history` e as três de organizations).
|
|
638
|
+
*
|
|
639
|
+
* - `autoManage` (default `true`): no boot, cria as tabelas que faltam e
|
|
640
|
+
* adiciona colunas novas (aditivo — nunca dropa nem altera tipos).
|
|
641
|
+
* - `autoManage: false`: nada roda no boot; gerencie o schema você mesmo —
|
|
642
|
+
* de preferência chamando `ensureAuthkitSchema(this.db)` numa migration.
|
|
643
|
+
* - `connection`: conexão Lucid a usar (default: primária).
|
|
644
|
+
*/
|
|
645
|
+
schema?: {
|
|
646
|
+
autoManage?: boolean;
|
|
647
|
+
connection?: string;
|
|
648
|
+
};
|
|
649
|
+
/**
|
|
650
|
+
* Ciclo de vida da conta (LGPD/GDPR). OPT-IN para workflows DURÁVEIS:
|
|
651
|
+
*
|
|
652
|
+
* - `durable` (default `false`/ausente): comportamento SÍNCRONO de sempre — a
|
|
653
|
+
* deleção/export rodam in-process via `AccountDeletionService`/
|
|
654
|
+
* `AccountExportService` (byte-idêntico ao anterior).
|
|
655
|
+
* - `durable: true`: os endpoints ENFILEIRAM os workflows duráveis
|
|
656
|
+
* (`authkit.account.delete` / `authkit.account.export`) no `WorkflowEngine` do
|
|
657
|
+
* app. O app DEVE registrar os workflows (via
|
|
658
|
+
* `@adonis-agora/authkit-server/durable`) e rodar um worker. No self-service de
|
|
659
|
+
* deleção, a sessão do ator é revogada SINCRONAMENTE (logout imediato) e o
|
|
660
|
+
* resto do cascade roda async.
|
|
661
|
+
*/
|
|
662
|
+
accountLifecycle?: {
|
|
663
|
+
durable?: boolean;
|
|
664
|
+
};
|
|
665
|
+
}
|
|
666
|
+
export interface ResolvedServerConfig {
|
|
667
|
+
issuer: string;
|
|
668
|
+
AdapterClass: OidcAdapterClass;
|
|
669
|
+
clients: ClientConfig[];
|
|
670
|
+
jwks: {
|
|
671
|
+
keys: Record<string, any>[];
|
|
672
|
+
};
|
|
673
|
+
/**
|
|
674
|
+
* Eco do `jwks` de INPUT (source/store/algorithm) — o `jwks` resolvido acima é o
|
|
675
|
+
* keyset materializado e perde esses campos; comandos como `authkit:keys:rotate`
|
|
676
|
+
* precisam do shape original para localizar o keystore.
|
|
677
|
+
*/
|
|
678
|
+
jwksConfig: JwksConfig;
|
|
679
|
+
ttl: {
|
|
680
|
+
accessToken: number;
|
|
681
|
+
refreshToken: number;
|
|
682
|
+
idToken: number;
|
|
683
|
+
session: number;
|
|
684
|
+
};
|
|
685
|
+
globalRolesClaim: string;
|
|
686
|
+
cookieKeys: string[];
|
|
687
|
+
observability: ObservabilityConfig;
|
|
688
|
+
findAccount: (sub: string) => Promise<AuthAccount | null>;
|
|
689
|
+
verifyCredentials: (email: string, password: string) => Promise<{
|
|
690
|
+
id: string;
|
|
691
|
+
} | null>;
|
|
692
|
+
accountStore: AccountStore;
|
|
693
|
+
patStore?: PatStore;
|
|
694
|
+
mountPath: string;
|
|
695
|
+
render?: AuthHostRenderer;
|
|
696
|
+
branding?: BrandingConfig;
|
|
697
|
+
social?: AuthSocialConfig;
|
|
698
|
+
patIntrospectionSecret?: string;
|
|
699
|
+
rateLimit: ResolvedRateLimitConfig;
|
|
700
|
+
/** Bloqueio progressivo de conta resolvido (sempre presente; default ligado). */
|
|
701
|
+
lockout: ResolvedLockoutConfig;
|
|
702
|
+
/** Notificações de segurança resolvidas (sempre presente; default ligado). */
|
|
703
|
+
notifications: ResolvedNotificationsConfig;
|
|
704
|
+
mail?: MailHooks;
|
|
705
|
+
audit?: AuditSink;
|
|
706
|
+
mfaIssuer: string;
|
|
707
|
+
/** RP de WebAuthn resolvido (sempre presente; derivado do issuer por default). */
|
|
708
|
+
webauthn: ResolvedWebauthnConfig;
|
|
709
|
+
dynamicRegistration: ResolvedDynamicRegistrationConfig;
|
|
710
|
+
/** Device Authorization Grant resolvido (default desligado). */
|
|
711
|
+
deviceFlow: ResolvedDeviceFlowConfig;
|
|
712
|
+
/** Uploads resolvido (avatar via drive do app; sempre presente). */
|
|
713
|
+
uploads: ResolvedUploadsConfig;
|
|
714
|
+
/** DPoP resolvido (default desligado). */
|
|
715
|
+
dpop: ResolvedDpopConfig;
|
|
716
|
+
/** PAR resolvido (default desligado). */
|
|
717
|
+
par: ResolvedParConfig;
|
|
718
|
+
/** Step-up auth resolvido (mfaAcr sempre presente). */
|
|
719
|
+
stepUp: ResolvedStepUpConfig;
|
|
720
|
+
/** Trusted devices resolvido (default ligado, 30 dias). */
|
|
721
|
+
trustedDevices: ResolvedTrustedDevicesConfig;
|
|
722
|
+
/** Bot protection resolvido (undefined quando não configurado). */
|
|
723
|
+
botProtection?: ResolvedBotProtectionConfig;
|
|
724
|
+
/** Passwordless resolvido (default tudo desligado). */
|
|
725
|
+
passwordless: ResolvedPasswordlessConfig;
|
|
726
|
+
/** Política de login resolvida (requireVerifiedEmail; default desligado). */
|
|
727
|
+
login: ResolvedLoginConfig;
|
|
728
|
+
/** Configuração de cadastro público resolvida (enabled; default true). */
|
|
729
|
+
registration: ResolvedRegistrationConfig;
|
|
730
|
+
/** Access Tokens resolvido (RFC 9068; default opaque). */
|
|
731
|
+
accessTokens: ResolvedAccessTokensConfig;
|
|
732
|
+
/** Console admin resolvido (sempre presente; default desligado). */
|
|
733
|
+
admin: ResolvedAdminConfig;
|
|
734
|
+
/** Admin REST API resolvida (sempre presente; default desligada). */
|
|
735
|
+
adminApi: ResolvedAdminApiConfig;
|
|
736
|
+
/** Organizations resolvido (sempre presente; default auto). */
|
|
737
|
+
organizations: ResolvedOrganizationsConfig;
|
|
738
|
+
/** Resolver de geo plugável (undefined quando o host não plugou). */
|
|
739
|
+
resolveGeo?: ResolveGeo;
|
|
740
|
+
/** Catálogo de mensagens ativo (locale resolvido), pronto para os renderers. */
|
|
741
|
+
messages: AuthMessages;
|
|
742
|
+
/** Locale ativo (default 'pt-BR'). */
|
|
743
|
+
locale: string;
|
|
744
|
+
/** Gestão automática de schema resolvida (default ligada). */
|
|
745
|
+
schema: {
|
|
746
|
+
autoManage: boolean;
|
|
747
|
+
connection?: string;
|
|
748
|
+
};
|
|
749
|
+
/**
|
|
750
|
+
* Ciclo de vida da conta resolvido. `durable` default `false` → caminho
|
|
751
|
+
* síncrono de sempre. `true` → endpoints enfileiram os workflows duráveis.
|
|
752
|
+
*/
|
|
753
|
+
accountLifecycle: {
|
|
754
|
+
durable: boolean;
|
|
755
|
+
};
|
|
756
|
+
/** Keys de `auth_settings` travadas por terem sido definidas no defineConfig. */
|
|
757
|
+
lockedSettingKeys: string[];
|
|
758
|
+
}
|
|
759
|
+
export declare function toSeconds(value: string | number | undefined, fallback: number): number;
|
|
760
|
+
/**
|
|
761
|
+
* Default backend-aware de encryption: file/drive/lucid/redis ON; vaults reais OFF.
|
|
762
|
+
* Evita gravar chaves privadas em texto claro em stores que não gerenciam segredos
|
|
763
|
+
* (blobs burros). Vaults reais (aws-secrets-manager, etc.) cuidam da criptografia
|
|
764
|
+
* internamente — encrypt OFF para não duplo-encriptar.
|
|
765
|
+
*/
|
|
766
|
+
export declare function defaultEncryptForStore(store: KeystoreStoreConfig): boolean;
|
|
767
|
+
/**
|
|
768
|
+
* Mensagem de aviso quando `jwks: 'auto'` cai no fallback de disco (sem
|
|
769
|
+
* AUTHKIT_JWKS): a chave privada será persistida em arquivo. `null` = sem aviso.
|
|
770
|
+
*/
|
|
771
|
+
export declare function jwksAutoFallbackWarning(storePath: string | null): string | null;
|
|
772
|
+
export declare function defineConfig(config: AuthServerConfigInput): import("@adonisjs/core/types").ConfigProvider<ResolvedServerConfig>;
|