# Проверка 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: ```bash 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](audit-remediation.md).