# docs/roadmap/TASK_013_DETMIR_PRODUCTION_VALIDATION.md ## Цель Проверить реально работающий контур DetMir/AWatch-rus на нескольких пользователях и собрать фактические эксплуатационные данные. Задача не про добавление функциональности. Задача про проверку: * что реально работает; * что используется; * где есть шум; * где есть расхождение с документацией; * какие риски есть перед расширением пилота. --- ## Контекст Проект уже находится в состоянии: * Demo Freeze v1; * Pilot-ready; * Registry-preparation-ready; * Enterprise-deployment-documented. При этом существует реально работающий контур DetMir на нескольких пользователях. Нужно проверить именно его, не подменяя проверку demo/synthetic данными. --- ## Основные правила Запрещено: * добавлять новые API; * добавлять новый UI; * добавлять новые agent collectors; * менять архитектуру; * включать ML/LLM; * добавлять DLP/SIEM/EDR claims; * выгружать персональные данные в документы; * коммитить реальные ФИО, логины, IP, hostname, названия подразделений заказчика; * коммитить runtime artifacts, логи, дампы, скриншоты с реальными данными. Разрешено: * добавлять документацию; * добавлять checklist; * добавлять anonymized summary; * добавлять smoke/validation scripts, если они не раскрывают данные; * исправлять явные naming/documentation inconsistencies; * фиксировать gaps как отдельные рекомендации. --- ## Что проверить ### 1. Runtime Health Проверить работающий контур: * `/healthz`; * `/readyz`; * `/version`; * `/metrics`. Зафиксировать: * доступность; * response status; * наличие request id / correlation id; * отсутствие 500; * корректность metrics format. Не сохранять реальные URL, IP, hostname. --- ### 2. Portal Usage Validation Проверить вручную или через browser smoke: * Executive Dashboard; * Workforce view; * Security view; * Forensics view; * Reports view. Зафиксировать: * какие страницы реально открываются; * какие блоки отображаются; * есть ли пустые/сломанные блоки; * есть ли 500/404; * есть ли визуальные проблемы. Не коммитить screenshots с реальными данными. Если нужны screenshots — сохранить только локально или сделать обезличенные. --- ### 3. KPI Validation Проверить: * Workforce KPI; * Explainable KPI; * Department Comparison; * Trend Status. Ответить: * KPI выглядит правдоподобно или нет; * explainability помогает понять KPI или нет; * есть ли очевидно ложные/странные объяснения; * есть ли недостаток данных; * есть ли `confidence: low`. --- ### 4. UEBA / Risk Narrative / Action Center Validation Проверить: * UEBA Score; * Risk Narrative; * Recommended Actions. Зафиксировать: * есть ли шумные правила; * есть ли бесполезные рекомендации; * есть ли рекомендации без достаточной evidence; * есть ли risk level, который выглядит завышенным; * есть ли risk level, который выглядит заниженным. Важно: не исправлять правила в этой задаче, если это требует изменения логики. Только зафиксировать findings. --- ### 5. Agent / Data Flow Validation Проверить текущий runtime: * работает ли текущий агентский контур; * есть ли backlog/spool; * есть ли ошибки flush; * есть ли dead-letter; * нет ли потери данных; * heartbeat поступает или нет; * данные доходят до портала/отчетов. Если используются оба: * `awatch-agent-rs`; * `adk-rust/crates/awatch-agent`; зафиксировать их фактические роли: ```text legacy/current runtime: new baseline core: ``` --- ### 6. Performance Snapshot Собрать обезличенную сводку: * примерное число пользователей; * примерное число событий/записей в сутки, если безопасно доступно; * размер spool/backlog; * время генерации report; * время ответа основных API; * наличие slow requests; * наличие ошибок в logs. Не коммитить raw logs. --- ### 7. Data Hygiene / Sensitive Data Audit Проверить, что в репозитории и документах после работы не появились: * реальные ФИО; * реальные логины; * реальные IP; * реальные hostname; * реальные подразделения заказчика; * реальные screenshots; * runtime logs; * database dumps; * персональные данные. --- ## Что создать Создать документ: ```text docs/DETMIR_PRODUCTION_VALIDATION_RU.md ``` Структура: ```text # DetMir Production Validation ## Executive Summary ## Scope ## Environment Обезличенно: - пользователей: несколько; - контур: working internal pilot; - данные: реальные, но в документе не раскрываются. ## Runtime Health ## Portal Validation ## KPI Validation ## Explainable KPI Validation ## UEBA Validation ## Risk Narrative Validation ## Executive Action Center Validation ## Agent/Data Flow Validation ## Performance Snapshot ## Noise / False Positive Findings ## Documentation Mismatches ## Security / Privacy Notes ## Gaps ## Recommended Next Tasks ## Explicit Non-Goals ## Conclusion ``` --- ## Что обновить Обновить: ```text docs/roadmap/TASK_013_DETMIR_PRODUCTION_VALIDATION.md ``` Добавить секцию: ```text ## Выполнение ``` с кратким итогом. При необходимости обновить: ```text docs/ROADMAP_CONFORMANCE_AUDIT_RU.md ``` только если найдены важные расхождения. --- ## Допустимые scripts Если полезно, добавить: ```text scripts/detmir-production-validation-smoke.mjs ``` Требования: * не печатать реальные данные; * не сохранять payload с персональными данными; * проверять только статусы, наличие блоков и обезличенные счетчики; * URL задавать через env: ```bash DETMIR_VALIDATION_URL=http://127.0.0.1:8720 ``` --- ## Проверки Выполнить: ```bash cargo fmt --all --check cargo clippy --all-targets --all-features -- -D warnings cargo test --all cargo build --release node scripts/deployment-readiness-smoke.mjs node scripts/pilot-validation-smoke.mjs AWATCH_PORTAL_SMOKE_URL=http://127.0.0.1:8720 node scripts/awatch-production-hardening-smoke.mjs ``` Если добавлен новый script: ```bash node --check scripts/detmir-production-validation-smoke.mjs DETMIR_VALIDATION_URL=http://127.0.0.1:8720 node scripts/detmir-production-validation-smoke.mjs ``` Также выполнить: ```bash git diff --check ``` и sensitive scan по добавленным/измененным файлам. --- ## Критерии приемки Задача выполнена, если: * создан `docs/DETMIR_PRODUCTION_VALIDATION_RU.md`; * рабочий контур проверен без раскрытия персональных данных; * health/ready/version/metrics проверены; * portal проверен; * KPI/explainability проверены; * UEBA/Risk Narrative/Action Center проверены; * agent/data flow проверен; * performance snapshot зафиксирован обезличенно; * gaps и recommended next tasks сформированы; * sensitive data не попали в git; * все проверки проходят. --- ## Финальный отчет Codex должен содержать 1. Что проверено. 2. Что подтверждено как работающее. 3. Какие gaps найдены. 4. Какие noisy rules/recommendations найдены. 5. Какие privacy/security ограничения соблюдены. 6. Какие документы созданы/обновлены. 7. Какие scripts добавлены. 8. Результаты проверок. 9. Рекомендованные следующие задачи. --- ## Выполнение Статус: выполнено как production validation / operational audit. Создан документ: - `docs/DETMIR_PRODUCTION_VALIDATION_RU.md`. Проверено без коммита реальных payload/logs/screenshots: - gateway и portal runtime; - ActivityWatch API; - portal API reports; - portal tabs и role views через browser/tabs smoke; - Workforce/KPI report structure; - UEBA endpoint; - Risk Narrative endpoint availability; - Executive Action Center endpoint availability; - Windows/RDP agent runtime; - AW server service state; - bucket freshness summary; - production-hardening endpoint availability; - sensitive data hygiene. Подтверждено работающее: - gateway-level health; - portal UI на фактическом gateway-local port; - `/portal/api/health`; - `/portal/api/reports` по ролям; - Security events backend; - `/portal/api/ueba`; - Forensics view; - базовые portal tabs; - server role gates в существующем tabs smoke; - ActivityWatch API и свежие buckets; - текущий Windows runtime с `awatch-agent-rs` и watchers. Найдены gaps: - live portal runtime отстает от Demo Freeze v1; - `/portal/api/workforce/kpi/explain`, `/portal/api/risk/narrative`, `/portal/api/actions` на live-контуре возвращают `404`; - `/healthz`, `/readyz`, `/version`, `/metrics` не доступны на фактическом portal port; - request id / correlation id headers не возвращаются live portal API; - Executive visual conformance smoke не проходит на live runtime; - UEBA `critical` требует ручной проверки evidence, чтобы исключить шум. Scripts: - новые scripts не добавлялись; - использованы существующие `scripts/browser-conformance-smoke.mjs`, `scripts/detmir-portal-tabs-smoke.mjs`, `scripts/awatch-production-hardening-smoke.mjs`, `scripts/deployment-readiness-smoke.mjs`, `scripts/pilot-validation-smoke.mjs`. Результаты проверок: - `cargo fmt --all --check` - OK; - `cargo clippy --all-targets --all-features -- -D warnings` - OK; - `cargo test --all` - OK; - `cargo build --release` - OK; - `node scripts/deployment-readiness-smoke.mjs` - OK; - `node scripts/pilot-validation-smoke.mjs` - OK; - live `scripts/browser-conformance-smoke.mjs` - FAIL для Executive, Workforce, Security; OK для Forensics; - live `scripts/detmir-portal-tabs-smoke.mjs` - FAIL только на Executive freeze-layer checks; базовые tabs, role gates, security/forensics/admin OK; - live `scripts/awatch-production-hardening-smoke.mjs` - FAIL: `/healthz` на live portal base не возвращает `200`; - `git diff --check` - OK; - sensitive scan по добавленным/измененным файлам - OK после исключения терминологических false positives. Итог: - live-контур пригоден для controlled internal review; - расширять пилот нельзя, пока не закрыт deployment/version drift и не повторен live smoke после controlled deploy; - новых claims, API, UI, collectors, ML/LLM и SIEM/DLP/EDR заявлений не добавлялось.