Files
awg-dash/ui/src/api/generated
embeddevio 95f1337fd4
contract-openapi / openapi-contract (push) Has been cancelled
contract-openapi / ts-client-is-current (push) Has been cancelled
chore(ui): скрипт генерации TS-клиента из OpenAPI (Refs #19)
- ui/scripts/generate-api.sh: openapi-typescript@7 над docs/openapi.yaml.
- ui/src/api/generated/README.md: правила перегенерации и семантика writeOnly-секретов.
2026-10-22 00:23:16 +03:00
..

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.