@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-service.js","sourceRoot":"","sources":["../../src/rbac/permission-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"permission-service.js","sourceRoot":"","sources":["../../src/rbac/permission-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,12 +29,21 @@ import type { Role, CreateRoleInput, UpdateRoleInput } from './types.js';
|
|
|
29
29
|
*/
|
|
30
30
|
export declare function insertRole(input: CreateRoleInput): Promise<Role>;
|
|
31
31
|
/**
|
|
32
|
-
* Find a role
|
|
32
|
+
* Find a role through its authoritative application parent.
|
|
33
33
|
*
|
|
34
|
+
* @param applicationId - Parent application UUID
|
|
34
35
|
* @param id - Role UUID
|
|
35
36
|
* @returns Role or null if not found
|
|
36
37
|
*/
|
|
37
|
-
export declare function findRoleById(id: string): Promise<Role | null>;
|
|
38
|
+
export declare function findRoleById(applicationId: string, id: string): Promise<Role | null>;
|
|
39
|
+
/**
|
|
40
|
+
* Lock and return a role through its authoritative application parent.
|
|
41
|
+
*
|
|
42
|
+
* @param applicationId - Parent application UUID
|
|
43
|
+
* @param id - Role UUID
|
|
44
|
+
* @returns Locked role or null when the parent-child pair does not exist
|
|
45
|
+
*/
|
|
46
|
+
export declare function lockRoleById(applicationId: string, id: string): Promise<Role | null>;
|
|
38
47
|
/**
|
|
39
48
|
* Find a role by application ID and slug.
|
|
40
49
|
*
|
|
@@ -51,23 +60,29 @@ export declare function findRoleBySlug(applicationId: string, slug: string): Pro
|
|
|
51
60
|
* fields that weren't specified. Null is a valid value for description
|
|
52
61
|
* (clears it).
|
|
53
62
|
*
|
|
63
|
+
* @param applicationId - Parent application UUID
|
|
54
64
|
* @param id - Role UUID
|
|
55
65
|
* @param input - Fields to update (only non-undefined fields are applied)
|
|
56
66
|
* @returns Updated role
|
|
57
67
|
* @throws Error if role not found or no fields provided
|
|
58
68
|
*/
|
|
59
|
-
export declare function updateRole(id: string, input: UpdateRoleInput): Promise<Role>;
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
export declare function updateRole(applicationId: string, id: string, input: UpdateRoleInput): Promise<Role>;
|
|
70
|
+
/** Lock, capture, and delete a role through its authoritative application parent. */
|
|
71
|
+
export declare function deleteRole(applicationId: string, roleId: string): Promise<{
|
|
72
|
+
role: Role;
|
|
73
|
+
userIds: string[];
|
|
74
|
+
permissionIds: string[];
|
|
75
|
+
grantIds: string[];
|
|
76
|
+
} | null>;
|
|
77
|
+
/** Lock and capture a role without deleting it. */
|
|
78
|
+
export declare function captureRoleForDeletion(applicationId: string, roleId: string): Promise<{
|
|
79
|
+
role: Role;
|
|
80
|
+
userIds: string[];
|
|
81
|
+
permissionIds: string[];
|
|
82
|
+
grantIds: string[];
|
|
83
|
+
} | null>;
|
|
84
|
+
/** Physically delete a role previously locked through its parent. */
|
|
85
|
+
export declare function deleteCapturedRole(applicationId: string, roleId: string): Promise<void>;
|
|
71
86
|
/**
|
|
72
87
|
* List all roles for an application, ordered by name ascending.
|
|
73
88
|
*
|
|
@@ -91,14 +106,4 @@ export declare function listRolesByApplication(applicationId: string): Promise<R
|
|
|
91
106
|
* @returns true if the slug already exists
|
|
92
107
|
*/
|
|
93
108
|
export declare function roleSlugExists(applicationId: string, slug: string, excludeId?: string): Promise<boolean>;
|
|
94
|
-
/**
|
|
95
|
-
* Count users assigned to a role.
|
|
96
|
-
*
|
|
97
|
-
* Used by the service layer as a deletion guard: if users are assigned,
|
|
98
|
-
* the role cannot be deleted without force=true.
|
|
99
|
-
*
|
|
100
|
-
* @param roleId - Role UUID
|
|
101
|
-
* @returns Number of users with this role
|
|
102
|
-
*/
|
|
103
|
-
export declare function countUsersWithRole(roleId: string): Promise<number>;
|
|
104
109
|
//# sourceMappingURL=role-repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-repository.d.ts","sourceRoot":"","sources":["../../src/rbac/role-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAW,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAOlF;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"role-repository.d.ts","sourceRoot":"","sources":["../../src/rbac/role-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAW,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAOlF;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtE;AAMD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAU1F;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAQ1F;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAU9F;AAgBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAMD,qFAAqF;AACrF,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,IAAI,CAAC,CAKR;AAED,mDAAmD;AACnD,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IACT,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,IAAI,CAAC,CAoCR;AAED,qEAAqE;AACrE,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7F;AAMD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CASnF;AAMD;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
|
|
@@ -35,30 +35,39 @@ export async function insertRole(input) {
|
|
|
35
35
|
const pool = getPool();
|
|
36
36
|
const result = await pool.query(`INSERT INTO roles (application_id, name, slug, description)
|
|
37
37
|
VALUES ($1, $2, $3, $4)
|
|
38
|
-
RETURNING *`, [
|
|
39
|
-
input.applicationId,
|
|
40
|
-
input.name,
|
|
41
|
-
input.slug ?? null,
|
|
42
|
-
input.description ?? null,
|
|
43
|
-
]);
|
|
38
|
+
RETURNING *`, [input.applicationId, input.name, input.slug ?? null, input.description ?? null]);
|
|
44
39
|
return mapRowToRole(result.rows[0]);
|
|
45
40
|
}
|
|
46
41
|
// ---------------------------------------------------------------------------
|
|
47
42
|
// Find
|
|
48
43
|
// ---------------------------------------------------------------------------
|
|
49
44
|
/**
|
|
50
|
-
* Find a role
|
|
45
|
+
* Find a role through its authoritative application parent.
|
|
51
46
|
*
|
|
47
|
+
* @param applicationId - Parent application UUID
|
|
52
48
|
* @param id - Role UUID
|
|
53
49
|
* @returns Role or null if not found
|
|
54
50
|
*/
|
|
55
|
-
export async function findRoleById(id) {
|
|
51
|
+
export async function findRoleById(applicationId, id) {
|
|
56
52
|
const pool = getPool();
|
|
57
|
-
const result = await pool.query('SELECT * FROM roles WHERE id = $
|
|
53
|
+
const result = await pool.query('SELECT * FROM roles WHERE application_id = $1 AND id = $2', [applicationId, id]);
|
|
58
54
|
if (result.rows.length === 0)
|
|
59
55
|
return null;
|
|
60
56
|
return mapRowToRole(result.rows[0]);
|
|
61
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Lock and return a role through its authoritative application parent.
|
|
60
|
+
*
|
|
61
|
+
* @param applicationId - Parent application UUID
|
|
62
|
+
* @param id - Role UUID
|
|
63
|
+
* @returns Locked role or null when the parent-child pair does not exist
|
|
64
|
+
*/
|
|
65
|
+
export async function lockRoleById(applicationId, id) {
|
|
66
|
+
const result = await getPool().query(`SELECT * FROM roles
|
|
67
|
+
WHERE application_id = $1 AND id = $2
|
|
68
|
+
FOR UPDATE`, [applicationId, id]);
|
|
69
|
+
return result.rows[0] ? mapRowToRole(result.rows[0]) : null;
|
|
70
|
+
}
|
|
62
71
|
/**
|
|
63
72
|
* Find a role by application ID and slug.
|
|
64
73
|
*
|
|
@@ -93,17 +102,18 @@ const FIELD_TO_COLUMN = {
|
|
|
93
102
|
* fields that weren't specified. Null is a valid value for description
|
|
94
103
|
* (clears it).
|
|
95
104
|
*
|
|
105
|
+
* @param applicationId - Parent application UUID
|
|
96
106
|
* @param id - Role UUID
|
|
97
107
|
* @param input - Fields to update (only non-undefined fields are applied)
|
|
98
108
|
* @returns Updated role
|
|
99
109
|
* @throws Error if role not found or no fields provided
|
|
100
110
|
*/
|
|
101
|
-
export async function updateRole(id, input) {
|
|
111
|
+
export async function updateRole(applicationId, id, input) {
|
|
102
112
|
const pool = getPool();
|
|
103
113
|
// Build dynamic SET clause from provided fields
|
|
104
114
|
const setClauses = [];
|
|
105
|
-
const values = [id];
|
|
106
|
-
let paramIndex =
|
|
115
|
+
const values = [applicationId, id];
|
|
116
|
+
let paramIndex = 3;
|
|
107
117
|
for (const [field, column] of Object.entries(FIELD_TO_COLUMN)) {
|
|
108
118
|
const value = input[field];
|
|
109
119
|
// Include the field if it's explicitly set (including null for clearing)
|
|
@@ -116,7 +126,8 @@ export async function updateRole(id, input) {
|
|
|
116
126
|
if (setClauses.length === 0) {
|
|
117
127
|
throw new Error('No fields to update');
|
|
118
128
|
}
|
|
119
|
-
const sql = `UPDATE roles SET ${setClauses.join(', ')}
|
|
129
|
+
const sql = `UPDATE roles SET ${setClauses.join(', ')}
|
|
130
|
+
WHERE application_id = $1 AND id = $2 RETURNING *`;
|
|
120
131
|
const result = await pool.query(sql, values);
|
|
121
132
|
if (result.rows.length === 0) {
|
|
122
133
|
throw new Error('Role not found');
|
|
@@ -126,20 +137,49 @@ export async function updateRole(id, input) {
|
|
|
126
137
|
// ---------------------------------------------------------------------------
|
|
127
138
|
// Delete
|
|
128
139
|
// ---------------------------------------------------------------------------
|
|
129
|
-
/**
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
export async function deleteRole(id) {
|
|
140
|
+
/** Lock, capture, and delete a role through its authoritative application parent. */
|
|
141
|
+
export async function deleteRole(applicationId, roleId) {
|
|
142
|
+
const capture = await captureRoleForDeletion(applicationId, roleId);
|
|
143
|
+
if (!capture)
|
|
144
|
+
return null;
|
|
145
|
+
await deleteCapturedRole(applicationId, roleId);
|
|
146
|
+
return capture;
|
|
147
|
+
}
|
|
148
|
+
/** Lock and capture a role without deleting it. */
|
|
149
|
+
export async function captureRoleForDeletion(applicationId, roleId) {
|
|
140
150
|
const pool = getPool();
|
|
141
|
-
const
|
|
142
|
-
|
|
151
|
+
const target = await pool.query(`SELECT * FROM roles WHERE application_id = $1 AND id = $2 FOR UPDATE`, [applicationId, roleId]);
|
|
152
|
+
if (!target.rows[0])
|
|
153
|
+
return null;
|
|
154
|
+
const graph = await pool.query(`WITH affected_users AS (
|
|
155
|
+
SELECT user_id FROM user_roles WHERE role_id = $1
|
|
156
|
+
)
|
|
157
|
+
SELECT
|
|
158
|
+
ARRAY(SELECT user_id FROM affected_users ORDER BY user_id) AS user_ids,
|
|
159
|
+
ARRAY(SELECT permission_id FROM role_permissions WHERE role_id = $1 ORDER BY permission_id)
|
|
160
|
+
AS permission_ids,
|
|
161
|
+
ARRAY(
|
|
162
|
+
SELECT payload.id FROM oidc_payloads payload
|
|
163
|
+
WHERE payload.type = 'Grant'
|
|
164
|
+
AND payload.payload->>'accountId' = ANY(ARRAY(SELECT user_id::text FROM affected_users))
|
|
165
|
+
AND payload.payload->>'clientId' = ANY(ARRAY(
|
|
166
|
+
SELECT client_id FROM clients WHERE application_id = $2
|
|
167
|
+
))
|
|
168
|
+
ORDER BY payload.id
|
|
169
|
+
) AS grant_ids`, [roleId, applicationId]);
|
|
170
|
+
return {
|
|
171
|
+
role: mapRowToRole(target.rows[0]),
|
|
172
|
+
userIds: graph.rows[0].user_ids,
|
|
173
|
+
permissionIds: graph.rows[0].permission_ids,
|
|
174
|
+
grantIds: graph.rows[0].grant_ids,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/** Physically delete a role previously locked through its parent. */
|
|
178
|
+
export async function deleteCapturedRole(applicationId, roleId) {
|
|
179
|
+
await getPool().query('DELETE FROM roles WHERE application_id = $1 AND id = $2', [
|
|
180
|
+
applicationId,
|
|
181
|
+
roleId,
|
|
182
|
+
]);
|
|
143
183
|
}
|
|
144
184
|
// ---------------------------------------------------------------------------
|
|
145
185
|
// List
|
|
@@ -182,21 +222,4 @@ export async function roleSlugExists(applicationId, slug, excludeId) {
|
|
|
182
222
|
const result = await pool.query('SELECT EXISTS(SELECT 1 FROM roles WHERE application_id = $1 AND slug = $2) as exists', [applicationId, slug]);
|
|
183
223
|
return result.rows[0].exists;
|
|
184
224
|
}
|
|
185
|
-
// ---------------------------------------------------------------------------
|
|
186
|
-
// User count (deletion guard)
|
|
187
|
-
// ---------------------------------------------------------------------------
|
|
188
|
-
/**
|
|
189
|
-
* Count users assigned to a role.
|
|
190
|
-
*
|
|
191
|
-
* Used by the service layer as a deletion guard: if users are assigned,
|
|
192
|
-
* the role cannot be deleted without force=true.
|
|
193
|
-
*
|
|
194
|
-
* @param roleId - Role UUID
|
|
195
|
-
* @returns Number of users with this role
|
|
196
|
-
*/
|
|
197
|
-
export async function countUsersWithRole(roleId) {
|
|
198
|
-
const pool = getPool();
|
|
199
|
-
const result = await pool.query('SELECT COUNT(*)::int as count FROM user_roles WHERE role_id = $1', [roleId]);
|
|
200
|
-
return parseInt(result.rows[0].count, 10);
|
|
201
|
-
}
|
|
202
225
|
//# sourceMappingURL=role-repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-repository.js","sourceRoot":"","sources":["../../src/rbac/role-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;;iBAEa,EACb
|
|
1
|
+
{"version":3,"file":"role-repository.js","sourceRoot":"","sources":["../../src/rbac/role-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Role service — business logic for role management.
|
|
3
3
|
*
|
|
4
|
-
* Orchestrates role CRUD
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* All write operations follow the pattern:
|
|
9
|
-
* validate → DB operation → cache invalidate/re-cache → audit log
|
|
10
|
-
*
|
|
11
|
-
* Uses fire-and-forget audit logging — audit failures never block
|
|
12
|
-
* the primary operation.
|
|
4
|
+
* Orchestrates application-scoped role CRUD and direct permission mappings.
|
|
5
|
+
* Authority reductions revoke affected database state in the request transaction;
|
|
6
|
+
* cache cleanup runs after commit. Canonical Porta Admin roles and mappings are
|
|
7
|
+
* protected from generic mutation.
|
|
13
8
|
*
|
|
14
9
|
* @see role-repository.ts — Database operations
|
|
15
10
|
* @see mapping-repository.ts — Role-permission join table operations
|
|
@@ -31,10 +26,11 @@ export declare function createRole(input: CreateRoleInput, actorId?: string): Pr
|
|
|
31
26
|
/**
|
|
32
27
|
* Find a role by ID. Cache-first, falls back to DB.
|
|
33
28
|
*
|
|
29
|
+
* @param applicationId - Parent application UUID
|
|
34
30
|
* @param id - Role UUID
|
|
35
31
|
* @returns Role or null if not found
|
|
36
32
|
*/
|
|
37
|
-
export declare function findRoleById(id: string): Promise<Role | null>;
|
|
33
|
+
export declare function findRoleById(applicationId: string, id: string): Promise<Role | null>;
|
|
38
34
|
/**
|
|
39
35
|
* Find a role by application ID and slug.
|
|
40
36
|
*
|
|
@@ -54,58 +50,65 @@ export declare function listRolesByApplication(applicationId: string): Promise<R
|
|
|
54
50
|
* Update a role by ID.
|
|
55
51
|
*
|
|
56
52
|
* If the slug is being changed, validates the new slug format and
|
|
57
|
-
* checks uniqueness within the application.
|
|
58
|
-
* the role
|
|
53
|
+
* checks uniqueness within the application. An actual slug change revokes
|
|
54
|
+
* authority for users assigned to the role; metadata-only changes do not.
|
|
59
55
|
*
|
|
56
|
+
* @param applicationId - Parent application UUID
|
|
60
57
|
* @param id - Role UUID
|
|
61
58
|
* @param input - Fields to update
|
|
62
59
|
* @param actorId - Optional UUID of the admin performing the action
|
|
63
|
-
* @returns Updated role
|
|
60
|
+
* @returns Updated role and whether the actor must authenticate again
|
|
64
61
|
* @throws RoleNotFoundError if role doesn't exist
|
|
65
62
|
* @throws RbacValidationError if new slug is invalid or already exists
|
|
66
63
|
*/
|
|
67
|
-
export declare function updateRole(id: string, input: UpdateRoleInput, actorId?: string): Promise<
|
|
64
|
+
export declare function updateRole(applicationId: string, id: string, input: UpdateRoleInput, actorId?: string): Promise<{
|
|
65
|
+
role: Role;
|
|
66
|
+
reauthenticationRequired: boolean;
|
|
67
|
+
}>;
|
|
68
68
|
/**
|
|
69
|
-
* Delete a role
|
|
70
|
-
*
|
|
71
|
-
* By default (force=false), refuses to delete roles that have users
|
|
72
|
-
* assigned. Pass force=true to delete regardless — CASCADE will
|
|
73
|
-
* remove user_roles and role_permissions entries.
|
|
69
|
+
* Delete a role through its authoritative application parent.
|
|
74
70
|
*
|
|
75
|
-
* @param
|
|
76
|
-
* @param
|
|
77
|
-
* @param actorId -
|
|
78
|
-
* @
|
|
79
|
-
* @throws
|
|
71
|
+
* @param applicationId - Parent application UUID.
|
|
72
|
+
* @param roleId - Child role UUID.
|
|
73
|
+
* @param actorId - Actor identifier used for audit attribution when applicable.
|
|
74
|
+
* @returns Whether the actor must authenticate again
|
|
75
|
+
* @throws RoleNotFoundError when the selected role does not exist within the requested boundary.
|
|
80
76
|
*/
|
|
81
|
-
export declare function deleteRole(
|
|
77
|
+
export declare function deleteRole(applicationId: string, roleId: string, actorId?: string): Promise<{
|
|
78
|
+
reauthenticationRequired: boolean;
|
|
79
|
+
}>;
|
|
82
80
|
/**
|
|
83
81
|
* Assign permissions to a role.
|
|
84
82
|
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
83
|
+
* Validates every permission against the role's application and schedules
|
|
84
|
+
* cache invalidation only for users assigned to the role.
|
|
87
85
|
*
|
|
86
|
+
* @param applicationId - Parent application UUID
|
|
88
87
|
* @param roleId - Role UUID
|
|
89
88
|
* @param permissionIds - Array of permission UUIDs to assign
|
|
90
89
|
* @param actorId - Optional UUID of the admin performing the action
|
|
91
90
|
*/
|
|
92
|
-
export declare function assignPermissionsToRole(roleId: string, permissionIds: string[], actorId?: string): Promise<void>;
|
|
91
|
+
export declare function assignPermissionsToRole(applicationId: string, roleId: string, permissionIds: string[], actorId?: string): Promise<void>;
|
|
93
92
|
/**
|
|
94
93
|
* Remove permissions from a role.
|
|
95
94
|
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
95
|
+
* Validates every permission against the role's application. An actual
|
|
96
|
+
* removal revokes affected authority; an absent mapping is a committed no-op.
|
|
98
97
|
*
|
|
98
|
+
* @param applicationId - Parent application UUID
|
|
99
99
|
* @param roleId - Role UUID
|
|
100
100
|
* @param permissionIds - Array of permission UUIDs to remove
|
|
101
101
|
* @param actorId - Optional UUID of the admin performing the action
|
|
102
102
|
*/
|
|
103
|
-
export declare function removePermissionsFromRole(roleId: string, permissionIds: string[], actorId?: string): Promise<
|
|
103
|
+
export declare function removePermissionsFromRole(applicationId: string, roleId: string, permissionIds: string[], actorId?: string): Promise<{
|
|
104
|
+
reauthenticationRequired: boolean;
|
|
105
|
+
}>;
|
|
104
106
|
/**
|
|
105
107
|
* Get all permissions assigned to a role.
|
|
106
108
|
*
|
|
109
|
+
* @param applicationId - Parent application UUID
|
|
107
110
|
* @param roleId - Role UUID
|
|
108
111
|
* @returns Array of permissions
|
|
109
112
|
*/
|
|
110
|
-
export declare function getPermissionsForRole(roleId: string): Promise<Permission[]>;
|
|
113
|
+
export declare function getPermissionsForRole(applicationId: string, roleId: string): Promise<Permission[]>;
|
|
111
114
|
//# sourceMappingURL=role-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-service.d.ts","sourceRoot":"","sources":["../../src/rbac/role-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"role-service.d.ts","sourceRoot":"","sources":["../../src/rbac/role-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAwBH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqBrF;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCxF;AAMD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAa1F;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAE9F;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAEnF;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,wBAAwB,EAAE,OAAO,CAAA;CAAE,CAAC,CAoE5D;AAMD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,wBAAwB,EAAE,OAAO,CAAA;CAAE,CAAC,CAkChD;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,wBAAwB,EAAE,OAAO,CAAA;CAAE,CAAC,CAgChD;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,EAAE,CAAC,CAIvB"}
|