Variables .env.brume
Brume lit sa configuration depuis un fichier .env.brume dans le répertoire de travail courant (ou depuis l’environnement du processus si .env.brume est absent). Deux catégories : secrets (obligatoires) et connexions (une source, une cible).
Générez un template avec brume init dump (sink fichier SQL) ou brume init jdbc (sink PostgreSQL). Le nom de fichier historique .env n’est plus lu depuis Brume 1.5.
Ces deux valeurs sont l’« information supplémentaire » de l’art. 4.5 du RGPD — protégez-les au même niveau que les données source.
| Variable | Requise | Description |
|---|---|---|
BRUME_HMAC_SECRET | oui | Sème FAKE, HASH, DATE_SHIFT, linked_columns. Chaîne à haute entropie d’au moins 16 caractères (32 et plus recommandés). |
BRUME_FPE_KEY | oui | Clé du cipher FF1 utilisé par FPE_ID / FPE_UUID. Exactement 16, 24 ou 32 caractères. |
Connexion source
Section intitulée « Connexion source »La base de laquelle Brume lit. Utilisez un compte en lecture seule.
| Variable | Requise | Description |
|---|---|---|
BRUME_SOURCE_HOST | oui | Nom d’hôte ou IP |
BRUME_SOURCE_PORT | non | Port. Défaut 5432. |
BRUME_SOURCE_DB | oui | Nom de la base |
BRUME_SOURCE_USER | oui | Nom d’utilisateur (lecture seule recommandé) |
BRUME_SOURCE_PASSWORD | oui | Mot de passe |
BRUME_SOURCE_SSLMODE | non | disable · prefer · require · verify-ca · verify-full. Défaut prefer. |
BRUME_SCHEMA | oui | Le schéma à pseudonymiser, écrit exactement comme il est stocké (casse, accents et espaces compris, sans guillemets). Le même nom de schéma est utilisé sur la cible. |
Connexion cible (sink)
Section intitulée « Connexion cible (sink) »Brume supporte deux types de sink, choisis par BRUME_SINK_TYPE — brume init jdbc et brume init dump le renseignent pour vous :
JDBC(défaut) — écrit vers une cible PostgreSQL live.DUMP— écrit un fichier.sql, rechargeable avecpsql.
Sink = jdbc (base PostgreSQL)
Section intitulée « Sink = jdbc (base PostgreSQL) »| Variable | Requise | Description |
|---|---|---|
BRUME_TARGET_HOST | oui | Nom d’hôte ou IP |
BRUME_TARGET_PORT | non | Port. Défaut 5460. |
BRUME_TARGET_DB | oui | Nom de la base |
BRUME_TARGET_USER | oui | Nom d’utilisateur (doit pouvoir CREATE et INSERT) |
BRUME_TARGET_PASSWORD | oui | Mot de passe |
BRUME_TARGET_SSLMODE | non | Mêmes valeurs que la source. |
Sink = DUMP (fichier SQL)
Section intitulée « Sink = DUMP (fichier SQL) »| Variable | Requise | Description |
|---|---|---|
BRUME_SINK_TYPE | oui | DUMP |
BRUME_SINK_OUTPUT_PATH | oui | Chemin du fichier .sql que Brume écrit (par ex. ./dumps/dump.sql.gz) |
BRUME_SINK_COMPRESSION | non | NONE · GZIP · ZSTD. Défaut GZIP. |
Avec le sink DUMP, les variables cible sont ignorées et aucune connexion à la cible n’est ouverte. Le fichier contient le schéma (issu de pg_dump) et les lignes pseudonymisées ; il ne contient jamais de ligne qui casserait un index unique, il se recharge donc toujours avec psql.
Options d’exécution
Section intitulée « Options d’exécution »| Variable | Requise | Défaut | Description |
|---|---|---|---|
BRUME_PARALLELISM | non | 20 | Taille du pool de connexions. |
BRUME_LOCALE | non | en | Locale Datafaker (en, fr, de, …) — langue et formats des valeurs FAKE. |
BRUME_PIPELINE_MODE | non | STREAMING | STREAMING (par chunks, mémoire bornée) ou BATCH (tout en mémoire). |
BRUME_DATE_SHIFT_MAX_DAYS | non | 30 | Fenêtre de DATE_SHIFT, en jours. |
BRUME_PGDUMP_PATH | non | pg_dump | La commande pg_dump à lancer (éventuellement un chemin complet). |
BRUME_CONFIG_PATH | non | brume.yml | Chemin du fichier de règles. |
Exemple .env.brume
Section intitulée « Exemple .env.brume »# --- Secrets (protéger au niveau des données source) ---BRUME_HMAC_SECRET=8aZb4...kpR9 # ≥ 16 car. (32+ recommandés), haute entropieBRUME_FPE_KEY=AnotherSecret16c # 16, 24 ou 32 car.
# --- Source (lecture seule) ---BRUME_SOURCE_HOST=db.prod.internalBRUME_SOURCE_DB=app_productionBRUME_SOURCE_USER=brume_readerBRUME_SOURCE_PASSWORD=...BRUME_SOURCE_SSLMODE=requireBRUME_SCHEMA=public
# --- Sink = JDBC (Postgres local) ---BRUME_SINK_TYPE=JDBCBRUME_TARGET_HOST=localhostBRUME_TARGET_DB=app_devBRUME_TARGET_USER=appBRUME_TARGET_PASSWORD=...
# --- Options ---BRUME_PARALLELISM=8BRUME_LOCALE=frCréer un compte en lecture seule sur la source
Section intitulée « Créer un compte en lecture seule sur la source »Grants minimaux suggérés :
CREATE ROLE brume_reader WITH LOGIN PASSWORD '...';GRANT CONNECT ON DATABASE app_production TO brume_reader;GRANT USAGE ON SCHEMA public TO brume_reader;GRANT SELECT ON ALL TABLES IN SCHEMA public TO brume_reader;ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO brume_reader;Ajustez le nom du schéma si vos tables vivent hors de public.
- Commandes CLI — comment piloter Brume en ligne de commande.
- Exploitation & dépannage — gestion des secrets, performance, erreurs courantes.