Files
docs/development/runtime-openapi-verification.md
T

2.5 KiB
Raw Blame History

Проверка runtime OpenAPI

Назначение

bash specs/scripts/verify-runtime-openapi.sh сверяет полный OpenAPI document, который отдаёт локально запущенный backend по /api/docs-json, с committed snapshot frontend/src/shared/api/spec/openapi.json.

Это отдельный контрактный gate, а не общий verifier всех репозиториев. Он нужен перед изменениями backend API или frontend transport contract и не заменяет локальные lint/typecheck команды приложений.

Запуск

Из корня workspace:

node --version # должна быть Node 22
bash specs/scripts/verify-runtime-openapi.sh

Перед первым запуском в обоих application repositories выполняют npm ci под Node 22. Команда определяет workspace из собственного пути, поэтому её можно запустить и по абсолютному пути из другой текущей директории.

Границы и результат

Команда:

  • временно компилирует backend, создаёт временную SQLite DB и запускает backend только на loopback-порту с детерминированными development values;
  • рекурсивно сортирует только ключи JSON objects, сохраняет порядок arrays, выводит SHA-256 обоих полных documents и unified diff при различии;
  • всегда завершает дочерний backend и удаляет свои temporary resources.

Она не вызывает npm run openapi:sync, не записывает committed snapshot или generated frontend types и не обращается к T-Bank либо другому внешнему сервису. Если контракт действительно изменён, snapshot обновляют только осознанной командой npm run openapi:sync в frontend, затем снова запускают эту проверку.

Ограничение e2e

Проверка Swagger не запускает backend e2e tests. WL-P2-05 (runnable e2e) и WL-P2-13 (единый workspace verdict) отложены из-за нестабильного Prisma 7.9.1 migration gate; дата, rationale и trigger пересмотра находятся в audit remediation registry.