Anonimizando base MySQL com Python
Ou como contribuímos com o mysql-anonymous para nos ajudar nisso
Assim como eu, você já deve ter passado por situações em que você precisava de uma base dados para subir o seu projeto similar ao ambiente de produção, localmente. Certo? O problema de gerar uma réplica do banco de dados em produção para ser executado localmente é bem tranquilo de resolver. O que é um pouco mais complexo é gerar uma base sem as informações sigilosas dos clientes, o que põe mais um pontinho no grau de complexidade. Se você tiver que seguir um compliance, então… mais um grau a ser respeitado.
Baseado nessas premissas que existiam, o time do qual eu fazia parte começou uma pesquisa antes de sair criando qualquer coisa. E chegamos ao mysql-anonymous, simples e rápido de utilizar. Bastava apenas configurar um YAML e nós já teríamos o dump que precisávamos, sem dependência externa, sem precisar se conectar ao banco e nem à internet para gerar o SQL. O único problema é que o projeto não recebia nenhuma atualização desde 2015, e não tinha nenhum teste para validar o processo de construção.
Como renasce uma fênix
O que eu acho muito legal de trabalhar com open source é que você pode fazer o seu fork e dar vida aquilo que ainda é funcional, mas precisa de alguém para cuidar.
O mysql-anonymous ganhou uma segunda oportunidade, agora com toda uma cobertura de teste, continuous integration, coverage e requires para garantir que todo o package seja funcional. Além de adicionar tudo isso, ainda colocamos algumas features legais que não existiam antes. Ele ainda não está no pypi, é o nosso próximo passo.
Quer ver como ficou?
Para instalar basta você executar o comando abaixo:
pip install https://github.com/riquellopes/mysql-anonymous/tarball/master
Como gerar seu primeiro dump
Após instalar o seu mysql-anonymous, se você já quiser ver um exemplo de dump sendo gerado basta digitar o comando anonymize -sample-one
e você terá um dump como o que você vai ver abaixo, logo após o YML que deu origem a ele:
Quando você estiver preparado para gerar o seu próprio YML, basta executar o comando a baixo:
$ anonymize -y file_name.yml
Na documentação você pode encontrar todos os tipos de anonimização, mas vou deixar aqui os que adicionamos, uma vez que são muito específicos do nosso país:
Ajuda é sempre bem-vinda
Se você nunca colaborou com um projeto open source, essa é a sua oportunidade! Entra, faz um fork, propõe melhorias, aumenta a cobertura de teste ou qualquer sugestão. Sempre existe algo a melhorar! Curtiu nossa contribuição, tem mais a fazer ou quer deixar sua opinião sobre o assunto? Deixe um comentário.
Até a próxima!