@effect-auth/core 0.1.0-alpha.16 → 0.1.0-alpha.18
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 +308 -133
- package/dist/AbuseProtection.d.ts +100 -0
- package/dist/AbuseProtection.d.ts.map +1 -0
- package/dist/AbuseProtection.js +71 -0
- package/dist/AbuseProtection.js.map +1 -0
- package/dist/AccessGrant.d.ts +344 -0
- package/dist/AccessGrant.d.ts.map +1 -0
- package/dist/AccessGrant.js +687 -0
- package/dist/AccessGrant.js.map +1 -0
- package/dist/ApiKey.d.ts +0 -12
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +36 -27
- package/dist/ApiKey.js.map +1 -1
- package/dist/Assurance.d.ts +415 -0
- package/dist/Assurance.d.ts.map +1 -0
- package/dist/Assurance.js +764 -0
- package/dist/Assurance.js.map +1 -0
- package/dist/AtomicPlanExecutor.d.ts +28 -0
- package/dist/AtomicPlanExecutor.d.ts.map +1 -0
- package/dist/AtomicPlanExecutor.js +5 -0
- package/dist/AtomicPlanExecutor.js.map +1 -0
- package/dist/AuditLog.d.ts +2314 -52
- package/dist/AuditLog.d.ts.map +1 -1
- package/dist/AuditLog.js +511 -33
- package/dist/AuditLog.js.map +1 -1
- package/dist/AuthFlow.d.ts +128 -38
- package/dist/AuthFlow.d.ts.map +1 -1
- package/dist/AuthFlow.js +611 -263
- package/dist/AuthFlow.js.map +1 -1
- package/dist/AuthRateLimit.d.ts +96 -0
- package/dist/AuthRateLimit.d.ts.map +1 -0
- package/dist/AuthRateLimit.js +212 -0
- package/dist/AuthRateLimit.js.map +1 -0
- package/dist/Challenge.d.ts +0 -3
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +1 -4
- package/dist/Challenge.js.map +1 -1
- package/dist/Client.d.ts +205 -10
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +397 -16
- package/dist/Client.js.map +1 -1
- package/dist/CloudflareTurnstile.d.ts +28 -0
- package/dist/CloudflareTurnstile.d.ts.map +1 -0
- package/dist/CloudflareTurnstile.js +205 -0
- package/dist/CloudflareTurnstile.js.map +1 -0
- package/dist/Crypto.d.ts +0 -3
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +1 -4
- package/dist/Crypto.js.map +1 -1
- package/dist/DelegatedAccessStorageMigrations.d.ts +7 -0
- package/dist/DelegatedAccessStorageMigrations.d.ts.map +1 -0
- package/dist/DelegatedAccessStorageMigrations.js +159 -0
- package/dist/DelegatedAccessStorageMigrations.js.map +1 -0
- package/dist/DisposableEmailDomains.d.ts +19 -0
- package/dist/DisposableEmailDomains.d.ts.map +1 -0
- package/dist/DisposableEmailDomains.js +85 -0
- package/dist/DisposableEmailDomains.js.map +1 -0
- package/dist/DomainVerification.d.ts +0 -9
- package/dist/DomainVerification.d.ts.map +1 -1
- package/dist/DomainVerification.js +36 -22
- package/dist/DomainVerification.js.map +1 -1
- package/dist/DrizzleBunSqliteStorage.d.ts +18 -0
- package/dist/DrizzleBunSqliteStorage.d.ts.map +1 -0
- package/dist/DrizzleBunSqliteStorage.js +11 -0
- package/dist/DrizzleBunSqliteStorage.js.map +1 -0
- package/dist/DrizzleD1SqliteStorage.d.ts +4 -4
- package/dist/DrizzleD1SqliteStorage.d.ts.map +1 -1
- package/dist/DrizzleD1SqliteStorage.js +5 -5
- package/dist/DrizzleD1SqliteStorage.js.map +1 -1
- package/dist/DrizzleDurableObjectSqliteStorage.d.ts +19 -0
- package/dist/DrizzleDurableObjectSqliteStorage.d.ts.map +1 -0
- package/dist/DrizzleDurableObjectSqliteStorage.js +14 -0
- package/dist/DrizzleDurableObjectSqliteStorage.js.map +1 -0
- package/dist/DrizzleEffectSqliteStorage.d.ts +13 -4
- package/dist/DrizzleEffectSqliteStorage.d.ts.map +1 -1
- package/dist/DrizzleEffectSqliteStorage.js +71 -4
- package/dist/DrizzleEffectSqliteStorage.js.map +1 -1
- package/dist/DrizzleNodeSqliteStorage.d.ts +18 -0
- package/dist/DrizzleNodeSqliteStorage.d.ts.map +1 -0
- package/dist/DrizzleNodeSqliteStorage.js +11 -0
- package/dist/DrizzleNodeSqliteStorage.js.map +1 -0
- package/dist/DrizzleWasmSqliteStorage.d.ts +23 -0
- package/dist/DrizzleWasmSqliteStorage.d.ts.map +1 -0
- package/dist/DrizzleWasmSqliteStorage.js +15 -0
- package/dist/DrizzleWasmSqliteStorage.js.map +1 -0
- package/dist/EffectQbPostgresDelegatedAccessStorage.d.ts +34 -0
- package/dist/EffectQbPostgresDelegatedAccessStorage.d.ts.map +1 -0
- package/dist/EffectQbPostgresDelegatedAccessStorage.js +499 -0
- package/dist/EffectQbPostgresDelegatedAccessStorage.js.map +1 -0
- package/dist/EffectQbPostgresStorage.d.ts +171 -0
- package/dist/EffectQbPostgresStorage.d.ts.map +1 -0
- package/dist/EffectQbPostgresStorage.js +4280 -0
- package/dist/EffectQbPostgresStorage.js.map +1 -0
- package/dist/EffectQbSqliteDelegatedAccessStorage.d.ts +112 -0
- package/dist/EffectQbSqliteDelegatedAccessStorage.d.ts.map +1 -0
- package/dist/EffectQbSqliteDelegatedAccessStorage.js +602 -0
- package/dist/EffectQbSqliteDelegatedAccessStorage.js.map +1 -0
- package/dist/EffectQbSqliteStorage.d.ts +181 -23
- package/dist/EffectQbSqliteStorage.d.ts.map +1 -1
- package/dist/EffectQbSqliteStorage.js +1728 -135
- package/dist/EffectQbSqliteStorage.js.map +1 -1
- package/dist/EmailAuth.d.ts +65 -0
- package/dist/EmailAuth.d.ts.map +1 -0
- package/dist/EmailAuth.js +171 -0
- package/dist/EmailAuth.js.map +1 -0
- package/dist/EmailIdentityAuth.d.ts +30 -0
- package/dist/EmailIdentityAuth.d.ts.map +1 -0
- package/dist/EmailIdentityAuth.js +142 -0
- package/dist/EmailIdentityAuth.js.map +1 -0
- package/dist/EmailOtp.d.ts +10 -11
- package/dist/EmailOtp.d.ts.map +1 -1
- package/dist/EmailOtp.js +44 -81
- package/dist/EmailOtp.js.map +1 -1
- package/dist/EmailRisk.d.ts +48 -0
- package/dist/EmailRisk.d.ts.map +1 -0
- package/dist/EmailRisk.js +33 -0
- package/dist/EmailRisk.js.map +1 -0
- package/dist/EmailVerification.d.ts +10 -16
- package/dist/EmailVerification.d.ts.map +1 -1
- package/dist/EmailVerification.js +85 -42
- package/dist/EmailVerification.js.map +1 -1
- package/dist/Guard.d.ts +11 -0
- package/dist/Guard.d.ts.map +1 -0
- package/dist/Guard.js +11 -0
- package/dist/Guard.js.map +1 -0
- package/dist/HibpPwnedPasswords.d.ts +56 -0
- package/dist/HibpPwnedPasswords.d.ts.map +1 -0
- package/dist/HibpPwnedPasswords.js +232 -0
- package/dist/HibpPwnedPasswords.js.map +1 -0
- package/dist/HttpApi/AdminPermissionDefinition.d.ts +4 -0
- package/dist/HttpApi/AdminPermissionDefinition.d.ts.map +1 -0
- package/dist/HttpApi/AdminPermissionDefinition.js +4 -0
- package/dist/HttpApi/AdminPermissionDefinition.js.map +1 -0
- package/dist/HttpApi/AdminSecurityTimeline.d.ts +4 -0
- package/dist/HttpApi/AdminSecurityTimeline.d.ts.map +1 -0
- package/dist/HttpApi/AdminSecurityTimeline.js +4 -0
- package/dist/HttpApi/AdminSecurityTimeline.js.map +1 -0
- package/dist/HttpApi/AdminSession.d.ts +4 -0
- package/dist/HttpApi/AdminSession.d.ts.map +1 -0
- package/dist/HttpApi/AdminSession.js +4 -0
- package/dist/HttpApi/AdminSession.js.map +1 -0
- package/dist/HttpApi/AdminTrustedDevice.d.ts +4 -0
- package/dist/HttpApi/AdminTrustedDevice.d.ts.map +1 -0
- package/dist/HttpApi/AdminTrustedDevice.js +4 -0
- package/dist/HttpApi/AdminTrustedDevice.js.map +1 -0
- package/dist/HttpApi/Api.d.ts +879 -877
- package/dist/HttpApi/Api.d.ts.map +1 -1
- package/dist/HttpApi/Api.js +2160 -896
- package/dist/HttpApi/Api.js.map +1 -1
- package/dist/HttpApi/ApiKey.d.ts +4 -0
- package/dist/HttpApi/ApiKey.d.ts.map +1 -0
- package/dist/HttpApi/ApiKey.js +4 -0
- package/dist/HttpApi/ApiKey.js.map +1 -0
- package/dist/HttpApi/Audit.d.ts +6 -0
- package/dist/HttpApi/Audit.d.ts.map +1 -0
- package/dist/HttpApi/Audit.js +10 -0
- package/dist/HttpApi/Audit.js.map +1 -0
- package/dist/HttpApi/ClientApi.d.ts +917 -0
- package/dist/HttpApi/ClientApi.d.ts.map +1 -0
- package/dist/HttpApi/ClientApi.js +101 -0
- package/dist/HttpApi/ClientApi.js.map +1 -0
- package/dist/HttpApi/EmailAuth.d.ts +6 -0
- package/dist/HttpApi/EmailAuth.d.ts.map +1 -0
- package/dist/HttpApi/EmailAuth.js +6 -0
- package/dist/HttpApi/EmailAuth.js.map +1 -0
- package/dist/HttpApi/EmailGuards.d.ts +115 -0
- package/dist/HttpApi/EmailGuards.d.ts.map +1 -0
- package/dist/HttpApi/EmailGuards.js +191 -0
- package/dist/HttpApi/EmailGuards.js.map +1 -0
- package/dist/HttpApi/EmailOtp.d.ts +6 -0
- package/dist/HttpApi/EmailOtp.d.ts.map +1 -0
- package/dist/HttpApi/EmailOtp.js +6 -0
- package/dist/HttpApi/EmailOtp.js.map +1 -0
- package/dist/HttpApi/EmailVerification.d.ts +6 -0
- package/dist/HttpApi/EmailVerification.d.ts.map +1 -0
- package/dist/HttpApi/EmailVerification.js +6 -0
- package/dist/HttpApi/EmailVerification.js.map +1 -0
- package/dist/HttpApi/Endpoints.d.ts +629 -301
- package/dist/HttpApi/Endpoints.d.ts.map +1 -1
- package/dist/HttpApi/Endpoints.js +178 -120
- package/dist/HttpApi/Endpoints.js.map +1 -1
- package/dist/HttpApi/Errors.d.ts +26 -7
- package/dist/HttpApi/Errors.d.ts.map +1 -1
- package/dist/HttpApi/Errors.js +26 -4
- package/dist/HttpApi/Errors.js.map +1 -1
- package/dist/HttpApi/Identity.d.ts +6 -0
- package/dist/HttpApi/Identity.d.ts.map +1 -0
- package/dist/HttpApi/Identity.js +6 -0
- package/dist/HttpApi/Identity.js.map +1 -0
- package/dist/HttpApi/IdentityGuards.d.ts +31 -0
- package/dist/HttpApi/IdentityGuards.d.ts.map +1 -0
- package/dist/HttpApi/IdentityGuards.js +33 -0
- package/dist/HttpApi/IdentityGuards.js.map +1 -0
- package/dist/HttpApi/Jwt.d.ts +4 -0
- package/dist/HttpApi/Jwt.d.ts.map +1 -0
- package/dist/HttpApi/Jwt.js +4 -0
- package/dist/HttpApi/Jwt.js.map +1 -0
- package/dist/HttpApi/JwtDiscovery.d.ts +4 -0
- package/dist/HttpApi/JwtDiscovery.d.ts.map +1 -0
- package/dist/HttpApi/JwtDiscovery.js +4 -0
- package/dist/HttpApi/JwtDiscovery.js.map +1 -0
- package/dist/HttpApi/LoginApproval.d.ts +5 -0
- package/dist/HttpApi/LoginApproval.d.ts.map +1 -0
- package/dist/HttpApi/LoginApproval.js +5 -0
- package/dist/HttpApi/LoginApproval.js.map +1 -0
- package/dist/HttpApi/LoginNotification.d.ts +5 -0
- package/dist/HttpApi/LoginNotification.d.ts.map +1 -0
- package/dist/HttpApi/LoginNotification.js +5 -0
- package/dist/HttpApi/LoginNotification.js.map +1 -0
- package/dist/HttpApi/MagicLink.d.ts +6 -0
- package/dist/HttpApi/MagicLink.d.ts.map +1 -0
- package/dist/HttpApi/MagicLink.js +6 -0
- package/dist/HttpApi/MagicLink.js.map +1 -0
- package/dist/HttpApi/Mfa.d.ts +5 -0
- package/dist/HttpApi/Mfa.d.ts.map +1 -0
- package/dist/HttpApi/Mfa.js +5 -0
- package/dist/HttpApi/Mfa.js.map +1 -0
- package/dist/HttpApi/Middleware.d.ts +14 -0
- package/dist/HttpApi/Middleware.d.ts.map +1 -0
- package/dist/HttpApi/Middleware.js +5 -0
- package/dist/HttpApi/Middleware.js.map +1 -0
- package/dist/HttpApi/OAuth.d.ts +4 -0
- package/dist/HttpApi/OAuth.d.ts.map +1 -0
- package/dist/HttpApi/OAuth.js +4 -0
- package/dist/HttpApi/OAuth.js.map +1 -0
- package/dist/HttpApi/OAuthProviderAuthorization.d.ts +4 -0
- package/dist/HttpApi/OAuthProviderAuthorization.d.ts.map +1 -0
- package/dist/HttpApi/OAuthProviderAuthorization.js +4 -0
- package/dist/HttpApi/OAuthProviderAuthorization.js.map +1 -0
- package/dist/HttpApi/OAuthToken.d.ts +4 -0
- package/dist/HttpApi/OAuthToken.d.ts.map +1 -0
- package/dist/HttpApi/OAuthToken.js +4 -0
- package/dist/HttpApi/OAuthToken.js.map +1 -0
- package/dist/HttpApi/OidcDiscovery.d.ts +4 -0
- package/dist/HttpApi/OidcDiscovery.d.ts.map +1 -0
- package/dist/HttpApi/OidcDiscovery.js +4 -0
- package/dist/HttpApi/OidcDiscovery.js.map +1 -0
- package/dist/HttpApi/Operations/AdminPermissionDefinition.d.ts +28 -0
- package/dist/HttpApi/Operations/AdminPermissionDefinition.d.ts.map +1 -0
- package/dist/HttpApi/Operations/AdminPermissionDefinition.js +5 -0
- package/dist/HttpApi/Operations/AdminPermissionDefinition.js.map +1 -0
- package/dist/HttpApi/Operations/AdminSession.d.ts +16 -0
- package/dist/HttpApi/Operations/AdminSession.d.ts.map +1 -0
- package/dist/HttpApi/Operations/AdminSession.js +5 -0
- package/dist/HttpApi/Operations/AdminSession.js.map +1 -0
- package/dist/HttpApi/Operations/ApiKey.d.ts +16 -0
- package/dist/HttpApi/Operations/ApiKey.d.ts.map +1 -0
- package/dist/HttpApi/Operations/ApiKey.js +5 -0
- package/dist/HttpApi/Operations/ApiKey.js.map +1 -0
- package/dist/HttpApi/Operations/Discovery.d.ts +19 -0
- package/dist/HttpApi/Operations/Discovery.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Discovery.js +7 -0
- package/dist/HttpApi/Operations/Discovery.js.map +1 -0
- package/dist/HttpApi/Operations/EmailAuth.d.ts +12 -0
- package/dist/HttpApi/Operations/EmailAuth.d.ts.map +1 -0
- package/dist/HttpApi/Operations/EmailAuth.js +5 -0
- package/dist/HttpApi/Operations/EmailAuth.js.map +1 -0
- package/dist/HttpApi/Operations/EmailOtp.d.ts +14 -0
- package/dist/HttpApi/Operations/EmailOtp.d.ts.map +1 -0
- package/dist/HttpApi/Operations/EmailOtp.js +5 -0
- package/dist/HttpApi/Operations/EmailOtp.js.map +1 -0
- package/dist/HttpApi/Operations/EmailVerification.d.ts +14 -0
- package/dist/HttpApi/Operations/EmailVerification.d.ts.map +1 -0
- package/dist/HttpApi/Operations/EmailVerification.js +5 -0
- package/dist/HttpApi/Operations/EmailVerification.js.map +1 -0
- package/dist/HttpApi/Operations/HttpOperation.d.ts +4 -0
- package/dist/HttpApi/Operations/HttpOperation.d.ts.map +1 -0
- package/dist/HttpApi/Operations/HttpOperation.js +2 -0
- package/dist/HttpApi/Operations/HttpOperation.js.map +1 -0
- package/dist/HttpApi/Operations/Identity.d.ts +22 -0
- package/dist/HttpApi/Operations/Identity.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Identity.js +5 -0
- package/dist/HttpApi/Operations/Identity.js.map +1 -0
- package/dist/HttpApi/Operations/Jwt.d.ts +14 -0
- package/dist/HttpApi/Operations/Jwt.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Jwt.js +5 -0
- package/dist/HttpApi/Operations/Jwt.js.map +1 -0
- package/dist/HttpApi/Operations/LoginApproval.d.ts +16 -0
- package/dist/HttpApi/Operations/LoginApproval.d.ts.map +1 -0
- package/dist/HttpApi/Operations/LoginApproval.js +5 -0
- package/dist/HttpApi/Operations/LoginApproval.js.map +1 -0
- package/dist/HttpApi/Operations/MagicLink.d.ts +14 -0
- package/dist/HttpApi/Operations/MagicLink.d.ts.map +1 -0
- package/dist/HttpApi/Operations/MagicLink.js +5 -0
- package/dist/HttpApi/Operations/MagicLink.js.map +1 -0
- package/dist/HttpApi/Operations/Mfa.d.ts +24 -0
- package/dist/HttpApi/Operations/Mfa.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Mfa.js +5 -0
- package/dist/HttpApi/Operations/Mfa.js.map +1 -0
- package/dist/HttpApi/Operations/OAuth.d.ts +20 -0
- package/dist/HttpApi/Operations/OAuth.d.ts.map +1 -0
- package/dist/HttpApi/Operations/OAuth.js +5 -0
- package/dist/HttpApi/Operations/OAuth.js.map +1 -0
- package/dist/HttpApi/Operations/OAuthProviderAuthorization.d.ts +12 -0
- package/dist/HttpApi/Operations/OAuthProviderAuthorization.d.ts.map +1 -0
- package/dist/HttpApi/Operations/OAuthProviderAuthorization.js +5 -0
- package/dist/HttpApi/Operations/OAuthProviderAuthorization.js.map +1 -0
- package/dist/HttpApi/Operations/OAuthToken.d.ts +16 -0
- package/dist/HttpApi/Operations/OAuthToken.d.ts.map +1 -0
- package/dist/HttpApi/Operations/OAuthToken.js +5 -0
- package/dist/HttpApi/Operations/OAuthToken.js.map +1 -0
- package/dist/HttpApi/Operations/Passkey.d.ts +22 -0
- package/dist/HttpApi/Operations/Passkey.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Passkey.js +5 -0
- package/dist/HttpApi/Operations/Passkey.js.map +1 -0
- package/dist/HttpApi/Operations/Password.d.ts +22 -0
- package/dist/HttpApi/Operations/Password.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Password.js +5 -0
- package/dist/HttpApi/Operations/Password.js.map +1 -0
- package/dist/HttpApi/Operations/RecoveryCodes.d.ts +20 -0
- package/dist/HttpApi/Operations/RecoveryCodes.d.ts.map +1 -0
- package/dist/HttpApi/Operations/RecoveryCodes.js +5 -0
- package/dist/HttpApi/Operations/RecoveryCodes.js.map +1 -0
- package/dist/HttpApi/Operations/RefreshToken.d.ts +12 -0
- package/dist/HttpApi/Operations/RefreshToken.d.ts.map +1 -0
- package/dist/HttpApi/Operations/RefreshToken.js +5 -0
- package/dist/HttpApi/Operations/RefreshToken.js.map +1 -0
- package/dist/HttpApi/Operations/Security.d.ts +12 -0
- package/dist/HttpApi/Operations/Security.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Security.js +5 -0
- package/dist/HttpApi/Operations/Security.js.map +1 -0
- package/dist/HttpApi/Operations/SecurityTimeline.d.ts +19 -0
- package/dist/HttpApi/Operations/SecurityTimeline.d.ts.map +1 -0
- package/dist/HttpApi/Operations/SecurityTimeline.js +7 -0
- package/dist/HttpApi/Operations/SecurityTimeline.js.map +1 -0
- package/dist/HttpApi/Operations/Session.d.ts +22 -0
- package/dist/HttpApi/Operations/Session.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Session.js +5 -0
- package/dist/HttpApi/Operations/Session.js.map +1 -0
- package/dist/HttpApi/Operations/StepUp.d.ts +22 -0
- package/dist/HttpApi/Operations/StepUp.d.ts.map +1 -0
- package/dist/HttpApi/Operations/StepUp.js +5 -0
- package/dist/HttpApi/Operations/StepUp.js.map +1 -0
- package/dist/HttpApi/Operations/Totp.d.ts +20 -0
- package/dist/HttpApi/Operations/Totp.d.ts.map +1 -0
- package/dist/HttpApi/Operations/Totp.js +5 -0
- package/dist/HttpApi/Operations/Totp.js.map +1 -0
- package/dist/HttpApi/Operations/TrustedDevice.d.ts +23 -0
- package/dist/HttpApi/Operations/TrustedDevice.d.ts.map +1 -0
- package/dist/HttpApi/Operations/TrustedDevice.js +7 -0
- package/dist/HttpApi/Operations/TrustedDevice.js.map +1 -0
- package/dist/HttpApi/Operations/index.d.ts +27 -0
- package/dist/HttpApi/Operations/index.d.ts.map +1 -0
- package/dist/HttpApi/Operations/index.js +27 -0
- package/dist/HttpApi/Operations/index.js.map +1 -0
- package/dist/HttpApi/Passkey.d.ts +5 -0
- package/dist/HttpApi/Passkey.d.ts.map +1 -0
- package/dist/HttpApi/Passkey.js +5 -0
- package/dist/HttpApi/Passkey.js.map +1 -0
- package/dist/HttpApi/Password.d.ts +220 -0
- package/dist/HttpApi/Password.d.ts.map +1 -0
- package/dist/HttpApi/Password.js +237 -0
- package/dist/HttpApi/Password.js.map +1 -0
- package/dist/HttpApi/PasswordContract.d.ts +307 -0
- package/dist/HttpApi/PasswordContract.d.ts.map +1 -0
- package/dist/HttpApi/PasswordContract.js +63 -0
- package/dist/HttpApi/PasswordContract.js.map +1 -0
- package/dist/HttpApi/PasswordGuards.d.ts +82 -0
- package/dist/HttpApi/PasswordGuards.d.ts.map +1 -0
- package/dist/HttpApi/PasswordGuards.js +179 -0
- package/dist/HttpApi/PasswordGuards.js.map +1 -0
- package/dist/HttpApi/RecoveryCodes.d.ts +5 -0
- package/dist/HttpApi/RecoveryCodes.d.ts.map +1 -0
- package/dist/HttpApi/RecoveryCodes.js +5 -0
- package/dist/HttpApi/RecoveryCodes.js.map +1 -0
- package/dist/HttpApi/RefreshToken.d.ts +4 -0
- package/dist/HttpApi/RefreshToken.d.ts.map +1 -0
- package/dist/HttpApi/RefreshToken.js +4 -0
- package/dist/HttpApi/RefreshToken.js.map +1 -0
- package/dist/HttpApi/RequestGuards.d.ts +42 -0
- package/dist/HttpApi/RequestGuards.d.ts.map +1 -0
- package/dist/HttpApi/RequestGuards.js +194 -0
- package/dist/HttpApi/RequestGuards.js.map +1 -0
- package/dist/HttpApi/Schemas.d.ts +361 -84
- package/dist/HttpApi/Schemas.d.ts.map +1 -1
- package/dist/HttpApi/Schemas.js +190 -27
- package/dist/HttpApi/Schemas.js.map +1 -1
- package/dist/HttpApi/Security.d.ts +12 -93
- package/dist/HttpApi/Security.d.ts.map +1 -1
- package/dist/HttpApi/Security.js +65 -356
- package/dist/HttpApi/Security.js.map +1 -1
- package/dist/HttpApi/SecurityTimeline.d.ts +4 -0
- package/dist/HttpApi/SecurityTimeline.d.ts.map +1 -0
- package/dist/HttpApi/SecurityTimeline.js +4 -0
- package/dist/HttpApi/SecurityTimeline.js.map +1 -0
- package/dist/HttpApi/Session.d.ts +5 -0
- package/dist/HttpApi/Session.d.ts.map +1 -0
- package/dist/HttpApi/Session.js +5 -0
- package/dist/HttpApi/Session.js.map +1 -0
- package/dist/HttpApi/SessionGuards.d.ts +15 -0
- package/dist/HttpApi/SessionGuards.d.ts.map +1 -0
- package/dist/HttpApi/SessionGuards.js +37 -0
- package/dist/HttpApi/SessionGuards.js.map +1 -0
- package/dist/HttpApi/StepUp.d.ts +5 -0
- package/dist/HttpApi/StepUp.d.ts.map +1 -0
- package/dist/HttpApi/StepUp.js +5 -0
- package/dist/HttpApi/StepUp.js.map +1 -0
- package/dist/HttpApi/Totp.d.ts +5 -0
- package/dist/HttpApi/Totp.d.ts.map +1 -0
- package/dist/HttpApi/Totp.js +5 -0
- package/dist/HttpApi/Totp.js.map +1 -0
- package/dist/HttpApi/Transport.d.ts +4 -6
- package/dist/HttpApi/Transport.d.ts.map +1 -1
- package/dist/HttpApi/Transport.js +62 -36
- package/dist/HttpApi/Transport.js.map +1 -1
- package/dist/HttpApi/TrustedDevice.d.ts +4 -0
- package/dist/HttpApi/TrustedDevice.d.ts.map +1 -0
- package/dist/HttpApi/TrustedDevice.js +4 -0
- package/dist/HttpApi/TrustedDevice.js.map +1 -0
- package/dist/HttpApi/index.d.ts +9 -3
- package/dist/HttpApi/index.d.ts.map +1 -1
- package/dist/HttpApi/index.js +8 -2
- package/dist/HttpApi/index.js.map +1 -1
- package/dist/Identity.d.ts +138 -0
- package/dist/Identity.d.ts.map +1 -0
- package/dist/Identity.js +105 -0
- package/dist/Identity.js.map +1 -0
- package/dist/IdentityManagement.d.ts +189 -0
- package/dist/IdentityManagement.d.ts.map +1 -0
- package/dist/IdentityManagement.js +317 -0
- package/dist/IdentityManagement.js.map +1 -0
- package/dist/IncidentAction.d.ts +1 -4
- package/dist/IncidentAction.d.ts.map +1 -1
- package/dist/IncidentAction.js +15 -9
- package/dist/IncidentAction.js.map +1 -1
- package/dist/Internal.d.ts +2 -0
- package/dist/Internal.d.ts.map +1 -1
- package/dist/Internal.js +30 -0
- package/dist/Internal.js.map +1 -1
- package/dist/Invitation.d.ts +362 -0
- package/dist/Invitation.d.ts.map +1 -0
- package/dist/Invitation.js +633 -0
- package/dist/Invitation.js.map +1 -0
- package/dist/IpQualityScore.d.ts +38 -0
- package/dist/IpQualityScore.d.ts.map +1 -0
- package/dist/IpQualityScore.js +215 -0
- package/dist/IpQualityScore.js.map +1 -0
- package/dist/Jwt.d.ts +8 -29
- package/dist/Jwt.d.ts.map +1 -1
- package/dist/Jwt.js +67 -56
- package/dist/Jwt.js.map +1 -1
- package/dist/LoginApproval.d.ts +15 -30
- package/dist/LoginApproval.d.ts.map +1 -1
- package/dist/LoginApproval.js +47 -41
- package/dist/LoginApproval.js.map +1 -1
- package/dist/LoginNotification.d.ts +7 -11
- package/dist/LoginNotification.d.ts.map +1 -1
- package/dist/LoginNotification.js +30 -17
- package/dist/LoginNotification.js.map +1 -1
- package/dist/LoginRisk.d.ts +11 -13
- package/dist/LoginRisk.d.ts.map +1 -1
- package/dist/LoginRisk.js +66 -26
- package/dist/LoginRisk.js.map +1 -1
- package/dist/LoginRiskEnrichment.d.ts +145 -0
- package/dist/LoginRiskEnrichment.d.ts.map +1 -0
- package/dist/LoginRiskEnrichment.js +220 -0
- package/dist/LoginRiskEnrichment.js.map +1 -0
- package/dist/MagicLink.d.ts +9 -8
- package/dist/MagicLink.d.ts.map +1 -1
- package/dist/MagicLink.js +40 -73
- package/dist/MagicLink.js.map +1 -1
- package/dist/Mailer.d.ts +19 -12
- package/dist/Mailer.d.ts.map +1 -1
- package/dist/Mailer.js +10 -12
- package/dist/Mailer.js.map +1 -1
- package/dist/OAuth.d.ts +93 -96
- package/dist/OAuth.d.ts.map +1 -1
- package/dist/OAuth.js +404 -217
- package/dist/OAuth.js.map +1 -1
- package/dist/Passkey.d.ts +15 -17
- package/dist/Passkey.d.ts.map +1 -1
- package/dist/Passkey.js +86 -39
- package/dist/Passkey.js.map +1 -1
- package/dist/PasskeyBrowser.d.ts +39 -0
- package/dist/PasskeyBrowser.d.ts.map +1 -0
- package/dist/PasskeyBrowser.js +206 -0
- package/dist/PasskeyBrowser.js.map +1 -0
- package/dist/PasskeySimpleWebAuthn.d.ts.map +1 -1
- package/dist/PasskeySimpleWebAuthn.js +19 -7
- package/dist/PasskeySimpleWebAuthn.js.map +1 -1
- package/dist/Password.d.ts +71 -37
- package/dist/Password.d.ts.map +1 -1
- package/dist/Password.js +295 -81
- package/dist/Password.js.map +1 -1
- package/dist/PasswordRisk.d.ts +63 -0
- package/dist/PasswordRisk.d.ts.map +1 -0
- package/dist/PasswordRisk.js +37 -0
- package/dist/PasswordRisk.js.map +1 -0
- package/dist/Permission.d.ts +308 -0
- package/dist/Permission.d.ts.map +1 -0
- package/dist/Permission.js +827 -0
- package/dist/Permission.js.map +1 -0
- package/dist/Policy.d.ts +31 -18
- package/dist/Policy.d.ts.map +1 -1
- package/dist/Policy.js +58 -14
- package/dist/Policy.js.map +1 -1
- package/dist/PostgresDelegatedAccessStorageMigrations.d.ts +7 -0
- package/dist/PostgresDelegatedAccessStorageMigrations.d.ts.map +1 -0
- package/dist/PostgresDelegatedAccessStorageMigrations.js +119 -0
- package/dist/PostgresDelegatedAccessStorageMigrations.js.map +1 -0
- package/dist/PostgresStorageMigrations.d.ts +15 -0
- package/dist/PostgresStorageMigrations.d.ts.map +1 -0
- package/dist/PostgresStorageMigrations.js +620 -0
- package/dist/PostgresStorageMigrations.js.map +1 -0
- package/dist/Privacy.d.ts +0 -3
- package/dist/Privacy.d.ts.map +1 -1
- package/dist/Privacy.js +2 -5
- package/dist/Privacy.js.map +1 -1
- package/dist/RateLimiter.d.ts +0 -3
- package/dist/RateLimiter.d.ts.map +1 -1
- package/dist/RateLimiter.js +1 -4
- package/dist/RateLimiter.js.map +1 -1
- package/dist/RecoveryCode.d.ts +83 -11
- package/dist/RecoveryCode.d.ts.map +1 -1
- package/dist/RecoveryCode.js +273 -75
- package/dist/RecoveryCode.js.map +1 -1
- package/dist/RecoveryPolicy.d.ts +81 -0
- package/dist/RecoveryPolicy.d.ts.map +1 -0
- package/dist/RecoveryPolicy.js +119 -0
- package/dist/RecoveryPolicy.js.map +1 -0
- package/dist/RefreshToken.d.ts +0 -9
- package/dist/RefreshToken.d.ts.map +1 -1
- package/dist/RefreshToken.js +31 -22
- package/dist/RefreshToken.js.map +1 -1
- package/dist/SecurityTimeline.d.ts +1 -4
- package/dist/SecurityTimeline.d.ts.map +1 -1
- package/dist/SecurityTimeline.js +110 -17
- package/dist/SecurityTimeline.js.map +1 -1
- package/dist/Sessions.d.ts +124 -29
- package/dist/Sessions.d.ts.map +1 -1
- package/dist/Sessions.js +626 -94
- package/dist/Sessions.js.map +1 -1
- package/dist/StepUp.d.ts +132 -11
- package/dist/StepUp.d.ts.map +1 -1
- package/dist/StepUp.js +387 -19
- package/dist/StepUp.js.map +1 -1
- package/dist/Storage.d.ts +89 -23
- package/dist/Storage.d.ts.map +1 -1
- package/dist/Storage.js +10 -12
- package/dist/Storage.js.map +1 -1
- package/dist/StorageMigrations.d.ts +6 -1
- package/dist/StorageMigrations.d.ts.map +1 -1
- package/dist/StorageMigrations.js +224 -0
- package/dist/StorageMigrations.js.map +1 -1
- package/dist/StorageSchemaGenerator.d.ts +486 -0
- package/dist/StorageSchemaGenerator.d.ts.map +1 -0
- package/dist/StorageSchemaGenerator.js +1022 -0
- package/dist/StorageSchemaGenerator.js.map +1 -0
- package/dist/StrongFactor.d.ts +64 -0
- package/dist/StrongFactor.d.ts.map +1 -0
- package/dist/StrongFactor.js +100 -0
- package/dist/StrongFactor.js.map +1 -0
- package/dist/Testing.js +2 -2
- package/dist/Testing.js.map +1 -1
- package/dist/Totp.d.ts +88 -13
- package/dist/Totp.d.ts.map +1 -1
- package/dist/Totp.js +192 -34
- package/dist/Totp.js.map +1 -1
- package/dist/TrustedDevice.d.ts +0 -9
- package/dist/TrustedDevice.d.ts.map +1 -1
- package/dist/TrustedDevice.js +15 -17
- package/dist/TrustedDevice.js.map +1 -1
- package/dist/WaitUntil.d.ts +0 -3
- package/dist/WaitUntil.d.ts.map +1 -1
- package/dist/WaitUntil.js +1 -4
- package/dist/WaitUntil.js.map +1 -1
- package/dist/Webhook.d.ts +42 -12
- package/dist/Webhook.d.ts.map +1 -1
- package/dist/Webhook.js +165 -26
- package/dist/Webhook.js.map +1 -1
- package/dist/alchemy/cloudflare/Email.d.ts.map +1 -1
- package/dist/alchemy/cloudflare/Email.js +9 -4
- package/dist/alchemy/cloudflare/Email.js.map +1 -1
- package/dist/cloudflare/Email.js +1 -1
- package/dist/cloudflare/Email.js.map +1 -1
- package/dist/cloudflare/RequestMetadata.d.ts +49 -0
- package/dist/cloudflare/RequestMetadata.d.ts.map +1 -0
- package/dist/cloudflare/RequestMetadata.js +71 -0
- package/dist/cloudflare/RequestMetadata.js.map +1 -0
- package/dist/index.d.ts +0 -35
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -35
- package/dist/index.js.map +1 -1
- package/dist/internal/AuthFlowFinalizer.d.ts +31 -0
- package/dist/internal/AuthFlowFinalizer.d.ts.map +1 -0
- package/dist/internal/AuthFlowFinalizer.js +182 -0
- package/dist/internal/AuthFlowFinalizer.js.map +1 -0
- package/migrations/0001_auth_storage.sql +1 -0
- package/migrations/0006_auth_totp_factor.sql +1 -0
- package/migrations/0024_auth_permission.sql +39 -0
- package/migrations/0025_auth_permission_definition.sql +19 -0
- package/migrations/0026_auth_user_identity.sql +59 -0
- package/migrations/0027_auth_audit_log_storage_order.sql +46 -0
- package/migrations/0028_auth_oauth_client_secret_key.sql +39 -0
- package/migrations/delegated-access/0001_auth_delegated_access.sql +152 -0
- package/migrations/postgres/0001_auth_core.sql +77 -0
- package/migrations/postgres/0002_auth_security_oauth.sql +65 -0
- package/migrations/postgres/0003_auth_credentials_tokens.sql +43 -0
- package/migrations/postgres/0004_auth_security_history.sql +103 -0
- package/migrations/postgres/0005_auth_webhooks.sql +29 -0
- package/migrations/postgres/0006_auth_domain_timeline.sql +50 -0
- package/migrations/postgres/0007_auth_oauth_clients.sql +85 -0
- package/migrations/postgres/0008_auth_oauth_tokens.sql +63 -0
- package/migrations/postgres/0009_auth_permissions.sql +66 -0
- package/migrations/postgres/delegated-access/0001_auth_delegated_access.sql +112 -0
- package/package.json +301 -2
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Option, Result } from "effect";
|
|
2
|
+
import { compactAuthenticationEventsResult, deriveAssuranceResult, deriveMfaVerifiedAtResult, maximumSessionAuthenticationEvents, validateAuthenticationEvidenceTimestamps, } from "../Assurance.js";
|
|
3
|
+
import { currentUnixMillis } from "../Internal.js";
|
|
4
|
+
import { unknownLoginDeviceContext } from "../LoginApproval.js";
|
|
5
|
+
import { LoginNotification } from "../LoginNotification.js";
|
|
6
|
+
import { defaultLoginRiskContext } from "../LoginRisk.js";
|
|
7
|
+
import { RecoveryRequirementPolicy, defaultRecoveryRemediationCapabilities, makeRecoveryRequirementPolicyAllow, recoveryPolicyInput, withRecoveryEnrollmentRequirement, withRecoveryRemediationRequirement, } from "../RecoveryPolicy.js";
|
|
8
|
+
import { SessionCreateError, Sessions, sessionRequestMetadataKey, } from "../Sessions.js";
|
|
9
|
+
const loginNotificationSession = (session) => ({
|
|
10
|
+
sessionId: session.sessionId,
|
|
11
|
+
userId: session.userId,
|
|
12
|
+
authTime: session.authTime,
|
|
13
|
+
expiresAt: session.expiresAt,
|
|
14
|
+
aal: session.aal,
|
|
15
|
+
amr: session.amr,
|
|
16
|
+
...(session.claims === undefined ? {} : { claims: session.claims }),
|
|
17
|
+
});
|
|
18
|
+
const loginRequestContextFromMetadata = (metadata) => {
|
|
19
|
+
const value = metadata?.[sessionRequestMetadataKey];
|
|
20
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
21
|
+
? value
|
|
22
|
+
: undefined;
|
|
23
|
+
};
|
|
24
|
+
const appMetadata = (metadata) => {
|
|
25
|
+
if (metadata === undefined) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const { method: _method, evidence: _evidence, identity: _identity, emailDestination: _emailDestination, intent: _intent, deviceStatus: _deviceStatus, deviceKey: _deviceKey, locationKey: _locationKey, claims: _claims, [sessionRequestMetadataKey]: _request, ...rest } = metadata;
|
|
29
|
+
return Object.keys(rest).length === 0 ? undefined : rest;
|
|
30
|
+
};
|
|
31
|
+
const persistedSessionMetadata = (input) => input.request === undefined
|
|
32
|
+
? input.metadata
|
|
33
|
+
: {
|
|
34
|
+
...input.metadata,
|
|
35
|
+
[sessionRequestMetadataKey]: input.request,
|
|
36
|
+
};
|
|
37
|
+
const fromEvidenceValidationResult = (result) => Effect.fromResult(result).pipe(Effect.mapError((cause) => new SessionCreateError({
|
|
38
|
+
message: "Session evidence policy validation failed",
|
|
39
|
+
cause,
|
|
40
|
+
})));
|
|
41
|
+
const primaryFactorNotEstablished = () => ({
|
|
42
|
+
_tag: "PolicyDenied",
|
|
43
|
+
reason: "Authentication evidence did not establish a primary factor",
|
|
44
|
+
});
|
|
45
|
+
export const makeAuthFlowTerminal = (dependencies) => {
|
|
46
|
+
const recoveryRequirementPolicy = dependencies.recoveryRequirementPolicy ??
|
|
47
|
+
makeRecoveryRequirementPolicyAllow();
|
|
48
|
+
const { customEvidencePolicies } = dependencies.sessions;
|
|
49
|
+
const derive = Effect.fn("auth.auth_flow.derive")(function* (input) {
|
|
50
|
+
const serverNow = yield* currentUnixMillis;
|
|
51
|
+
yield* fromEvidenceValidationResult(validateAuthenticationEvidenceTimestamps(input.evidence, serverNow));
|
|
52
|
+
const evidence = yield* fromEvidenceValidationResult(compactAuthenticationEventsResult(input.evidence, maximumSessionAuthenticationEvents, customEvidencePolicies));
|
|
53
|
+
const assurance = yield* fromEvidenceValidationResult(deriveAssuranceResult(evidence, { customEvidencePolicies }));
|
|
54
|
+
const mfaVerifiedAt = yield* fromEvidenceValidationResult(deriveMfaVerifiedAtResult(evidence, customEvidencePolicies));
|
|
55
|
+
return {
|
|
56
|
+
...input,
|
|
57
|
+
evidence,
|
|
58
|
+
aal: assurance.level,
|
|
59
|
+
amr: assurance.amr,
|
|
60
|
+
primaryEstablished: assurance.primaryEstablished,
|
|
61
|
+
recoveryRemediation: assurance.recoveryRemediation,
|
|
62
|
+
...(mfaVerifiedAt === undefined ? {} : { mfaVerifiedAt }),
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
const notifyLogin = (input, session) => dependencies.loginNotification === undefined
|
|
66
|
+
? Effect.void
|
|
67
|
+
: dependencies.loginNotification
|
|
68
|
+
.notify({
|
|
69
|
+
userId: input.userId,
|
|
70
|
+
...(input.identity === undefined
|
|
71
|
+
? {}
|
|
72
|
+
: { identity: input.identity }),
|
|
73
|
+
...(input.emailDestination === undefined
|
|
74
|
+
? {}
|
|
75
|
+
: { emailDestination: input.emailDestination }),
|
|
76
|
+
...(input.intent === undefined ? {} : { intent: input.intent }),
|
|
77
|
+
method: input.method,
|
|
78
|
+
amr: input.amr,
|
|
79
|
+
aal: input.aal,
|
|
80
|
+
session: loginNotificationSession(session),
|
|
81
|
+
device: input.device ?? unknownLoginDeviceContext,
|
|
82
|
+
risk: input.risk ?? defaultLoginRiskContext,
|
|
83
|
+
request: input.request ?? loginRequestContextFromMetadata(input.metadata),
|
|
84
|
+
...(input.metadata === undefined
|
|
85
|
+
? {}
|
|
86
|
+
: { metadata: input.metadata }),
|
|
87
|
+
})
|
|
88
|
+
.pipe(Effect.catchCause(() => Effect.void));
|
|
89
|
+
const recoveryClaims = (input) => Effect.gen(function* () {
|
|
90
|
+
const decision = yield* recoveryRequirementPolicy.decide(recoveryPolicyInput({
|
|
91
|
+
...input,
|
|
92
|
+
request: input.request ?? loginRequestContextFromMetadata(input.metadata),
|
|
93
|
+
metadata: appMetadata(input.metadata),
|
|
94
|
+
}));
|
|
95
|
+
if (decision.type === "deny") {
|
|
96
|
+
return Option.none();
|
|
97
|
+
}
|
|
98
|
+
const policyClaims = decision.type === "require-enrollment"
|
|
99
|
+
? withRecoveryEnrollmentRequirement(input.claims, decision.allowed)
|
|
100
|
+
: input.claims;
|
|
101
|
+
return Option.some(input.recoveryRemediation
|
|
102
|
+
? withRecoveryRemediationRequirement(policyClaims, defaultRecoveryRemediationCapabilities)
|
|
103
|
+
: policyClaims);
|
|
104
|
+
});
|
|
105
|
+
return {
|
|
106
|
+
derive,
|
|
107
|
+
complete: Effect.fn("auth.auth_flow.complete")(function* (input) {
|
|
108
|
+
yield* Effect.annotateCurrentSpan({
|
|
109
|
+
"auth.method": input.method,
|
|
110
|
+
"auth.aal": input.aal,
|
|
111
|
+
"auth.amr_count": input.amr.length,
|
|
112
|
+
});
|
|
113
|
+
if (!input.primaryEstablished) {
|
|
114
|
+
yield* Effect.annotateCurrentSpan("auth.result", "PolicyDenied");
|
|
115
|
+
return primaryFactorNotEstablished();
|
|
116
|
+
}
|
|
117
|
+
const claims = yield* recoveryClaims(input);
|
|
118
|
+
if (Option.isNone(claims)) {
|
|
119
|
+
yield* Effect.annotateCurrentSpan("auth.result", "PolicyDenied");
|
|
120
|
+
return { _tag: "PolicyDenied" };
|
|
121
|
+
}
|
|
122
|
+
const session = yield* dependencies.sessions.create({
|
|
123
|
+
userId: input.userId,
|
|
124
|
+
authenticationEvents: input.evidence,
|
|
125
|
+
...(Option.isNone(claims) ? {} : { claims: claims.value }),
|
|
126
|
+
...(input.mfaVerifiedAt === undefined
|
|
127
|
+
? {}
|
|
128
|
+
: { mfaVerifiedAt: input.mfaVerifiedAt }),
|
|
129
|
+
metadata: persistedSessionMetadata(input),
|
|
130
|
+
});
|
|
131
|
+
yield* notifyLogin(input, session);
|
|
132
|
+
yield* Effect.annotateCurrentSpan("auth.result", "Authenticated");
|
|
133
|
+
return { _tag: "Authenticated", session };
|
|
134
|
+
}),
|
|
135
|
+
prepare: Effect.fn("auth.auth_flow.prepare_complete")(function* (input) {
|
|
136
|
+
if (!input.primaryEstablished) {
|
|
137
|
+
return primaryFactorNotEstablished();
|
|
138
|
+
}
|
|
139
|
+
const claims = yield* recoveryClaims(input);
|
|
140
|
+
if (Option.isNone(claims)) {
|
|
141
|
+
return { _tag: "PolicyDenied" };
|
|
142
|
+
}
|
|
143
|
+
if (dependencies.sessions.prepareCreate === undefined) {
|
|
144
|
+
return {
|
|
145
|
+
_tag: "PolicyDenied",
|
|
146
|
+
reason: "Atomic recovery login is not configured",
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
const prepared = yield* dependencies.sessions.prepareCreate({
|
|
150
|
+
userId: input.userId,
|
|
151
|
+
authenticationEvents: input.evidence,
|
|
152
|
+
claims: claims.value,
|
|
153
|
+
metadata: persistedSessionMetadata(input),
|
|
154
|
+
});
|
|
155
|
+
return {
|
|
156
|
+
_tag: "PreparedAuthenticated",
|
|
157
|
+
prepared,
|
|
158
|
+
notify: notifyLogin(input, prepared.session),
|
|
159
|
+
};
|
|
160
|
+
}),
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
export class AuthFlowFinalizer extends Context.Service()("auth/internal/AuthFlowFinalizer") {
|
|
164
|
+
}
|
|
165
|
+
export const AuthFlowFinalizerLive = Layer.effect(AuthFlowFinalizer, Effect.gen(function* () {
|
|
166
|
+
const sessions = yield* Sessions;
|
|
167
|
+
const loginNotification = yield* Effect.serviceOption(LoginNotification);
|
|
168
|
+
const recoveryRequirementPolicy = yield* Effect.serviceOption(RecoveryRequirementPolicy);
|
|
169
|
+
const terminal = makeAuthFlowTerminal({
|
|
170
|
+
sessions,
|
|
171
|
+
...(Option.isSome(loginNotification)
|
|
172
|
+
? { loginNotification: loginNotification.value }
|
|
173
|
+
: {}),
|
|
174
|
+
...(Option.isSome(recoveryRequirementPolicy)
|
|
175
|
+
? { recoveryRequirementPolicy: recoveryRequirementPolicy.value }
|
|
176
|
+
: {}),
|
|
177
|
+
});
|
|
178
|
+
return AuthFlowFinalizer.of({
|
|
179
|
+
complete: (input) => terminal.derive(input).pipe(Effect.flatMap(terminal.complete)),
|
|
180
|
+
});
|
|
181
|
+
}));
|
|
182
|
+
//# sourceMappingURL=AuthFlowFinalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthFlowFinalizer.js","sourceRoot":"","sources":["../../src/internal/AuthFlowFinalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
create table if not exists auth_permission_grant (
|
|
2
|
+
subject_type text not null,
|
|
3
|
+
subject_id text not null,
|
|
4
|
+
permission_id text not null,
|
|
5
|
+
scope_type text not null,
|
|
6
|
+
scope_id_present integer not null,
|
|
7
|
+
scope_id text not null,
|
|
8
|
+
expires_at integer,
|
|
9
|
+
metadata text,
|
|
10
|
+
revoked_at integer,
|
|
11
|
+
primary key (subject_type, subject_id, permission_id, scope_type, scope_id_present, scope_id)
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
create index if not exists auth_permission_grant_check_idx on auth_permission_grant (subject_type, subject_id, permission_id, revoked_at, expires_at);
|
|
15
|
+
|
|
16
|
+
create table if not exists auth_role_grant (
|
|
17
|
+
subject_type text not null,
|
|
18
|
+
subject_id text not null,
|
|
19
|
+
role_id text not null,
|
|
20
|
+
scope_type text not null,
|
|
21
|
+
scope_id_present integer not null,
|
|
22
|
+
scope_id text not null,
|
|
23
|
+
expires_at integer,
|
|
24
|
+
metadata text,
|
|
25
|
+
revoked_at integer,
|
|
26
|
+
primary key (subject_type, subject_id, role_id, scope_type, scope_id_present, scope_id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
create index if not exists auth_role_grant_check_idx on auth_role_grant (subject_type, subject_id, role_id, revoked_at, expires_at);
|
|
30
|
+
|
|
31
|
+
create table if not exists auth_role_permission (
|
|
32
|
+
role_id text not null,
|
|
33
|
+
permission_id text not null,
|
|
34
|
+
scope_type_present integer not null,
|
|
35
|
+
scope_type text not null,
|
|
36
|
+
primary key (role_id, permission_id, scope_type_present, scope_type)
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
create index if not exists auth_role_permission_check_idx on auth_role_permission (permission_id, role_id, scope_type_present, scope_type);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
create table if not exists auth_permission_definition (
|
|
2
|
+
id text primary key,
|
|
3
|
+
description text,
|
|
4
|
+
scope_type_present integer not null,
|
|
5
|
+
scope_type text not null,
|
|
6
|
+
created_at integer not null,
|
|
7
|
+
updated_at integer not null,
|
|
8
|
+
disabled_at integer,
|
|
9
|
+
deleted_at integer
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
create table if not exists auth_role_definition (
|
|
13
|
+
id text primary key,
|
|
14
|
+
description text,
|
|
15
|
+
created_at integer not null,
|
|
16
|
+
updated_at integer not null,
|
|
17
|
+
disabled_at integer,
|
|
18
|
+
deleted_at integer
|
|
19
|
+
);
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
create table if not exists auth_user_identity (
|
|
2
|
+
id text primary key,
|
|
3
|
+
user_id text not null,
|
|
4
|
+
scope_type text not null,
|
|
5
|
+
scope_id text not null,
|
|
6
|
+
kind text not null,
|
|
7
|
+
value text not null,
|
|
8
|
+
normalized_value text not null,
|
|
9
|
+
verified_at integer,
|
|
10
|
+
is_primary_login integer not null,
|
|
11
|
+
created_at integer not null,
|
|
12
|
+
updated_at integer not null,
|
|
13
|
+
revoked_at integer,
|
|
14
|
+
replaced_by_id text,
|
|
15
|
+
metadata text
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
insert into auth_user_identity (
|
|
19
|
+
id,
|
|
20
|
+
user_id,
|
|
21
|
+
scope_type,
|
|
22
|
+
scope_id,
|
|
23
|
+
kind,
|
|
24
|
+
value,
|
|
25
|
+
normalized_value,
|
|
26
|
+
verified_at,
|
|
27
|
+
is_primary_login,
|
|
28
|
+
created_at,
|
|
29
|
+
updated_at,
|
|
30
|
+
revoked_at,
|
|
31
|
+
replaced_by_id,
|
|
32
|
+
metadata
|
|
33
|
+
)
|
|
34
|
+
select
|
|
35
|
+
'legacy-email:' || id,
|
|
36
|
+
id,
|
|
37
|
+
'global',
|
|
38
|
+
'',
|
|
39
|
+
'email',
|
|
40
|
+
email,
|
|
41
|
+
substr(email, 1, instr(email, '@') - 1) || lower(substr(email, instr(email, '@'))),
|
|
42
|
+
case when email_verified <> 0 then updated_at else null end,
|
|
43
|
+
1,
|
|
44
|
+
created_at,
|
|
45
|
+
updated_at,
|
|
46
|
+
null,
|
|
47
|
+
null,
|
|
48
|
+
null
|
|
49
|
+
from auth_user;
|
|
50
|
+
|
|
51
|
+
drop index auth_user_email_idx;
|
|
52
|
+
|
|
53
|
+
alter table auth_user drop column email;
|
|
54
|
+
alter table auth_user drop column email_verified;
|
|
55
|
+
|
|
56
|
+
create unique index auth_user_identity_active_value_idx on auth_user_identity (scope_type, scope_id, kind, normalized_value) where revoked_at is null;
|
|
57
|
+
create index auth_user_identity_user_id_idx on auth_user_identity (user_id);
|
|
58
|
+
create index auth_user_identity_replaced_by_id_idx on auth_user_identity (replaced_by_id);
|
|
59
|
+
create unique index auth_user_identity_active_primary_idx on auth_user_identity (user_id) where revoked_at is null and is_primary_login = 1;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
alter table auth_audit_log rename to auth_audit_log_legacy;
|
|
2
|
+
|
|
3
|
+
create table auth_audit_log (
|
|
4
|
+
storage_id integer primary key autoincrement,
|
|
5
|
+
id text,
|
|
6
|
+
type text not null,
|
|
7
|
+
user_id text,
|
|
8
|
+
actor_user_id text,
|
|
9
|
+
occurred_at integer not null,
|
|
10
|
+
request_ip_hash text,
|
|
11
|
+
request_user_agent_hash text,
|
|
12
|
+
event text not null,
|
|
13
|
+
created_at integer not null
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
insert into auth_audit_log (
|
|
17
|
+
id,
|
|
18
|
+
type,
|
|
19
|
+
user_id,
|
|
20
|
+
actor_user_id,
|
|
21
|
+
occurred_at,
|
|
22
|
+
request_ip_hash,
|
|
23
|
+
request_user_agent_hash,
|
|
24
|
+
event,
|
|
25
|
+
created_at
|
|
26
|
+
)
|
|
27
|
+
select
|
|
28
|
+
id,
|
|
29
|
+
type,
|
|
30
|
+
user_id,
|
|
31
|
+
actor_user_id,
|
|
32
|
+
occurred_at,
|
|
33
|
+
request_ip_hash,
|
|
34
|
+
request_user_agent_hash,
|
|
35
|
+
event,
|
|
36
|
+
created_at
|
|
37
|
+
from auth_audit_log_legacy
|
|
38
|
+
order by rowid;
|
|
39
|
+
|
|
40
|
+
drop table auth_audit_log_legacy;
|
|
41
|
+
|
|
42
|
+
create index auth_audit_log_id_idx on auth_audit_log (id);
|
|
43
|
+
create index auth_audit_log_user_occurred_at_idx on auth_audit_log (user_id, occurred_at);
|
|
44
|
+
create index auth_audit_log_actor_user_occurred_at_idx on auth_audit_log (actor_user_id, occurred_at);
|
|
45
|
+
create index auth_audit_log_type_occurred_at_idx on auth_audit_log (type, occurred_at);
|
|
46
|
+
create index auth_audit_log_occurred_at_idx on auth_audit_log (occurred_at);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
alter table auth_oauth_client_secret rename to auth_oauth_client_secret_legacy;
|
|
2
|
+
|
|
3
|
+
create table auth_oauth_client_secret (
|
|
4
|
+
prefix text not null,
|
|
5
|
+
client_id text not null,
|
|
6
|
+
secret_hash text not null,
|
|
7
|
+
authentication_methods text not null,
|
|
8
|
+
created_at integer not null,
|
|
9
|
+
expires_at integer,
|
|
10
|
+
last_used_at integer,
|
|
11
|
+
revoked_at integer,
|
|
12
|
+
metadata text,
|
|
13
|
+
primary key (client_id, prefix)
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
insert into auth_oauth_client_secret (
|
|
17
|
+
prefix,
|
|
18
|
+
client_id,
|
|
19
|
+
secret_hash,
|
|
20
|
+
authentication_methods,
|
|
21
|
+
created_at,
|
|
22
|
+
expires_at,
|
|
23
|
+
last_used_at,
|
|
24
|
+
revoked_at,
|
|
25
|
+
metadata
|
|
26
|
+
)
|
|
27
|
+
select
|
|
28
|
+
prefix,
|
|
29
|
+
client_id,
|
|
30
|
+
secret_hash,
|
|
31
|
+
authentication_methods,
|
|
32
|
+
created_at,
|
|
33
|
+
expires_at,
|
|
34
|
+
last_used_at,
|
|
35
|
+
revoked_at,
|
|
36
|
+
metadata
|
|
37
|
+
from auth_oauth_client_secret_legacy;
|
|
38
|
+
|
|
39
|
+
drop table auth_oauth_client_secret_legacy;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
create table if not exists auth_invitation (
|
|
2
|
+
id text primary key,
|
|
3
|
+
kind text not null,
|
|
4
|
+
target_type text not null,
|
|
5
|
+
target_id text not null,
|
|
6
|
+
intent_type text not null,
|
|
7
|
+
intent_version integer not null,
|
|
8
|
+
intent_payload text not null,
|
|
9
|
+
recipient_type text,
|
|
10
|
+
recipient_reference text,
|
|
11
|
+
issued_by_type text,
|
|
12
|
+
issued_by_id text,
|
|
13
|
+
created_at integer not null,
|
|
14
|
+
expires_at integer not null,
|
|
15
|
+
token_hash text not null,
|
|
16
|
+
accepted_at integer,
|
|
17
|
+
accepted_by_type text,
|
|
18
|
+
accepted_by_id text,
|
|
19
|
+
revoked_at integer,
|
|
20
|
+
superseded_at integer,
|
|
21
|
+
superseded_by_id text,
|
|
22
|
+
metadata text,
|
|
23
|
+
check (length(id) = 22 and id not glob '*[^A-Za-z0-9_-]*'),
|
|
24
|
+
check (length(kind) > 0),
|
|
25
|
+
check (length(target_type) > 0 and length(target_id) > 0),
|
|
26
|
+
check (length(intent_type) > 0),
|
|
27
|
+
check (typeof(intent_version) = 'integer' and intent_version >= 1),
|
|
28
|
+
check (
|
|
29
|
+
case
|
|
30
|
+
when json_valid(intent_payload) then json_type(intent_payload) = 'object'
|
|
31
|
+
else 0
|
|
32
|
+
end
|
|
33
|
+
),
|
|
34
|
+
check ((recipient_type is null) = (recipient_reference is null)),
|
|
35
|
+
check (recipient_type is null or (length(recipient_type) > 0 and length(recipient_reference) > 0)),
|
|
36
|
+
check ((issued_by_type is null) = (issued_by_id is null)),
|
|
37
|
+
check (issued_by_type is null or (length(issued_by_type) > 0 and length(issued_by_id) > 0)),
|
|
38
|
+
check (typeof(created_at) = 'integer' and created_at >= 0),
|
|
39
|
+
check (typeof(expires_at) = 'integer' and expires_at > created_at),
|
|
40
|
+
check (length(token_hash) > 7 and substr(token_hash, 1, 7) = 'sha256:'),
|
|
41
|
+
check ((accepted_at is null) = (accepted_by_type is null)),
|
|
42
|
+
check ((accepted_by_type is null) = (accepted_by_id is null)),
|
|
43
|
+
check (accepted_by_type is null or (length(accepted_by_type) > 0 and length(accepted_by_id) > 0)),
|
|
44
|
+
check ((superseded_at is null) = (superseded_by_id is null)),
|
|
45
|
+
check (
|
|
46
|
+
superseded_by_id is null or
|
|
47
|
+
(length(superseded_by_id) = 22 and superseded_by_id not glob '*[^A-Za-z0-9_-]*')
|
|
48
|
+
),
|
|
49
|
+
check (
|
|
50
|
+
(accepted_at is not null) +
|
|
51
|
+
(revoked_at is not null) +
|
|
52
|
+
(superseded_at is not null) <= 1
|
|
53
|
+
),
|
|
54
|
+
check (accepted_at is null or (typeof(accepted_at) = 'integer' and accepted_at >= created_at)),
|
|
55
|
+
check (revoked_at is null or (typeof(revoked_at) = 'integer' and revoked_at >= created_at)),
|
|
56
|
+
check (superseded_at is null or (typeof(superseded_at) = 'integer' and superseded_at >= created_at)),
|
|
57
|
+
check (
|
|
58
|
+
metadata is null or
|
|
59
|
+
case
|
|
60
|
+
when json_valid(metadata) then json_type(metadata) = 'object'
|
|
61
|
+
else 0
|
|
62
|
+
end
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
create index if not exists auth_invitation_created_at_idx
|
|
67
|
+
on auth_invitation (created_at, id);
|
|
68
|
+
create index if not exists auth_invitation_kind_created_at_idx
|
|
69
|
+
on auth_invitation (kind, created_at, id);
|
|
70
|
+
create index if not exists auth_invitation_target_created_at_idx
|
|
71
|
+
on auth_invitation (target_type, target_id, created_at, id);
|
|
72
|
+
create index if not exists auth_invitation_recipient_created_at_idx
|
|
73
|
+
on auth_invitation (recipient_type, recipient_reference, created_at, id);
|
|
74
|
+
create index if not exists auth_invitation_issued_by_created_at_idx
|
|
75
|
+
on auth_invitation (issued_by_type, issued_by_id, created_at, id);
|
|
76
|
+
create index if not exists auth_invitation_pending_expires_at_idx
|
|
77
|
+
on auth_invitation (expires_at, created_at, id)
|
|
78
|
+
where accepted_at is null and revoked_at is null and superseded_at is null;
|
|
79
|
+
|
|
80
|
+
create table if not exists auth_access_grant (
|
|
81
|
+
id text primary key,
|
|
82
|
+
target_type text not null,
|
|
83
|
+
target_id text not null,
|
|
84
|
+
capabilities text not null,
|
|
85
|
+
binding_type text not null,
|
|
86
|
+
binding_subject_type text,
|
|
87
|
+
binding_subject_id text,
|
|
88
|
+
issuer_type text,
|
|
89
|
+
issuer_id text,
|
|
90
|
+
created_at integer not null,
|
|
91
|
+
expires_at integer,
|
|
92
|
+
token_hash text,
|
|
93
|
+
revoked_at integer,
|
|
94
|
+
superseded_at integer,
|
|
95
|
+
superseded_by_id text,
|
|
96
|
+
metadata text,
|
|
97
|
+
check (length(id) = 22 and id not glob '*[^A-Za-z0-9_-]*'),
|
|
98
|
+
check (length(target_type) > 0 and length(target_id) > 0),
|
|
99
|
+
check (
|
|
100
|
+
case
|
|
101
|
+
when json_valid(capabilities) then
|
|
102
|
+
json_type(capabilities) = 'array' and json_array_length(capabilities) > 0
|
|
103
|
+
else 0
|
|
104
|
+
end
|
|
105
|
+
),
|
|
106
|
+
check (binding_type in ('bearer', 'subject', 'subject-and-bearer')),
|
|
107
|
+
check ((binding_subject_type is null) = (binding_subject_id is null)),
|
|
108
|
+
check (binding_subject_type is null or (length(binding_subject_type) > 0 and length(binding_subject_id) > 0)),
|
|
109
|
+
check (
|
|
110
|
+
(binding_type = 'bearer' and binding_subject_type is null) or
|
|
111
|
+
(binding_type in ('subject', 'subject-and-bearer') and binding_subject_type is not null)
|
|
112
|
+
),
|
|
113
|
+
check ((issuer_type is null) = (issuer_id is null)),
|
|
114
|
+
check (issuer_type is null or (length(issuer_type) > 0 and length(issuer_id) > 0)),
|
|
115
|
+
check (typeof(created_at) = 'integer' and created_at >= 0),
|
|
116
|
+
check (
|
|
117
|
+
expires_at is null or
|
|
118
|
+
(typeof(expires_at) = 'integer' and expires_at > created_at)
|
|
119
|
+
),
|
|
120
|
+
check ((binding_type = 'subject') = (token_hash is null)),
|
|
121
|
+
check (
|
|
122
|
+
token_hash is null or
|
|
123
|
+
(length(token_hash) > 7 and substr(token_hash, 1, 7) = 'sha256:')
|
|
124
|
+
),
|
|
125
|
+
check ((superseded_at is null) = (superseded_by_id is null)),
|
|
126
|
+
check (
|
|
127
|
+
superseded_by_id is null or
|
|
128
|
+
(length(superseded_by_id) = 22 and superseded_by_id not glob '*[^A-Za-z0-9_-]*')
|
|
129
|
+
),
|
|
130
|
+
check ((revoked_at is not null) + (superseded_at is not null) <= 1),
|
|
131
|
+
check (revoked_at is null or (typeof(revoked_at) = 'integer' and revoked_at >= created_at)),
|
|
132
|
+
check (superseded_at is null or (typeof(superseded_at) = 'integer' and superseded_at >= created_at)),
|
|
133
|
+
check (
|
|
134
|
+
metadata is null or
|
|
135
|
+
case
|
|
136
|
+
when json_valid(metadata) then json_type(metadata) = 'object'
|
|
137
|
+
else 0
|
|
138
|
+
end
|
|
139
|
+
)
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
create index if not exists auth_access_grant_created_at_idx
|
|
143
|
+
on auth_access_grant (created_at, id);
|
|
144
|
+
create index if not exists auth_access_grant_target_created_at_idx
|
|
145
|
+
on auth_access_grant (target_type, target_id, created_at, id);
|
|
146
|
+
create index if not exists auth_access_grant_issuer_created_at_idx
|
|
147
|
+
on auth_access_grant (issuer_type, issuer_id, created_at, id);
|
|
148
|
+
create index if not exists auth_access_grant_subject_created_at_idx
|
|
149
|
+
on auth_access_grant (binding_subject_type, binding_subject_id, created_at, id);
|
|
150
|
+
create index if not exists auth_access_grant_active_expires_at_idx
|
|
151
|
+
on auth_access_grant (expires_at, created_at, id)
|
|
152
|
+
where revoked_at is null and superseded_at is null;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
create table auth_user (
|
|
2
|
+
id text constraint auth_user_pkey primary key,
|
|
3
|
+
created_at bigint not null,
|
|
4
|
+
updated_at bigint not null,
|
|
5
|
+
disabled_at bigint,
|
|
6
|
+
metadata jsonb
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
create table auth_user_identity (
|
|
10
|
+
id text constraint auth_user_identity_pkey primary key,
|
|
11
|
+
user_id text not null,
|
|
12
|
+
scope_type text not null,
|
|
13
|
+
scope_id text not null,
|
|
14
|
+
kind text not null,
|
|
15
|
+
value text not null,
|
|
16
|
+
normalized_value text not null,
|
|
17
|
+
verified_at bigint,
|
|
18
|
+
is_primary_login boolean not null default false,
|
|
19
|
+
created_at bigint not null,
|
|
20
|
+
updated_at bigint not null,
|
|
21
|
+
revoked_at bigint,
|
|
22
|
+
replaced_by_id text,
|
|
23
|
+
metadata jsonb
|
|
24
|
+
);
|
|
25
|
+
create unique index auth_user_identity_active_value_idx
|
|
26
|
+
on auth_user_identity (scope_type, scope_id, kind, normalized_value)
|
|
27
|
+
where revoked_at is null;
|
|
28
|
+
create unique index auth_user_identity_active_primary_idx
|
|
29
|
+
on auth_user_identity (user_id) where revoked_at is null and is_primary_login;
|
|
30
|
+
create index auth_user_identity_user_id_idx on auth_user_identity (user_id);
|
|
31
|
+
create index auth_user_identity_replaced_by_id_idx on auth_user_identity (replaced_by_id);
|
|
32
|
+
|
|
33
|
+
create table auth_credential (
|
|
34
|
+
id text constraint auth_credential_pkey primary key,
|
|
35
|
+
user_id text not null,
|
|
36
|
+
type text not null,
|
|
37
|
+
password_hash text,
|
|
38
|
+
created_at bigint not null,
|
|
39
|
+
updated_at bigint not null,
|
|
40
|
+
revoked_at bigint,
|
|
41
|
+
metadata jsonb,
|
|
42
|
+
constraint auth_credential_user_type_key unique (user_id, type)
|
|
43
|
+
);
|
|
44
|
+
create index auth_credential_user_id_idx on auth_credential (user_id);
|
|
45
|
+
|
|
46
|
+
create table auth_session (
|
|
47
|
+
id text constraint auth_session_pkey primary key,
|
|
48
|
+
user_id text not null,
|
|
49
|
+
secret_hash text not null,
|
|
50
|
+
created_at bigint not null,
|
|
51
|
+
expires_at bigint not null,
|
|
52
|
+
auth_time bigint not null,
|
|
53
|
+
authentication_events jsonb not null,
|
|
54
|
+
aal text not null,
|
|
55
|
+
amr jsonb not null,
|
|
56
|
+
claims jsonb,
|
|
57
|
+
mfa_verified_at bigint,
|
|
58
|
+
metadata jsonb,
|
|
59
|
+
revoked_at bigint,
|
|
60
|
+
last_seen_at bigint,
|
|
61
|
+
rotated_at bigint
|
|
62
|
+
);
|
|
63
|
+
create index auth_session_user_id_idx on auth_session (user_id);
|
|
64
|
+
create index auth_session_expires_at_idx on auth_session (expires_at);
|
|
65
|
+
|
|
66
|
+
create table auth_verification (
|
|
67
|
+
id text constraint auth_verification_pkey primary key,
|
|
68
|
+
type text not null,
|
|
69
|
+
subject text not null,
|
|
70
|
+
secret_hash text,
|
|
71
|
+
created_at bigint not null,
|
|
72
|
+
expires_at bigint not null,
|
|
73
|
+
metadata jsonb,
|
|
74
|
+
consumed_at bigint
|
|
75
|
+
);
|
|
76
|
+
create index auth_verification_type_subject_idx on auth_verification (type, subject);
|
|
77
|
+
create index auth_verification_expires_at_idx on auth_verification (expires_at);
|