food-market/src
nns 422b7ad5ea feat(auth): prod X509-ключи OpenIddict с persistent self-signed (P0-1)
OpenIddictKeyConfigurator: dev — прежний RSA-ключ в App_Data (поведение не
менялось, шифрование access-token выключено); prod/stage — отдельные X509
сертификаты подписи и шифрования из конфига (OpenIddict:SigningCertPath /
EncryptionCertPath / CertPassword, можно env). Нет файла → генерируется
persistent self-signed (RSA 2048, 5 лет) и сохраняется в App_Data (volume),
а не dev-ephemeral — токены переживают рестарт.

Проверено: prod выдаёт 5-сегментный JWE, /api/me 200; рестарт → те же
сертификаты (fingerprint совпал), pre-restart токен валиден. dev — 3-сегментный
JWT, /api/me 200. docs/openiddict-keys.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 02:47:00 +05:00
..
food-market.api feat(auth): prod X509-ключи OpenIddict с persistent self-signed (P0-1) 2026-05-27 02:47:00 +05:00
food-market.application fix(catalog): FK-guard удаления контрагента + валидация полей товара 2026-05-26 11:03:37 +05:00
food-market.domain feat(bootstrap): системная ProductGroup «Все товары» при создании org 2026-05-08 12:08:28 +05:00
food-market.infrastructure fix(migrations): чиним P0-блокеры разворачивания на чистой БД 2026-05-23 12:13:19 +05:00
food-market.pos Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00
food-market.pos.core Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00
food-market.public fix(validation): validatePassword проверяет заглавную и цифру (соответствует хинту) 2026-05-18 12:52:59 +05:00
food-market.shared Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00
food-market.web fix(validation): validatePassword проверяет заглавную и цифру (соответствует хинту) 2026-05-18 12:52:59 +05:00