Files
AWatch-rus/docs/PORTAL_RU.md
T

172 lines
6.9 KiB
Markdown

# AWatch-rus Portal
## Назначение
Портал является рабочим кабинетом для трех ролей:
- руководитель: пульс организации, активность, подразделения, риски;
- ИБ: риск-сигналы, события безопасности, evidence;
- расследователь: карточка инцидента, причины, проверяемые источники, отчет.
## Главные экраны
- `Обзор` - Executive Dashboard.
- `Сотрудники` - карточки сотрудников и объяснение индекса.
- `Подразделения` - сравнение групп, тренды и ответственные.
- `Риски` - read-only контроль безопасности.
- `Расследования` - инциденты, evidence и автоматическая read-only карточка расследования.
- `Сетевой периметр` - read-only контекст внешних сетевых сигналов.
- `Отчеты` - Markdown/PDF/JSON и управленческий текст.
- `Настройки` - read-only параметры расчета.
## Executive Dashboard
Показывает:
- сотрудников в работе;
- средний индекс активности;
- WARN/FAIL подразделения;
- критические риски;
- недельный тренд;
- достоверность данных агента;
- топ-5 лучших и проблемных подразделений;
- Heat Map;
- блок `Требует внимания`.
## Достоверность данных агента
Портал показывает карточку `Достоверность данных агента` в `Обзор` и
`Отчеты`. Это управленческий вывод о том, можно ли использовать текущий
`Индекс активности` и отчеты как подтвержденный KPI.
API сохраняет старое поле `agent_quality` и дополнительно отдает
`agent_quality_explain`:
- `status`;
- `title`;
- `summary`;
- `recommendation`;
- `kpi_accepted`.
Цвета статусов:
- `OK` - зеленый, KPI подтвержден основным источником;
- `WARNING` - желтый, данные собраны резервным способом;
- `DEGRADED` - оранжевый, данные нельзя использовать как доказательный KPI;
- `UNKNOWN` - серый, агент не передал diagnostics.
Карточка сначала показывает управленческий вывод, принято ли значение в KPI, и
рекомендацию. Технические поля доступны в раскрываемом блоке:
- источник коллектора;
- всего сессий;
- активных сессий;
- RDP-сессий;
- ошибка коллектора, если она есть.
Если diagnostics отсутствует, статус `UNKNOWN`, рекомендация - обновить Rust
agent и проверить поступление telemetry JSONL. Если источник `local_fallback`,
портал прямо пишет: `Диагностический режим, данные не засчитываются в KPI`.
## Стабильность агента за 7 дней
Портал показывает мини-блок `Стабильность агента за 7 дней`. Он отвечает на
вопрос, можно ли доверять недельному KPI, а не только текущему срезу.
`GET /api/reports` отдает:
- `agent_quality_history` - последняя запись качества по каждому дню за
7-дневное окно;
- `agent_quality_history_summary` - сводка по дням.
Элемент `agent_quality_history` содержит:
- `date`;
- `status`;
- `source`;
- `kpi_accepted`;
- `collector_error`, если он есть.
Сводка считает:
- сколько дней были `OK`;
- сколько дней были `WARNING`, `DEGRADED` или `UNKNOWN`;
- процент дней, когда KPI был принят.
Если за 7 дней меньше 5 дней `OK`, портал и executive summary показывают:
`KPI требует валидации: нестабильный сбор данных агента`.
## Качество данных по рабочим местам
Портал показывает карточку `Качество данных по рабочим местам`. Она отвечает
на управленческий вопрос: какие узлы дают подтвержденные данные, а какие
снижают доверие к KPI.
`GET /api/reports` отдает:
- `agent_quality_nodes` - последняя запись качества по каждому
`hostname`, при его отсутствии по `machine_id`, иначе `unknown`;
- `agent_quality_nodes_summary` - сводка по узлам.
Элемент `agent_quality_nodes` содержит:
- `hostname`;
- `last_seen_utc`;
- `source`;
- `status`;
- `kpi_accepted`;
- `sessions_total`;
- `rdp_sessions`;
- `collector_error`, если он есть;
- `recommendation`.
Сводка содержит:
- `total_nodes`;
- `ok_nodes`;
- `degraded_nodes` - узлы в `WARNING` или `DEGRADED`;
- `unknown_nodes`;
- `accepted_kpi_nodes_pct`.
Если `accepted_kpi_nodes_pct < 80` и узлы есть, executive summary показывает:
`KPI требует проверки: менее 80% узлов дают подтвержденные данные`.
Главная страница не перегружается: показывается сводка и таблица максимум из
10 проблемных узлов. Источник `local_fallback` никогда не подтверждает KPI.
## 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`.
Предупреждение обязательно:
```text
Расследование сформировано автоматически. Решение принимает ответственный сотрудник.
```
## Проверка
Smoke-тест:
```bash
node scripts/detmir-portal-tabs-smoke.mjs
```
Тест проверяет все вкладки, read-only настройки и переход Risk -> Investigation.