[P1] 07.backend. Подготовить воспроизводимый экспорт backend OpenAPI #3

Closed
opened 2026-09-13 15:33:33 +03:00 by codex-bot · 1 comment
Owner

Проблема

Runtime OpenAPI создаётся из настроенного Nest-приложения, а frontend README предлагает копирование предоставленной схемы. Backend contract test сравнивает runtime со snapshot соседнего frontend. Нет явного воспроизводимого экспорта с происхождением артефакта.

Что сделать

Переиспользовать существующий runtime OpenAPI source для явного backend-owned экспорта. Схема должна быть связана с конкретной backend revision; update и read-only verification — разные действия.

Критерии готовности

  • Экспорт создаёт OpenAPI из действующей конфигурации приложения, без второго editable HTTP authority.
  • Известны исходная backend revision и идентичность полученного артефакта; повтор для того же входа детерминирован.
  • Ошибка экспорта не оставляет частично записанный результат.
  • Backend runtime contract check и frontend openapi:check сохраняются; искусственное расхождение обнаруживается без автоисправления.
  • Подготовка/доставка схемы остаётся вне frontend. Frontend генерирует типы из предоставленного snapshot и выполняет verify без backend checkout.
  • Координация exact revisions согласована с main #2, документация — с docs #4.

Границы

Frontend #3 закрыта по ADR 014. Эта задача не восстанавливает отменённое требование к frontend получать схему из соседнего backend, фиксировать SHA-пару или сравнивать runtime. Отдельный contracts repo не нужен.

Основание

Сверка 14.09.2026: backend contract test, frontend README, ADR 014.

## Проблема Runtime OpenAPI создаётся из настроенного Nest-приложения, а frontend README предлагает копирование предоставленной схемы. Backend contract test сравнивает runtime со snapshot соседнего frontend. Нет явного воспроизводимого экспорта с происхождением артефакта. ## Что сделать Переиспользовать существующий runtime OpenAPI source для явного backend-owned экспорта. Схема должна быть связана с конкретной backend revision; update и read-only verification — разные действия. ## Критерии готовности - [ ] Экспорт создаёт OpenAPI из действующей конфигурации приложения, без второго editable HTTP authority. - [ ] Известны исходная backend revision и идентичность полученного артефакта; повтор для того же входа детерминирован. - [ ] Ошибка экспорта не оставляет частично записанный результат. - [ ] Backend runtime contract check и frontend openapi:check сохраняются; искусственное расхождение обнаруживается без автоисправления. - [ ] Подготовка/доставка схемы остаётся вне frontend. Frontend генерирует типы из предоставленного snapshot и выполняет verify без backend checkout. - [ ] Координация exact revisions согласована с [main #2](https://git.personal.ksv741.ru/WealthLedger/main/issues/2), документация — с [docs #4](https://git.personal.ksv741.ru/WealthLedger/docs/issues/4). ## Границы [Frontend #3](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/3) закрыта по ADR 014. Эта задача не восстанавливает отменённое требование к frontend получать схему из соседнего backend, фиксировать SHA-пару или сравнивать runtime. Отдельный contracts repo не нужен. ## Основание Сверка 14.09.2026: [backend contract test](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/d4fc28cbbf0bb76a8c11a68f09bbe41151067d88/test/openapi-contract.e2e-spec.ts), [frontend README](https://git.personal.ksv741.ru/WealthLedger/frontend/src/commit/dc3434c3716f09cfb1ef4aa3006e9db12f6b3bcf/README.md), [ADR 014](https://git.personal.ksv741.ru/WealthLedger/docs/src/commit/9b19a5cf4df5116c5f603f7189751d37ae9f0ffd/adr/014-trusted-openapi-input.md).
codex-bot changed title from [P1] 07.backend. Подготовить надёжный экспорт backend OpenAPI to [P1] 07.backend. Подготовить воспроизводимый экспорт backend OpenAPI 2026-09-14 06:11:33 +03:00
ksv741 was assigned by codex-bot 2026-09-14 06:11:33 +03:00
codex-bot added the Kind/EnhancementKind/Testing
Priority
Medium
3
Reviewed
Confirmed
1
labels 2026-09-14 06:12:47 +03:00
ksv741 was unassigned by hermes-agent 2026-10-12 00:04:35 +03:00
codex-bot was assigned by hermes-agent 2026-10-12 00:04:35 +03:00
hermes-agent added this to the Инженерная основа и поставка milestone 2026-10-12 00:04:35 +03:00
hermes-agent added this to the WealthLedger — Delivery Board project 2026-10-12 00:04:35 +03:00
hermes-agent removed the Kind/Testing label 2026-10-12 00:04:35 +03:00
Author
Owner

Выполнено: PR #97 смержен в develop (commit a93f2d5). scripts/generate-openapi.cjs пишет openapi.json атомарно (temp + rename), режим --check (npm run openapi:check) только сравнивает и не перезаписывает. Генерация детерминирована, при расхождении exit 1. Привязка артефакта к backend revision остаётся координацией с main #2 / docs #4 и в этот issue не входит.

Выполнено: PR #97 смержен в develop (commit a93f2d5). scripts/generate-openapi.cjs пишет openapi.json атомарно (temp + rename), режим --check (npm run openapi:check) только сравнивает и не перезаписывает. Генерация детерминирована, при расхождении exit 1. Привязка артефакта к backend revision остаётся координацией с main #2 / docs #4 и в этот issue не входит.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/backend#3