@adonis-agora/authkit-server 0.61.2 → 0.61.4
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/build/commands/settings_get.js +1 -1
- package/build/commands/settings_set.js +1 -1
- package/build/commands/settings_unset.js +1 -1
- package/build/index.d.ts +99 -118
- package/build/index.js +75 -84
- package/build/src/accounts/lucid_store/core.js +1 -1
- package/build/src/accounts/lucid_store/mfa.d.ts +0 -12
- package/build/src/accounts/lucid_store/mfa.js +16 -16
- package/build/src/audit/audit_sink.d.ts +1 -1
- package/build/src/commands/import_users.js +3 -1
- package/build/src/define_config.d.ts +2 -2
- package/build/src/host/account_api/account_api_controller.js +1 -1
- package/build/src/host/account_paths.d.ts +9 -9
- package/build/src/host/admin_api/api_orgs_controller.d.ts +10 -10
- package/build/src/host/admin_api/api_settings_controller.d.ts +3 -3
- package/build/src/host/admin_api/api_settings_controller.js +1 -1
- package/build/src/host/admin_api/api_users_controller.d.ts +3 -3
- package/build/src/host/admin_api/dto.d.ts +12 -13
- package/build/src/host/admin_console/console_orgs_controller.d.ts +9 -9
- package/build/src/host/admin_console/console_roles_controller.js +1 -1
- package/build/src/host/admin_console/console_settings_controller.d.ts +2 -2
- package/build/src/host/admin_console/console_settings_controller.js +1 -1
- package/build/src/host/admin_console/console_users_controller.d.ts +7 -7
- package/build/src/host/admin_validators.d.ts +39 -39
- package/build/src/host/assets/logout.js +4 -0
- package/build/src/host/bot_protection.d.ts +1 -1
- package/build/src/host/config_locks.d.ts +1 -1
- package/build/src/host/controllers/account_confirm_controller.js +1 -1
- package/build/src/host/controllers/account_security_controller.js +1 -1
- package/build/src/host/controllers/interaction_controller.js +2 -3
- package/build/src/host/controllers/logout_asset_controller.d.ts +27 -0
- package/build/src/host/controllers/logout_asset_controller.js +71 -0
- package/build/src/host/durable/index.d.ts +2 -2
- package/build/src/host/durable/index.js +2 -2
- package/build/src/host/login_methods_state.js +2 -5
- package/build/src/host/login_notify.js +1 -1
- package/build/src/host/oidc_rp_guard.d.ts +1 -1
- package/build/src/host/register_auth_host.js +6 -0
- package/build/src/host/runtime_settings.js +1 -1
- package/build/src/host/runtime_toggles.d.ts +23 -23
- package/build/src/host/sudo/index.d.ts +1 -1
- package/build/src/host/ui-dist/assets/index-Dp__4wlB.js +155 -0
- package/build/src/host/ui-dist/index.html +1 -1
- package/build/src/host/validators.d.ts +15 -15
- package/build/src/observability/telescope/index.d.ts +2 -2
- package/build/src/observability/telescope/index.js +1 -1
- package/build/src/password/password_manager.js +1 -1
- package/build/src/provider/logout_sources.js +6 -1
- package/build/src/provider/oidc_service.d.ts +1 -1
- package/build/stubs/ui/react/components/auth_shell.tsx +2 -7
- package/build/stubs/ui/react/pages/consent.tsx +1 -0
- package/build/stubs/ui/react/pages/forgot.tsx +1 -0
- package/build/stubs/ui/react/pages/login.tsx +1 -0
- package/build/stubs/ui/react/pages/mfa-challenge.tsx +1 -0
- package/build/stubs/ui/react/pages/reset.tsx +1 -0
- package/build/stubs/ui/react/pages/signup.tsx +1 -0
- package/build/stubs/ui/react/pages/verify-email.tsx +1 -0
- package/build/types.d.ts +1 -1
- package/package.json +32 -31
- package/stubs/ui/react/components/auth_shell.tsx +2 -7
- package/stubs/ui/react/pages/consent.tsx +1 -0
- package/stubs/ui/react/pages/forgot.tsx +1 -0
- package/stubs/ui/react/pages/login.tsx +1 -0
- package/stubs/ui/react/pages/mfa-challenge.tsx +1 -0
- package/stubs/ui/react/pages/reset.tsx +1 -0
- package/stubs/ui/react/pages/signup.tsx +1 -0
- package/stubs/ui/react/pages/verify-email.tsx +1 -0
- package/build/src/host/ui-dist/assets/index-Cb38N16r.js +0 -155
|
@@ -98,7 +98,7 @@ export interface BotProtectionWidget {
|
|
|
98
98
|
* - `g-recaptcha-response` (Google reCAPTCHA)
|
|
99
99
|
* - `authkit-bot-token` (genérico, p/ widgets custom)
|
|
100
100
|
*/
|
|
101
|
-
export declare const DEFAULT_BOT_TOKEN_FIELDS: readonly [
|
|
101
|
+
export declare const DEFAULT_BOT_TOKEN_FIELDS: readonly ['cf-turnstile-response', 'h-captcha-response', 'g-recaptcha-response', 'authkit-bot-token'];
|
|
102
102
|
/** Config de entrada do bot protection (em `config/authkit.ts`). */
|
|
103
103
|
export interface BotProtectionConfigInput {
|
|
104
104
|
/**
|
|
@@ -27,7 +27,7 @@ export declare function deriveLockedSettingKeys(config: Record<string, any>): st
|
|
|
27
27
|
* (onde as rotas moram). Ver `AuthHostOptions` e o docblock de
|
|
28
28
|
* `registerAuthHost`.
|
|
29
29
|
*/
|
|
30
|
-
export declare const POLICY_ROUTE_OPTIONS: readonly [
|
|
30
|
+
export declare const POLICY_ROUTE_OPTIONS: readonly ['social', 'rateLimit', 'sudoMethods', 'admin', 'adminApi'];
|
|
31
31
|
/** Uma opção de política de `AuthHostOptions`. */
|
|
32
32
|
export type PolicyRouteOption = (typeof POLICY_ROUTE_OPTIONS)[number];
|
|
33
33
|
/**
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* A tela está atrás do `accountGuard` (requer sessão de conta ativa).
|
|
9
9
|
*/
|
|
10
10
|
import '../augmentations.js';
|
|
11
|
-
import {
|
|
11
|
+
import { configuredSudoMethods, isSudoMethodMounted, LAST_METHOD_SESSION_KEY, resolveAvailableMethods, sudoContextFrom, } from '../sudo/runtime.js';
|
|
12
12
|
/**
|
|
13
13
|
* Reexport de compatibilidade. O construtor canônico do `SudoContext` vive em
|
|
14
14
|
* `sudo/runtime.ts` (é runtime do SPI, não detalhe da tela); este caminho
|
|
@@ -9,7 +9,7 @@ import { ACCOUNT_SESSION_KEY } from '../account_session_key.js';
|
|
|
9
9
|
import { AdminSessionsService } from '../admin_sessions_service.js';
|
|
10
10
|
import { syncAdonisAuthLogout } from '../adonis_auth_sync.js';
|
|
11
11
|
import { AvatarUploadError, isAvatarUploadSupported, storeAvatar } from '../avatar_storage.js';
|
|
12
|
-
import { sendEmailChangeConfirmationEmail,
|
|
12
|
+
import { sendEmailChangeConfirmationEmail, sendEmailChangedCompletedEmail, sendEmailChangeNoticeEmail, } from '../default_mailer.js';
|
|
13
13
|
import { translate } from '../i18n.js';
|
|
14
14
|
import { authkitOrigin } from '../origin.js';
|
|
15
15
|
import { resolveRuntimeSettings } from '../runtime_settings.js';
|
|
@@ -3,8 +3,7 @@ import { supportsLoginMethodsPreference, supportsMagicLink, supportsOtpLogin, su
|
|
|
3
3
|
import { AdminSessionsService } from '../admin_sessions_service.js';
|
|
4
4
|
import { guardBotProtection, resolveEffectiveBotProtection } from '../bot_protection.js';
|
|
5
5
|
import { brandFor, isFirstParty } from '../branding.js';
|
|
6
|
-
import { sendMagicLinkEmail } from '../default_mailer.js';
|
|
7
|
-
import { sendOtpUnlockEmail } from '../default_mailer.js';
|
|
6
|
+
import { sendMagicLinkEmail, sendOtpUnlockEmail } from '../default_mailer.js';
|
|
8
7
|
import { translate } from '../i18n.js';
|
|
9
8
|
import { assertLoginAllowed, attemptPasswordLogin, isEmailUnverifiedBlock, } from '../login_attempt.js';
|
|
10
9
|
import { magicChannelProp, normalizeLoginChannel } from '../login_channel.js';
|
|
@@ -13,7 +12,7 @@ import { authkitOrigin } from '../origin.js';
|
|
|
13
12
|
import { createOtpLockout, generateOtpUnlockToken, rawToDbOtpUnlockToken, resolveEffectiveOtpLockout, } from '../otp_lockout.js';
|
|
14
13
|
import { resolveRuntimeSettingsOrNoop } from '../runtime_settings.js';
|
|
15
14
|
import { resolveEffectiveAuthMethods, resolveEffectiveMaintenanceMode, resolveEffectiveRegistration, resolveEffectiveSessionPolicy, } from '../runtime_toggles.js';
|
|
16
|
-
import {
|
|
15
|
+
import { buildTrustedDevicePayload, isTrustedDeviceValid, TRUSTED_DEVICE_COOKIE, } from '../trusted_device.js';
|
|
17
16
|
import { normalizeUserLoginMethods, resolveEffectiveUserLoginMethods, } from '../user_login_methods.js';
|
|
18
17
|
/**
|
|
19
18
|
* Chave i18n do erro de status de conta (disabled/expired) compartilhada pelos
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { HttpContext } from '@adonisjs/core/http';
|
|
2
|
+
/**
|
|
3
|
+
* GET /authkit/assets/logout.js
|
|
4
|
+
*
|
|
5
|
+
* Serve o script de auto-submit do splash de logout a partir do próprio host.
|
|
6
|
+
*
|
|
7
|
+
* O `logoutSource` (provider/logout_sources.ts) injeta este script VIA
|
|
8
|
+
* `<script src>` em vez de inline: hosts com CSP `script-src 'self'`
|
|
9
|
+
* bloqueiam script inline sem nonce/hash, e o auto-confirm do logout
|
|
10
|
+
* silenciosamente parava de rodar — a tela "Saindo / Encerrando sua
|
|
11
|
+
* sessão…" ficava presa para sempre. Um asset same-origin é permitido por
|
|
12
|
+
* `'self'` em qualquer CSP razoável, sem depender de nonce nem hash.
|
|
13
|
+
*
|
|
14
|
+
* SEM AUTENTICAÇÃO, e é intencional: é asset estático necessário na tela de
|
|
15
|
+
* logout, antes de a sessão SSO ser destruída. Também não pode viver sob o
|
|
16
|
+
* prefixo do console admin (que é opt-in).
|
|
17
|
+
*/
|
|
18
|
+
export default class LogoutAssetController {
|
|
19
|
+
handle(ctx: HttpContext): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Limpa o cache do asset. Existe para os testes conseguirem exercitar tanto o
|
|
23
|
+
* caminho feliz quanto o 404 no mesmo processo.
|
|
24
|
+
*
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export declare function resetLogoutAssetCache(): void;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
/**
|
|
3
|
+
* URL do script de auto-confirmação do RP-initiated logout, servido pelo
|
|
4
|
+
* próprio host.
|
|
5
|
+
*
|
|
6
|
+
* ⚠️ RESOLVIDO VIA `import.meta.url`, NUNCA relativo ao cwd. Os apps que
|
|
7
|
+
* consomem este pacote rodam `pnpm deploy --legacy`, que remonta a árvore de
|
|
8
|
+
* `node_modules` num diretório novo — um caminho relativo ao cwd do host
|
|
9
|
+
* apontaria para o lugar errado e a rota daria 404 em produção. Ancorado no
|
|
10
|
+
* módulo, o caminho segue o pacote para onde quer que ele seja copiado.
|
|
11
|
+
*
|
|
12
|
+
* Funciona nos dois layouts porque o asset é commitado em `src/host/assets/`
|
|
13
|
+
* e copiado para `build/src/host/assets/` pelo script `build`:
|
|
14
|
+
* dev → src/host/controllers/… → src/host/assets/logout.js
|
|
15
|
+
* build → build/src/host/controllers/… → build/src/host/assets/logout.js
|
|
16
|
+
*/
|
|
17
|
+
const ASSET_URL = new URL('../assets/logout.js', import.meta.url);
|
|
18
|
+
/**
|
|
19
|
+
* Cache do conteúdo do asset. É imutável por versão do pacote — ler do disco
|
|
20
|
+
* a cada request de logout não compra nada.
|
|
21
|
+
*
|
|
22
|
+
* `null` = ainda não lido. `false` = lido e ausente (404 memoizado); sem isso
|
|
23
|
+
* um asset faltando viraria um `readFile` que falha por request.
|
|
24
|
+
*/
|
|
25
|
+
let cached = null;
|
|
26
|
+
/**
|
|
27
|
+
* GET /authkit/assets/logout.js
|
|
28
|
+
*
|
|
29
|
+
* Serve o script de auto-submit do splash de logout a partir do próprio host.
|
|
30
|
+
*
|
|
31
|
+
* O `logoutSource` (provider/logout_sources.ts) injeta este script VIA
|
|
32
|
+
* `<script src>` em vez de inline: hosts com CSP `script-src 'self'`
|
|
33
|
+
* bloqueiam script inline sem nonce/hash, e o auto-confirm do logout
|
|
34
|
+
* silenciosamente parava de rodar — a tela "Saindo / Encerrando sua
|
|
35
|
+
* sessão…" ficava presa para sempre. Um asset same-origin é permitido por
|
|
36
|
+
* `'self'` em qualquer CSP razoável, sem depender de nonce nem hash.
|
|
37
|
+
*
|
|
38
|
+
* SEM AUTENTICAÇÃO, e é intencional: é asset estático necessário na tela de
|
|
39
|
+
* logout, antes de a sessão SSO ser destruída. Também não pode viver sob o
|
|
40
|
+
* prefixo do console admin (que é opt-in).
|
|
41
|
+
*/
|
|
42
|
+
export default class LogoutAssetController {
|
|
43
|
+
async handle(ctx) {
|
|
44
|
+
if (cached === null) {
|
|
45
|
+
try {
|
|
46
|
+
cached = await readFile(ASSET_URL);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
cached = false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (cached === false) {
|
|
53
|
+
// 404 limpo: o asset não foi incluído no pacote. O splash degrada para o
|
|
54
|
+
// botão `<noscript>` (que continua funcionando sem JS) em vez de 500.
|
|
55
|
+
return ctx.response.notFound();
|
|
56
|
+
}
|
|
57
|
+
return ctx.response
|
|
58
|
+
.type('text/javascript')
|
|
59
|
+
.header('Cache-Control', 'public, max-age=31536000, immutable')
|
|
60
|
+
.send(cached);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Limpa o cache do asset. Existe para os testes conseguirem exercitar tanto o
|
|
65
|
+
* caminho feliz quanto o 404 no mesmo processo.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
export function resetLogoutAssetCache() {
|
|
70
|
+
cached = null;
|
|
71
|
+
}
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
import type { DeletionActor } from '../account_deletion_service.js';
|
|
30
30
|
import { type AccountDeleteWorkflowInput } from './account_deletion_workflow.js';
|
|
31
31
|
import { type AccountExportWorkflowInput } from './account_export_workflow.js';
|
|
32
|
-
export {
|
|
33
|
-
export {
|
|
32
|
+
export { ACCOUNT_DELETE_WORKFLOW, type AccountDeleteWorkflowInput, type AccountDeletionWorkflowDeps, type DurableStepCtx, defineAccountDeletionWorkflow, type WorkflowBody, } from './account_deletion_workflow.js';
|
|
33
|
+
export { ACCOUNT_EXPORT_WORKFLOW, type AccountExportWorkflowDeps, type AccountExportWorkflowInput, type AccountExportWorkflowResult, type DeliverArtifact, defineAccountExportWorkflow, type PersistArtifact, } from './account_export_workflow.js';
|
|
34
34
|
/**
|
|
35
35
|
* Superfície mínima do `WorkflowEngine` que o enqueue usa (`start` idempotente por
|
|
36
36
|
* run-id). Tipada estruturalmente p/ NÃO acoplar o build ao peer opcional.
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
*/
|
|
29
29
|
import { ACCOUNT_DELETE_WORKFLOW, } from './account_deletion_workflow.js';
|
|
30
30
|
import { ACCOUNT_EXPORT_WORKFLOW, } from './account_export_workflow.js';
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
31
|
+
export { ACCOUNT_DELETE_WORKFLOW, defineAccountDeletionWorkflow, } from './account_deletion_workflow.js';
|
|
32
|
+
export { ACCOUNT_EXPORT_WORKFLOW, defineAccountExportWorkflow, } from './account_export_workflow.js';
|
|
33
33
|
/**
|
|
34
34
|
* Resolve o `WorkflowEngine` do container — SÓ no caminho durável. Importa
|
|
35
35
|
* `@adonis-agora/durable` dinamicamente (peer opcional), então o barrel principal
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { supportsMagicLink } from '../accounts/account_store.js';
|
|
2
|
-
import {
|
|
3
|
-
import { supportsLoginMethodsPreference } from '../accounts/account_store.js';
|
|
4
|
-
import { resolveEffectiveAuthMethods } from './runtime_toggles.js';
|
|
5
|
-
import { configLockedAuthMethods } from './runtime_toggles.js';
|
|
1
|
+
import { supportsLoginMethodsPreference, supportsMagicLink, supportsPasskeys, } from '../accounts/account_store.js';
|
|
2
|
+
import { configLockedAuthMethods, resolveEffectiveAuthMethods } from './runtime_toggles.js';
|
|
6
3
|
import { normalizeUserLoginMethods, resolveEffectiveUserLoginMethods, } from './user_login_methods.js';
|
|
7
4
|
/**
|
|
8
5
|
* Métodos globais efetivos + pins de config — resolução compartilhada entre o
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sendNewDeviceLoginEmail, sendNewLoginEmail } from './default_mailer.js';
|
|
2
|
-
import {
|
|
2
|
+
import { isTrustedDeviceValid, TRUSTED_DEVICE_COOKIE } from './trusted_device.js';
|
|
3
3
|
/**
|
|
4
4
|
* Centraliza o pós-login bem-sucedido: registra o evento `login.success` e dispara
|
|
5
5
|
* (best-effort) o alerta de NOVO acesso quando o IP nunca foi visto para a conta.
|
|
@@ -75,7 +75,7 @@ export type OidcRpGuardEvents<User> = {
|
|
|
75
75
|
export declare class OidcRpGuard<UserProvider extends SessionUserProviderContract<unknown>> implements GuardContract<RealUser<UserProvider>> {
|
|
76
76
|
#private;
|
|
77
77
|
[symbols.GUARD_KNOWN_EVENTS]: OidcRpGuardEvents<RealUser<UserProvider>>;
|
|
78
|
-
driverName:
|
|
78
|
+
driverName: 'oidc_rp';
|
|
79
79
|
authenticationAttempted: boolean;
|
|
80
80
|
isAuthenticated: boolean;
|
|
81
81
|
isLoggedOut: boolean;
|
|
@@ -181,6 +181,7 @@ const C = {
|
|
|
181
181
|
accountOrgs: () => import('./controllers/account_orgs_controller.js'),
|
|
182
182
|
accountConfirm: () => import('./controllers/account_confirm_controller.js'),
|
|
183
183
|
webauthnAsset: () => import('./controllers/webauthn_asset_controller.js'),
|
|
184
|
+
logoutAsset: () => import('./controllers/logout_asset_controller.js'),
|
|
184
185
|
// Console React JSON API (session-authed, under {prefix}/api/*).
|
|
185
186
|
consoleShell: () => import('./admin_console/admin_shell_controller.js'),
|
|
186
187
|
consoleOverview: () => import('./admin_console/console_overview_controller.js'),
|
|
@@ -386,6 +387,11 @@ export function registerAuthHost(router, opts = {}) {
|
|
|
386
387
|
// • registrado ANTES do wildcard `${mount}/*` para que nenhum mountPath
|
|
387
388
|
// agressivo (ex.: '/') consiga engolir o asset e quebrar o login.
|
|
388
389
|
router.get('/authkit/assets/webauthn.js', [C.webauthnAsset]).as('authkit.assets.webauthn');
|
|
390
|
+
// Script de auto-confirmação do splash de logout (RP-initiated logout).
|
|
391
|
+
// Same-origin (permitido por CSP `script-src 'self'`) — o logoutSource NÃO
|
|
392
|
+
// pode usar script inline: o CSP bloqueia sem nonce/hash e o logout fica
|
|
393
|
+
// preso em "Saindo / Encerrando sua sessão…".
|
|
394
|
+
router.get('/authkit/assets/logout.js', [C.logoutAsset]).as('authkit.assets.logout');
|
|
389
395
|
// Provider OIDC (wildcard + root) — o que registerOidcRoutes fazia.
|
|
390
396
|
router.any(`${mount}/*`, [C.oidc]).as('authkit.oidc.wildcard');
|
|
391
397
|
router.any(mount, [C.oidc]).as('authkit.oidc.root');
|
|
@@ -17,29 +17,29 @@ import type { SettingsCapability } from './runtime_settings.js';
|
|
|
17
17
|
* que qualquer code-path possa importar a constante e não depender de strings.
|
|
18
18
|
*/
|
|
19
19
|
export declare const SETTING_KEYS: {
|
|
20
|
-
readonly BOT_PROTECTION:
|
|
21
|
-
readonly REGISTRATION:
|
|
22
|
-
readonly REQUIRE_VERIFIED_EMAIL:
|
|
23
|
-
readonly MAINTENANCE_MODE:
|
|
24
|
-
readonly AUTH_METHODS:
|
|
25
|
-
readonly EMAIL_CHANGE:
|
|
26
|
-
readonly SECURITY_NOTIFICATIONS:
|
|
27
|
-
readonly PASSWORD_HISTORY:
|
|
28
|
-
readonly PASSWORD_EXPIRATION:
|
|
29
|
-
readonly SESSION_POLICY:
|
|
30
|
-
readonly LOCKOUT:
|
|
31
|
-
readonly RATE_LIMIT:
|
|
32
|
-
readonly PASSWORD_POLICY:
|
|
33
|
-
readonly NOTIFICATIONS:
|
|
34
|
-
readonly TRUSTED_DEVICES:
|
|
35
|
-
readonly TOKEN_TTL:
|
|
36
|
-
readonly ADMIN_IMPERSONATION:
|
|
37
|
-
readonly ORGANIZATIONS_POLICY:
|
|
38
|
-
readonly ROLES_CATALOG:
|
|
39
|
-
readonly OTP_LOCKOUT:
|
|
40
|
-
readonly SUDO_MODE:
|
|
41
|
-
readonly ACCOUNT_EXPIRATION:
|
|
42
|
-
readonly KEY_ROTATION:
|
|
20
|
+
readonly BOT_PROTECTION: 'bot_protection';
|
|
21
|
+
readonly REGISTRATION: 'registration';
|
|
22
|
+
readonly REQUIRE_VERIFIED_EMAIL: 'require_verified_email';
|
|
23
|
+
readonly MAINTENANCE_MODE: 'maintenance_mode';
|
|
24
|
+
readonly AUTH_METHODS: 'auth_methods';
|
|
25
|
+
readonly EMAIL_CHANGE: 'email_change';
|
|
26
|
+
readonly SECURITY_NOTIFICATIONS: 'security_notifications';
|
|
27
|
+
readonly PASSWORD_HISTORY: 'password_history';
|
|
28
|
+
readonly PASSWORD_EXPIRATION: 'password_expiration';
|
|
29
|
+
readonly SESSION_POLICY: 'session_policy';
|
|
30
|
+
readonly LOCKOUT: 'lockout';
|
|
31
|
+
readonly RATE_LIMIT: 'rate_limit';
|
|
32
|
+
readonly PASSWORD_POLICY: 'password_policy';
|
|
33
|
+
readonly NOTIFICATIONS: 'notifications';
|
|
34
|
+
readonly TRUSTED_DEVICES: 'trusted_devices';
|
|
35
|
+
readonly TOKEN_TTL: 'token_ttl';
|
|
36
|
+
readonly ADMIN_IMPERSONATION: 'admin_impersonation';
|
|
37
|
+
readonly ORGANIZATIONS_POLICY: 'organizations_policy';
|
|
38
|
+
readonly ROLES_CATALOG: 'roles_catalog';
|
|
39
|
+
readonly OTP_LOCKOUT: 'otp_lockout';
|
|
40
|
+
readonly SUDO_MODE: 'sudo_mode';
|
|
41
|
+
readonly ACCOUNT_EXPIRATION: 'account_expiration';
|
|
42
|
+
readonly KEY_ROTATION: 'key_rotation';
|
|
43
43
|
};
|
|
44
44
|
export type SettingKey = (typeof SETTING_KEYS)[keyof typeof SETTING_KEYS];
|
|
45
45
|
/**
|
|
@@ -46,10 +46,10 @@ export declare const sudoMethods: {
|
|
|
46
46
|
oidcStepUp: typeof oidcStepUp;
|
|
47
47
|
magicLink: typeof magicLink;
|
|
48
48
|
};
|
|
49
|
-
export type { SudoMethod, SudoContext, SudoMethodDescriptor, SudoRouteHelpers } from './types.js';
|
|
50
49
|
/**
|
|
51
50
|
* Montagem do `SudoContext` a partir do `HttpContext`. Reexportado aqui por
|
|
52
51
|
* simetria com `sudoMethods` e os tipos: quem escreve um método (ou a rota de
|
|
53
52
|
* callback do `oidcStepUp`) precisa dos três.
|
|
54
53
|
*/
|
|
55
54
|
export { sudoContextFrom } from './runtime.js';
|
|
55
|
+
export type { SudoContext, SudoMethod, SudoMethodDescriptor, SudoRouteHelpers } from './types.js';
|