Skip to main content

Módulo Tenant

src/app/modules/tenant/

Gestiona los tenants (organizaciones clientes) del CRM. Cada recurso del sistema está aislado por tenantId.

Modelo — Tenant

CampoTipoDescripción
_idObjectIdID de MongoDB
identifierstring (UUID)ID externo único
namestringNombre del tenant
isActivebooleanEstado activo/inactivo
statusstringACTIVE | INACTIVE | SUSPENDED
tokens{ value, dateExpiration }[]Tokens para Frame Login
domainWhiteliststring[]Dominios permitidos para API Keys
createdAtDate
updatedAtDate

Endpoints

MétodoRutaAuthDescripció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 domainWhitelist para validar el origen de requests externos
  • AuthModule — valida tokens del array tokens en el Frame Login
  • Todos los módulos — usan tenantId para aislar datos