Módulo Tenant
src/app/modules/tenant/
Gestiona los tenants (organizaciones clientes) del CRM. Cada recurso del sistema está aislado por tenantId.
Modelo — Tenant
| Campo | Tipo | Descripción |
|---|---|---|
_id | ObjectId | ID de MongoDB |
identifier | string (UUID) | ID externo único |
name | string | Nombre del tenant |
isActive | boolean | Estado activo/inactivo |
status | string | ACTIVE | INACTIVE | SUSPENDED |
tokens | { value, dateExpiration }[] | Tokens para Frame Login |
domainWhitelist | string[] | Dominios permitidos para API Keys |
createdAt | Date | — |
updatedAt | Date | — |
Endpoints
Controlador con @PlatformAdmin(): exige sesión válida (AuthGuard) y isPlatformAdmin = true (PlatformAdminGuard, 403 en otro caso). No usa @RequirePermission. Las rutas siguen CRUD_ROUTES.
| Método | Ruta | Auth | Descripción |
|---|---|---|---|
POST | /api/v1/tenants/create | Administrador de plataforma | Crea tenant |
GET | /api/v1/tenants/get-all | Administrador de plataforma | Lista tenants |
GET | /api/v1/tenants/get-one/:id | Administrador de plataforma | Obtiene un tenant |
PATCH | /api/v1/tenants/update/:id | Administrador de plataforma | Actualiza tenant |
DELETE | /api/v1/tenants/remove/:id | Administrador de plataforma | Elimina tenant |
POST | /api/v1/tenants/:id/tokens | Administrador de plataforma | Agrega un token de Frame Login |
DELETE | /api/v1/tenants/:id/tokens/:tokenValue | Administrador de plataforma | Elimina un token |
DTOs
CreateTenantDto
{
name: string
status?: 'ACTIVE' | 'INACTIVE' | 'SUSPENDED'
domainWhitelist?: string[]
}
AddTokenDto
{
value: string // token a agregar
dateExpiration: Date // fecha de expiración
}
Relación con otros módulos
- ApiKeyGuard — consulta
domainWhitelistpara validar el origen de requests externos - AuthModule — valida tokens del array
tokensen el Frame Login - Todos los módulos — usan
tenantIdpara aislar datos