Ir para o conteúdo

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-requests
  • GET /api/v2/lgpd/me/data-export-requests/:request_id
  • GET /api/v2/lgpd/me/data-export-requests/:request_id/download
  • POST /api/v2/lgpd/me/account-deletion-requests
  • POST /api/v2/lgpd/me/account-deletion-requests/:request_id/confirm
  • PATCH /api/v2/lgpd/me/personal-data
  • POST /api/v2/lgpd/me/consents/revoke
  • GET /api/v2/lgpd/me/requests
  • GET /api/v2/lgpd/me/consents/history

Controles aplicados no fluxo:

  • isolamento estrito por user_id no 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.sql
  • migrations/034_seed_lgpd_retention_rules.sql
  • migrations/035_add_email_change_fields_to_email_verifications.sql

Tabelas:

  • lgpd_requests
  • lgpd_events
  • consent_purposes
  • user_consent_events
  • data_retention_rules
  • data_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 /login ao 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=disable em DATABASE_URL ou DB_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 path em 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