Pular para o conteúdo
Dados e Relatórios

Isolamento multiempresa: o susto que eu tomei numa demonstração

Em grupo com várias empresas, número errado é problema. Dado de uma empresa aparecendo na outra é problema de outra categoria.

WAEquipe WebajatoPublicado em Atualizado em 9 minNível Avançado
Ilustração do módulo Dados e Relatórios da plataforma Webajato

Eu estava demonstrando um relatório para o sócio de uma das empresas do grupo quando ele apontou para um total e disse: "esse valor está alto demais para a gente". Estava mesmo. Levei um susto que durou uns dez segundos, até confirmar que o filtro estava certo e o número também. Mas naqueles dez segundos eu entendi por que isolamento multiempresa não é assunto que se resolve com confiança.

Em ambiente com uma empresa só, o pior erro de análise é um número torto. Em grupo, existe um erro de outra categoria: dado de uma empresa aparecendo para quem é de outra. Isso não se corrige com pedido de desculpas na reunião seguinte.

Vou mostrar onde o escopo é aplicado, o que continua sendo responsabilidade de quem configura e o roteiro de teste que eu rodo antes de liberar qualquer coisa para um grupo. As travas de execução estão detalhadas em text-to-SQL seguro.

Onde o isolamento multiempresa é aplicado

RecursoComo o escopo funcionaO que testar
Chat com dadosEscopo obrigatório por empresa na execução, acesso externo bloqueadoPedir dado de outra empresa e confirmar a recusa
Reports IDEFontes limitadas à empresa da sessãoMontar relatório numa empresa e conferir os totais
Relatório publicadoRota exige sessão e empresaAbrir o código publicado logado em outra empresa
Painel de relacionamentoVisão consolidada por empresaComparar o total do painel com a base de cada unidade
API do CRMIsolamento aplicado no filtro de autenticaçãoUsar token de uma empresa contra dado de outra

O que a plataforma garante

Na execução das consultas em linguagem natural, o escopo por empresa é obrigatório e o acesso a dados fora da empresa da sessão fica bloqueado. No editor de relatórios, as fontes são limitadas à empresa da sessão, e a rota publicada exige sessão e empresa. Na integração, o filtro aplica o isolamento junto com escopo, expiração e limite, quando as estruturas exigidas estão disponíveis no ambiente.

Esse último trecho merece leitura devagar. Parte dos controles depende de estruturas que precisam estar aplicadas no banco. Se elas não estiverem, a tela continua mostrando as opções e você acredita estar protegido. Rodar a checagem de estrutura descrita em comandos CLI é passo de implantação, não de manutenção.

O que continua na sua mão

A plataforma impede que a consulta atravesse a fronteira. Ela não decide quem, dentro da sua empresa, deveria ter acesso a qual unidade do grupo. Usuário com acesso a três empresas vai enxergar as três, e isso é configuração, não falha. Já vi confusão nascer daí: alguém trocou de empresa na sessão, esqueceu, montou um relatório e mandou para o time errado.

O roteiro de teste que eu rodo

  1. Crie um usuário de teste com uma empresa sóNão teste com o seu usuário de administrador. Ele enxerga tudo e vai aprovar qualquer coisa.
  2. Peça dado da outra empresa no chatFormule a pergunta citando a outra unidade pelo nome. O resultado precisa ser recusa ou vazio, nunca dado.
  3. Compare totais com a base de cada unidadeSome o faturamento de cada empresa separadamente e confira contra o relatório consolidado. Diferença exige explicação antes de liberar.
  4. Abra um relatório publicado logado na outra empresaA rota exige sessão e empresa. Confirme na prateleira, não no manual.
  5. Teste o token de integração cruzando empresaGere numa unidade e tente consultar dado de outra. Precisa falhar.
  6. Refaça depois de cada atualizaçãoTeste de isolamento não é rito de implantação, é rotina de manutenção. Coloque na agenda.

Eventos externos e empresa não resolvida

Existe um caso que costuma passar despercebido. Quando chega um evento externo e há várias contas do mesmo canal, o sistema não associa a empresa por suposição: registra e deixa a sincronização autenticada resolver. Consequência prática: registros sem empresa resolvida precisam de revisão de isolamento antes de qualquer exposição do painel. Vale reler webhooks do CRM com esse olhar.

  • Nenhuma associação de empresa é feita por adivinhação em evento ambíguo.
  • Registros sem empresa resolvida ficam pendentes de revisão.
  • A sincronização autenticada agendada cobre o que o evento não resolveu.
  • Exposição do painel só depois de tratar esses pendentes.
  • Alguém precisa olhar essa lista de tempos em tempos, ou ela cresce em silêncio.

Consolidar sem misturar

A diretoria de um grupo quer, legitimamente, ver o consolidado. O caminho seguro é montar a visão de grupo com números agregados, sem detalhe nominal cruzado entre unidades. Assim o holding enxerga o todo e cada empresa continua com a própria fronteira. As regras de quem vê o quê estão em governança de dados, e a organização geral do ambiente aparece em ERP e gestão.

Por onde eu começaria

Crie hoje um usuário de teste com acesso a uma empresa só e passe vinte minutos tentando enxergar dado de outra. É desconfortável fazer isso e é a coisa mais útil que você vai fazer na semana. Se tudo recusar, você ganhou tranquilidade documentada. Se algo passar, você achou antes que o cliente achasse.

Perguntas frequentes

O escopo por empresa é opcional?
Não. Nas consultas em linguagem natural, o escopo por empresa é obrigatório na execução e o acesso fora da empresa da sessão fica bloqueado.
Relatório publicado pode vazar entre empresas?
A rota publicada exige sessão e empresa, e as fontes do editor são limitadas à empresa da sessão. Ainda assim, teste abrindo o relatório logado em outra unidade durante a implantação.
A integração respeita o isolamento?
O filtro de autenticação aplica isolamento de empresa junto com escopo, expiração e limite, quando as estruturas exigidas estão disponíveis. Gere um token e tente cruzar empresa para confirmar.
E os eventos externos sem identificação de conta?
Não são associados por suposição quando existem várias contas do mesmo canal. Ficam registrados e exigem revisão de isolamento antes da exposição do painel.
Como a diretoria vê o grupo inteiro?
Com visão consolidada em números agregados, sem detalhe nominal cruzado entre unidades. O holding enxerga o todo e cada empresa mantém a própria fronteira de dado.
isolamento multiempresaescopo por empresasegurançagrupo empresarial
Mais sobre Dados e Relatórios

Outros módulos do blog

Cada módulo reúne um conjunto próprio de guias. Veja também o mapa do site com todos os artigos publicados.

Coloque esse conhecimento para rodar no seu dia a dia

Os temas daqui nascem de módulos reais da plataforma Webajato: ERP, financeiro, fiscal, estoque, PDV, loja virtual, marketplaces, CRM no WhatsApp, automação com IA e relatórios. Tudo em um único sistema multiempresa.

Conhecer a plataforma