From 256d49b04591d55d980a22c49b413432c9bda746 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 7 Oct 2026 15:36:47 +0300 Subject: [PATCH] fix(deps): refresh docs security baseline --- architecture/containers.md | 6 +++--- architecture/http-api.md | 15 +++++---------- package-lock.json | 32 +++++++++++--------------------- package.json | 3 ++- 4 files changed, 21 insertions(+), 35 deletions(-) diff --git a/architecture/containers.md b/architecture/containers.md index 5884216..d471fc9 100644 --- a/architecture/containers.md +++ b/architecture/containers.md @@ -195,9 +195,9 @@ access token и вращаемый refresh token. [Политика query-кэш Авторизация доступа, недопущение token в публичный ответ и атомарность ротации сессии — отдельные свойства; наличие типизированного клиента -не доказывает их. Известные расхождения регистрации и деталей валидации -отмечены в [аутентификации](../domains/authentication/overview.md#регистрация-и-вход) -и [HTTP API](http-api.md#error-contract). +не доказывает их. Известное расхождение регистрации отмечено в +[аутентификации](../domains/authentication/overview.md#регистрация-и-вход), +а действующий формат ошибок описан в [HTTP API](http-api.md#error-contract). Поддерживается локальный Compose и ограниченная single-server topology с SQLite. Origin браузера, адрес API и cookie policy должны быть согласованы. diff --git a/architecture/http-api.md b/architecture/http-api.md index 5ab1082..75aa35a 100644 --- a/architecture/http-api.md +++ b/architecture/http-api.md @@ -70,16 +70,11 @@ message/stack. Типичный ответ: Для input validation контракт требует `400`, `VALIDATION_ERROR` и `errors` как массив `{ pointer, detail }`, где pointer адресует поле запроса. Это требование -не считается проверенным одним описанием OpenAPI: нужна проверка реального -HTTP-ответа после всех стадий обработки запроса. - -**Известное расхождение:** согласованная -[спецификация аутентификации](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/user-authentication/spec.md#requirement-стандартные-ответы-об-ошибках) -требует `pointer` и `detail` для невалидных полей. В текущей конфигурации -валидация формирует строковые сообщения, а фильтр ожидает структурированные -ошибки полей; поэтому корректность деталей `errors` не подтверждена. -Исправление требует отдельного изменения реализации и проверки полного -HTTP-потока. OpenAPI сам по себе этого расхождения не устраняет. +проверяется реальным HTTP-ответом после всех стадий обработки запроса. Глобальная +валидация передаёт фильтру структурированные ошибки без исходных значений и DTO, +а фильтр формирует JSON Pointer, включая вложенные поля. HTTP suites подтверждают +детали ошибок регистрации, банковской карты и синхронизации; OpenAPI отдельно +фиксирует форму ответа. Ответ не включает автоматически все поля RFC (`type`, `title`, `instance`). Добавление обязательного поля является изменением публичного контракта. diff --git a/package-lock.json b/package-lock.json index c059b25..dbc3594 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1738,13 +1738,13 @@ } }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz", + "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 12" + "node": ">=22.12.0" } }, "node_modules/concat-stream": { @@ -2780,9 +2780,9 @@ } }, "node_modules/katex": { - "version": "0.16.47", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", - "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.19.0.tgz", + "integrity": "sha512-v6Tznz3zJ7u3niRCoDTsumM2+HA2XXcCu+WAacCeHD2z3p9A9Ks987o5FzfTGBN0e8A0vjEgIDvLbICrXpdw/Q==", "dev": true, "funding": [ "https://opencollective.com/katex", @@ -2790,7 +2790,7 @@ ], "license": "MIT", "dependencies": { - "commander": "^8.3.0" + "commander": "^15.0.0" }, "bin": { "katex": "cli.js" @@ -3001,16 +3001,6 @@ "node": ">=22" } }, - "node_modules/markdownlint-cli/node_modules/commander": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz", - "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=22.12.0" - } - }, "node_modules/markdownlint-cli/node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -4345,9 +4335,9 @@ } }, "node_modules/smol-toml": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz", - "integrity": "sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.9.0.tgz", + "integrity": "sha512-hpd+HLON7HdZXqYchMM/+LaTTbdK0AU3NngIJ4KVyWbY9bfQqdL9cD+4yf6dUoU2Ap4VsU0JkQi6FxAI1B2mXQ==", "dev": true, "license": "BSD-3-Clause", "engines": { diff --git a/package.json b/package.json index 113e1d1..f908fca 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,10 @@ "release-it": "21.0.2" }, "overrides": { + "katex": "0.19.0", "markdownlint-cli@0.49.1": { "js-yaml": "5.4.2", - "smol-toml": "1.8.0" + "smol-toml": "1.9.0" }, "release-it": { "basic-ftp": "6.2.1", -- 2.54.0