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​

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étodoRutaAuthDescripción
POST/api/v1/tenants/createAdministrador de plataformaCrea tenant
GET/api/v1/tenants/get-allAdministrador de plataformaLista tenants
GET/api/v1/tenants/get-one/:idAdministrador de plataformaObtiene un tenant
PATCH/api/v1/tenants/update/:idAdministrador de plataformaActualiza tenant
DELETE/api/v1/tenants/remove/:idAdministrador de plataformaElimina tenant
POST/api/v1/tenants/:id/tokensAdministrador de plataformaAgrega un token de Frame Login
DELETE/api/v1/tenants/:id/tokens/:tokenValueAdministrador de plataformaElimina 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 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