Ferramentas
RLS por papel (owner/admin/staff): segurança à prova de recepcionista
"À prova de recepcionista" é o critério de design do ERPSb: se uma recepcionista consegue apagar configuração fiscal sem querer, o erro é da arquitetura, não da pessoa. A solução é RLS (Row Level Security) do Supabase combinada com 3 papéis fixos — não é sobre confiar mais ou menos em alguém, é sobre o que a interface sequer mostra para cada papel.
Os 3 papéis:
owner(dona da clínica): acesso total.admin(Monica, no papel de administradora do sistema): pode alterar configuração fiscal.staff(recepcionistas): pode criar atendimento, registrar pagamento manual, reenviar nota — não pode editar serviço, tocar em dados fiscais ou ver tokens de integração.
Como a permissão é aplicada, em duas camadas:
- No banco (RLS real): políticas do Postgres que bloqueiam a leitura/escrita de tabelas sensíveis (
app_config,service_fiscal_map) para quem não éowner/admin— a proteção existe mesmo que alguém tente acessar por fora da interface. - Na interface: o menu "Configurações" não é renderizado para
staff. Não é um botão desabilitado visível — é inexistente na tela. O princípio: o que não se vê, não se apaga sem querer.
Camadas complementares que sustentam a mesma promessa:
- Soft delete universal: nenhuma linha é apagada de verdade (
deleted_atem vez deDELETE) — "apagar" é reversível por até 30 dias com um botão "Desfazer". - Trilha de auditoria: toda mudança em tabela sensível registra quem mudou, quando e o valor anterior — "quem mudou a alíquota?" tem resposta em 30 segundos, sem suspeita entre a equipe.
- Segredos fora do banco editável: tokens da Focus NFe e do Mercado Pago vivem em variáveis de ambiente da Vercel (ou Supabase Vault) — a tela mostra no máximo "Integração conectada ✅", nunca o token em si, então não existe campo para apagar por engano.
Por que isso importa comercialmente, não só tecnicamente: o medo de "quebrar o sistema" é o que leva a equipe a voltar para o caderninho de papel — a arquitetura de permissão existe para que a frase de treinamento seja literalmente verdadeira: "vocês não conseguem quebrar o sistema; tudo que fazem pode ser desfeito."
Fontes:
wargames/erpsb-clinica.md(2026-07-06) — Ponto de Falha 3, esquema SQL deuser_rolese políticas RLS.- ERPSb: ERP open-source para automação de NFS-e no Pix (publicado) — funcionalidade nº 5, "à prova de recepcionista".
Relacionados: ERPSb: ERP open-source para automação de NFS-e no Pix · Dashboard Semáforo: visualização de pendências fiscais · Stack técnica: Next.js + Supabase Pro + Vercel Hobby + pg_cron · Produto 2 — Blindagem Operacional 2027 (R$ 7.000)