feat(portal): localize management UI
This commit is contained in:
+60
-60
@@ -5,24 +5,24 @@
|
||||
Портал является рабочим кабинетом для трех ролей:
|
||||
|
||||
- руководитель: пульс организации, активность, подразделения, риски;
|
||||
- ИБ: риск-сигналы, события безопасности, evidence;
|
||||
- ИБ: риск-сигналы, события безопасности, материалы проверки;
|
||||
- расследователь: карточка инцидента, причины, проверяемые источники, отчет.
|
||||
|
||||
## Главные экраны
|
||||
|
||||
- `Обзор` - Executive Dashboard.
|
||||
- `Обзор` - сводка руководителя и главный вывод.
|
||||
- `Сотрудники` - карточки сотрудников и объяснение индекса.
|
||||
- `Подразделения` - сравнение групп, тренды и ответственные.
|
||||
- `Риски` - read-only контроль безопасности.
|
||||
- `Расследования` - инциденты, evidence и автоматическая read-only карточка расследования.
|
||||
- `Сетевой периметр` - read-only контекст внешних сетевых сигналов.
|
||||
- `Отчеты` - Markdown/PDF/JSON и управленческий текст.
|
||||
- `Настройки` - read-only параметры расчета.
|
||||
- `Риски` - контроль безопасности только для чтения.
|
||||
- `Расследования` - инциденты, материалы проверки и автоматическая карточка расследования только для чтения.
|
||||
- `Сетевой периметр` - внешний сетевой контекст только для чтения.
|
||||
- `Отчеты` - текстовый отчет, печать/PDF, выгрузка данных и управленческий текст.
|
||||
- `Настройки` - параметры расчета только для чтения.
|
||||
|
||||
## Загрузка и актуальность данных
|
||||
|
||||
В верхней части портала есть глобальная полоса `Data Loading & Refresh
|
||||
Status`. Она показывает, что сейчас происходит с данными, и не смешивает
|
||||
В верхней части портала есть глобальная полоса `Загрузка и актуальность
|
||||
данных`. Она показывает, что сейчас происходит с данными, и не смешивает
|
||||
состояния `нет данных` и `данные еще загружаются`.
|
||||
|
||||
Статусы:
|
||||
@@ -35,13 +35,13 @@ Status`. Она показывает, что сейчас происходит
|
||||
завершилось;
|
||||
- `ERROR` - первичная загрузка не удалась, актуальных данных на экране нет.
|
||||
|
||||
Во время `LOADING` портал показывает skeleton placeholders и текст `Данные
|
||||
Во время `LOADING` портал показывает заготовки карточек и текст `Данные
|
||||
загружаются`; пустые таблицы и сообщения `Нет данных` не выводятся до
|
||||
завершения загрузки. После успешного обновления отображается время последнего
|
||||
обновления. При `STALE` старый экран остается доступным, но сверху появляется
|
||||
предупреждение о неудачном обновлении.
|
||||
|
||||
## Executive Dashboard
|
||||
## Сводка руководителя
|
||||
|
||||
Показывает:
|
||||
|
||||
@@ -50,16 +50,16 @@ Status`. Она показывает, что сейчас происходит
|
||||
- WARN/FAIL подразделения;
|
||||
- критические риски;
|
||||
- недельный тренд;
|
||||
- достоверность данных агента;
|
||||
- качество данных;
|
||||
- топ-5 лучших и проблемных подразделений;
|
||||
- Heat Map;
|
||||
- карту рисков;
|
||||
- блок `Требует внимания`.
|
||||
|
||||
## Достоверность данных агента
|
||||
## Качество данных
|
||||
|
||||
Портал показывает карточку `Достоверность данных агента` в `Обзор` и
|
||||
Портал показывает карточку `Качество данных` в `Обзор` и
|
||||
`Отчеты`. Это управленческий вывод о том, можно ли использовать текущий
|
||||
`Индекс активности` и отчеты как подтвержденный KPI.
|
||||
`Индекс активности` и отчеты как подтвержденные показатели.
|
||||
|
||||
API сохраняет старое поле `agent_quality` и дополнительно отдает
|
||||
`agent_quality_explain`:
|
||||
@@ -68,32 +68,32 @@ API сохраняет старое поле `agent_quality` и дополнит
|
||||
- `title`;
|
||||
- `summary`;
|
||||
- `recommendation`;
|
||||
- `kpi_accepted`.
|
||||
- `kpi_accepted` - участвуют ли данные в показателях.
|
||||
|
||||
Цвета статусов:
|
||||
|
||||
- `OK` - зеленый, KPI подтвержден основным источником;
|
||||
- `OK` - зеленый, показатели подтверждены основным источником;
|
||||
- `WARNING` - желтый, данные собраны резервным способом;
|
||||
- `DEGRADED` - оранжевый, данные нельзя использовать как доказательный KPI;
|
||||
- `UNKNOWN` - серый, агент не передал diagnostics.
|
||||
- `DEGRADED` - оранжевый, данные нельзя использовать как доказательные показатели;
|
||||
- `UNKNOWN` - серый, агент не передал диагностику качества.
|
||||
|
||||
Карточка сначала показывает управленческий вывод, принято ли значение в KPI, и
|
||||
Карточка сначала показывает управленческий вывод, участвуют ли данные в показателях, и
|
||||
рекомендацию. Технические поля доступны в раскрываемом блоке:
|
||||
|
||||
- источник коллектора;
|
||||
- всего сессий;
|
||||
- активных сессий;
|
||||
- RDP-сессий;
|
||||
- удаленных сеансов;
|
||||
- ошибка коллектора, если она есть.
|
||||
|
||||
Если diagnostics отсутствует, статус `UNKNOWN`, рекомендация - обновить Rust
|
||||
Если диагностика отсутствует, статус `UNKNOWN`, рекомендация - обновить Rust
|
||||
agent и проверить поступление telemetry JSONL. Если источник `local_fallback`,
|
||||
портал прямо пишет: `Диагностический режим, данные не засчитываются в KPI`.
|
||||
портал прямо пишет: `Диагностический режим, данные не засчитываются в показатели активности`.
|
||||
|
||||
## Стабильность агента за 7 дней
|
||||
|
||||
Портал показывает мини-блок `Стабильность агента за 7 дней`. Он отвечает на
|
||||
вопрос, можно ли доверять недельному KPI, а не только текущему срезу.
|
||||
вопрос, можно ли доверять недельным показателям, а не только текущему срезу.
|
||||
|
||||
`GET /api/reports` отдает:
|
||||
|
||||
@@ -113,16 +113,16 @@ agent и проверить поступление telemetry JSONL. Если и
|
||||
|
||||
- сколько дней были `OK`;
|
||||
- сколько дней были `WARNING`, `DEGRADED` или `UNKNOWN`;
|
||||
- процент дней, когда KPI был принят.
|
||||
- процент дней, когда показатели были подтверждены.
|
||||
|
||||
Если за 7 дней меньше 5 дней `OK`, портал и executive summary показывают:
|
||||
`KPI требует валидации: нестабильный сбор данных агента`.
|
||||
Если за 7 дней меньше 5 дней `OK`, портал и краткий вывод показывают:
|
||||
`Показатели требуют проверки: нестабильный сбор данных агента`.
|
||||
|
||||
## Качество данных по рабочим местам
|
||||
|
||||
Портал показывает карточку `Качество данных по рабочим местам`. Она отвечает
|
||||
на управленческий вопрос: какие узлы дают подтвержденные данные, а какие
|
||||
снижают доверие к KPI.
|
||||
снижают доверие к показателям.
|
||||
|
||||
`GET /api/reports` отдает:
|
||||
|
||||
@@ -150,15 +150,15 @@ agent и проверить поступление telemetry JSONL. Если и
|
||||
- `unknown_nodes`;
|
||||
- `accepted_kpi_nodes_pct`.
|
||||
|
||||
Если `accepted_kpi_nodes_pct < 80` и узлы есть, executive summary показывает:
|
||||
`KPI требует проверки: менее 80% узлов дают подтвержденные данные`.
|
||||
Если `accepted_kpi_nodes_pct < 80` и узлы есть, краткий вывод показывает:
|
||||
`Показатели требуют проверки: менее 80% рабочих мест дают подтвержденные данные`.
|
||||
|
||||
Главная страница не перегружается: показывается сводка и таблица максимум из
|
||||
10 проблемных узлов. Источник `local_fallback` никогда не подтверждает KPI.
|
||||
10 проблемных узлов. Источник `local_fallback` никогда не подтверждает показатели.
|
||||
|
||||
## SLA покрытия агентов
|
||||
## Полнота данных
|
||||
|
||||
Портал показывает карточку `Покрытие агентов`. Она отвечает на вопрос,
|
||||
Портал показывает карточку `Полнота данных`. Она отвечает на вопрос,
|
||||
насколько текущий `Индекс активности` репрезентативен по всему парку рабочих
|
||||
мест.
|
||||
|
||||
@@ -187,51 +187,51 @@ agent и проверить поступление telemetry JSONL. Если и
|
||||
|
||||
- `expected_nodes` - сколько рабочих мест ожидается по конфигу;
|
||||
- `reporting_nodes_24h` - сколько узлов прислали свежую за 24 часа
|
||||
телеметрию, принятую в KPI;
|
||||
телеметрию, принятую в показатели;
|
||||
- `stale_nodes` - узлы есть в telemetry, но последняя запись старше 24 часов;
|
||||
- `missing_nodes` - узлы из expected list не найдены в telemetry;
|
||||
- `coverage_pct` - процент узлов, подтверждающих KPI;
|
||||
- `coverage_pct` - процент узлов, подтверждающих показатели;
|
||||
- `freshness_pct` - процент узлов со свежей telemetry независимо от качества
|
||||
источника;
|
||||
- `sla_status` - `OK`, `WARNING`, `CRITICAL` или `UNKNOWN`;
|
||||
- `sla_status` - статус полноты данных: `OK`, `WARNING`, `CRITICAL` или `UNKNOWN`;
|
||||
- `problem_nodes` - максимум выводится в UI по 10 проблемным узлам.
|
||||
|
||||
Правила SLA:
|
||||
Правила полноты данных:
|
||||
|
||||
- `coverage_pct >= 90%` - `OK`;
|
||||
- `75-89%` - `WARNING`;
|
||||
- `<75%` - `CRITICAL`;
|
||||
- если expected list отсутствует или пустой - `UNKNOWN`.
|
||||
|
||||
Если статус `CRITICAL`, executive summary показывает:
|
||||
`Покрытие агентов критически недостаточно: KPI не может считаться репрезентативным`.
|
||||
Если статус `CRITICAL`, краткий вывод показывает:
|
||||
`Полнота данных критически недостаточна: показатели нельзя считать репрезентативными`.
|
||||
|
||||
Если статус `WARNING`, executive summary показывает:
|
||||
`KPI требует проверки: часть рабочих мест не присылает свежую телеметрию`.
|
||||
Если статус `WARNING`, краткий вывод показывает:
|
||||
`Показатели требуют проверки: часть рабочих мест не присылает свежую телеметрию`.
|
||||
|
||||
Источник `local_fallback` может повышать `freshness_pct`, если телеметрия
|
||||
свежая, но не повышает `coverage_pct` и не засчитывается как подтвержденный
|
||||
KPI.
|
||||
свежая, но не повышает `coverage_pct` и не засчитывается как подтвержденные
|
||||
показатели.
|
||||
|
||||
## Risk -> Investigation
|
||||
## Переход от риска к расследованию
|
||||
|
||||
Кнопка `Открыть расследование` переводит пользователя в read-only карточку.
|
||||
Кнопка `Открыть расследование` переводит пользователя в карточку только для чтения.
|
||||
|
||||
Карточка содержит:
|
||||
|
||||
- `incident_id`;
|
||||
- `risk_id`;
|
||||
- `department`;
|
||||
- `owner`;
|
||||
- `activity_index`;
|
||||
- `deviation`;
|
||||
- `status`;
|
||||
- `summary`;
|
||||
- `why_it_is_risk`;
|
||||
- `what_to_check`;
|
||||
- `recommended_actions`;
|
||||
- `evidence`;
|
||||
- `generated_at`.
|
||||
- номер;
|
||||
- риск;
|
||||
- подразделение;
|
||||
- ответственного;
|
||||
- индекс активности;
|
||||
- отклонение;
|
||||
- статус;
|
||||
- краткое описание;
|
||||
- почему это риск;
|
||||
- что проверить;
|
||||
- рекомендуемые действия;
|
||||
- материалы расследования;
|
||||
- дату формирования.
|
||||
|
||||
Предупреждение обязательно:
|
||||
|
||||
@@ -247,4 +247,4 @@ Smoke-тест:
|
||||
node scripts/detmir-portal-tabs-smoke.mjs
|
||||
```
|
||||
|
||||
Тест проверяет все вкладки, read-only настройки и переход Risk -> Investigation.
|
||||
Тест проверяет все вкладки, настройки только для чтения и переход от риска к расследованию.
|
||||
|
||||
Reference in New Issue
Block a user