# ui/src/api/generated — сгенерированный API-клиент **Файлы в этой папке не редактируются руками.** | Файл | Источник | |---|---| | `schema.d.ts` | `docs/openapi.yaml` (контракт API v1, issue #19) через `openapi-typescript@7` | ## Перегенерация ```bash 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.