Files
embeddevio 3e3519edc8
contract-openapi / openapi-contract (push) Failing after 0s
contract-openapi / ts-client-is-current (push) Failing after 0s
Merge pull request 'Sprint 0 / #19: OpenAPI 3.1 контракт API v1 + TS-клиент и контрактные тесты' (#57) from feat/19-openapi into main
Sprint 0 / #19: OpenAPI 3.1 контракт API v1 + TS-клиент и контрактные тесты

AC проверены независимо (ревью TechLead): генератор TS-клиента (blob сверен),
отклонение схемы роняет контрактный тест (мутации), секретов в ответах нет.
Гейты: ruff/mypy чисто, pytest 93 passed / coverage 95.48% (порог 70%).
CI green недостижим — runner отсутствует (#52); отклонение зафиксировано в PR.
Refs #19, #15, #52.
2026-10-28 21:21:13 +03:00
..

ui — Web UI (React + TypeScript + Tailwind + shadcn-ui)

Тёмная тема, 6 страниц из ТЗ. Каркас — задача #35, страницы — #36–#39, E2E — #42.

Маршрут Страница Задача
/ Dashboard: статус, трафик, handshake, аптайм #36
/routing редактор правил, ipset, домены, режимы, DnD+diff #37
/config загрузка .conf, валидация, маскировка ключей #38
/devices устройства и политики #39
/logs журнал, счётчики RETURN vs MARK #39
/settings GeoIP-расписание, обновления, интеграции #39

API-клиент генерируется из OpenAPI (#19) в src/api/generated/. Взаимодействие: REST + WebSocket.