← Voltar ao site
Como a segurança é incorporada na arquitetura e no desenvolvimento do Caixa Exato desde a concepção
A segurança do Caixa Exato é construída sobre dois princípios fundamentais que orientam todas as decisões de arquitetura e desenvolvimento:
As decisões de segurança abaixo foram tomadas na fase de modelagem do sistema, antes do desenvolvimento, e fazem parte da arquitetura fundamental da plataforma:
Cada empresa (tenant) possui um identificador único (tenant_id) vinculado a todos os seus dados no banco. O isolamento é garantido em nível de banco de dados via Row Level Security — não apenas na camada de aplicação — impedindo que dados de um cliente sejam acessados por outro, mesmo em caso de falha na lógica da aplicação.
Toda regra de negócio, validação e acesso ao banco de dados é executada em Server Actions do Next.js — código que roda exclusivamente no servidor. Nenhuma credencial, regra de autorização ou dado sensível é exposto ao navegador do usuário.
O sistema define perfis com permissões distintas desde a modelagem: ADMIN (equipe interna), DONO (titular da conta), FINANCEIRO e VENDEDOR (sub-usuários com acesso limitado). Cada rota e ação verifica o perfil antes de qualquer operação.
As restrições de quantidade de usuários por plano contratado são verificadas e aplicadas no servidor — não no frontend — impedindo que a regra seja contornada por manipulação de interface.
Os ambientes de desenvolvimento, homologação e produção são completamente isolados, com credenciais, bancos de dados e configurações independentes. Não há compartilhamento de dados entre ambientes.
Os controles abaixo estão ativos por padrão em toda a plataforma — nenhuma configuração adicional é necessária para ativá-los:
user_id, o banco recusa o acesso a dados de outros tenants| Controle | Implementação | Status |
|---|---|---|
| Isolamento de dados por tenant | Row Level Security (RLS) no PostgreSQL + tenant_id em todas as tabelas |
Ativo |
| Autenticação | Supabase Auth — bcrypt para senhas, JWT para sessões | Ativo |
| Criptografia em trânsito | HTTPS/TLS em todas as comunicações (Vercel + Supabase) | Ativo |
| Criptografia em repouso | AES-256 no Supabase (AWS RDS) | Ativo |
| Content Security Policy | CSP configurado no next.config.ts com allowlist de origens |
Ativo |
| Gestão de segredos | Variáveis de ambiente no Vercel — nunca no repositório | Ativo |
| Controle de acesso por perfil (RBAC) | Verificação de perfil em cada Server Action e rota | Ativo |
| Repositório privado | Código-fonte em repositório GitHub privado com acesso restrito | Ativo |
| Backup automático do banco | Snapshots diários com retenção de 7 dias (Supabase) | Ativo |
| Hashing de dados pessoais | SHA-256 aplicado a dados enviados a integrações externas | Ativo |
O acesso à plataforma é controlado por uma hierarquia de perfis com permissões distintas:
| Perfil | Quem é | Nível de acesso |
|---|---|---|
| ADMIN | Equipe interna do Instituto Carlesso | Acesso total a todos os tenants — exclusivo para operação interna |
| DONO | Titular da conta contratante | Acesso completo aos dados da própria empresa; pode criar sub-usuários |
| FINANCEIRO | Sub-usuário do DONO | Acesso ao módulo financeiro da empresa; sem acesso a configurações |
| VENDEDOR | Sub-usuário do DONO | Acesso ao módulo de vendas e CRM; sem acesso financeiro |
A quantidade de sub-usuários é limitada pelo plano contratado e verificada no servidor a cada criação. Nenhum usuário pode elevar seus próprios privilégios.
O Caixa Exato adota as seguintes práticas para prevenção e gestão de vulnerabilidades:
Em caso de incidente de segurança que possa comprometer dados pessoais ou financeiros dos usuários:
Para reportar vulnerabilidades, incidentes de segurança ou dúvidas sobre as práticas descritas neste documento:
Instituto Carlesso — Responsável de Segurança
E-mail: caixaexato@gmail.com
Relatórios de vulnerabilidade são tratados com prioridade e confidencialidade. Agradecemos a colaboração responsável da comunidade de segurança.