# AWatch-rus Portal: рабочий кабинет Дата: 2026-06-04 ## Цель изменения Портал переведен из технической "админки логов" в рабочий кабинет для трех ролей: - руководитель: управленческая сводка, показатели активности, отклонения, отчеты; - ИБ: риск-срез, проверки данных, состояние контрольных сигналов; - расследователь: карточки инцидентов, материалы проверки, хеши и выгрузка материалов. ## Что изменено - Верхняя панель переименована в `AWatch-rus Активность / Риски / Расследования`. - Интерфейс переведен в промышленную компоновку: - темный левый sidebar; - светлая аналитическая рабочая область; - верхняя панель периода, подразделения и экспорта; - compact B2B/SOC карточки и таблицы. - Добавлены элементы отчета: период, подразделение, формирование отчета, экспорт Markdown/PDF/JSON, статус сбора данных. - Навигация приведена к продуктовой модели: - `Обзор`; - `Сотрудники`; - `Подразделения`; - `Риски`; - `Расследования`; - `Сетевой периметр`; - `Отчеты`. - `Настройки`. - Главный экран `Пульс организации` содержит Executive Dashboard для утреннего просмотра руководителем: - сотрудников в работе сегодня; - средний индекс активности; - WARN подразделений; - FAIL подразделений; - критических рисков; - недельный тренд активности. - Главный аналитический блок содержит: - `ТОП-5 лучших подразделений`; - `ТОП-5 проблемных подразделений`; - блок `Требует внимания` с форматом: заголовок проблемы, почему это важно, что проверить, рекомендуемое действие; - широкую таблицу `Подразделения сегодня` с колонками: подразделение, индекс активности, отклонение, статус, ответственный; - блок `Аномалии` с объяснением: что произошло, почему это риск, что проверить; - блок `Топ рисков` с read-only переходом к расследованиям. - `Heat Map подразделений` с колонками: подразделение, активность, отклонение, риск, ответственный, действие; - read-only карточку руководителя подразделения. - Раздел `Настройки` работает только на чтение и показывает: период расчета, рабочий день, пороги WARN/FAIL, источник правил, дату последнего пересчета. - Добавлены отдельные промышленные представления: - экран подразделений: рейтинг групп, ответственные, просадки и отклонения; - экран сотрудников: карточка сотрудника, активность, сессии, плановое время, последнее событие; - экран сетевого периметра: режим наблюдения без управления сетевыми правилами. - Селектор периода подключен к интерфейсу: - `Сегодня` показывает текущий дневной срез; - `Неделя` и `Месяц` пересчитывают управленческие карточки по накопленной истории тренда; - если истории недостаточно, портал явно показывает `накоплено N/M дней`; - детальные дневные экраны маркируются плашкой `дневная детализация`. - Первый экран показывает executive summary: - какие подразделения работают нормально; - где падает активность; - где есть риск; - что проверить; - кому поручить разбор; - куда открыть расследование без автоматического воздействия. - Блок работы сотрудников показывает загрузку, простои, перегруз, приложения, объяснение индекса и проверку правил. - Блок рисков использует темную тему и выводит риск/ИБ-срез без автоматического воздействия на сеть. - Блок расследований показывает инциденты, материалы, скриншоты, хеши и ссылки на выгрузку. - Отчеты дополнены типами: ежедневный, недельный, месячный, по подразделению, по сотруднику, по инциденту, акт пилота. ## Важные ограничения - Фильтр периода влияет на управленческие представления портала. Фильтры подразделения и ответственного пока являются UI-контролами; backend-фильтрация должна добавляться отдельным изменением. - `Индекс активности` остается расчетной метрикой: активное время / плановое время. Взвешенный показатель объясняется отдельно через правила ролей и приложений. - Разделы рисков и расследований показывают риск-срез и материалы проверки. Это не заявляется как сертифицированная СЗИ. - Раздел сетевого периметра работает как витрина наблюдения. Он не меняет правила сети и не выполняет блокировки. - pfSense и сетевой периметр этим изменением не затрагивались. ## Проверки Локальные проверки: ```bash export CARGO_TARGET_DIR=/tmp/detmir-adk-rust-target node --check adk-rust/crates/detmir-portal/src/static/app.js git diff --check cargo test --manifest-path adk-rust/Cargo.toml -p detmir-portal cargo clippy --manifest-path adk-rust/Cargo.toml --all-targets --all-features -- -D warnings cargo build --release --manifest-path adk-rust/Cargo.toml -p detmir-portal ``` Боевые проверки после деплоя: - `detmir-portal.service`: active; - `nginx`: active; - `detmir-portal-evidence.service`: active; - `/portal/`: HTTP 200; - `/portal/api/summary`: HTTP 200; - `/portal/api/operator`: HTTP 200; - `/portal/api/manager`: HTTP 200; - `/portal/api/owner`: HTTP 200; - `/portal/api/incidents`: HTTP 200; - `/portal/api/reports`: HTTP 200; - `/portal/api/readiness/bundle`: HTTP 200; - `/portal/api/workforce/policy/explain`: HTTP 200; - `/portal/api/dlp/evidence`: HTTP 200. Playwright smoke: - заголовок страницы: `AWatch-rus Portal`; - вкладки `Обзор`, `Сотрудники`, `Подразделения`, `Риски`, `Расследования`, `Сетевой периметр`, `Отчеты`, `Настройки` открываются; - JS-ошибок нет; - API-ответов с кодом 400+ нет; - раздел рисков включает темную тему. - смена периода `Сегодня` -> `Неделя` меняет содержимое страницы и показывает плашку периода. - `scripts/detmir-portal-tabs-smoke.mjs` проверяет все `data-tab`, наличие обработчиков в `app.js`, Executive Dashboard, строки read-only настроек и read-only переход из топ-рисков в расследования.