@portaidentity/server 1.7.3 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/dist/applications/index.d.ts +2 -2
- package/dist/applications/index.d.ts.map +1 -1
- package/dist/applications/index.js +2 -2
- package/dist/applications/index.js.map +1 -1
- package/dist/applications/repository.d.ts +49 -4
- package/dist/applications/repository.d.ts.map +1 -1
- package/dist/applications/repository.js +148 -10
- package/dist/applications/repository.js.map +1 -1
- package/dist/applications/service.d.ts +35 -17
- package/dist/applications/service.d.ts.map +1 -1
- package/dist/applications/service.js +144 -35
- package/dist/applications/service.js.map +1 -1
- package/dist/applications/types.d.ts +1 -1
- package/dist/applications/types.d.ts.map +1 -1
- package/dist/applications/validators.d.ts +14 -0
- package/dist/applications/validators.d.ts.map +1 -0
- package/dist/applications/validators.js +14 -0
- package/dist/applications/validators.js.map +1 -0
- package/dist/auth/effective-branding.d.ts +35 -0
- package/dist/auth/effective-branding.d.ts.map +1 -0
- package/dist/auth/effective-branding.js +81 -0
- package/dist/auth/effective-branding.js.map +1 -0
- package/dist/auth/email-service.d.ts +3 -8
- package/dist/auth/email-service.d.ts.map +1 -1
- package/dist/auth/email-service.js +22 -30
- package/dist/auth/email-service.js.map +1 -1
- package/dist/auth/i18n.d.ts +5 -0
- package/dist/auth/i18n.d.ts.map +1 -1
- package/dist/auth/i18n.js +6 -5
- package/dist/auth/i18n.js.map +1 -1
- package/dist/auth/rate-limiter.d.ts +6 -10
- package/dist/auth/rate-limiter.d.ts.map +1 -1
- package/dist/auth/rate-limiter.js +12 -16
- package/dist/auth/rate-limiter.js.map +1 -1
- package/dist/auth/recovery-job-processor.d.ts.map +1 -1
- package/dist/auth/recovery-job-processor.js +1 -1
- package/dist/auth/recovery-job-processor.js.map +1 -1
- package/dist/auth/template-engine.d.ts +3 -1
- package/dist/auth/template-engine.d.ts.map +1 -1
- package/dist/auth/template-engine.js +1 -1
- package/dist/auth/template-engine.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +12 -12
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/error-handler.d.ts +3 -2
- package/dist/cli/error-handler.d.ts.map +1 -1
- package/dist/cli/error-handler.js +9 -2
- package/dist/cli/error-handler.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/clients/index.d.ts +1 -1
- package/dist/clients/index.js +1 -1
- package/dist/clients/repository.d.ts +18 -0
- package/dist/clients/repository.d.ts.map +1 -1
- package/dist/clients/repository.js +36 -0
- package/dist/clients/repository.js.map +1 -1
- package/dist/clients/secret-repository.d.ts +35 -8
- package/dist/clients/secret-repository.d.ts.map +1 -1
- package/dist/clients/secret-repository.js +69 -16
- package/dist/clients/secret-repository.js.map +1 -1
- package/dist/clients/secret-service.d.ts +5 -9
- package/dist/clients/secret-service.d.ts.map +1 -1
- package/dist/clients/secret-service.js +13 -22
- package/dist/clients/secret-service.js.map +1 -1
- package/dist/clients/service.d.ts +10 -13
- package/dist/clients/service.d.ts.map +1 -1
- package/dist/clients/service.js +112 -40
- package/dist/clients/service.js.map +1 -1
- package/dist/clients/types.d.ts +1 -1
- package/dist/clients/types.d.ts.map +1 -1
- package/dist/clients/validators.d.ts +83 -1
- package/dist/clients/validators.d.ts.map +1 -1
- package/dist/clients/validators.js +110 -0
- package/dist/clients/validators.js.map +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +1 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +23 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/custom-claims/repository.d.ts +14 -9
- package/dist/custom-claims/repository.d.ts.map +1 -1
- package/dist/custom-claims/repository.js +38 -11
- package/dist/custom-claims/repository.js.map +1 -1
- package/dist/custom-claims/service.d.ts +11 -6
- package/dist/custom-claims/service.d.ts.map +1 -1
- package/dist/custom-claims/service.js +43 -20
- package/dist/custom-claims/service.js.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/admin-permissions.d.ts +12 -7
- package/dist/lib/admin-permissions.d.ts.map +1 -1
- package/dist/lib/admin-permissions.js +26 -16
- package/dist/lib/admin-permissions.js.map +1 -1
- package/dist/lib/audit-log.d.ts +2 -2
- package/dist/lib/audit-log.d.ts.map +1 -1
- package/dist/lib/audit-log.js +1 -1
- package/dist/lib/audit-log.js.map +1 -1
- package/dist/lib/authority-revocation.d.ts +18 -0
- package/dist/lib/authority-revocation.d.ts.map +1 -0
- package/dist/lib/authority-revocation.js +37 -0
- package/dist/lib/authority-revocation.js.map +1 -0
- package/dist/lib/branding-assets.d.ts +35 -5
- package/dist/lib/branding-assets.d.ts.map +1 -1
- package/dist/lib/branding-assets.js +33 -26
- package/dist/lib/branding-assets.js.map +1 -1
- package/dist/lib/bulk-operations.d.ts +1 -1
- package/dist/lib/bulk-operations.d.ts.map +1 -1
- package/dist/lib/bulk-operations.js +1 -13
- package/dist/lib/bulk-operations.js.map +1 -1
- package/dist/lib/cursor.d.ts +2 -0
- package/dist/lib/cursor.d.ts.map +1 -1
- package/dist/lib/cursor.js +2 -7
- package/dist/lib/cursor.js.map +1 -1
- package/dist/lib/database.d.ts.map +1 -1
- package/dist/lib/database.js +5 -0
- package/dist/lib/database.js.map +1 -1
- package/dist/lib/deletion-cleanup.d.ts +43 -0
- package/dist/lib/deletion-cleanup.d.ts.map +1 -0
- package/dist/lib/deletion-cleanup.js +207 -0
- package/dist/lib/deletion-cleanup.js.map +1 -0
- package/dist/lib/image-validator.d.ts +3 -1
- package/dist/lib/image-validator.d.ts.map +1 -1
- package/dist/lib/image-validator.js +32 -19
- package/dist/lib/image-validator.js.map +1 -1
- package/dist/lib/log-format.d.ts +20 -0
- package/dist/lib/log-format.d.ts.map +1 -0
- package/dist/lib/log-format.js +22 -0
- package/dist/lib/log-format.js.map +1 -0
- package/dist/lib/logger.d.ts +3 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +21 -4
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/redis.d.ts.map +1 -1
- package/dist/lib/redis.js +3 -0
- package/dist/lib/redis.js.map +1 -1
- package/dist/lib/session-tracking.d.ts +73 -11
- package/dist/lib/session-tracking.d.ts.map +1 -1
- package/dist/lib/session-tracking.js +76 -32
- package/dist/lib/session-tracking.js.map +1 -1
- package/dist/lib/signing-key-crypto.d.ts.map +1 -1
- package/dist/lib/signing-key-crypto.js +4 -5
- package/dist/lib/signing-key-crypto.js.map +1 -1
- package/dist/lib/signing-keys.d.ts +3 -4
- package/dist/lib/signing-keys.d.ts.map +1 -1
- package/dist/lib/signing-keys.js +66 -41
- package/dist/lib/signing-keys.js.map +1 -1
- package/dist/lib/super-admin-protection.d.ts +5 -5
- package/dist/lib/super-admin-protection.d.ts.map +1 -1
- package/dist/lib/super-admin-protection.js +6 -9
- package/dist/lib/super-admin-protection.js.map +1 -1
- package/dist/lib/system-config-catalog.d.ts +268 -0
- package/dist/lib/system-config-catalog.d.ts.map +1 -0
- package/dist/lib/system-config-catalog.js +90 -0
- package/dist/lib/system-config-catalog.js.map +1 -0
- package/dist/lib/system-config.d.ts +30 -33
- package/dist/lib/system-config.d.ts.map +1 -1
- package/dist/lib/system-config.js +78 -93
- package/dist/lib/system-config.js.map +1 -1
- package/dist/lib/with-timeout.d.ts +32 -0
- package/dist/lib/with-timeout.d.ts.map +1 -0
- package/dist/lib/with-timeout.js +45 -0
- package/dist/lib/with-timeout.js.map +1 -0
- package/dist/middleware/admin-auth.d.ts +6 -5
- package/dist/middleware/admin-auth.d.ts.map +1 -1
- package/dist/middleware/admin-auth.js +30 -20
- package/dist/middleware/admin-auth.js.map +1 -1
- package/dist/middleware/admin-cors.d.ts +3 -3
- package/dist/middleware/admin-cors.js +3 -3
- package/dist/middleware/admin-mutation-audit.d.ts +3 -2
- package/dist/middleware/admin-mutation-audit.d.ts.map +1 -1
- package/dist/middleware/admin-mutation-audit.js +12 -5
- package/dist/middleware/admin-mutation-audit.js.map +1 -1
- package/dist/middleware/admin-rate-limiter.d.ts +7 -8
- package/dist/middleware/admin-rate-limiter.d.ts.map +1 -1
- package/dist/middleware/admin-rate-limiter.js +7 -8
- package/dist/middleware/admin-rate-limiter.js.map +1 -1
- package/dist/middleware/client-secret-hash.d.ts +10 -29
- package/dist/middleware/client-secret-hash.d.ts.map +1 -1
- package/dist/middleware/client-secret-hash.js +161 -59
- package/dist/middleware/client-secret-hash.js.map +1 -1
- package/dist/middleware/health.d.ts +17 -0
- package/dist/middleware/health.d.ts.map +1 -1
- package/dist/middleware/health.js +25 -21
- package/dist/middleware/health.js.map +1 -1
- package/dist/middleware/ready.d.ts.map +1 -1
- package/dist/middleware/ready.js +1 -12
- package/dist/middleware/ready.js.map +1 -1
- package/dist/middleware/require-existing-organization.d.ts +18 -0
- package/dist/middleware/require-existing-organization.d.ts.map +1 -0
- package/dist/middleware/require-existing-organization.js +38 -0
- package/dist/middleware/require-existing-organization.js.map +1 -0
- package/dist/middleware/require-permission.d.ts.map +1 -1
- package/dist/middleware/require-permission.js +35 -1
- package/dist/middleware/require-permission.js.map +1 -1
- package/dist/middleware/require-user-organization.d.ts.map +1 -1
- package/dist/middleware/require-user-organization.js +4 -2
- package/dist/middleware/require-user-organization.js.map +1 -1
- package/dist/middleware/security-headers.d.ts +18 -0
- package/dist/middleware/security-headers.d.ts.map +1 -1
- package/dist/middleware/security-headers.js +32 -1
- package/dist/middleware/security-headers.js.map +1 -1
- package/dist/middleware/tenant-resolver.d.ts +1 -2
- package/dist/middleware/tenant-resolver.d.ts.map +1 -1
- package/dist/middleware/tenant-resolver.js +1 -5
- package/dist/middleware/tenant-resolver.js.map +1 -1
- package/dist/middleware/token-rate-limiter.d.ts +37 -16
- package/dist/middleware/token-rate-limiter.d.ts.map +1 -1
- package/dist/middleware/token-rate-limiter.js +126 -54
- package/dist/middleware/token-rate-limiter.js.map +1 -1
- package/dist/oidc/account-finder.d.ts +5 -5
- package/dist/oidc/account-finder.d.ts.map +1 -1
- package/dist/oidc/account-finder.js +31 -23
- package/dist/oidc/account-finder.js.map +1 -1
- package/dist/oidc/adapter-factory.d.ts.map +1 -1
- package/dist/oidc/adapter-factory.js +83 -3
- package/dist/oidc/adapter-factory.js.map +1 -1
- package/dist/oidc/configuration.d.ts +3 -8
- package/dist/oidc/configuration.d.ts.map +1 -1
- package/dist/oidc/configuration.js +64 -50
- package/dist/oidc/configuration.js.map +1 -1
- package/dist/oidc/provider.d.ts.map +1 -1
- package/dist/oidc/provider.js +7 -0
- package/dist/oidc/provider.js.map +1 -1
- package/dist/oidc/redis-adapter.d.ts +2 -3
- package/dist/oidc/redis-adapter.d.ts.map +1 -1
- package/dist/oidc/redis-adapter.js +54 -46
- package/dist/oidc/redis-adapter.js.map +1 -1
- package/dist/organizations/branding-url.d.ts +17 -0
- package/dist/organizations/branding-url.d.ts.map +1 -0
- package/dist/organizations/branding-url.js +38 -0
- package/dist/organizations/branding-url.js.map +1 -0
- package/dist/organizations/index.d.ts +2 -2
- package/dist/organizations/index.d.ts.map +1 -1
- package/dist/organizations/index.js +1 -1
- package/dist/organizations/index.js.map +1 -1
- package/dist/organizations/repository.d.ts +22 -32
- package/dist/organizations/repository.d.ts.map +1 -1
- package/dist/organizations/repository.js +64 -45
- package/dist/organizations/repository.js.map +1 -1
- package/dist/organizations/service.d.ts +14 -46
- package/dist/organizations/service.d.ts.map +1 -1
- package/dist/organizations/service.js +60 -112
- package/dist/organizations/service.js.map +1 -1
- package/dist/organizations/types.d.ts +1 -15
- package/dist/organizations/types.d.ts.map +1 -1
- package/dist/organizations/validators.d.ts +41 -0
- package/dist/organizations/validators.d.ts.map +1 -0
- package/dist/organizations/validators.js +48 -0
- package/dist/organizations/validators.js.map +1 -0
- package/dist/portability/apply.d.ts +15 -0
- package/dist/portability/apply.d.ts.map +1 -0
- package/dist/portability/apply.js +274 -0
- package/dist/portability/apply.js.map +1 -0
- package/dist/portability/authorization.d.ts +30 -0
- package/dist/portability/authorization.d.ts.map +1 -0
- package/dist/portability/authorization.js +130 -0
- package/dist/portability/authorization.js.map +1 -0
- package/dist/portability/cleanup.d.ts +29 -0
- package/dist/portability/cleanup.d.ts.map +1 -0
- package/dist/portability/cleanup.js +167 -0
- package/dist/portability/cleanup.js.map +1 -0
- package/dist/portability/export.d.ts +18 -0
- package/dist/portability/export.d.ts.map +1 -0
- package/dist/portability/export.js +125 -0
- package/dist/portability/export.js.map +1 -0
- package/dist/portability/import-repository.d.ts +204 -0
- package/dist/portability/import-repository.d.ts.map +1 -0
- package/dist/portability/import-repository.js +347 -0
- package/dist/portability/import-repository.js.map +1 -0
- package/dist/portability/import-user-client-writers.d.ts +40 -0
- package/dist/portability/import-user-client-writers.d.ts.map +1 -0
- package/dist/portability/import-user-client-writers.js +168 -0
- package/dist/portability/import-user-client-writers.js.map +1 -0
- package/dist/portability/index.d.ts +8 -0
- package/dist/portability/index.d.ts.map +1 -0
- package/dist/portability/index.js +8 -0
- package/dist/portability/index.js.map +1 -0
- package/dist/portability/plan-support.d.ts +137 -0
- package/dist/portability/plan-support.d.ts.map +1 -0
- package/dist/portability/plan-support.js +336 -0
- package/dist/portability/plan-support.js.map +1 -0
- package/dist/portability/plan.d.ts +34 -0
- package/dist/portability/plan.d.ts.map +1 -0
- package/dist/portability/plan.js +450 -0
- package/dist/portability/plan.js.map +1 -0
- package/dist/portability/repository.d.ts +95 -0
- package/dist/portability/repository.d.ts.map +1 -0
- package/dist/portability/repository.js +388 -0
- package/dist/portability/repository.js.map +1 -0
- package/dist/portability/schema.d.ts +589 -0
- package/dist/portability/schema.d.ts.map +1 -0
- package/dist/portability/schema.js +458 -0
- package/dist/portability/schema.js.map +1 -0
- package/dist/portability/types.d.ts +381 -0
- package/dist/portability/types.d.ts.map +1 -0
- package/dist/portability/types.js +19 -0
- package/dist/portability/types.js.map +1 -0
- package/dist/rbac/errors.d.ts +4 -0
- package/dist/rbac/errors.d.ts.map +1 -1
- package/dist/rbac/errors.js +7 -0
- package/dist/rbac/errors.js.map +1 -1
- package/dist/rbac/index.d.ts +3 -3
- package/dist/rbac/index.d.ts.map +1 -1
- package/dist/rbac/index.js +3 -3
- package/dist/rbac/index.js.map +1 -1
- package/dist/rbac/mapping-repository.d.ts +84 -9
- package/dist/rbac/mapping-repository.d.ts.map +1 -1
- package/dist/rbac/mapping-repository.js +222 -55
- package/dist/rbac/mapping-repository.js.map +1 -1
- package/dist/rbac/permission-repository.d.ts +36 -19
- package/dist/rbac/permission-repository.d.ts.map +1 -1
- package/dist/rbac/permission-repository.js +93 -35
- package/dist/rbac/permission-repository.js.map +1 -1
- package/dist/rbac/permission-service.d.ts +18 -19
- package/dist/rbac/permission-service.d.ts.map +1 -1
- package/dist/rbac/permission-service.js +100 -57
- package/dist/rbac/permission-service.js.map +1 -1
- package/dist/rbac/role-repository.d.ts +29 -24
- package/dist/rbac/role-repository.d.ts.map +1 -1
- package/dist/rbac/role-repository.js +66 -43
- package/dist/rbac/role-repository.js.map +1 -1
- package/dist/rbac/role-service.d.ts +35 -32
- package/dist/rbac/role-service.d.ts.map +1 -1
- package/dist/rbac/role-service.js +210 -96
- package/dist/rbac/role-service.js.map +1 -1
- package/dist/rbac/slugs.d.ts +16 -27
- package/dist/rbac/slugs.d.ts.map +1 -1
- package/dist/rbac/slugs.js +36 -59
- package/dist/rbac/slugs.js.map +1 -1
- package/dist/rbac/types.d.ts +2 -4
- package/dist/rbac/types.d.ts.map +1 -1
- package/dist/rbac/types.js.map +1 -1
- package/dist/rbac/user-role-service.d.ts +23 -24
- package/dist/rbac/user-role-service.d.ts.map +1 -1
- package/dist/rbac/user-role-service.js +117 -61
- package/dist/rbac/user-role-service.js.map +1 -1
- package/dist/routes/applications.d.ts +4 -2
- package/dist/routes/applications.d.ts.map +1 -1
- package/dist/routes/applications.js +57 -19
- package/dist/routes/applications.js.map +1 -1
- package/dist/routes/audit.js +1 -1
- package/dist/routes/audit.js.map +1 -1
- package/dist/routes/branding.d.ts +3 -3
- package/dist/routes/branding.d.ts.map +1 -1
- package/dist/routes/branding.js +44 -16
- package/dist/routes/branding.js.map +1 -1
- package/dist/routes/bulk.d.ts +0 -5
- package/dist/routes/bulk.d.ts.map +1 -1
- package/dist/routes/bulk.js +3 -5
- package/dist/routes/bulk.js.map +1 -1
- package/dist/routes/clients.d.ts +4 -4
- package/dist/routes/clients.d.ts.map +1 -1
- package/dist/routes/clients.js +111 -52
- package/dist/routes/clients.js.map +1 -1
- package/dist/routes/config.d.ts +17 -12
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/config.js +165 -64
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/custom-claims.d.ts.map +1 -1
- package/dist/routes/custom-claims.js +8 -2
- package/dist/routes/custom-claims.js.map +1 -1
- package/dist/routes/exports.d.ts +2 -1
- package/dist/routes/exports.d.ts.map +1 -1
- package/dist/routes/exports.js +57 -1
- package/dist/routes/exports.js.map +1 -1
- package/dist/routes/imports.d.ts +2 -2
- package/dist/routes/imports.d.ts.map +1 -1
- package/dist/routes/imports.js +95 -40
- package/dist/routes/imports.js.map +1 -1
- package/dist/routes/interactions.d.ts.map +1 -1
- package/dist/routes/interactions.js +16 -34
- package/dist/routes/interactions.js.map +1 -1
- package/dist/routes/invitation.d.ts.map +1 -1
- package/dist/routes/invitation.js +10 -23
- package/dist/routes/invitation.js.map +1 -1
- package/dist/routes/keys.d.ts.map +1 -1
- package/dist/routes/keys.js +26 -13
- package/dist/routes/keys.js.map +1 -1
- package/dist/routes/magic-link.d.ts.map +1 -1
- package/dist/routes/magic-link.js +5 -17
- package/dist/routes/magic-link.js.map +1 -1
- package/dist/routes/organizations.d.ts +1 -2
- package/dist/routes/organizations.d.ts.map +1 -1
- package/dist/routes/organizations.js +43 -104
- package/dist/routes/organizations.js.map +1 -1
- package/dist/routes/password-reset.d.ts.map +1 -1
- package/dist/routes/password-reset.js +13 -35
- package/dist/routes/password-reset.js.map +1 -1
- package/dist/routes/permissions.d.ts +1 -1
- package/dist/routes/permissions.d.ts.map +1 -1
- package/dist/routes/permissions.js +58 -17
- package/dist/routes/permissions.js.map +1 -1
- package/dist/routes/public-branding.d.ts +16 -0
- package/dist/routes/public-branding.d.ts.map +1 -0
- package/dist/routes/public-branding.js +52 -0
- package/dist/routes/public-branding.js.map +1 -0
- package/dist/routes/roles.d.ts +1 -1
- package/dist/routes/roles.d.ts.map +1 -1
- package/dist/routes/roles.js +63 -21
- package/dist/routes/roles.js.map +1 -1
- package/dist/routes/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +23 -12
- package/dist/routes/sessions.js.map +1 -1
- package/dist/routes/two-factor.d.ts.map +1 -1
- package/dist/routes/two-factor.js +91 -38
- package/dist/routes/two-factor.js.map +1 -1
- package/dist/routes/user-roles.d.ts.map +1 -1
- package/dist/routes/user-roles.js +56 -9
- package/dist/routes/user-roles.js.map +1 -1
- package/dist/routes/users.d.ts +4 -8
- package/dist/routes/users.d.ts.map +1 -1
- package/dist/routes/users.js +108 -265
- package/dist/routes/users.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +53 -37
- package/dist/server.js.map +1 -1
- package/dist/two-factor/errors.d.ts +9 -0
- package/dist/two-factor/errors.d.ts.map +1 -1
- package/dist/two-factor/errors.js +12 -0
- package/dist/two-factor/errors.js.map +1 -1
- package/dist/two-factor/index.d.ts +5 -4
- package/dist/two-factor/index.d.ts.map +1 -1
- package/dist/two-factor/index.js +4 -4
- package/dist/two-factor/index.js.map +1 -1
- package/dist/two-factor/repository.d.ts +17 -6
- package/dist/two-factor/repository.d.ts.map +1 -1
- package/dist/two-factor/repository.js +37 -9
- package/dist/two-factor/repository.js.map +1 -1
- package/dist/two-factor/service.d.ts.map +1 -1
- package/dist/two-factor/service.js +26 -19
- package/dist/two-factor/service.js.map +1 -1
- package/dist/two-factor/totp.d.ts +13 -2
- package/dist/two-factor/totp.d.ts.map +1 -1
- package/dist/two-factor/totp.js +20 -7
- package/dist/two-factor/totp.js.map +1 -1
- package/dist/two-factor/types.d.ts +3 -0
- package/dist/two-factor/types.d.ts.map +1 -1
- package/dist/two-factor/types.js +5 -0
- package/dist/two-factor/types.js.map +1 -1
- package/dist/users/gdpr.d.ts +2 -40
- package/dist/users/gdpr.d.ts.map +1 -1
- package/dist/users/gdpr.js +3 -110
- package/dist/users/gdpr.js.map +1 -1
- package/dist/users/index.d.ts +5 -4
- package/dist/users/index.d.ts.map +1 -1
- package/dist/users/index.js +5 -4
- package/dist/users/index.js.map +1 -1
- package/dist/users/repository.d.ts +49 -3
- package/dist/users/repository.d.ts.map +1 -1
- package/dist/users/repository.js +169 -18
- package/dist/users/repository.js.map +1 -1
- package/dist/users/service.d.ts +19 -51
- package/dist/users/service.d.ts.map +1 -1
- package/dist/users/service.js +72 -122
- package/dist/users/service.js.map +1 -1
- package/dist/users/types.d.ts +4 -5
- package/dist/users/types.d.ts.map +1 -1
- package/dist/users/types.js.map +1 -1
- package/dist/users/validators.d.ts +28 -0
- package/dist/users/validators.d.ts.map +1 -0
- package/dist/users/validators.js +25 -0
- package/dist/users/validators.js.map +1 -0
- package/locales/default/en/errors.json +2 -1
- package/migrations/024_application_client_correction.sql +39 -0
- package/migrations/025_record_deletion_lifecycle.sql +26 -0
- package/migrations/026_simplify_user_lifecycle.sql +33 -0
- package/migrations/027_branding_asset_size_limits.sql +19 -0
- package/migrations/028_totp_replay_protection.sql +17 -0
- package/migrations/029_public_session_identifiers.sql +16 -0
- package/migrations/030_global_configuration_catalog.sql +39 -0
- package/migrations/031_monotonic_updated_at.sql +28 -0
- package/package.json +2 -2
- package/dist/lib/data-import-plan.d.ts +0 -50
- package/dist/lib/data-import-plan.d.ts.map +0 -1
- package/dist/lib/data-import-plan.js +0 -235
- package/dist/lib/data-import-plan.js.map +0 -1
- package/dist/lib/data-import.d.ts +0 -276
- package/dist/lib/data-import.d.ts.map +0 -1
- package/dist/lib/data-import.js +0 -1694
- package/dist/lib/data-import.js.map +0 -1
|
@@ -14,18 +14,20 @@
|
|
|
14
14
|
* Status lifecycle rules (different from organizations):
|
|
15
15
|
* - deactivate: active → inactive
|
|
16
16
|
* - activate: inactive → active
|
|
17
|
-
* - archive: active|inactive → archived (permanent, cannot be restored)
|
|
18
17
|
*
|
|
19
18
|
* Module management:
|
|
20
19
|
* - Modules belong to an application (parent must exist)
|
|
21
20
|
* - Module slugs are unique within their parent application
|
|
22
|
-
* -
|
|
21
|
+
* - Modules can move between active and inactive status
|
|
23
22
|
*/
|
|
24
|
-
import { insertApplication, findApplicationById, findApplicationBySlug, updateApplication as repoUpdateApp, listApplications as repoListApps, listApplicationsCursor as repoListAppsCursor, slugExists, insertModule, findModuleById, updateModule as repoUpdateModule, listModules as repoListModules, moduleSlugExists, } from './repository.js';
|
|
23
|
+
import { insertApplication, findApplicationById, findApplicationBySlug, updateApplication as repoUpdateApp, listApplications as repoListApps, listApplicationsCursor as repoListAppsCursor, slugExists, insertModule, findModuleById, updateModule as repoUpdateModule, listModules as repoListModules, moduleSlugExists, captureApplicationForDeletion, deleteCapturedApplication, captureModuleForDeletion, deleteCapturedModule, } from './repository.js';
|
|
25
24
|
import { getCachedApplicationById, getCachedApplicationBySlug, cacheApplication, invalidateApplicationCache, } from './cache.js';
|
|
26
25
|
import { generateSlug, validateSlug } from './slugs.js';
|
|
27
26
|
import { writeAuditLog } from '../lib/audit-log.js';
|
|
28
27
|
import { ApplicationNotFoundError, ApplicationValidationError } from './errors.js';
|
|
28
|
+
import { getDatabaseTransactionClient } from '../lib/database.js';
|
|
29
|
+
import { writeAuditLogInTransaction } from '../lib/audit-log.js';
|
|
30
|
+
import { registerDeletionCleanup } from '../lib/deletion-cleanup.js';
|
|
29
31
|
// ===========================================================================
|
|
30
32
|
// Application CRUD
|
|
31
33
|
// ===========================================================================
|
|
@@ -239,31 +241,6 @@ export async function activateApplication(id, actorId) {
|
|
|
239
241
|
metadata: { applicationId: app.id },
|
|
240
242
|
});
|
|
241
243
|
}
|
|
242
|
-
/**
|
|
243
|
-
* Archive an application (active or inactive → archived).
|
|
244
|
-
*
|
|
245
|
-
* Archive is a permanent soft-delete — archived applications cannot
|
|
246
|
-
* be restored (unlike organizations which support restore).
|
|
247
|
-
*
|
|
248
|
-
* @param id - Application UUID
|
|
249
|
-
* @param actorId - UUID of the user performing the action
|
|
250
|
-
* @throws ApplicationNotFoundError if not found
|
|
251
|
-
* @throws ApplicationValidationError if already archived
|
|
252
|
-
*/
|
|
253
|
-
export async function archiveApplication(id, actorId) {
|
|
254
|
-
const app = await loadAppForStatusChange(id);
|
|
255
|
-
if (app.status === 'archived') {
|
|
256
|
-
throw new ApplicationValidationError('Application is already archived');
|
|
257
|
-
}
|
|
258
|
-
await repoUpdateApp(id, { status: 'archived' });
|
|
259
|
-
await invalidateApplicationCache(app.slug, app.id);
|
|
260
|
-
await writeAuditLog({
|
|
261
|
-
eventType: 'app.archived',
|
|
262
|
-
eventCategory: 'admin',
|
|
263
|
-
actorId,
|
|
264
|
-
metadata: { applicationId: app.id, previousStatus: app.status },
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
244
|
// ===========================================================================
|
|
268
245
|
// Module management
|
|
269
246
|
// ===========================================================================
|
|
@@ -320,13 +297,18 @@ export async function createModule(applicationId, input, actorId) {
|
|
|
320
297
|
/**
|
|
321
298
|
* Update a module's basic fields (name, description).
|
|
322
299
|
*
|
|
300
|
+
* @param applicationId - Authoritative parent application UUID
|
|
323
301
|
* @param moduleId - Module UUID
|
|
324
302
|
* @param input - Fields to update
|
|
325
303
|
* @param actorId - UUID of the user performing the action
|
|
326
304
|
* @returns Updated module
|
|
327
305
|
* @throws ApplicationNotFoundError if module not found
|
|
328
306
|
*/
|
|
329
|
-
export async function updateModule(moduleId, input, actorId) {
|
|
307
|
+
export async function updateModule(applicationId, moduleId, input, actorId) {
|
|
308
|
+
const ownedModule = await findModuleById(applicationId, moduleId);
|
|
309
|
+
if (!ownedModule || ownedModule.applicationId !== applicationId) {
|
|
310
|
+
throw new ApplicationNotFoundError(moduleId);
|
|
311
|
+
}
|
|
330
312
|
// Build update data from input
|
|
331
313
|
const updateData = {};
|
|
332
314
|
if (input.name !== undefined)
|
|
@@ -335,7 +317,7 @@ export async function updateModule(moduleId, input, actorId) {
|
|
|
335
317
|
updateData.description = input.description;
|
|
336
318
|
let mod;
|
|
337
319
|
try {
|
|
338
|
-
mod = await repoUpdateModule(moduleId, updateData);
|
|
320
|
+
mod = await repoUpdateModule(applicationId, moduleId, updateData);
|
|
339
321
|
}
|
|
340
322
|
catch (err) {
|
|
341
323
|
if (err instanceof Error && err.message === 'Module not found') {
|
|
@@ -348,26 +330,32 @@ export async function updateModule(moduleId, input, actorId) {
|
|
|
348
330
|
eventType: 'app.module.updated',
|
|
349
331
|
eventCategory: 'admin',
|
|
350
332
|
actorId,
|
|
351
|
-
metadata: {
|
|
333
|
+
metadata: {
|
|
334
|
+
moduleId: mod.id,
|
|
335
|
+
applicationId: mod.applicationId,
|
|
336
|
+
fields: Object.keys(updateData),
|
|
337
|
+
},
|
|
352
338
|
});
|
|
353
339
|
return mod;
|
|
354
340
|
}
|
|
355
341
|
/**
|
|
356
342
|
* Deactivate a module (set status to inactive).
|
|
357
343
|
*
|
|
344
|
+
* @param applicationId - Authoritative parent application UUID
|
|
358
345
|
* @param moduleId - Module UUID
|
|
359
346
|
* @param actorId - UUID of the user performing the action
|
|
360
347
|
* @throws ApplicationNotFoundError if module not found
|
|
361
348
|
* @throws ApplicationValidationError if not currently active
|
|
362
349
|
*/
|
|
363
|
-
export async function deactivateModule(moduleId, actorId) {
|
|
364
|
-
const mod = await findModuleById(moduleId);
|
|
365
|
-
if (!mod)
|
|
350
|
+
export async function deactivateModule(applicationId, moduleId, actorId) {
|
|
351
|
+
const mod = await findModuleById(applicationId, moduleId);
|
|
352
|
+
if (!mod || mod.applicationId !== applicationId) {
|
|
366
353
|
throw new ApplicationNotFoundError(moduleId);
|
|
354
|
+
}
|
|
367
355
|
if (mod.status !== 'active') {
|
|
368
356
|
throw new ApplicationValidationError(`Cannot deactivate module from status: ${mod.status}`);
|
|
369
357
|
}
|
|
370
|
-
await repoUpdateModule(moduleId, { status: 'inactive' });
|
|
358
|
+
await repoUpdateModule(applicationId, moduleId, { status: 'inactive' });
|
|
371
359
|
await writeAuditLog({
|
|
372
360
|
eventType: 'app.module.deactivated',
|
|
373
361
|
eventCategory: 'admin',
|
|
@@ -375,6 +363,31 @@ export async function deactivateModule(moduleId, actorId) {
|
|
|
375
363
|
metadata: { moduleId: mod.id, applicationId: mod.applicationId },
|
|
376
364
|
});
|
|
377
365
|
}
|
|
366
|
+
/**
|
|
367
|
+
* Activate an inactive module.
|
|
368
|
+
*
|
|
369
|
+
* @param applicationId - Authoritative parent application UUID
|
|
370
|
+
* @param moduleId - Module UUID
|
|
371
|
+
* @param actorId - UUID of the user performing the action
|
|
372
|
+
* @throws ApplicationNotFoundError if the module is not owned by the application
|
|
373
|
+
* @throws ApplicationValidationError if the module is not inactive
|
|
374
|
+
*/
|
|
375
|
+
export async function activateModule(applicationId, moduleId, actorId) {
|
|
376
|
+
const mod = await findModuleById(applicationId, moduleId);
|
|
377
|
+
if (!mod || mod.applicationId !== applicationId) {
|
|
378
|
+
throw new ApplicationNotFoundError(moduleId);
|
|
379
|
+
}
|
|
380
|
+
if (mod.status !== 'inactive') {
|
|
381
|
+
throw new ApplicationValidationError(`Cannot activate module from status: ${mod.status}`);
|
|
382
|
+
}
|
|
383
|
+
await repoUpdateModule(applicationId, moduleId, { status: 'active' });
|
|
384
|
+
await writeAuditLog({
|
|
385
|
+
eventType: 'app.module.activated',
|
|
386
|
+
eventCategory: 'admin',
|
|
387
|
+
actorId,
|
|
388
|
+
metadata: { moduleId: mod.id, applicationId: mod.applicationId },
|
|
389
|
+
});
|
|
390
|
+
}
|
|
378
391
|
/**
|
|
379
392
|
* List all modules for an application.
|
|
380
393
|
* Delegates directly to the repository.
|
|
@@ -385,4 +398,100 @@ export async function deactivateModule(moduleId, actorId) {
|
|
|
385
398
|
export async function listModules(applicationId) {
|
|
386
399
|
return repoListModules(applicationId);
|
|
387
400
|
}
|
|
401
|
+
/**
|
|
402
|
+
* Physically delete an application after capturing cross-organization authority.
|
|
403
|
+
*
|
|
404
|
+
* @param id - Application UUID.
|
|
405
|
+
* @param actorId - Actor identifier available for audit attribution.
|
|
406
|
+
* @returns The graph captured before PostgreSQL applied its cascade.
|
|
407
|
+
* @throws ApplicationNotFoundError when the application does not exist.
|
|
408
|
+
*/
|
|
409
|
+
export async function deleteApplication(id, actorId) {
|
|
410
|
+
const client = getDatabaseTransactionClient();
|
|
411
|
+
if (!client)
|
|
412
|
+
throw new Error('Application deletion requires an active database transaction');
|
|
413
|
+
const capture = await captureApplicationForDeletion(id);
|
|
414
|
+
if (!capture)
|
|
415
|
+
throw new ApplicationNotFoundError(id);
|
|
416
|
+
await client.query(`UPDATE admin_sessions SET revoked_at = NOW()
|
|
417
|
+
WHERE user_id = ANY($1::uuid[]) AND revoked_at IS NULL`, [capture.userIds]);
|
|
418
|
+
await client.query(`DELETE FROM oidc_payloads
|
|
419
|
+
WHERE id = ANY($1::varchar[]) OR grant_id = ANY($1::varchar[])
|
|
420
|
+
OR payload->>'clientId' = ANY($2::text[])
|
|
421
|
+
OR payload->>'accountId' = ANY($3::text[])`, [capture.grantIds, capture.publicClientIds, capture.userIds]);
|
|
422
|
+
await writeAuditLogInTransaction(client, {
|
|
423
|
+
actorId,
|
|
424
|
+
eventType: 'app.deleted',
|
|
425
|
+
eventCategory: 'admin',
|
|
426
|
+
metadata: {
|
|
427
|
+
applicationId: capture.application.id,
|
|
428
|
+
slug: capture.application.slug,
|
|
429
|
+
status: capture.application.status,
|
|
430
|
+
},
|
|
431
|
+
});
|
|
432
|
+
await deleteCapturedApplication(id);
|
|
433
|
+
await registerDeletionCleanup({
|
|
434
|
+
resource: 'application',
|
|
435
|
+
targetId: id,
|
|
436
|
+
targetSlug: capture.application.slug,
|
|
437
|
+
userIds: capture.userIds,
|
|
438
|
+
clientIds: capture.clientIds,
|
|
439
|
+
publicClientIds: capture.publicClientIds,
|
|
440
|
+
grantIds: capture.grantIds,
|
|
441
|
+
roleIds: capture.roleIds,
|
|
442
|
+
permissionIds: capture.permissionIds,
|
|
443
|
+
claimIds: capture.claimIds,
|
|
444
|
+
applicationIds: [id],
|
|
445
|
+
});
|
|
446
|
+
return capture;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Physically delete a module through its authoritative application parent.
|
|
450
|
+
*
|
|
451
|
+
* @param applicationId - Parent application UUID.
|
|
452
|
+
* @param moduleId - Module UUID.
|
|
453
|
+
* @param actorId - Actor identifier available for audit attribution.
|
|
454
|
+
* @returns The graph captured before PostgreSQL applied its cascade.
|
|
455
|
+
* @throws ApplicationNotFoundError for a missing or mismatched module.
|
|
456
|
+
*/
|
|
457
|
+
export async function deleteModule(applicationId, moduleId, actorId) {
|
|
458
|
+
const client = getDatabaseTransactionClient();
|
|
459
|
+
if (!client)
|
|
460
|
+
throw new Error('Module deletion requires an active database transaction');
|
|
461
|
+
const capture = await captureModuleForDeletion(applicationId, moduleId);
|
|
462
|
+
if (!capture)
|
|
463
|
+
throw new ApplicationNotFoundError(moduleId);
|
|
464
|
+
await client.query(`UPDATE admin_sessions SET revoked_at = NOW()
|
|
465
|
+
WHERE user_id = ANY($1::uuid[]) AND revoked_at IS NULL`, [capture.userIds]);
|
|
466
|
+
await client.query(`DELETE FROM oidc_payloads
|
|
467
|
+
WHERE id = ANY($1::varchar[]) OR grant_id = ANY($1::varchar[])
|
|
468
|
+
OR payload->>'accountId' = ANY($2::text[])`, [capture.grantIds, capture.userIds]);
|
|
469
|
+
await writeAuditLogInTransaction(client, {
|
|
470
|
+
actorId,
|
|
471
|
+
eventType: 'app.module.deleted',
|
|
472
|
+
eventCategory: 'admin',
|
|
473
|
+
metadata: {
|
|
474
|
+
applicationId,
|
|
475
|
+
moduleId,
|
|
476
|
+
slug: capture.module.slug,
|
|
477
|
+
status: capture.module.status,
|
|
478
|
+
},
|
|
479
|
+
});
|
|
480
|
+
await deleteCapturedModule(applicationId, moduleId);
|
|
481
|
+
await registerDeletionCleanup({
|
|
482
|
+
resource: 'module',
|
|
483
|
+
targetId: moduleId,
|
|
484
|
+
targetSlug: capture.module.slug,
|
|
485
|
+
parentId: applicationId,
|
|
486
|
+
userIds: capture.userIds,
|
|
487
|
+
clientIds: [],
|
|
488
|
+
publicClientIds: [],
|
|
489
|
+
grantIds: capture.grantIds,
|
|
490
|
+
roleIds: capture.roleIds,
|
|
491
|
+
permissionIds: capture.permissionIds,
|
|
492
|
+
claimIds: [],
|
|
493
|
+
applicationIds: [applicationId],
|
|
494
|
+
});
|
|
495
|
+
return capture;
|
|
496
|
+
}
|
|
388
497
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/applications/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/applications/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
export type { PaginatedResult } from '../organizations/types.js';
|
|
18
18
|
/** Application status values — matches the DB CHECK constraint */
|
|
19
|
-
export type ApplicationStatus = 'active' | 'inactive'
|
|
19
|
+
export type ApplicationStatus = 'active' | 'inactive';
|
|
20
20
|
/** Module status values — matches the DB CHECK constraint */
|
|
21
21
|
export type ModuleStatus = 'active' | 'inactive';
|
|
22
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/applications/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAMjE,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/applications/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Shared application and module field validators. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/** Application and module display names are required and database bounded. */
|
|
4
|
+
export declare const applicationNameSchema: z.ZodString;
|
|
5
|
+
/** Application and module slugs use the domain's URL-safe rules. */
|
|
6
|
+
export declare const applicationSlugSchema: z.ZodString;
|
|
7
|
+
/** Application and module descriptions use the existing Admin API text limit. */
|
|
8
|
+
export declare const applicationDescriptionSchema: z.ZodString;
|
|
9
|
+
/** Application and module lifecycle states persisted by the domain. */
|
|
10
|
+
export declare const applicationStatusSchema: z.ZodEnum<{
|
|
11
|
+
active: "active";
|
|
12
|
+
inactive: "inactive";
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/applications/validators.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,aAA6B,CAAC;AAEhE,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,aAE8C,CAAC;AAEjF,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,aAAwB,CAAC;AAElE,uEAAuE;AACvE,eAAO,MAAM,uBAAuB;;;EAAiC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Shared application and module field validators. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { validateSlug } from './slugs.js';
|
|
4
|
+
/** Application and module display names are required and database bounded. */
|
|
5
|
+
export const applicationNameSchema = z.string().min(1).max(255);
|
|
6
|
+
/** Application and module slugs use the domain's URL-safe rules. */
|
|
7
|
+
export const applicationSlugSchema = z
|
|
8
|
+
.string()
|
|
9
|
+
.refine((value) => validateSlug(value).isValid, 'Application slug is invalid');
|
|
10
|
+
/** Application and module descriptions use the existing Admin API text limit. */
|
|
11
|
+
export const applicationDescriptionSchema = z.string().max(2_000);
|
|
12
|
+
/** Application and module lifecycle states persisted by the domain. */
|
|
13
|
+
export const applicationStatusSchema = z.enum(['active', 'inactive']);
|
|
14
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/applications/validators.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEhE,oEAAoE;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;AAEjF,iFAAiF;AACjF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAElE,uEAAuE;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the presentation-only organization branding used by authentication pages and emails.
|
|
3
|
+
*
|
|
4
|
+
* Uploaded assets take precedence over configured external URLs. Optional branding must never
|
|
5
|
+
* make authentication unavailable, so metadata lookup failures fall back without retrying.
|
|
6
|
+
*/
|
|
7
|
+
import type { Organization } from '../organizations/types.js';
|
|
8
|
+
/** Default accent color used when an organization has not configured one. */
|
|
9
|
+
export declare const DEFAULT_BRANDING_PRIMARY_COLOR = "#3B82F6";
|
|
10
|
+
/** Branding values safe for direct use by page and email templates. */
|
|
11
|
+
export interface EffectiveBranding {
|
|
12
|
+
/** Name displayed by authentication templates. */
|
|
13
|
+
readonly companyName: string;
|
|
14
|
+
/** CSS accent color used by authentication templates. */
|
|
15
|
+
readonly primaryColor: string;
|
|
16
|
+
/** Effective uploaded or configured logo URL. */
|
|
17
|
+
readonly logoUrl: string | null;
|
|
18
|
+
/** Effective uploaded or configured favicon URL. */
|
|
19
|
+
readonly faviconUrl: string | null;
|
|
20
|
+
/** Existing optional CSS customization retained for template compatibility. */
|
|
21
|
+
readonly customCss: string | null;
|
|
22
|
+
/** Unique CSP image sources required by the effective image URLs. */
|
|
23
|
+
readonly imageSources: readonly string[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Resolve uploaded, configured, and default organization branding in precedence order.
|
|
27
|
+
*
|
|
28
|
+
* Database failures are deliberately non-fatal because branding is optional decoration. The
|
|
29
|
+
* diagnostic excludes organization fields, configured URLs, stored data, and raw error details.
|
|
30
|
+
*
|
|
31
|
+
* @param organization - Organization whose presentation values are required.
|
|
32
|
+
* @returns Effective template fields and their validated CSP image sources.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveEffectiveBranding(organization: Organization): Promise<EffectiveBranding>;
|
|
35
|
+
//# sourceMappingURL=effective-branding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective-branding.d.ts","sourceRoot":"","sources":["../../src/auth/effective-branding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,6EAA6E;AAC7E,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAExD,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAkCD;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,iBAAiB,CAAC,CA+B5B"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the presentation-only organization branding used by authentication pages and emails.
|
|
3
|
+
*
|
|
4
|
+
* Uploaded assets take precedence over configured external URLs. Optional branding must never
|
|
5
|
+
* make authentication unavailable, so metadata lookup failures fall back without retrying.
|
|
6
|
+
*/
|
|
7
|
+
import { config } from '../config/index.js';
|
|
8
|
+
import { listAssets } from '../lib/branding-assets.js';
|
|
9
|
+
import { logger } from '../lib/logger.js';
|
|
10
|
+
import { validateBrandingImageUrl } from '../organizations/branding-url.js';
|
|
11
|
+
/** Default accent color used when an organization has not configured one. */
|
|
12
|
+
export const DEFAULT_BRANDING_PRIMARY_COLOR = '#3B82F6';
|
|
13
|
+
/** Return whether metadata contains one exact uploaded asset slot. */
|
|
14
|
+
function hasAsset(assets, type) {
|
|
15
|
+
return assets.some((asset) => asset.assetType === type);
|
|
16
|
+
}
|
|
17
|
+
/** Build a public uploaded-asset URL from the trusted configured issuer. */
|
|
18
|
+
function publicAssetUrl(organizationSlug, type) {
|
|
19
|
+
const issuer = config.issuerBaseUrl.replace(/\/+$/, '');
|
|
20
|
+
return `${issuer}/${encodeURIComponent(organizationSlug)}/branding/${type}`;
|
|
21
|
+
}
|
|
22
|
+
/** Validate a stored fallback URL again before it reaches markup or CSP construction. */
|
|
23
|
+
function safeConfiguredUrl(value) {
|
|
24
|
+
if (value === null || value.trim() === '')
|
|
25
|
+
return null;
|
|
26
|
+
try {
|
|
27
|
+
return validateBrandingImageUrl(value);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** Return the CSP source required by one effective image URL. */
|
|
34
|
+
function imageSource(url, uploaded) {
|
|
35
|
+
if (url === null)
|
|
36
|
+
return null;
|
|
37
|
+
if (uploaded)
|
|
38
|
+
return "'self'";
|
|
39
|
+
try {
|
|
40
|
+
return new URL(url).origin;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolve uploaded, configured, and default organization branding in precedence order.
|
|
48
|
+
*
|
|
49
|
+
* Database failures are deliberately non-fatal because branding is optional decoration. The
|
|
50
|
+
* diagnostic excludes organization fields, configured URLs, stored data, and raw error details.
|
|
51
|
+
*
|
|
52
|
+
* @param organization - Organization whose presentation values are required.
|
|
53
|
+
* @returns Effective template fields and their validated CSP image sources.
|
|
54
|
+
*/
|
|
55
|
+
export async function resolveEffectiveBranding(organization) {
|
|
56
|
+
let assets = [];
|
|
57
|
+
try {
|
|
58
|
+
assets = await listAssets(organization.id);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
logger.warn({ event: 'branding-asset-metadata-unavailable' }, 'Branding asset metadata unavailable');
|
|
62
|
+
}
|
|
63
|
+
const hasLogo = hasAsset(assets, 'logo');
|
|
64
|
+
const hasFavicon = hasAsset(assets, 'favicon');
|
|
65
|
+
const logoUrl = hasLogo
|
|
66
|
+
? publicAssetUrl(organization.slug, 'logo')
|
|
67
|
+
: safeConfiguredUrl(organization.brandingLogoUrl);
|
|
68
|
+
const faviconUrl = hasFavicon
|
|
69
|
+
? publicAssetUrl(organization.slug, 'favicon')
|
|
70
|
+
: safeConfiguredUrl(organization.brandingFaviconUrl);
|
|
71
|
+
const sources = [imageSource(logoUrl, hasLogo), imageSource(faviconUrl, hasFavicon)].filter((source) => source !== null);
|
|
72
|
+
return {
|
|
73
|
+
companyName: organization.brandingCompanyName?.trim() || organization.name,
|
|
74
|
+
primaryColor: organization.brandingPrimaryColor?.trim() || DEFAULT_BRANDING_PRIMARY_COLOR,
|
|
75
|
+
logoUrl,
|
|
76
|
+
faviconUrl,
|
|
77
|
+
customCss: organization.brandingCustomCss,
|
|
78
|
+
imageSources: [...new Set(sources)],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=effective-branding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective-branding.js","sourceRoot":"","sources":["../../src/auth/effective-branding.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* await sendMagicLinkEmail(user, org, 'https://...', 'en');
|
|
16
16
|
*/
|
|
17
17
|
import type { EmailTransport } from './email-transport.js';
|
|
18
|
+
import type { Organization } from '../organizations/types.js';
|
|
18
19
|
/** Minimal user fields needed by email service */
|
|
19
20
|
export interface EmailUser {
|
|
20
21
|
id: string;
|
|
@@ -22,14 +23,8 @@ export interface EmailUser {
|
|
|
22
23
|
givenName?: string | null;
|
|
23
24
|
familyName?: string | null;
|
|
24
25
|
}
|
|
25
|
-
/**
|
|
26
|
-
export
|
|
27
|
-
id: string;
|
|
28
|
-
slug: string;
|
|
29
|
-
brandingLogoUrl?: string | null;
|
|
30
|
-
brandingPrimaryColor?: string | null;
|
|
31
|
-
brandingCompanyName?: string | null;
|
|
32
|
-
}
|
|
26
|
+
/** Complete organization authority used to resolve email branding safely. */
|
|
27
|
+
export type EmailOrganization = Organization;
|
|
33
28
|
/** Closed recovery email variants sent by the durable worker. */
|
|
34
29
|
export type RecoveryEmailType = 'magic_link' | 'password_reset';
|
|
35
30
|
/** Input for strict recovery delivery with propagated transport failures. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-service.d.ts","sourceRoot":"","sources":["../../src/auth/email-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"email-service.d.ts","sourceRoot":"","sources":["../../src/auth/email-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAM9D,kDAAkD;AAClD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAE7C,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAEhE,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAmBD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAEvE;AAqBD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAI1D;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAuCf"}
|