Skip to main content

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.

  1. Identificação: Toda requisição autenticada carrega o contexto do Tenant (geralmente extraído do usuário logado).
  2. 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 = '...'.
  3. 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).