Multi-tenant Seguro e LGPD com PostgreSQL RLS
1 Nov 2023
2 min read
O Desafio B2B
Como Co-fundador e Arquiteto desta plataforma SAEB Fácil, a principal premissa exigida pelos investidores e prefeituras perante as escolas foi que não houvesse o mínimo de interseção de dados sob conformidade rigorosa com a LGPD.
Hospedar N bancos de dados encarecia a precificação SaaS tornando-se inviável (isolamento físico inviável e caro).
As Soluções Implementadas
- Row Level Security (RLS): Refatorei todo acesso no cluster PostgreSQL empregando RLS. Assim, mesmo na possibilidade de um erro grosseiro numa requisição no meu Node.js backend (ou bug de permissões no Prisma/TypeORM), o próprio banco blindou e escondeu instantaneamente alunos da tabela se a sessão global do request não pertencesse ao mesmo ID de locatário (Escola) solicitante.
- Full Text Search Otimizado: Mantive latências absurdas de baixas (<50ms) durante pesquisas com sintaxe
TSVECTORao banco inteiro preenchido de mais de 10.000 questões educacionais mescladas por tags. Empregando índices GIN pesados, consegui uma busca poderosa sem onerar ElasticSearch. - Direito ao Esquecimento: Algoritmo de deleção e mascaramento que destroi PII mas perpetua históricos anonimizados essenciais pra predição educacional.
O Impacto
O custo enxuto atraente da cloud aliada a um Enterprise-grade Security Model chancelou as prefeituras a usarem a nossa plataforma em suas administrações.
Gostou do que leu?
Vamos conversar sobre como posso ajudar no seu projeto.