Aller au contenu
Démarrage rapide

Variables .env

Brume lit sa configuration depuis un fichier .env dans le répertoire de travail courant (ou depuis l’environnement du processus si .env est absent). Deux catégories : secrets (obligatoires) et connexions (une source, une cible).

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, linked_columns. N’importe quelle chaîne à haute entropie ≥ 32 caractères.
BRUME_FPE_KEYouiClé du cipher FF1 utilisé par FPE_ID / FPE_UUID. Doit faire au moins 16 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-full. Défaut prefer.

Soit une connexion Postgres, soit un répertoire pour la sortie .sql. Définissez un seul bloc, pas les deux.

VariableRequiseDescription
BRUME_TARGET_HOSTouiNom d’hôte ou IP
BRUME_TARGET_PORTnonPort. Défaut 5432.
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_TARGET_FILEouiChemin vers le fichier .sql que Brume écrira
BRUME_TARGET_FILE_COMPRESSnongzip pour compresser à la volée. Défaut : non compressé.

Quand BRUME_TARGET_FILE est définie, les variables Postgres cible sont ignorées.

VariableRequiseDéfautDescription
BRUME_FK_DEPTH_OVERRIDEnonSurcharge extraction.fk_depth depuis brume.yml. Utile en CI pour des runs de smoke rapides.
BRUME_PARALLELISMnon4Nombre de threads workers pour la transformation.
BRUME_LOG_FORMATnonprettypretty ou json. Le flag --json surcharge cette valeur.
BRUME_LOCALEnonsystèmeLocale pour Datafaker (par ex. fr_FR, en_US, de_DE).
Fenêtre de terminal
# --- Secrets (protéger au niveau des données source) ---
BRUME_HMAC_SECRET=8aZb4...kpR9 # ≥ 32 car., haute entropie
BRUME_FPE_KEY=AnotherSecret16ch # ≥ 16 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
# --- Cible = Postgres local ---
BRUME_TARGET_HOST=localhost
BRUME_TARGET_DB=app_dev
BRUME_TARGET_USER=app
BRUME_TARGET_PASSWORD=...
# --- Options ---
BRUME_PARALLELISM=8
BRUME_LOCALE=fr_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.