From ca4138ebc28e1b3f60db1b24ecdbdb4711246600 Mon Sep 17 00:00:00 2001 From: IliesAllali Date: Thu, 1 Oct 2026 11:13:50 +0200 Subject: [PATCH] =?UTF-8?q?API=20:=20dotenv=2018.0.5,=20d=C3=A9marrage=20s?= =?UTF-8?q?ans=20ligne=20=C2=AB=20injected=20env=20=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reprend la PR Dependabot #34 (18.0.5, correctif publié depuis). Depuis la 17.0.0, config() écrit « ◇ injected env (N) from .env » à chaque démarrage, même sans fichier .env (vu avec la 18.0.5 : « injected env (0) »), ce qui glisse une ligne hors format dans les journaux JSON de production : config({ quiet: true }). Les autres ruptures de la 18.0.0 (préchargement -r dotenv/config retiré, .env.vault retiré) ne touchent pas Parenthèse, qui n'appelle que config() dans config/env.ts. La CLI Prisma garde sa propre copie de dotenv 16. 113 tests. Co-Authored-By: Claude Opus 5.5 --- backend/package-lock.json | 22 ++++++++++++++++++++-- backend/package.json | 2 +- backend/src/config/env.ts | 4 +++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 008728d..ab8e5f0 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -13,7 +13,7 @@ "@fastify/rate-limit": "^11.2.0", "@prisma/client": "^6.15.0", "bcryptjs": "^3.0.2", - "dotenv": "^16.6.1", + "dotenv": "^18.0.5", "fastify": "^5.6.1", "sharp": "^0.35.5", "zod": "^4.6.5" @@ -1745,6 +1745,19 @@ } } }, + "node_modules/c12/node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "devOptional": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/chai": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", @@ -1850,8 +1863,13 @@ } }, "node_modules/dotenv": { - "version": "16.6.1", + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-18.0.5.tgz", + "integrity": "sha512-aBrGvt6KhjxbEnatqMWOMidftwsrCiCvqh1yNIGB9QyF0J+VcWkKDMsvYOEm7ZS82oiV+BT1sTOtIlAmUlTpwQ==", "license": "BSD-2-Clause", + "bin": { + "dotenv": "dist/index.cjs" + }, "engines": { "node": ">=12" }, diff --git a/backend/package.json b/backend/package.json index 31e005d..549128d 100644 --- a/backend/package.json +++ b/backend/package.json @@ -22,7 +22,7 @@ "@fastify/rate-limit": "^11.2.0", "@prisma/client": "^6.15.0", "bcryptjs": "^3.0.2", - "dotenv": "^16.6.1", + "dotenv": "^18.0.5", "fastify": "^5.6.1", "sharp": "^0.35.5", "zod": "^4.6.5" diff --git a/backend/src/config/env.ts b/backend/src/config/env.ts index 38b9d31..8c2be82 100644 --- a/backend/src/config/env.ts +++ b/backend/src/config/env.ts @@ -1,7 +1,9 @@ import { config as loadDotenv } from 'dotenv' import { z } from 'zod' -loadDotenv() +// dotenv 17+ écrit « injected env (N) from .env » à chaque démarrage, même sans fichier : les journaux +// de l'API restent au format JSON de Fastify +loadDotenv({ quiet: true }) const DEV_DATABASE_URL = 'postgresql://postgres:postgres@localhost:5432/genealogy' const DEV_JWT_SECRET = 'dev-secret-change-me-please'