LGPD — Arquitetura e Conformidade Técnica¶
Objetivo¶
Consolidar o estado de adequação técnica da plataforma Billings Ease à LGPD, com foco em dados pessoais sensíveis de saúde.
Data de referência: 2026-03-06
Escopo¶
- Backend:
billings-ease-backend - Web:
billings-ease-web - Mobile:
billings-ease-mobile
Contexto regulatório¶
A plataforma processa dados pessoais sensíveis de saúde (ex.: ciclos, observações clínicas e dados reprodutivos).
Por isso, o baseline técnico deve contemplar:
- controle de acesso estrito por escopo e vínculo;
- trilha de auditoria para ações do titular;
- proteção de dados em trânsito e em repouso;
- mecanismos operacionais para direitos do titular;
- governança de retenção, anonimização e terceiros.
Estado atual consolidado¶
1) Direitos do titular (backend) — implementado¶
Módulo dedicado em internal/modules/lgpd:
POST /api/v2/lgpd/me/data-export-requestsGET /api/v2/lgpd/me/data-export-requests/:request_idGET /api/v2/lgpd/me/data-export-requests/:request_id/downloadPOST /api/v2/lgpd/me/account-deletion-requestsPOST /api/v2/lgpd/me/account-deletion-requests/:request_id/confirmPATCH /api/v2/lgpd/me/personal-dataPOST /api/v2/lgpd/me/consents/revokeGET /api/v2/lgpd/me/requestsGET /api/v2/lgpd/me/consents/history
Controles aplicados no fluxo:
- isolamento estrito por
user_idno service layer; - trilha de eventos append-only para ações LGPD;
- exportação assíncrona com status e URL assinada para download;
- exclusão com confirmação explícita e geração de job de apagamento;
- correção de e-mail com senha atual obrigatória e confirmação por token (
purpose=email_change).
2) Persistência e auditoria LGPD — implementado¶
Migrações:
migrations/033_create_lgpd_core_tables.sqlmigrations/034_seed_lgpd_retention_rules.sqlmigrations/035_add_email_change_fields_to_email_verifications.sql
Tabelas:
lgpd_requestslgpd_eventsconsent_purposesuser_consent_eventsdata_retention_rulesdata_erasure_jobs
3) Endurecimento de acesso (IDOR/BOLA) — implementado¶
Baseline atual contempla correções de autorização por escopo em endpoints críticos (users, recursos clínicos e sync), com regressão automatizada no backend.
4) Proteção de documentos sensíveis (R2) — implementado¶
- URLs assinadas e expiráveis para objetos sensíveis (
clients/*,professionals/*); - expiração curta (15 minutos).
5) Exclusão de conta: bloqueio imediato — implementado¶
Ao confirmar exclusão (status=scheduled):
- usuário é desativado imediatamente (
is_active=false); - sessões de refresh são revogadas;
- middleware JWT bloqueia uso de token ativo para usuário inativo (
403 Usuario inativo); - frontend web limpa sessão local e redireciona para
/loginao receber esse 403.
6) Segurança de conexão com banco — implementado¶
- remoção de fallback inseguro para
sslmode=disable; - validação de configuração em produção para rejeitar
sslmode=disableemDATABASE_URLouDB_SSLMODE.
7) Frontend Web LGPD — implementado¶
Central de privacidade e dados com rotas:
/privacy/my-data/data-export/delete-account/cookie-preferences/consents/lgpd/requests
Funcionalidades disponíveis:
- solicitar exportação + download;
- solicitar e confirmar exclusão;
- correção de dados pessoais (incluindo e-mail com senha atual);
- revogação e histórico de consentimentos;
- resumo com reidratação da última exportação após refresh.
8) Logs e minimização — parcial¶
- logs HTTP sem query string (registro de
pathem vez de URI completa).
Pendente:
- mascaramento transversal de PII/dados sensíveis por domínio e por tipo de evento.
Gaps remanescentes¶
Alta prioridade¶
- mobile alinhado ao fluxo LGPD (versionamento de aceite, direitos do titular e UX completa);
- política técnica completa de retenção por categoria de dado em todos os domínios;
- criptografia em repouso para colunas sensíveis (ex.: CPF, documentos, notas de saúde);
- mascaramento padronizado de PII em logs de aplicação por contexto.
Média prioridade¶
- painel operacional de atendimento LGPD (SLA, fila, motivos de bloqueio);
- monitoria de acesso a dados sensíveis por recurso/tabela;
- step-up de autenticação para ações críticas (MFA para download de exportação e confirmações críticas).
Baixa prioridade¶
- comprovante de aceite versionado em PDF com hash;
- diff semântico entre versões de documentos jurídicos.
Roadmap técnico recomendado¶
Próxima onda (sem mobile)¶
- concluir política de retenção/anonimização por categoria em toda a base;
- ampliar monitoria/auditoria por recurso sensível;
- publicar runbook de atendimento LGPD (SLA, playbooks e bloqueios).
Onda mobile¶
- alinhar aceite versionado;
- implementar central LGPD equivalente à web.
Checklist resumido¶
- [x] Versionamento de termos e aceites
- [x] Endpoints de direitos do titular no backend
- [x] Trilha de auditoria LGPD no backend
- [x] Endurecimento IDOR/BOLA em endpoints críticos
- [x] URLs assinadas para documentos sensíveis
- [x] Remoção de fallback de DB sem SSL
- [x] Bloqueio imediato do usuário ao agendar exclusão
- [x] Logout forçado no frontend para usuário inativo
- [ ] Retenção/anonimização automatizadas em todos os domínios
- [ ] Criptografia em repouso por coluna sensível
- [ ] UX completa LGPD (mobile pendente)
- [ ] Governança técnica de terceiros (RoPA/evidências)
Referências internas¶
- Backend API:
docs/02-backend/api.md - Backend estado atual:
docs/02-backend/estado-atual.md - Governança técnica:
docs/01-arquitetura/governanca/invariantes.md