Aller au contenu
Démarrage rapide

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.

VariableRequiseDescription
BRUME_HMAC_SECRETouiSème FAKE, HASH, DATE_SHIFT, linked_columns. Chaîne à haute entropie d’au moins 16 caractères (32 et plus recommandés).
BRUME_FPE_KEYouiClé du cipher FF1 utilisé par FPE_ID / FPE_UUID. Exactement 16, 24 ou 32 caractères.

La base de laquelle Brume lit. Utilisez un compte en lecture seule.

VariableRequiseDescription
BRUME_SOURCE_HOSTouiNom d’hôte ou IP
BRUME_SOURCE_PORTnonPort. Défaut 5432.
BRUME_SOURCE_DBouiNom de la base
BRUME_SOURCE_USERouiNom d’utilisateur (lecture seule recommandé)
BRUME_SOURCE_PASSWORDouiMot de passe
BRUME_SOURCE_SSLMODEnondisable · prefer · require · verify-ca · verify-full. Défaut prefer.
BRUME_SCHEMAouiLe 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.

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 avec psql.
VariableRequiseDescription
BRUME_TARGET_HOSTouiNom d’hôte ou IP
BRUME_TARGET_PORTnonPort. Défaut 5460.
BRUME_TARGET_DBouiNom de la base
BRUME_TARGET_USERouiNom d’utilisateur (doit pouvoir CREATE et INSERT)
BRUME_TARGET_PASSWORDouiMot de passe
BRUME_TARGET_SSLMODEnonMêmes valeurs que la source.
VariableRequiseDescription
BRUME_SINK_TYPEouiDUMP
BRUME_SINK_OUTPUT_PATHouiChemin du fichier .sql que Brume écrit (par ex. ./dumps/dump.sql.gz)
BRUME_SINK_COMPRESSIONnonNONE · 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.

VariableRequiseDéfautDescription
BRUME_PARALLELISMnon20Taille du pool de connexions.
BRUME_LOCALEnonenLocale Datafaker (en, fr, de, …) — langue et formats des valeurs FAKE.
BRUME_PIPELINE_MODEnonSTREAMINGSTREAMING (par chunks, mémoire bornée) ou BATCH (tout en mémoire).
BRUME_DATE_SHIFT_MAX_DAYSnon30Fenêtre de DATE_SHIFT, en jours.
BRUME_PGDUMP_PATHnonpg_dumpLa commande pg_dump à lancer (éventuellement un chemin complet).
BRUME_CONFIG_PATHnonbrume.ymlChemin du fichier de règles.
Fenêtre de terminal
# --- Secrets (protéger au niveau des données source) ---
BRUME_HMAC_SECRET=8aZb4...kpR9 # ≥ 16 car. (32+ recommandés), haute entropie
BRUME_FPE_KEY=AnotherSecret16c # 16, 24 ou 32 car.
# --- Source (lecture seule) ---
BRUME_SOURCE_HOST=db.prod.internal
BRUME_SOURCE_DB=app_production
BRUME_SOURCE_USER=brume_reader
BRUME_SOURCE_PASSWORD=...
BRUME_SOURCE_SSLMODE=require
BRUME_SCHEMA=public
# --- Sink = JDBC (Postgres local) ---
BRUME_SINK_TYPE=JDBC
BRUME_TARGET_HOST=localhost
BRUME_TARGET_DB=app_dev
BRUME_TARGET_USER=app
BRUME_TARGET_PASSWORD=...
# --- Options ---
BRUME_PARALLELISM=8
BRUME_LOCALE=fr

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.