From b3ef84265db8c989927b17546016ea7e7d314476 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 1 Apr 2024 15:31:20 +0200 Subject: [PATCH] add/update readme --- README.fr.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- example.yml | 7 ++++--- 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/README.fr.md b/README.fr.md index bbd0d09..33ac093 100644 --- a/README.fr.md +++ b/README.fr.md @@ -1,6 +1,53 @@ Database Anonimize ================== -**Database Anonimize** est un outil écrit en GO. Il permet d'anonymiser ou supprimer mes données d'une base de données **Mysql** ou **PostgreSQL**. +**Database Anonimize** est un outil écrit en GO et qui permet **d'anonymiser ou supprimer des données** d'une base de données **MySQL** ou **PostgreSQL**. -Il répond à plusieurs cas d'usags. Cela permet de **transférer une copie de base de données anonymisée à des développeur**. Il répond également à la nécessité d'anonymiser ou supprimer des données dans le cadre du RGPD (Règlement général sur la protection des données) selon les durées de conservation définies dans le registre de traitement. +Il répond à plusieurs cas d'usags comme le **permettre de transférer une copie de base de données anonymisée à des développeurs et des développeuses** ou répondre à la nécessité d'anonymiser ou supprimer des données dans le cadre du RGPD (Règlement général sur la protection des données) selon des durées de conservation définies dans un registre de traitement. + +Le projet inclue une grande quantité de générateurs de données aléatoires. Il permet également de générer des données via des modèles écrits en Twig. Vous pouvez spécifier des règles précises pour chaque tables ou bien des règles globales appliquées sur chacunes des tables de votre configration. + +## Usage + +### Configuration + +La configuration est écrite en YAML. Voici un exemple complet : + +``` +rules: + columns: + phone: phone_e164number + generators: + person_name: [display_name] + actions: + - table: user + virtual_columns: + domain: internet_domain + columns: + firstname: person_firstname + lastname: person_lastname + email: "{{ (firstname ~ '.' ~ lastname ~ '@' ~ domain)|lower }}" + - table: company + columns: + name: company_name + - table: access_log + query: 'select * from access_log where date < (NOW() - INTERVAL 6 MONTH)' + delete: true + - table: user_ip + primary_key: [user_id, ip_id] + delete: true +``` + +### Exécution + +**Database Anonimize** a besoin de deux paramètres : + +- `--dsn ` +- `--schema ` + +Exemples : + +``` +database-anonymizer --dsn "mysql://username:password@tcp(db_host)/db_name" --schema ./schema.yaml +database-anonymizer --dsn "postgres://postgres:postgres@localhost:5432/test" --schema ./schema.yaml +``` diff --git a/example.yml b/example.yml index 99df3e5..da3b9e5 100644 --- a/example.yml +++ b/example.yml @@ -14,8 +14,9 @@ rules: - table: company columns: name: company_name - - table: post - query: 'select * from post where company_id is not null' + - table: access_log + query: 'select * from access_log where date < (NOW() - INTERVAL 6 MONTH)' delete: true - - table: training + - table: user_ip + primary_key: [user_id, ip_id] delete: true