3e3519edc8
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.
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.