Multi-tenancy
A arquitetura da QuettaCode é fundamentalmente Multi-tenant. Isso significa que uma única instância da aplicação serve múltiplos clientes (Tenants), garantindo isolamento lógico total de dados.
O que é um Tenant?
Um Tenant (ou Inquilino) representa uma organização, empresa ou conta mestre dentro da plataforma. Cada Tenant possui seus próprios:
- Usuários
- Configurações
- Dados (Contatos, Mensagens, Documentos)
- Integrações (Canais de WhatsApp, Chaves de API)
Isolamento de Dados
O isolamento é garantido em nível de aplicação e banco de dados.
- Identificação: Toda requisição autenticada carrega o contexto do Tenant (geralmente extraído do usuário logado).
- Filtragem Automática: O framework de persistência da QuettaCode aplica filtros globais (ex: Hibernate Filters) para garantir que todas as consultas SQL incluam automaticamente a cláusula
WHERE tenant_id = '...'. - Segurança: Um usuário de um Tenant A jamais conseguirá acessar dados do Tenant B, mesmo que tente manipular IDs na URL, pois o filtro de segurança bloqueará o acesso.
Contexto do Tenant
Ao desenvolver integrações, você geralmente não precisa se preocupar em enviar o ID do Tenant explicitamente, pois ele é inferido a partir do seu Token de Autenticação.
Entretanto, para parceiros que gerenciam múltiplos sub-tenants (Revenda/White Label), pode haver headers específicos (X-Tenant-ID) para assumir o contexto de um sub-cliente. (Consulte a documentação Enterprise para detalhes).