@portaidentity/server 1.7.2 → 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 +10 -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
|
@@ -28,6 +28,7 @@ import { sendPasswordChangedEmail } from '../auth/email-service.js';
|
|
|
28
28
|
import { enqueueAccountRecovery } from '../auth/recovery-service.js';
|
|
29
29
|
import { resolveLocale, getTranslationFunction } from '../auth/i18n.js';
|
|
30
30
|
import { renderPage } from '../auth/template-engine.js';
|
|
31
|
+
import { resolveEffectiveBranding } from '../auth/effective-branding.js';
|
|
31
32
|
import { getUserById, setUserPassword } from '../users/service.js';
|
|
32
33
|
import { validatePassword } from '../users/password.js';
|
|
33
34
|
import { writeAuditLog } from '../lib/audit-log.js';
|
|
@@ -51,21 +52,6 @@ const defaultRecoveryRequestDependencies = {
|
|
|
51
52
|
// ---------------------------------------------------------------------------
|
|
52
53
|
// Helpers
|
|
53
54
|
// ---------------------------------------------------------------------------
|
|
54
|
-
/**
|
|
55
|
-
* Build branding context from organization data.
|
|
56
|
-
*
|
|
57
|
-
* @param org - Organization with branding fields
|
|
58
|
-
* @returns Branding context for templates
|
|
59
|
-
*/
|
|
60
|
-
function buildBrandingFromOrg(org) {
|
|
61
|
-
return {
|
|
62
|
-
logoUrl: org.brandingLogoUrl,
|
|
63
|
-
faviconUrl: org.brandingFaviconUrl,
|
|
64
|
-
primaryColor: org.brandingPrimaryColor ?? '#3B82F6',
|
|
65
|
-
companyName: org.brandingCompanyName ?? org.name,
|
|
66
|
-
customCss: org.brandingCustomCss,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
55
|
/**
|
|
70
56
|
* Render an HTML page and send it as the response.
|
|
71
57
|
*
|
|
@@ -75,6 +61,7 @@ function buildBrandingFromOrg(org) {
|
|
|
75
61
|
* @param statusCode - HTTP status code (default: 200)
|
|
76
62
|
*/
|
|
77
63
|
async function renderAndRespond(ctx, pageName, context, statusCode = 200, renderer = renderPage) {
|
|
64
|
+
ctx.state.brandingImageSources = context.branding.imageSources;
|
|
78
65
|
const html = await renderer(pageName, context);
|
|
79
66
|
ctx.status = statusCode;
|
|
80
67
|
ctx.type = 'text/html';
|
|
@@ -175,7 +162,7 @@ async function showForgotPassword(ctx, dependencies) {
|
|
|
175
162
|
const csrfToken = dependencies.generateCsrfToken();
|
|
176
163
|
dependencies.setCsrfCookie(ctx, csrfToken);
|
|
177
164
|
const context = {
|
|
178
|
-
branding:
|
|
165
|
+
branding: await resolveEffectiveBranding(org),
|
|
179
166
|
locale,
|
|
180
167
|
t,
|
|
181
168
|
csrfToken,
|
|
@@ -216,7 +203,7 @@ async function processForgotPassword(ctx, dependencies) {
|
|
|
216
203
|
const csrfToken = dependencies.generateCsrfToken();
|
|
217
204
|
dependencies.setCsrfCookie(ctx, csrfToken);
|
|
218
205
|
const context = {
|
|
219
|
-
branding:
|
|
206
|
+
branding: await resolveEffectiveBranding(org),
|
|
220
207
|
locale,
|
|
221
208
|
t,
|
|
222
209
|
csrfToken,
|
|
@@ -242,7 +229,7 @@ async function processForgotPassword(ctx, dependencies) {
|
|
|
242
229
|
const csrfToken = dependencies.generateCsrfToken();
|
|
243
230
|
dependencies.setCsrfCookie(ctx, csrfToken);
|
|
244
231
|
const context = {
|
|
245
|
-
branding:
|
|
232
|
+
branding: await resolveEffectiveBranding(org),
|
|
246
233
|
locale,
|
|
247
234
|
t,
|
|
248
235
|
csrfToken,
|
|
@@ -266,7 +253,7 @@ async function processForgotPassword(ctx, dependencies) {
|
|
|
266
253
|
const csrfToken = dependencies.generateCsrfToken();
|
|
267
254
|
dependencies.setCsrfCookie(ctx, csrfToken);
|
|
268
255
|
await renderAndRespond(ctx, 'forgot-password', {
|
|
269
|
-
branding:
|
|
256
|
+
branding: await resolveEffectiveBranding(org),
|
|
270
257
|
locale,
|
|
271
258
|
t,
|
|
272
259
|
csrfToken,
|
|
@@ -279,7 +266,7 @@ async function processForgotPassword(ctx, dependencies) {
|
|
|
279
266
|
const csrfToken = dependencies.generateCsrfToken();
|
|
280
267
|
dependencies.setCsrfCookie(ctx, csrfToken);
|
|
281
268
|
const context = {
|
|
282
|
-
branding:
|
|
269
|
+
branding: await resolveEffectiveBranding(org),
|
|
283
270
|
locale,
|
|
284
271
|
t,
|
|
285
272
|
csrfToken,
|
|
@@ -322,7 +309,7 @@ async function showResetPassword(ctx) {
|
|
|
322
309
|
const csrfToken = generateCsrfToken();
|
|
323
310
|
setCsrfCookie(ctx, csrfToken);
|
|
324
311
|
const context = {
|
|
325
|
-
branding:
|
|
312
|
+
branding: await resolveEffectiveBranding(org),
|
|
326
313
|
locale,
|
|
327
314
|
t,
|
|
328
315
|
csrfToken,
|
|
@@ -396,13 +383,7 @@ async function processResetPassword(ctx) {
|
|
|
396
383
|
// Step 7: Send password-changed confirmation email
|
|
397
384
|
const user = await getUserById(tokenRecord.userId);
|
|
398
385
|
if (user) {
|
|
399
|
-
sendPasswordChangedEmail({ id: user.id, email: user.email, givenName: user.givenName, familyName: user.familyName },
|
|
400
|
-
id: org.id,
|
|
401
|
-
slug: org.slug,
|
|
402
|
-
brandingLogoUrl: org.brandingLogoUrl,
|
|
403
|
-
brandingPrimaryColor: org.brandingPrimaryColor,
|
|
404
|
-
brandingCompanyName: org.brandingCompanyName,
|
|
405
|
-
}, locale);
|
|
386
|
+
sendPasswordChangedEmail({ id: user.id, email: user.email, givenName: user.givenName, familyName: user.familyName }, org, locale);
|
|
406
387
|
}
|
|
407
388
|
// Step 8: Audit log
|
|
408
389
|
writeAuditLog({
|
|
@@ -417,7 +398,7 @@ async function processResetPassword(ctx) {
|
|
|
417
398
|
const csrfToken = generateCsrfToken();
|
|
418
399
|
setCsrfCookie(ctx, csrfToken);
|
|
419
400
|
const context = {
|
|
420
|
-
branding:
|
|
401
|
+
branding: await resolveEffectiveBranding(org),
|
|
421
402
|
locale,
|
|
422
403
|
t,
|
|
423
404
|
csrfToken,
|
|
@@ -449,7 +430,7 @@ async function renderResetFormWithError(ctx, org, locale, t, token, errorMessage
|
|
|
449
430
|
const csrfToken = generateCsrfToken();
|
|
450
431
|
setCsrfCookie(ctx, csrfToken);
|
|
451
432
|
const context = {
|
|
452
|
-
branding:
|
|
433
|
+
branding: await resolveEffectiveBranding(org),
|
|
453
434
|
locale,
|
|
454
435
|
t,
|
|
455
436
|
csrfToken,
|
|
@@ -472,17 +453,14 @@ async function renderErrorPageForAuth(ctx, org, locale, t, errorMessage) {
|
|
|
472
453
|
try {
|
|
473
454
|
const csrfToken = generateCsrfToken();
|
|
474
455
|
const context = {
|
|
475
|
-
branding:
|
|
456
|
+
branding: await resolveEffectiveBranding(org),
|
|
476
457
|
locale,
|
|
477
458
|
t,
|
|
478
459
|
csrfToken,
|
|
479
460
|
orgSlug: org.slug,
|
|
480
461
|
errorMessage,
|
|
481
462
|
};
|
|
482
|
-
|
|
483
|
-
ctx.status = 400;
|
|
484
|
-
ctx.type = 'text/html';
|
|
485
|
-
ctx.body = html;
|
|
463
|
+
await renderAndRespond(ctx, 'error', context, 400);
|
|
486
464
|
}
|
|
487
465
|
catch {
|
|
488
466
|
logger.error({ event: 'auth-error-render-failed' }, 'Authentication error page failed');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-reset.js","sourceRoot":"","sources":["../../src/routes/password-reset.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"password-reset.js","sourceRoot":"","sources":["../../src/routes/password-reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* GET / — List permissions (optional ?moduleId filter)
|
|
11
11
|
* GET /:permId — Get a permission by ID
|
|
12
12
|
* PUT /:permId — Update a permission (name/description only)
|
|
13
|
-
* DELETE /:
|
|
13
|
+
* DELETE /:permissionId — Delete a permission
|
|
14
14
|
* GET /:permId/roles — List roles that have this permission
|
|
15
15
|
*
|
|
16
16
|
* Error mapping:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/routes/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/routes/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AAgGjC;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA+H/C"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* GET / — List permissions (optional ?moduleId filter)
|
|
11
11
|
* GET /:permId — Get a permission by ID
|
|
12
12
|
* PUT /:permId — Update a permission (name/description only)
|
|
13
|
-
* DELETE /:
|
|
13
|
+
* DELETE /:permissionId — Delete a permission
|
|
14
14
|
* GET /:permId/roles — List roles that have this permission
|
|
15
15
|
*
|
|
16
16
|
* Error mapping:
|
|
@@ -22,16 +22,19 @@ import Router from '@koa/router';
|
|
|
22
22
|
import { z } from 'zod';
|
|
23
23
|
import { requireAdminAuth } from '../middleware/admin-auth.js';
|
|
24
24
|
import { requirePermission } from '../middleware/require-permission.js';
|
|
25
|
-
import { ADMIN_PERMISSIONS } from '../lib/admin-permissions.js';
|
|
25
|
+
import { ADMIN_PERMISSIONS, ALL_ADMIN_PERMISSIONS } from '../lib/admin-permissions.js';
|
|
26
|
+
import { getApplicationBySlug } from '../applications/service.js';
|
|
26
27
|
import * as permissionService from '../rbac/permission-service.js';
|
|
27
28
|
import { PermissionNotFoundError, RbacValidationError } from '../rbac/errors.js';
|
|
29
|
+
const ADMIN_APPLICATION_SLUG = 'porta-admin';
|
|
30
|
+
const ADMIN_PERMISSION_SLUGS = new Set(ALL_ADMIN_PERMISSIONS);
|
|
28
31
|
// ---------------------------------------------------------------------------
|
|
29
32
|
// Validation schemas
|
|
30
33
|
// ---------------------------------------------------------------------------
|
|
31
34
|
/** Schema for creating a new permission */
|
|
32
35
|
const createPermissionSchema = z.object({
|
|
33
36
|
name: z.string().min(1).max(255),
|
|
34
|
-
slug: z.string().min(1).max(150),
|
|
37
|
+
slug: z.string().trim().min(1).max(150),
|
|
35
38
|
moduleId: z.string().uuid().optional(),
|
|
36
39
|
description: z.string().max(1000).optional(),
|
|
37
40
|
});
|
|
@@ -44,6 +47,18 @@ const updatePermissionSchema = z.object({
|
|
|
44
47
|
const listPermissionsSchema = z.object({
|
|
45
48
|
moduleId: z.string().uuid().optional(),
|
|
46
49
|
});
|
|
50
|
+
/** Parent-qualified parameters accepted by permission reads and updates. */
|
|
51
|
+
const permissionIdentifierSchema = z.object({
|
|
52
|
+
appId: z.string().uuid(),
|
|
53
|
+
permId: z.string().uuid(),
|
|
54
|
+
});
|
|
55
|
+
/** Parent-qualified parameters accepted by permission deletion. */
|
|
56
|
+
const deletionIdentifierSchema = z.object({
|
|
57
|
+
appId: z.string().uuid(),
|
|
58
|
+
permissionId: z.string().uuid(),
|
|
59
|
+
});
|
|
60
|
+
/** Application parent parameter accepted by collection routes. */
|
|
61
|
+
const applicationIdentifierSchema = z.object({ appId: z.string().uuid() });
|
|
47
62
|
// ---------------------------------------------------------------------------
|
|
48
63
|
// Error handler helper
|
|
49
64
|
// ---------------------------------------------------------------------------
|
|
@@ -65,6 +80,20 @@ function handleError(ctx, err) {
|
|
|
65
80
|
}
|
|
66
81
|
throw err;
|
|
67
82
|
}
|
|
83
|
+
/** Reject generic route mutations of a canonical Porta Admin permission. */
|
|
84
|
+
async function requireMutablePermission(applicationId, permissionId) {
|
|
85
|
+
const permission = await permissionService.findPermissionById(applicationId, permissionId);
|
|
86
|
+
// The mutation service remains responsible for authoritative not-found handling and repeats the
|
|
87
|
+
// canonical check after locking. This route lookup exists only for an early sanitized rejection.
|
|
88
|
+
if (!permission)
|
|
89
|
+
return;
|
|
90
|
+
if (!ADMIN_PERMISSION_SLUGS.has(permission.slug))
|
|
91
|
+
return;
|
|
92
|
+
const adminApplication = await getApplicationBySlug(ADMIN_APPLICATION_SLUG);
|
|
93
|
+
if (adminApplication?.id === permission.applicationId) {
|
|
94
|
+
throw new RbacValidationError('Canonical Porta Admin permissions cannot be modified');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
68
97
|
// ---------------------------------------------------------------------------
|
|
69
98
|
// Router factory
|
|
70
99
|
// ---------------------------------------------------------------------------
|
|
@@ -87,11 +116,12 @@ export function createPermissionRouter() {
|
|
|
87
116
|
// -------------------------------------------------------------------------
|
|
88
117
|
router.post('/', requirePermission(ADMIN_PERMISSIONS.PERMISSION_CREATE), async (ctx) => {
|
|
89
118
|
try {
|
|
119
|
+
applicationIdentifierSchema.parse(ctx.params);
|
|
90
120
|
const body = createPermissionSchema.parse(ctx.request.body);
|
|
91
121
|
const permission = await permissionService.createPermission({
|
|
92
122
|
applicationId: ctx.params.appId,
|
|
93
123
|
...body,
|
|
94
|
-
});
|
|
124
|
+
}, ctx.state.adminUser?.id);
|
|
95
125
|
ctx.status = 201;
|
|
96
126
|
ctx.body = { data: permission };
|
|
97
127
|
}
|
|
@@ -104,6 +134,7 @@ export function createPermissionRouter() {
|
|
|
104
134
|
// -------------------------------------------------------------------------
|
|
105
135
|
router.get('/', requirePermission(ADMIN_PERMISSIONS.PERMISSION_READ), async (ctx) => {
|
|
106
136
|
try {
|
|
137
|
+
applicationIdentifierSchema.parse(ctx.params);
|
|
107
138
|
const query = listPermissionsSchema.parse(ctx.query);
|
|
108
139
|
const permissions = await permissionService.listPermissionsByApplication(ctx.params.appId, query.moduleId);
|
|
109
140
|
ctx.body = { data: permissions };
|
|
@@ -116,19 +147,27 @@ export function createPermissionRouter() {
|
|
|
116
147
|
// GET /:permId — Get permission by ID
|
|
117
148
|
// -------------------------------------------------------------------------
|
|
118
149
|
router.get('/:permId', requirePermission(ADMIN_PERMISSIONS.PERMISSION_READ), async (ctx) => {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
ctx.
|
|
150
|
+
try {
|
|
151
|
+
permissionIdentifierSchema.parse(ctx.params);
|
|
152
|
+
const permission = await permissionService.findPermissionById(ctx.params.appId, ctx.params.permId);
|
|
153
|
+
if (!permission) {
|
|
154
|
+
ctx.throw(404, 'Permission not found');
|
|
155
|
+
}
|
|
156
|
+
ctx.body = { data: permission };
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
handleError(ctx, err);
|
|
122
160
|
}
|
|
123
|
-
ctx.body = { data: permission };
|
|
124
161
|
});
|
|
125
162
|
// -------------------------------------------------------------------------
|
|
126
163
|
// PUT /:permId — Update permission (name and description only)
|
|
127
164
|
// -------------------------------------------------------------------------
|
|
128
|
-
router.put('/:permId', requirePermission(ADMIN_PERMISSIONS.
|
|
165
|
+
router.put('/:permId', requirePermission(ADMIN_PERMISSIONS.PERMISSION_UPDATE), async (ctx) => {
|
|
129
166
|
try {
|
|
167
|
+
permissionIdentifierSchema.parse(ctx.params);
|
|
130
168
|
const body = updatePermissionSchema.parse(ctx.request.body);
|
|
131
|
-
|
|
169
|
+
await requireMutablePermission(ctx.params.appId, ctx.params.permId);
|
|
170
|
+
const permission = await permissionService.updatePermission(ctx.params.appId, ctx.params.permId, body, ctx.state.adminUser?.id);
|
|
132
171
|
ctx.body = { data: permission };
|
|
133
172
|
}
|
|
134
173
|
catch (err) {
|
|
@@ -136,14 +175,15 @@ export function createPermissionRouter() {
|
|
|
136
175
|
}
|
|
137
176
|
});
|
|
138
177
|
// -------------------------------------------------------------------------
|
|
139
|
-
// DELETE /:
|
|
140
|
-
// Supports ?force=true to delete even when roles reference it
|
|
178
|
+
// DELETE /:permissionId — Delete permission
|
|
141
179
|
// -------------------------------------------------------------------------
|
|
142
|
-
router.delete('/:
|
|
180
|
+
router.delete('/:permissionId', requirePermission(ADMIN_PERMISSIONS.PERMISSION_DELETE), async (ctx) => {
|
|
143
181
|
try {
|
|
144
|
-
|
|
145
|
-
await
|
|
146
|
-
ctx.
|
|
182
|
+
deletionIdentifierSchema.parse(ctx.params);
|
|
183
|
+
await requireMutablePermission(ctx.params.appId, ctx.params.permissionId);
|
|
184
|
+
const result = await permissionService.deletePermission(ctx.params.appId, ctx.params.permissionId, ctx.state.adminUser?.id);
|
|
185
|
+
ctx.status = 200;
|
|
186
|
+
ctx.body = { data: result };
|
|
147
187
|
}
|
|
148
188
|
catch (err) {
|
|
149
189
|
handleError(ctx, err);
|
|
@@ -154,7 +194,8 @@ export function createPermissionRouter() {
|
|
|
154
194
|
// -------------------------------------------------------------------------
|
|
155
195
|
router.get('/:permId/roles', requirePermission(ADMIN_PERMISSIONS.PERMISSION_READ), async (ctx) => {
|
|
156
196
|
try {
|
|
157
|
-
|
|
197
|
+
permissionIdentifierSchema.parse(ctx.params);
|
|
198
|
+
const roles = await permissionService.getRolesWithPermission(ctx.params.appId, ctx.params.permId);
|
|
158
199
|
ctx.body = { data: roles };
|
|
159
200
|
}
|
|
160
201
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/routes/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/routes/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public organization branding image delivery.
|
|
3
|
+
*
|
|
4
|
+
* Authentication pages reference this route for uploaded logos and favicons. The route resolves
|
|
5
|
+
* the organization directly because suspended organizations must retain their branding while
|
|
6
|
+
* administrators repair or reactivate them.
|
|
7
|
+
*/
|
|
8
|
+
import Router from '@koa/router';
|
|
9
|
+
/**
|
|
10
|
+
* Create the anonymous router that serves one exact organization branding asset.
|
|
11
|
+
*
|
|
12
|
+
* Missing organizations, unsupported slots, and empty slots intentionally use one response so
|
|
13
|
+
* callers cannot distinguish tenant existence from asset configuration.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createPublicBrandingRouter(): Router;
|
|
16
|
+
//# sourceMappingURL=public-branding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-branding.d.ts","sourceRoot":"","sources":["../../src/routes/public-branding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AAcjC;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAgCnD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public organization branding image delivery.
|
|
3
|
+
*
|
|
4
|
+
* Authentication pages reference this route for uploaded logos and favicons. The route resolves
|
|
5
|
+
* the organization directly because suspended organizations must retain their branding while
|
|
6
|
+
* administrators repair or reactivate them.
|
|
7
|
+
*/
|
|
8
|
+
import Router from '@koa/router';
|
|
9
|
+
import { getAsset } from '../lib/branding-assets.js';
|
|
10
|
+
import { setETagHeader } from '../lib/etag.js';
|
|
11
|
+
import { findOrganizationBySlug } from '../organizations/repository.js';
|
|
12
|
+
/** Restrictive policy used when an SVG is opened as a document instead of rendered as an image. */
|
|
13
|
+
const SVG_CONTENT_SECURITY_POLICY = "sandbox; default-src 'none'; style-src 'unsafe-inline'; img-src data:";
|
|
14
|
+
/** Return whether a route value identifies a supported public branding slot. */
|
|
15
|
+
function isAssetType(value) {
|
|
16
|
+
return value === 'logo' || value === 'favicon';
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create the anonymous router that serves one exact organization branding asset.
|
|
20
|
+
*
|
|
21
|
+
* Missing organizations, unsupported slots, and empty slots intentionally use one response so
|
|
22
|
+
* callers cannot distinguish tenant existence from asset configuration.
|
|
23
|
+
*/
|
|
24
|
+
export function createPublicBrandingRouter() {
|
|
25
|
+
const router = new Router({ prefix: '/:orgSlug/branding' });
|
|
26
|
+
router.get('/:type', async (ctx) => {
|
|
27
|
+
const { orgSlug, type } = ctx.params;
|
|
28
|
+
if (!isAssetType(type)) {
|
|
29
|
+
ctx.throw(404);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const organization = await findOrganizationBySlug(orgSlug);
|
|
33
|
+
if (organization === null) {
|
|
34
|
+
ctx.throw(404);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const asset = await getAsset(organization.id, type);
|
|
38
|
+
if (asset === null) {
|
|
39
|
+
ctx.throw(404);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
ctx.type = asset.contentType;
|
|
43
|
+
ctx.set('Cache-Control', 'public, no-cache');
|
|
44
|
+
setETagHeader(ctx, 'branding-asset', asset.id, asset.updatedAt);
|
|
45
|
+
if (asset.contentType === 'image/svg+xml') {
|
|
46
|
+
ctx.set('Content-Security-Policy', SVG_CONTENT_SECURITY_POLICY);
|
|
47
|
+
}
|
|
48
|
+
ctx.body = asset.data;
|
|
49
|
+
});
|
|
50
|
+
return router;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=public-branding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-branding.js","sourceRoot":"","sources":["../../src/routes/public-branding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAkB,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,mGAAmG;AACnG,MAAM,2BAA2B,GAC/B,uEAAuE,CAAC;AAE1E,gFAAgF;AAChF,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B;IACxC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAE5D,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7B,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAC7C,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,WAAW,KAAK,eAAe,EAAE,CAAC;YAC1C,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;QAClE,CAAC;QACD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/routes/roles.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* GET / — List all roles for an application
|
|
12
12
|
* GET /:roleId — Get a role by ID
|
|
13
13
|
* PUT /:roleId — Update a role
|
|
14
|
-
* DELETE /:roleId — Delete a role
|
|
14
|
+
* DELETE /:roleId — Delete a role
|
|
15
15
|
* GET /:roleId/permissions — List permissions for a role
|
|
16
16
|
* PUT /:roleId/permissions — Assign permissions to a role
|
|
17
17
|
* DELETE /:roleId/permissions — Remove permissions from a role
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/routes/roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/routes/roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AAkGjC;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CA4LzC"}
|