95f1337fd4
- ui/scripts/generate-api.sh: openapi-typescript@7 над docs/openapi.yaml. - ui/src/api/generated/README.md: правила перегенерации и семантика writeOnly-секретов.
ui/src/api/generated — сгенерированный API-клиент
Файлы в этой папке не редактируются руками.
| Файл | Источник |
|---|---|
schema.d.ts |
docs/openapi.yaml (контракт API v1, issue #19) через openapi-typescript@7 |
Перегенерация
bash ui/scripts/generate-api.sh
Требуется Node.js >= 20. CI-джоба ts-client-is-current повторяет генерацию и падает,
если закоммиченный файл расходится со спецификацией.
Секреты
Поля private_key (TunnelConfig), preshared_key (PeerConfig) и password
(AuthLoginRequest) помечены в контракте writeOnly:
- их можно передавать в запросах (
PUT /api/v1/config,POST /api/v1/auth/login); - их нельзя ожидать в ответах — сервер обязан их вырезать (см. контрактный тест
backend/tests/test_contract_responses.py::test_responses_contain_no_secret_material).
Поэтому UI читает секреты только из полей ввода и никогда не рендерит их из ответов API.