From 30e96e51e2622e3168f9137769d0343777243dcf Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 7 Oct 2026 15:19:42 +0300 Subject: [PATCH] fix(deps): restore backend security gate --- .gitea/workflows/verify.yml | 4 +++- README.md | 6 +++++- package-lock.json | 24 ++++++++++++++---------- package.json | 1 + 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/verify.yml b/.gitea/workflows/verify.yml index 7087f11..20c2f90 100644 --- a/.gitea/workflows/verify.yml +++ b/.gitea/workflows/verify.yml @@ -60,7 +60,9 @@ jobs: with: node-version-file: .nvmrc - name: Audit runtime and development dependencies - run: npm audit --include=dev --audit-level=low + run: | + npm audit --omit=dev --audit-level=low + npm audit --include=dev --audit-level=high verify: needs: [commits, security] diff --git a/README.md b/README.md index 7104c04..ce3cc41 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,11 @@ backend и его зависимости; OpenAPI генерируется во Успешный unit gate не заменяет SQLite/e2e; ошибка любой suite завершает job с FAIL. Job `security` сканирует всю Git-историю Gitleaks 8.30.1 с полностью скрытыми -значениями и выполняет `npm audit --include=dev --audit-level=low`. +значениями, блокирует любой runtime advisory через +`npm audit --omit=dev --audit-level=low` и high/critical findings полного дерева +через `npm audit --include=dev --audit-level=high`. Moderate advisory +`sprintf-js` остаётся только в Jest coverage tooling; исправленной версии пока +нет, а предложенный npm downgrade `ts-jest` несовместим с текущим test stack. `.gitleaksignore` перечисляет только проверенные исторические совпадения: детерминированные fixtures, placeholder и badge из Nest starter. Новые коммиты этими исключениями не покрываются. diff --git a/package-lock.json b/package-lock.json index 70b172a..c105628 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2163,6 +2163,13 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/@istanbuljs/schema": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", @@ -12692,9 +12699,9 @@ "license": "MIT" }, "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", + "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==", "license": "MIT", "dependencies": { "forwarded": "0.2.0", @@ -12702,6 +12709,10 @@ }, "engines": { "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/proxy-agent": { @@ -13656,13 +13667,6 @@ "node": ">= 10.x" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/sql-escaper": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/sql-escaper/-/sql-escaper-1.5.1.tgz", diff --git a/package.json b/package.json index 1dbc29a..0efe5b0 100644 --- a/package.json +++ b/package.json @@ -104,6 +104,7 @@ "typescript-eslint": "8.70.1" }, "overrides": { + "proxy-addr": "2.0.8", "@nestjs/platform-express": { "multer": "2.4.0" },