Modelo de dados
O Kortex Insight usa multi-tenancy logico: todos os tenants compartilham o mesmo banco de dados, mas os dados sao isolados portenantId em cada tabela.
Tenant
Representa uma organizacao. Cada tenant possui:- slug unico (ex:
empresa-xyz) - apiKey gerada automaticamente para endpoints publicos
- Configuracao de rate limit de WhatsApp opcional
Account
Agrupamento logico dentro de um tenant. Cada account pode ter:- Multiplos usuarios
- Multiplas instancias WhatsApp
- Uma instancia WhatsApp default
Isolamento
Todos os endpoints autenticados extraem o
tenantId automaticamente do JWT.
Nao e necessario passar o tenant em nenhuma requisicao autenticada.| Camada | Mecanismo |
|---|---|
| API | tenantId extraido do JWT pelo guard |
| Service | Filtro por tenantId em todas as queries |
| Database | Indices compostos com tenantId |
Endpoints publicos
Para endpoints publicos (/public/* e /webhooks/*), o tenant e identificado
pelo header x-tenant-key, que mapeia para a apiKey do tenant.