Go to file
Simon Vieille 312c92d56f
Some checks failed
ci/woodpecker/push/build unknown status
ci/woodpecker/push/test Pipeline failed
add/update readme
2024-04-01 15:45:34 +02:00
.woodpecker tests: add pg in ci 2024-03-31 22:28:45 +02:00
app add postgres column type check 2024-04-01 12:30:45 +02:00
config fix dsn when when th database is postgresql 2024-03-31 22:18:28 +02:00
data remove tests 2024-04-01 12:31:03 +02:00
database add postgres column type check 2024-04-01 12:30:45 +02:00
faker remove boolean_boolint faker 2024-04-01 12:29:21 +02:00
logger add logger 2024-03-16 15:23:34 +01:00
tests tests: add mysql/postgres datas 2024-04-01 12:29:51 +02:00
.gitignore add gitignore config 2024-03-16 15:24:00 +01:00
example.yml add/update readme 2024-04-01 15:31:20 +02:00
go.mod add faker manager 2024-03-19 16:09:59 +01:00
go.sum add faker manager 2024-03-19 16:09:59 +01:00
main.go add/update readme 2024-04-01 15:44:01 +02:00
Makefile add makefile 2024-03-19 06:50:22 +01:00
README.fr.md add/update readme 2024-04-01 15:45:34 +02:00

Database Anonimize

Database Anonimizer 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 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

Pour afficher l'aide, utiliser -h :

database-anonymizer -h

Voici des exemples pour MySQL et PostgreSQL :

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