docs: document local verification workflow
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
git status --short
|
git status --short
|
||||||
|
bash ../specs/scripts/verify-runtime-openapi.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Границы
|
## Границы
|
||||||
|
|||||||
@@ -4,3 +4,4 @@
|
|||||||
|
|
||||||
- [Audit remediation registry](audit-remediation.md) — текущий статус findings, следующий OpenSpec change и evidence завершённых улучшений.
|
- [Audit remediation registry](audit-remediation.md) — текущий статус findings, следующий OpenSpec change и evidence завершённых улучшений.
|
||||||
- [OpenSpec authority и lifecycle](openspec-authority-and-lifecycle.md) — единственный SDD store, границы постоянной документации и условия archive.
|
- [OpenSpec authority и lifecycle](openspec-authority-and-lifecycle.md) — единственный SDD store, границы постоянной документации и условия archive.
|
||||||
|
- [Проверка runtime OpenAPI](runtime-openapi-verification.md) — отдельный read-only contract gate и его границы.
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# Проверка 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).
|
||||||
Reference in New Issue
Block a user