The three verdict cards on /analytics now open the same dialog as the https/ssh
cards, with the addresses of the run that got this verdict (CSV and copy
included). New list kinds verdict_pass, verdict_partial and verdict_fail in
GET /admin/analytics/runs/{id}/lists/{kind}: address, subnet, validator,
egress and ingress "ok of all", checks stored of expected; partial adds the
reason, the same names as the "Why partial" block. Cancelled addresses are not
listed; the row count equals summary.pass/partial/fail. The fail card stays
inert at zero. addr.incomplete() is shared by the list and the report.
Docs, plan and summary in docs/changes/.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
Итог: кликабельные индикаторы pass, partial, fail в «Аналитике»
План: 2026-10-04_09-55_analytics-verdict-indicators-plan.md. Статус: код написан и проверен (gofmt, build, vet, test, синтаксис JS); стенд не пересобирался.
Что изменено
- control-api (
internal/analytics/lists.go): виды списковverdict_pass,verdict_partial,verdict_fail. Строки: адреса запуска с этим вердиктом, безcancelled, по числовому порядку. Столбцы: Адрес, Подсеть, Валидатор, Egress, Ingress, «Проверок в цикле»; уpartialещё «Причина» (та же формула, что в блоке «Почему partial»). Число строк равноsummary.pass/partial/fail. - Метод
addr.incomplete()(analytics.go): «неполный набор» считается одним кодом для списка и для отчёта; логика отчёта не менялась. - Дашборд (
analytics.js): плиткиpass,partial,failстали кнопками со списком и «список →»;failс нулём остаётся некликабельной. ВLISTSтри записи с пояснением и подсказками к столбцам. Диалог, CSS и прокси дашборда не менялись. - Документы:
API.md,USAGE.md,DASHBOARD.md,README.md.
Особенности
- «Валидатор» берётся по https-проверкам (как в списках https): у адреса без https-проверок он «—».
- «Проверок в цикле» при неизвестном ожидаемом числе (
-1) — только записанное. - Вердикт — оценка системы при агрегации; Egress/Ingress в списке показывают фактические проверки. Пояснение есть в диалоге.
Проверки
gofmt -lпусто (одно выравнивание в тесте поправлено),go build ./...,go vet ./...,go test ./...— все пакетыok; синтаксисanalytics.jsпроверен.- Новые тесты:
TestVerdictLists(инвариант «строк = summary», отмена, порядок, столбцы, «—», неполный набор, причина совпадает сreasons);TestAnalyticsEndpointsрасширен (JSON, CSVverdict_partial_run<N>.csv,404на неизвестный вид). - Не проверено: открытие диалога в браузере и скорость окна на списке pass (нужна выкладка).
Выкладка
Не выполнена. Нужны пересборка и перезапуск control-api и admin-dashboard (статика встроена в бинарник); миграций нет.