📘 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.