Files
specs/openspec/changes/hourly-portfolio-sync-history/specs/tbank-connection/spec.md
T
ksv741 b24a686188
Specs security / security (push) Successful in 7s
Specs verify / verify (push) Successful in 9s
Conventional commits / commits (pull_request) Successful in 10s
Specs security / security (pull_request) Successful in 7s
Specs verify / verify (pull_request) Successful in 9s
spec: define hourly portfolio sync history
2026-10-09 09:05:04 +03:00

4.5 KiB
Raw Blame History

MODIFIED Requirements

Requirement: Создание и замена подключения T-Bank

Система SHALL позволять авторизованному User создать или заменить единственное подключение через PUT /api/v1/tbank-connection с token. Система MUST удалить внешние пробелы token, отклонить пустое значение как ошибку валидации и проверить token запросом T-Bank открытых счетов до сохранения. Пустой список счетов MUST считаться успешной проверкой. Успех MUST вернуть 200 с текущим статусом подключения; успешная замена MUST установить новый connectedAt. После успешного подключения MUST начинаться первая фоновая загрузка доступных личных данных без команды frontend. История стоимости прежних счетов MUST сохраняться, но показываться только для счетов, доступ к которым подтверждён новым подключением.

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

  • WHEN User отправляет непустой token и T-Bank успешно возвращает пустой список открытых счетов
  • THEN система сохраняет подключение и отвечает 200 с { connected: true, connectedAt: <RFC 3339 UTC timestamp> }; первая загрузка не создаёт фиктивные счета

Scenario: Успешная замена подключения

  • WHEN User с подключением отправляет другой token и T-Bank успешно его проверяет
  • THEN система заменяет token подключения, обновляет connectedAt, отвечает текущим статусом без token и начинает обновление подтверждённых счетов, не теряя их прежние исторические точки

Scenario: Невалидный token не заменяет существующее подключение

  • WHEN T-Bank отклоняет token как неаутентифицированный или не имеющий прав
  • THEN система отвечает 400 Problem Details с code INVALID_TBANK_TOKEN и сохраняет прежнее подключение без изменений

Scenario: T-Bank временно недоступен при проверке token

  • WHEN проверка token не завершается из-за временной или иной upstream-ошибки
  • THEN система отвечает 503 Problem Details с code TBANK_UNAVAILABLE и не создаёт либо не изменяет подключение

Requirement: Удаление подключения T-Bank

Система SHALL позволять авторизованному User удалить своё подключение через DELETE /api/v1/tbank-connection. Удаление MUST быть идемпотентным и отвечать 204; после успешного удаления backend MUST прекратить использовать удалённый token и удалить относящиеся к User кэшированные текущие данные T-Bank. История стоимости счёта MUST сохраняться с пометкой удаления и MUST NOT раскрываться до подтверждения нового доступа к тому же счёту.

Scenario: Удаление существующего подключения

  • WHEN User удаляет существующее подключение
  • THEN система удаляет token и связанные кэшированные текущие данные User, скрывает сохранённую историю стоимости и отвечает 204

Scenario: Повторное удаление подключения

  • WHEN User удаляет уже отсутствующее подключение
  • THEN система отвечает 204, не раскрывая сохранённую историю