Skip to content

chore(config): supprimer credentials.yml.enc et dériver la connexion PG de DATABASE_URL en prod#94

Merged
julienanne merged 2 commits into
mainfrom
chore/remove-useless-informations
Jul 15, 2026
Merged

chore(config): supprimer credentials.yml.enc et dériver la connexion PG de DATABASE_URL en prod#94
julienanne merged 2 commits into
mainfrom
chore/remove-useless-informations

Conversation

@julienanne

Copy link
Copy Markdown
Contributor

Résumé

  • Supprime config/credentials.yml.enc, inutilisé (aucun appel actif à
    Rails.application.credentials dans le code — vérification exhaustive
    du dépôt). secret_key_base sera fourni en prod via la variable d'env
    SECRET_KEY_BASE.
  • Fait dériver la connexion PostgreSQL de production d'une seule variable
    DATABASE_URL (user, mot de passe, hôtes multiples séparés par des
    virgules, port), au lieu de HUBEE_DATABASE_PASSWORD + username en dur.

Détails techniques

DATABASE_URL ne doit pas contenir de nom de base à la fin — chaque
connexion logique (primary/cache/queue/cable) garde son propre
database: explicite dans database.yml.

Le parsing de l'URL est fait manuellement dans
lib/database_url_parser.rb plutôt que via la clé url: de Rails :
le parseur URI de Rails (URI::RFC2396_Parser) rejette les virgules
dans la partie hôte, alors que libpq gère nativement le multi-hôtes une
fois les valeurs transmises séparément via host:/port:.

Test plan

  • bin/ci vert (183 tests, coverage 98.1%) — déjà validé en local
  • Vérifier que l'infra de prod fournit bien DATABASE_URL sans nom
    de base et SECRET_KEY_BASE avant déploiement
  • spec/lib/database_url_parser_spec.rb couvre : hôte unique,
    multi-hôtes, port par défaut, port hérité du dernier hôte,
    mot de passe encodé, URL malformée

@julienanne
julienanne requested a review from damienlethiec July 15, 2026 07:56
@julienanne

Copy link
Copy Markdown
Contributor Author

Est-ce qu'il y a quelque chose à désactiver côté rails si on utilise pas les credentials ?

@julienanne

Copy link
Copy Markdown
Contributor Author

Est-ce qu'il y a quelque chose à désactiver côté rails si on utilise pas les credentials ?

Non c'est ok juste un peu de ménage

@julienanne
julienanne force-pushed the chore/remove-useless-informations branch 3 times, most recently from 94eb767 to 14fc6f7 Compare July 15, 2026 16:29
Aucun usage actif de Rails.application.credentials dans le code
(vérification exhaustive du dépôt). secret_key_base sera fourni
directement via la variable d'env SECRET_KEY_BASE en production.
DATABASE_HOST/PORT/USERNAME/PASSWORD remplacent HUBEE_DATABASE_PASSWORD
et le username en dur. DATABASE_HOST supporte plusieurs hôtes PG séparés
par des virgules (libpq les gère nativement une fois reçus via host:),
contrairement au parseur URI de Rails qui les rejette — d'où le choix
de 4 variables plutôt qu'une seule DATABASE_URL.

Les valeurs sont entre guillemets dans le YAML pour éviter que
"5432,5432,5432" soit lu comme un entier (la virgule est un séparateur
de milliers en YAML 1.1 dans un scalaire numérique non quoté).
@julienanne
julienanne force-pushed the chore/remove-useless-informations branch from 14fc6f7 to bcf5a59 Compare July 15, 2026 18:05
@julienanne
julienanne merged commit 9e1d86d into main Jul 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants