docs: document T-Bank cache generation boundary
This commit is contained in:
@@ -24,6 +24,26 @@ sequenceDiagram
|
||||
|
||||
`INVALID_TBANK_TOKEN` означает, что T-Bank отклонил аутентификацию или права доступа. `TBANK_UNAVAILABLE` означает временную ошибку, превышение лимита, ожидание в очереди или другую ошибку внешнего сервиса.
|
||||
|
||||
## Граница финансового кэша
|
||||
|
||||
Каждый успешный `PUT` заново шифрует token с новым AES-GCM nonce. Backend
|
||||
вычисляет из сохранённого шифротекста непрозрачную внутреннюю generation и
|
||||
разрешает повторно использовать Portfolio Snapshot и Ledger Page Cache только
|
||||
для текущей generation. Generation не хранится отдельным полем, не входит в
|
||||
API, logs или errors. Поэтому сохранённый или поздно завершившийся ответ
|
||||
предыдущего подключения не обслуживает запрос после создания, замены или
|
||||
удаления connection, включая замену тем же plaintext token.
|
||||
|
||||
После успешного `PUT` или `DELETE` frontend сначала коммитит подтверждённый
|
||||
статус connection, затем сбрасывает все generated GET query в
|
||||
`/api/v1/brokerage-accounts` subtree. Активные выборки запрашиваются заново, а
|
||||
неактивные загружаются при следующем использовании; данные предыдущей границы
|
||||
не остаются Client Cached Snapshot. Неуспешная mutation не меняет status,
|
||||
backend generation или financial cache. Обычная ошибка фонового refetch
|
||||
сохраняет Client Cached Snapshot текущей generation. Logout остаётся отдельной
|
||||
границей Session и полностью очищает status connection и остальные
|
||||
session-scoped query.
|
||||
|
||||
## Конфигурация и ограничения
|
||||
|
||||
- `TOKEN_ENCRYPTION_KEY` - закодированный в base64 32-байтный ключ AES-256-GCM; обязателен при запуске.
|
||||
|
||||
Reference in New Issue
Block a user