Esse projeto utiliza Python 3.8.6.
O objetivo desse projeto é através de uma aplicação implementar os requisitos de anonimização da LGPD. Aplicação deve ser capaz de anonimizar e manipular dados anonimizados ou não dos clientes em relatórios da empresa.
Inicialmente a aplicação está despreparada para implementar a LGPD, pois o banco de dados não se encontra da 3ª forma normal, contendo dados repetidos e nenhuma interface na api para anoimização de clientes.
- Crie o ambiente virtual
python3 -m virtualenv env
- Instale os drivers para conectar com o banco mysql localmente
sudo apt install libmysqlclient-dev
- Ative o ambiente virtual
source env/bin/activate
- Instale as dependências
pip install -e .
- Crie o database e o usuário
sudo mysql -u USER -p < database/permission.sql
- 1ª Sprint
- [10] Anonimização de dados por nullificação
- [11] Relatório de dados do cliente
- 2ª Sprint
- [20] Migrar o novo esquema do banco de dados
- [21] Retirar cadastros duplicados
- [22] Aprimorar técnica de anonimização (generalização)
- 3º Sprint
- [30] Anonimização por tempo de retenção de dados
- [31] Relatório de transações com total de transações
- 4ª Sprint
- [40] Script para restaurar backup
- [41] Script para fazer backup
- [42] Automatização da reanonimização após recuperação dos dados
- [43] End-point para anonimizar em massa Para melhor informções, veja os arquivos de
Cada sprint tem seu escopo, as tarefas finais daquele sprint devem ter coerência.
Cada sprint deve trabalhar para entregar valor ao cliente, a fim de que no final o objetivo seja cumprido.
Para que cada entrega tenha valor realmente, é preciso que ela solucione um ou mais problemas do cliente.
A tecnica usada para anonimização é a de generalização. Onde é apagado os dados para que o cliente não possa ser identificado em grupo de pessoas, por exemplo: Eduardo Sakaue, professor da FATEC, passa a ser Eduardo, professor.
Para simplificar o problema da anonimização por tempo de retenção, foi adicionado um background scheduler. Essa não é a melhor solução , o ideal é usar um serviço externo e manter a aplicação stateless.