📘 Guia de Referência — LGPD, Criptografia e Arquitetura

🎯 Princípio Central

LGPD não exige backend para tudo. Ela exige controle, minimização e proteção proporcional ao risco.

O erro comum é tratar LGPD como "tudo criptografado" ou "tudo passa por Cloud Function". Isso não é exigência legal e gera custo e latência desnecessários.


🧠 Modelo Mental: Regra de Ouro

Criptografe o que identifica. Armazene em claro o que apenas habilita decisões.


🧩 Classificação de Dados

🟢 Tipo A — Dados Operacionais (≈ 80–90%)

  • Usados no dia a dia, consultados frequentemente.
  • Exemplos: IDs internos, status, flags, dia/mês de aniversário, geohash, faixa etária, asaasCustomerId.
  • Tratamento: Firestore direto + Security Rules. Sem Cloud Function ou criptografia manual.

🔴 Tipo B — Dados Sensíveis Identificáveis

  • Alto risco jurídico, uso raro, não necessários para decisões diárias.
  • Exemplos: CPF, data de nascimento completa, endereço completo, dados bancários.
  • Tratamento: Criptografia AES-256-GCM, persistência separada, escrita via Cloud Function, leitura sob demanda.

🟡 Tipo C — Consentimentos e Provas

  • Exigência legal, para auditoria.
  • Tratamento: Firestore + timestamp.

🔐 Onde a Criptografia Entra

✅ Onde SIM

  • No momento de persistir dados sensíveis.
  • Em operações críticas: cadastro, atualização, exclusão, portabilidade.

❌ Onde NÃO

  • Leituras normais, listagens, dashboards.
  • Queries frequentes e funcionalidades diárias.

⚙️ Papel das Cloud Functions

As functions NÃO são um gateway universal para o Firestore. Elas são: * Camada de escrita segura. * Centralização de lógica LGPD. * Ponto único de criptografia / descriptografia. * Controle de acesso a dados críticos.


🧱 Estrutura Recomendada

Flutter App
   │
   │ leitura normal (direta)
   ▼
Firestore (dados operacionais)
   ▲
   │ escrita sensível (rara)
   │
Cloud Functions
   └─ criptografia + validação

🧠 Dados Derivados (Performance)

Dados derivados NÃO são dados sensíveis. Use-os para filtros e regras de negócio.

Dado Original Dado Derivado
Data de nascimento Dia / mês
Data completa Faixa etária
Endereço Bairro / cidade / geohash
Dados bancários Status / plano / vencimento

💸 Custo e Performance

  • Cloud Functions: Invocações raras, custo desprezível.
  • Firestore: Leitura direta, latência mínima.
  • Free Tier: Totalmente viável para o estágio atual do Vanguru.

🧾 Minimização de Dados

Sempre pergunte: "Qual decisão futura esse dado precisa permitir?" Se não houver resposta clara, não guarde ou use apenas o dado derivado.