add/update readme
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Simon Vieille 2024-04-01 15:31:20 +02:00
parent c9abeb8da8
commit b3ef84265d
Signed by: deblan
GPG key ID: 579388D585F70417
2 changed files with 53 additions and 5 deletions

View file

@ -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 <Le DSN de connexion à la base de données>`
- `--schema <Le chemin vers le fichier de configuration>`
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
```

View file

@ -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