Files
specs/openspec/specs/frontend-platform/frontend-query-coherence/spec.md
T
codex-bot 3821d9ed58
Specs security / security (push) Successful in 7s
Specs verify / verify (push) Successful in 14s
refactor: group canonical specs by domain and archive account-top-positions (#74)
2026-11-02 21:50:49 +03:00

5.1 KiB

frontend-query-coherence Specification

Purpose

Гарантирует, что frontend читает, обновляет и инвалидирует один и тот же кэш API-данных после связанных пользовательских действий.

Requirements

Requirement: Frontend сохраняет когерентность кэша T-Bank connection

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 показывает статус из успешного ответа, и следующий потребитель любой связанной финансовой выборки не использует данные, загруженные до замены connection

Scenario: Успешное удаление подключения обновляет status и accounts

  • WHEN User подтверждает успешное удаление T-Bank 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, а не формировать отдельный ключ.

Scenario: Потребитель читает кэш списка счетов

  • WHEN frontend определяет Brokerage Account для уже открытого account route
  • THEN он читает тот же кэш списка Brokerage Accounts, который использует его query hook