/lgpd

Primary LanguagePython

ANONIMIZAÇÃO LGPD

Esse projeto utiliza Python 3.8.6.

AUTORES

Objetivo

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.

Situação Inicial

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.

Instalação

  • 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

Backlog

  • 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

Sprints

Cada sprint tem seu escopo, as tarefas finais daquele sprint devem ter coerência. diagrama das sprints

Progressão de valor

Cada sprint deve trabalhar para entregar valor ao cliente, a fim de que no final o objetivo seja cumprido. diagram de progressao de valor do produto

Problemas

Para que cada entrega tenha valor realmente, é preciso que ela solucione um ou mais problemas do cliente. diagrama de problemas e soluções

Explicações

Tecnica de anonimização

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.

Background Job

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.