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
| Método | Ruta | Auth | Descripción |
|---|---|---|---|
GET | /api/v1/tenants | @Auth() | Lista tenants |
GET | /api/v1/tenants/:id | @Auth() | Obtiene un tenant |
POST | /api/v1/tenants | @Auth() | Crea tenant |
PATCH | /api/v1/tenants/:id | @Auth() | Actualiza tenant |
DELETE | /api/v1/tenants/:id | @Auth() | Elimina tenant |
POST | /api/v1/tenants/:id/tokens | @Auth() | Agrega un token de Frame Login |
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