Skip to content

refactor(pii): remove PII de participante não utilizada do modelo de dados - #8

Open
bentoluizv wants to merge 2 commits into
PythonFloripa:masterfrom
bentoluizv:feat/minimize-pii
Open

refactor(pii): remove PII de participante não utilizada do modelo de dados#8
bentoluizv wants to merge 2 commits into
PythonFloripa:masterfrom
bentoluizv:feat/minimize-pii

Conversation

@bentoluizv

@bentoluizv bentoluizv commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Contexto

Os dados de participantes (nome, email, telefone, CPF, cidade, geolocalização de check-in) vêm da tech.floripa.br e eram persistidos no DynamoDB de forma redundante entre as tabelas. A maior parte nunca é usada para gerar, entregar ou validar um certificado. Este PR reduz o modelo de dados para armazenar apenas o necessário, eliminando PII desnecessária do nosso lado.

Faz parte de um conjunto de PRs nos 4 repositórios do certify (api, builder, notification, infra).

O que muda

  • Remove cpf, phone, city e a geolocalização de check-in das entidades (Participant, Order, Certificate, Product), do CertificateItemRequest (batch), do TechOrdersResponse, dos mappers e do repositório de participantes.
  • Remove participant_document (CPF) das respostas das APIs de consulta/listagem — era um vazamento adicional de PII nas respostas.
  • Remove os métodos de busca por cpf/city do repositório (os índices correspondentes saem no PR de infra).
  • Mantém email: é necessário para entrega/consulta do certificado e é exigido pelo serviço de registro na Solana (certificates-on-solana), onde também compõe o hash de validação — apenas uma versão mascarada do email vai on-chain.
  • Adiciona scripts/scrub_pii.py para limpar a PII já armazenada nos itens existentes (dry-run por padrão, sem default apontando para produção).

Testes

pytest — 9 testes passando.

Notas de deploy

  • Rodar o scrub após a remoção dos índices cpf/city (PR de infra).

…dados

Remove cpf, phone, city e a geolocalização de check-in das entidades, do
request em lote, da resposta tech-order, dos mappers e do repositório de
participantes — nenhum desses campos é usado para produzir, entregar ou
validar um certificado. Também remove participant_document (CPF) das
respostas das APIs de consulta/listagem e os métodos de busca por
cpf/cidade. Testes e README atualizados.
Adiciona scripts/scrub_pii.py para remover os atributos de PII já
armazenados nos itens existentes (cpf, phone, city e geolocalização de
check-in), com os nomes de atributo específicos de cada tabela
(participants, orders, certificates).

Roda em dry-run por padrão e exige --apply mais o nome explícito de cada
tabela — não há default apontando para produção. Deve ser executado após
a remoção dos índices cpf/city. Inclui testes da montagem da expressão
REMOVE.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants