feat(identity): redesign identity module and introduce RBAC foundation

- Redesign the Identity module with a richer domain model.
- Extend the User entity to support username, Authentik integration, activity tracking, and storage information.
- Add Role and Permission domain models with many-to-many relationships.
- Implement RBAC foundation using UserRole, RolePermission, and UserPermission mappings.
- Add user storage quota and usage fields with default values.
- Introduce Authentik identifiers and synchronization metadata.
- Refactor user domain logic for role and permission management.
- Update Prisma schema to support the new identity architecture.
- Improve JWT authentication and permission guard integration.
- Update repositories, handlers, controllers, mappers, DTOs, and Swagger configuration.
- Refresh environment configuration and project dependencies.
This commit is contained in:
Rayyan
2026-08-02 00:25:36 +07:00
parent fdbfb34842
commit 7ce0de4e91
132 changed files with 7754 additions and 2037 deletions
@@ -0,0 +1,17 @@
-- Migration: add_authentik_fields
ALTER TABLE "User"
ADD COLUMN IF NOT EXISTS "authentikUserId" TEXT;
ALTER TABLE "User"
ADD COLUMN IF NOT EXISTS "authentikSubject" TEXT;
ALTER TABLE "User"
ADD COLUMN IF NOT EXISTS "lastSyncedAt" TIMESTAMP;
ALTER TABLE "User"
ADD COLUMN IF NOT EXISTS "syncStatus" TEXT;
-- Optional: add unique constraints if desired
-- DO NOT add unique constraints without verifying existing data
-- ALTER TABLE "User" ADD CONSTRAINT "User_authentikUserId_key" UNIQUE ("authentikUserId");