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

48 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Проверка 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).