[Refactor] Retire legacy tbank-sync status and catalog sync=observe after compatibility transition #196

Closed
opened 2026-11-05 06:42:51 +03:00 by codex-bot · 2 comments
Owner

Результат

Убрать GET /api/v1/tbank-sync/{id} и публичный sync=observe на catalog/reference/investment read routes после проверки внешних потребителей и контролируемого перехода. Решение владельца: оба контракта выводятся из эксплуатации (WealthLedger/backend#64).

Scope

  • Проверить обезличенные access logs существующего внешнего прокси на запросы к status и с sync=observe; зафиксировать доступные источники и ограничение окна наблюдения. SPA caller отсутствует (frontend#141), но отсутствие external obligations этим не доказано.
  • Объявить breaking transition и окно обратной совместимости владельцу внешних consumers; без выдуманного срока. Откат: восстановление прежних маршрутов/образа; существующие БД/строки не удалять и миграцию не делать.
  • Удалить route/status-only reader/DTO и observe-only branches/params; оставить default read, другие sync/observe механизмы, которые вызывают живые paths.
  • Обновить OpenAPI, backend HTTP/e2e cases; предоставить обновлённый публичный artifact frontend и синхронизировать generated types; обновить актуальную backend документацию, упоминающую deprecated query. Исключить unrelated observedAt и живые observe().

Acceptance Criteria

  • Есть обезличенное evidence внешнего использования или явное owner решение о breaking removal при отсутствии данных, а также документированные окно перехода и путь rollback.
  • После перехода legacy GET возвращает 404, observe query не выполняет старый passive path (явный 400 при возможности глобальной валидации); обычные GET/sync работают как прежде.
  • Данные/схема не удалены, backend e2e + verify и frontend artifact/type checks проходят.

Depends on WealthLedger/backend#64. No production mutation in this Issue.

## Результат Убрать `GET /api/v1/tbank-sync/{id}` и публичный `sync=observe` на catalog/reference/investment read routes после проверки внешних потребителей и контролируемого перехода. Решение владельца: оба контракта выводятся из эксплуатации (WealthLedger/backend#64). ## Scope - Проверить обезличенные access logs существующего внешнего прокси на запросы к status и с `sync=observe`; зафиксировать доступные источники и ограничение окна наблюдения. SPA caller отсутствует (frontend#141), но отсутствие external obligations этим не доказано. - Объявить breaking transition и окно обратной совместимости владельцу внешних consumers; без выдуманного срока. Откат: восстановление прежних маршрутов/образа; существующие БД/строки не удалять и миграцию не делать. - Удалить route/status-only reader/DTO и observe-only branches/params; оставить default read, другие sync/observe механизмы, которые вызывают живые paths. - Обновить OpenAPI, backend HTTP/e2e cases; предоставить обновлённый публичный artifact frontend и синхронизировать generated types; обновить актуальную backend документацию, упоминающую deprecated query. Исключить unrelated `observedAt` и живые `observe()`. ## Acceptance Criteria - [ ] Есть обезличенное evidence внешнего использования или явное owner решение о breaking removal при отсутствии данных, а также документированные окно перехода и путь rollback. - [ ] После перехода legacy GET возвращает 404, observe query не выполняет старый passive path (явный 400 при возможности глобальной валидации); обычные GET/sync работают как прежде. - [ ] Данные/схема не удалены, backend e2e + verify и frontend artifact/type checks проходят. Depends on WealthLedger/backend#64. No production mutation in this Issue.
Author
Owner

Решение владельца 2026-11-05: разрешено удалить публичные legacy status и sync=observe сейчас без ожидания окна совместимости при недоступности access logs/списка внешних потребителей; риск неизвестных external clients принят. Совместимость: объявление breaking removal через этот Issue и предстоящий PR/OpenAPI; rollback — предыдущий backend image/commit и соответствующий прежний frontend OpenAPI snapshot, без DB schema/data migration. Обезличенное access evidence отсутствует, «нет внешних потребителей» не утверждается. Ветка refactor/196-retire-legacy-sync-read начата от develop.

Решение владельца 2026-11-05: разрешено удалить публичные legacy status и `sync=observe` сейчас без ожидания окна совместимости при недоступности access logs/списка внешних потребителей; риск неизвестных external clients принят. Совместимость: объявление breaking removal через этот Issue и предстоящий PR/OpenAPI; rollback — предыдущий backend image/commit и соответствующий прежний frontend OpenAPI snapshot, без DB schema/data migration. Обезличенное access evidence отсутствует, «нет внешних потребителей» не утверждается. Ветка `refactor/196-retire-legacy-sync-read` начата от develop.
Author
Owner

Поставлено: WealthLedger/backend PR #197 слит в develop (squash, CI commits/security/verify — success). Удалены GET /api/v1/tbank-sync/{id} и публичный sync=observe; OpenAPI больше не содержит ни того, ни другого. Миграций и изменений данных нет. Полные гейты: npm run verify 331/331, SQLite e2e 21/21, OpenAPI-контракт PASS.

Остаётся вне этого Issue: frontend должен перегенерировать свой src/shared/api/spec/openapi.json (сейчас ещё содержит /api/v1/tbank-sync/{id}), иначе frontend openapi:check разойдётся с backend. Это отдельный frontend-шаг.

Поставлено: WealthLedger/backend PR #197 слит в `develop` (squash, CI commits/security/verify — success). Удалены `GET /api/v1/tbank-sync/{id}` и публичный `sync=observe`; OpenAPI больше не содержит ни того, ни другого. Миграций и изменений данных нет. Полные гейты: `npm run verify` 331/331, SQLite e2e 21/21, OpenAPI-контракт PASS. Остаётся вне этого Issue: frontend должен перегенерировать свой `src/shared/api/spec/openapi.json` (сейчас ещё содержит `/api/v1/tbank-sync/{id}`), иначе frontend `openapi:check` разойдётся с backend. Это отдельный frontend-шаг.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/backend#196