docs(specs): archive T-Bank cache boundary change

This commit is contained in:
2026-09-01 05:56:00 +03:00
parent 9ac04cdb44
commit 0386b6b26f
6 changed files with 382 additions and 3 deletions
@@ -7,15 +7,31 @@
## Requirements
### Requirement: Frontend сохраняет когерентность кэша T-Bank connection
Frontend MUST использовать идентичность кэша, с которой загружается статус T-Bank connection, когда успешная замена или удаление connection обновляет этот статус. После каждого успешного создания, замены или удаления connection frontend MUST инвалидировать идентичность кэша списка Brokerage Accounts, с которой этот список загружается.
Frontend MUST считать успешное создание, замену или удаление T-Bank connection новой границей повторного использования финансовых данных. Статус connection MUST сразу отражать результат успешной операции, а ни один последующий потребитель Brokerage Accounts, Portfolio, Operations, Events, Income Summary или Income Analytics MUST NOT использовать данные, загруженные до этой границы. Неуспешная операция MUST сохранять текущий статус connection и доступные данные его границы. Временная ошибка обычного фонового обновления MUST сохранять Client Cached Snapshot текущей границы, а logout MUST независимо очищать статус connection и связанные с ним данные пользовательской сессии.
#### Scenario: Успешное создание подключения обновляет status и границу данных
- **WHEN** User успешно создаёт T-Bank connection в настройках
- **THEN** frontend показывает статус из успешного ответа, и следующий потребитель любой связанной финансовой выборки не использует данные, загруженные до создания connection
#### Scenario: Успешная замена подключения обновляет status и accounts
- **WHEN** User успешно заменяет T-Bank connection в настройках
- **THEN** frontend показывает статус из успешного ответа и следующий потребитель списка Brokerage Accounts не использует данные, загруженные до замены connection
- **THEN** frontend показывает статус из успешного ответа, и следующий потребитель любой связанной финансовой выборки не использует данные, загруженные до замены connection
#### Scenario: Успешное удаление подключения обновляет status и accounts
- **WHEN** User подтверждает успешное удаление T-Bank connection
- **THEN** frontend показывает состояние без подключения и следующий потребитель списка Brokerage Accounts не использует данные, загруженные до удаления connection
- **THEN** frontend показывает состояние без подключения, и следующий потребитель любой связанной финансовой выборки не использует данные, загруженные до удаления connection
#### Scenario: Неуспешная операция не меняет границу connection
- **WHEN** создание, замена или удаление T-Bank connection завершается ошибкой
- **THEN** frontend сохраняет текущий статус connection и доступные Brokerage Accounts, Portfolio, Operations, Events, Income Summary и Income Analytics его границы
#### Scenario: Временная ошибка фонового обновления сохраняет snapshot
- **WHEN** обычное фоновое обновление финансовой выборки текущего T-Bank connection завершается временной ошибкой
- **THEN** frontend сохраняет её Client Cached Snapshot как данные текущей границы connection
#### Scenario: Logout очищает данные пользовательской сессии
- **WHEN** User выходит из текущей сессии
- **THEN** frontend очищает статус T-Bank connection и все связанные с ним финансовые данные этой пользовательской сессии
### Requirement: Generated API queries сохраняют транспортную и cache identity
Frontend MUST сохранять сгенерированную API-клиентом идентичность для запросов Brokerage Accounts, операций Brokerage Account, событий Brokerage Account, Portfolio и T-Bank connection. Потребитель, которому требуется прочитать или инвалидировать один из этих кэшей вне hook, MUST получать его идентичность из владельца соответствующего query, а не формировать отдельный ключ.