docs: explain persisted T-Bank reads and synchronization
Conventional commits / commits (pull_request) Successful in 14s
Docs security / security (pull_request) Successful in 8s
Docs verify / verify (pull_request) Successful in 13s
Docs security / security (push) Successful in 8s
Docs verify / verify (push) Successful in 12s
Conventional commits / commits (pull_request) Successful in 14s
Docs security / security (pull_request) Successful in 8s
Docs verify / verify (pull_request) Successful in 13s
Docs security / security (push) Successful in 8s
Docs verify / verify (push) Successful in 12s
Document local data ownership, coverage and freshness, refresh behavior, failure recovery and additive migration rollback. Record ADR 017.
This commit was merged in pull request #22.
This commit is contained in:
@@ -73,7 +73,8 @@ Frontend не получает брокерский токен и не обра
|
||||
|
||||
Личная история использует существующий
|
||||
`GET /api/v1/brokerage-accounts/all/operations?instrumentUid=...`.
|
||||
Фильтр UID валидируется и передаётся upstream как `instrumentId`; ответ также
|
||||
Фильтр UID валидируется и применяется к локальной истории. При ручной
|
||||
сверке бумаги он также передаётся upstream как `instrumentId`; ответ
|
||||
проверяется по UID. Без `from` такой запрос начинается с самой ранней известной
|
||||
даты открытия доступных счетов; если даты неполны, нижняя граница — Unix epoch.
|
||||
Обычный журнал без фильтра инструмента сохраняет начало текущего года.
|
||||
@@ -142,18 +143,24 @@ TTM означает последние 12 месяцев, MRQ — послед
|
||||
|
||||
## Получение данных и ограничения
|
||||
|
||||
Запросы T-Bank проходят общую серверную интеграцию с TLS, лимитом частоты,
|
||||
очередью, предельным временем ожидания и повторными попытками. Проверка доступа
|
||||
и расшифровка token выполняются только backend. Успешные ответы и совместные незавершённые запросы кэшируются
|
||||
в ограниченном кэше LRU на 30 секунд по пользователю, поколению подключения и параметрам.
|
||||
Для поиска `FindInstrument` дополняется сведениями `ShareBy` через тот же
|
||||
кэш карточки инструмента и одним пакетным `GetLastPrices` для списка. Ошибка
|
||||
дополнительной загрузки или исчезнувшая карточка не скрывает исходную запись
|
||||
каталога; недоступные логотипы и цены имеют заглушки. Ошибки авторизации
|
||||
не подавляются.
|
||||
Ошибка целого запроса не кэшируется; отсутствие дополнительного источника
|
||||
обозначается в ответе. Поддерево клиентских запросов акций сбрасывается вместе с финансовыми
|
||||
данными при изменении подключения; выход очищает кэш сессии.
|
||||
Общие metadata, discovery, company, quotes, свечи и календари сохраняются
|
||||
в SQLite. Поиск хранит подтверждённый набор UID для конкретного query;
|
||||
успешный SBER не подтверждает пустой GAZP. Отсутствующее enrichment не
|
||||
скрывает найденную бумагу. Сохранённые общие источники переиспользуются
|
||||
между пользователями, но личные позиции и выплаты всегда проверяют доступ.
|
||||
|
||||
Обычное чтение не ждёт RPC; missing/stale зависимости запрашиваются в фоне
|
||||
через существующий T-Bank limiter. Минутная свежесть применяется к quotes
|
||||
и открытому хвосту свечей, суточная — к metadata/company/календарям.
|
||||
Закрытые полные свечные интервалы, включая пустые, сохраняются после restart.
|
||||
Новый день не делает прежнюю незавершённую свечу полной.
|
||||
|
||||
«Обновить» передаёт текущий инструмент, выбранный график и personal-history
|
||||
scope. Частичные строки видны с предупреждением; неполные личные оценки
|
||||
не становятся нулями. Статус и `sync=observe` не создают новый импорт.
|
||||
Смена подключения и известный access loss очищают личное представление;
|
||||
поздние ответы не возвращают прежние данные. Детали —
|
||||
[модель свежести](../../architecture/cross-cutting/data-freshness.md).
|
||||
|
||||
Полные даты в интерфейсе имеют формат ДД.ММ.ГГГГ; ISO-формат транспорта и
|
||||
временные зоны расчётов не меняются. Личная история использует общий с портфелем формат строки операции,
|
||||
|
||||
Reference in New Issue
Block a user