docs: document hourly investment reads
Docs security / security (push) Successful in 8s
Docs verify / verify (push) Successful in 13s
Conventional commits / commits (pull_request) Successful in 12s
Docs security / security (pull_request) Successful in 8s
Docs verify / verify (pull_request) Successful in 14s
Docs security / security (push) Successful in 8s
Docs verify / verify (push) Successful in 13s
Conventional commits / commits (pull_request) Successful in 12s
Docs security / security (pull_request) Successful in 8s
Docs verify / verify (pull_request) Successful in 14s
This commit is contained in:
@@ -1,46 +1,47 @@
|
||||
# Загрузка портфеля
|
||||
|
||||
Экран `/accounts/:accountId` читает последний полный snapshot из SQLite
|
||||
после проверки сессии, подключения и локального membership. Если список
|
||||
счетов ещё неизвестен, сервер сообщает о загрузке доступа без выдачи личных
|
||||
данных неизвестного ID. Известный недоступный счёт возвращает `404`.
|
||||
Экран `/accounts/:accountId` читает последний полный snapshot из SQLite после
|
||||
проверки сессии, подключения и локального membership. Если список счетов ещё
|
||||
неизвестен, сервер сообщает о загрузке доступа без выдачи личных данных
|
||||
неизвестного ID. Известный недоступный счёт возвращает `404`.
|
||||
|
||||
## Основной обмен
|
||||
|
||||
Обычный GET возвращает локальный envelope. Missing/stale зависимости
|
||||
запрашиваются в фоне; чтение не ждёт T-Bank. Для нового полного snapshot
|
||||
нужны оба финансовых ответа `GetPortfolio` и `GetPositions`. Суммы и позиции
|
||||
публикуются вместе; metadata дополняет представление независимо, с доступным
|
||||
UID/FIGI вместо имени до её загрузки.
|
||||
Обычный GET и retry возвращают read-only локальный `{ data, meta }` envelope:
|
||||
они не ждут и не вызывают T-Bank и не предлагают ручную синхронизацию. Часовой
|
||||
обход текущего подключения обновляет Portfolio независимо от экрана. Для нового
|
||||
полного snapshot ему нужны оба финансовых ответа `GetPortfolio` и
|
||||
`GetPositions`; суммы и позиции публикуются вместе. Metadata инструмента
|
||||
дополняет представление независимо, с доступным UID/FIGI вместо имени до её
|
||||
онлайн-загрузки.
|
||||
|
||||
Свежесть portfolio — 60 секунд. Истечение срока не удаляет snapshot и не
|
||||
создаёт таймер. «Обновить» на обзоре перечитывает зависимости текущего экрана:
|
||||
membership, portfolio, показанные операции, доход и будущие события.
|
||||
Секции могут быть готовы независимо. Подробнее —
|
||||
[свежесть](../../../architecture/cross-cutting/data-freshness.md).
|
||||
Открытый экран выполняет локальное перечитывание не чаще одного раза в
|
||||
30 минут; retry также повторяет только HTTP GET. `data: null` означает, что
|
||||
полного snapshot ещё нет, а не нулевой портфель. Пустой подтверждённый portfolio
|
||||
остаётся available complete result. Секции могут быть готовы независимо.
|
||||
Подробнее — [свежесть](../../../architecture/cross-cutting/data-freshness.md).
|
||||
|
||||
## Границы доступа
|
||||
|
||||
Публикация проверяет connection revision и attempt в той же транзакции.
|
||||
Замена или удаление подключения не допускает позднюю запись прежней работы.
|
||||
Frontend очищает недоступный personal view и отклоняет запоздалые ответы.
|
||||
В режиме [«Все счета»](../all-accounts.md#полнота-свежесть-и-доступ) состав
|
||||
accounts и snapshots читается согласованно, но их source times могут различаться.
|
||||
Публикация проверяет connection revision и attempt в той же транзакции. Замена
|
||||
или удаление подключения не допускает позднюю запись прежней работы. Frontend
|
||||
очищает недоступный personal view и отклоняет запоздалые ответы. В режиме
|
||||
[«Все счета»](../all-accounts.md#полнота-свежесть-и-доступ) состав accounts и
|
||||
snapshots читается согласованно, но их source times могут различаться.
|
||||
|
||||
## Ошибки и результат для пользователя
|
||||
|
||||
Нет подключения — `409 TBANK_NOT_CONNECTED`, известный отказ токена —
|
||||
`400 INVALID_TBANK_TOKEN`, недоступный счёт — `404`. Они не маскируются
|
||||
запасным snapshot. Transient source failure оставляет прежний полный портфель
|
||||
и его исходное время с безопасным предупреждением. При отсутствии snapshot
|
||||
показывается missing/failed, без нулевых итогов. `503` означает ошибку
|
||||
обслуживания HTTP-запроса, а не принятой фоновой работы.
|
||||
запасным snapshot. Временная ошибка часового обхода оставляет прежний полный
|
||||
portfolio и его исходное `lastSuccessfulAt`; `meta.lastAttempt` сообщает о
|
||||
failed или partial попытке отдельно. `Portfolio.isStale` сообщает возраст
|
||||
snapshot, а Client Cached Snapshot и ошибка браузерного HTTP-перечитывания
|
||||
имеют независимый смысл. При отсутствии полного snapshot `data: null` и
|
||||
metadata обозначает initial loading либо временную недоступность, без нулевых
|
||||
итогов. `503` означает ошибку обслуживания самого HTTP-запроса, а не
|
||||
завершившуюся фоновую работу.
|
||||
|
||||
Observer запрашивает статус известной работы, затем `sync=observe` читает
|
||||
изменившийся ресурс без запуска синхронизации. При уходе и terminal outcome
|
||||
наблюдение прекращается. Повторное открытие может запросить недостающее;
|
||||
после рестарта сохранённый snapshot доступен сразу.
|
||||
|
||||
Денежные правила находятся в [справочнике](../data-reference.md),
|
||||
проверка расхождения — в [диагностике](../how-to/investigate-discrepancy.md),
|
||||
RPC/лимиты — в [интеграции T-Bank](../../../integrations/tbank.md).
|
||||
Денежные правила находятся в [справочнике](../data-reference.md), проверка
|
||||
расхождения — в [диагностике](../how-to/investigate-discrepancy.md), RPC/лимиты
|
||||
— в [интеграции T-Bank](../../../integrations/tbank.md).
|
||||
|
||||
Reference in New Issue
Block a user