Files
awg-dash/backend/awg_api
embeddevio da442a9bc6
ci / lint (push) Successful in 51s
contract-openapi / openapi-contract (push) Failing after 31s
contract-openapi / ts-client-is-current (push) Failing after 36s
ci / unit (push) Failing after 52s
ci / security (push) Failing after 4m26s
ci / build (push) Has been skipped
ci / image-scan (push) Has been skipped
ci / push (push) Has been skipped
test(ci): пробник HIGH-находки для bandit (B602), lint-чистый — Refs #17
2026-10-28 22:57:36 +03:00
..

awg_api — control plane

Непривилегированный процесс: FastAPI + REST API v1 + WebSocket + отдача статики UI.

Модуль Ответственность Задача
app.py lifespan, конфиг, логирование, error model, статика #31
routers/ эндпоинты по OpenAPI (status, config, routing, devices, logs, auth) #32
ws/ /api/v1/metrics/stream #33
security/ токен, CSRF, rate limit, маскировка секретов #34
store/ SQLite (WAL), миграции, audit log, apply/rollback #20

Контракт — docs/openapi.yaml (задача #19), TS-клиент генерируется в ui/src/api/generated/.