docs(specs): archive auth and cache remediation
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
## Why
|
||||
|
||||
Backend допускает неограниченный рост process-local кэша страниц журнала и
|
||||
теряет детерминированность при конкурентных регистрации и refresh. Эти
|
||||
подтверждённые audit findings WL-P2-01—03 могут приводить к исчерпанию памяти,
|
||||
`500` вместо ожидаемого конфликта и отзыву успешно обновлённой Session.
|
||||
|
||||
## What Changes
|
||||
|
||||
- Заменить неограниченный cache страниц Account Ledger на bounded
|
||||
`lru-cache`: не более 100 страниц, TTL 30 секунд, LRU eviction и
|
||||
канонический cache key.
|
||||
- Сделать database unique constraint источником истины для параллельной
|
||||
регистрации и преобразовывать Prisma `P2002` в `409
|
||||
EMAIL_ALREADY_REGISTERED`.
|
||||
- Ротировать refresh token compare-and-swap обновлением Session, чтобы
|
||||
только один конкурентный запрос был успешным; superseded token отвечает
|
||||
`401` без отзыва Session победителя.
|
||||
- Добавить детерминированные service-level regression tests и обновить
|
||||
устойчивую auth/cache документацию, не объявляя временно неработающий
|
||||
Prisma e2e gate восстановленным.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
<!-- None. -->
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `user-authentication`: определяет детерминированные результаты
|
||||
конкурентной регистрации и refresh rotation, включая поведение superseded
|
||||
refresh token.
|
||||
- `brokerage-account-ledger`: определяет bounded process-local cache страниц
|
||||
журнала и его каноническую идентичность.
|
||||
|
||||
## Impact
|
||||
|
||||
- Backend: `AuthService`, `BrokerageOperationsService`, unit tests и
|
||||
production dependency `lru-cache`.
|
||||
- Specs: delta specifications для user authentication и brokerage account
|
||||
ledger.
|
||||
- Docs: ADR-009 и фактическая документация authentication/ledger cache.
|
||||
- Public HTTP routes и auth success statuses не меняются; их contract
|
||||
alignment остаётся отдельным WL-P2-04.
|
||||
Reference in New Issue
Block a user