Files

2.4 KiB

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

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.