From 9297d60a333150fbe66d14f4d2d3ce527daa986d Mon Sep 17 00:00:00 2001 From: igor04091968 Date: Sat, 6 Jun 2026 13:09:28 +0300 Subject: [PATCH] docs: add pilot v1 acceptance evidence --- README.md | 2 + docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md | 144 +++++++++++++++++++++++ docs/PILOT_V1_EVIDENCE_RU.md | 105 +++++++++++++++++ 3 files changed, 251 insertions(+) create mode 100644 docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md create mode 100644 docs/PILOT_V1_EVIDENCE_RU.md diff --git a/README.md b/README.md index 7030dcb..1d1e393 100755 --- a/README.md +++ b/README.md @@ -117,6 +117,8 @@ Markdown-отчет собирает главный вывод, риски по - [Архитектурный baseline](docs/ARCHITECTURE_BASELINE_RU.md) - [Пакет пилота для заказчика](docs/CUSTOMER_PILOT_PACK_RU.md) - [Pilot v1.0](docs/PILOT_V1_RU.md) +- [Pilot v1.0 acceptance checklist](docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md) +- [Pilot v1.0 evidence](docs/PILOT_V1_EVIDENCE_RU.md) - [Ролевая модель портала](docs/ROLES_RU.md) - [UEBA Score v1](docs/UEBA_SCORE_RU.md) - [pfSense integration readiness](docs/PFSENSE_INTEGRATION_RU.md) diff --git a/docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md b/docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md new file mode 100644 index 0000000..4243648 --- /dev/null +++ b/docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md @@ -0,0 +1,144 @@ +# Pilot v1.0 Acceptance Checklist + +## Назначение + +Этот checklist закрепляет Pilot v1.0 как приемочный контур AWatch-rus для +демонстрации заказчику. Базовый кодовый контур: commit +`067ad0939c3b8c34df8af9ff55bb219277d08341`. + +Pilot v1.0 принимается как Workforce Analytics + Security Analytics + +Forensics с ролевым порталом, стабильными JSON API, UEBA Score v1 и pfSense +readiness в режиме `contract_only`. + +## Не входит в приемку + +- SIEM. +- Классический DLP. +- ML/LLM scoring. +- Автоматическое сетевое воздействие. +- pfSense ingestion. +- NAC, SOAR, quarantine, изменение firewall/VPN/routing. +- Dioxus, React, Tauri, Electron как основной UI Pilot v1.0. + +## Общие критерии + +| Критерий | Ожидаемый результат | Статус | +| --- | --- | --- | +| Портал открывается | `/portal` загружается и показывает готовый статус данных | приемочный | +| Главный вывод | В Executive View отображается первым | приемочный | +| Русификация | В пользовательских блоках нет лишних англоязычных терминов | приемочный | +| Demo data | Нет реальных IP, hostname, логинов, ФИО, подразделений заказчика | приемочный | +| Документация | README и `docs/` содержат Pilot v1 материалы | приемочный | +| Неизменность позиционирования | Нет заявлений SIEM/DLP/pfSense ingestion | приемочный | + +## Роли + +| Роль | Endpoint/UI | Должна видеть | Не должна видеть по умолчанию | +| --- | --- | --- | --- | +| `executive` | Executive Dashboard | главный вывод, риски подразделений, Workforce summary | ИБ-детализацию и материалы расследований | +| `manager` | Workforce Portal | активность, подразделения, ответственных, тренды, Markdown-отчет | Security queue и evidence | +| `security` | Security Portal | кандидатов на проверку, risk score, события безопасности, аудит | управленческий Workforce Dashboard | +| `forensics` | Forensics Portal | карточки расследований, timeline, материалы, Markdown export | управленческие Workforce-разрезы | +| `admin` | Operations/Admin | качество данных, настройки, ClickHouse/fallback-статусы | не используется как управленческая роль | + +Серверная проверка обязательна: роль должна ограничивать доступ на API-уровне, +а не только через скрытие кнопок в HTML. + +## API contracts + +Приемочные endpoint-ы: + +- `/api/reports`; +- `/api/executive`; +- `/api/workforce`; +- `/api/security`; +- `/api/forensics`; +- `/api/ueba`; +- `/api/pfsense`; +- `/api/contracts/openapi.json`; +- `/api/contracts/typescript.d.ts`. + +Ожидания: + +- структуры JSON стабильны и additive-compatible; +- роль возвращается в `role_context`; +- неизвестные поля должны игнорироваться клиентом; +- отказ доступа возвращает 403; +- `/api/pfsense` возвращает `status=contract_only` и + `ingestion_available=false`. + +## UEBA Score v1 + +Приемочный UEBA-контур: + +- rule-based; +- без ML; +- без LLM; +- score 0-100; +- severity: `normal`, `low`, `medium`, `high`, `critical`; +- reason codes; +- human-readable explanation; +- компоненты: + - `activity_anomaly`; + - `time_anomaly`; + - `application_anomaly`; + - `network_anomaly`; + - `history_anomaly`. + +UEBA Score v1 только ранжирует риск для ручной проверки. Он не блокирует +пользователей и не меняет сетевые политики. + +## pfSense readiness + +Приемочный статус: `contract_only`. + +Допустимо: + +- contracts; +- fixtures; +- docs; +- API-заготовка; +- demo-события только с RFC 5737 адресами. + +Недопустимо: + +- заявлять реальный ingestion без проверки; +- называть контур SIEM; +- обещать firewall/VPN enforcement; +- показывать реальные IP, hostname, login или события заказчика. + +## Smoke acceptance + +Команда: + +```bash +node scripts/detmir-portal-tabs-smoke.mjs +``` + +Smoke должен подтвердить: + +- портал открывается; +- Executive Dashboard открывается; +- Workforce/Manager view открывается; +- Security view открывается; +- Forensics view открывается; +- Admin/Operations view открывается; +- `/api/reports` возвращает валидный JSON; +- серверные role gates возвращают 403 для чужих срезов; +- demo-data не содержит чувствительных значений. + +## Обязательные проверки перед приемкой + +Выполнять из `adk-rust/`, кроме `git diff --check` и smoke: + +```bash +cargo fmt --all --check +cargo clippy --workspace --all-targets -- -D warnings +cargo test --workspace +cargo build --workspace --release +git diff --check +node scripts/detmir-portal-tabs-smoke.mjs +``` + +Приемка Pilot v1.0 считается готовой только при успешном прохождении всех +команд и отсутствии новых продуктовых обещаний за пределами текущего контура. diff --git a/docs/PILOT_V1_EVIDENCE_RU.md b/docs/PILOT_V1_EVIDENCE_RU.md new file mode 100644 index 0000000..9182d8b --- /dev/null +++ b/docs/PILOT_V1_EVIDENCE_RU.md @@ -0,0 +1,105 @@ +# Pilot v1.0 Evidence + +## Базовый контур + +Базовый commit Pilot v1.0: +`067ad0939c3b8c34df8af9ff55bb219277d08341`. + +Назначение evidence-документа: показать, какие артефакты подтверждают +готовность AWatch-rus Pilot v1.0 к демонстрации и приемке по ролям, API +contracts, UEBA Score v1 и pfSense readiness. + +## Product boundary evidence + +| Область | Артефакт | Что подтверждает | +| --- | --- | --- | +| Позиционирование | [PILOT_V1_RU.md](PILOT_V1_RU.md) | Workforce Analytics + Security Analytics + Forensics | +| Роли | [ROLES_RU.md](ROLES_RU.md) | `executive`, `manager`, `security`, `forensics`, `admin` | +| UEBA | [UEBA_SCORE_RU.md](UEBA_SCORE_RU.md) | rule-based scoring без ML/LLM | +| pfSense | [PFSENSE_INTEGRATION_RU.md](PFSENSE_INTEGRATION_RU.md) | readiness=`contract_only`, без SIEM/ingestion claims | +| Demo сценарий | [CUSTOMER_DEMO_SCENARIO_RU.md](CUSTOMER_DEMO_SCENARIO_RU.md) | 10-минутный показ заказчику | +| Преддемо | [DEMO_RUNBOOK_RU.md](DEMO_RUNBOOK_RU.md) | прогрев и порядок проверки перед показом | +| Gap analysis | [PILOT_GAP_ANALYSIS_RU.md](PILOT_GAP_ANALYSIS_RU.md) | известные риски и остаточные ограничения | + +## API evidence + +| Endpoint | Evidence | Приемочный смысл | +| --- | --- | --- | +| `/api/reports` | smoke + OpenAPI | общий отчет, role-filtered payload | +| `/api/executive` | OpenAPI + role gate smoke | Executive Dashboard | +| `/api/workforce` | OpenAPI + role gate smoke | Workforce Portal | +| `/api/security` | OpenAPI + role gate smoke | Security Portal | +| `/api/forensics` | OpenAPI + role gate smoke | Forensics Portal | +| `/api/ueba` | OpenAPI + tests | UEBA Score v1 | +| `/api/pfsense` | OpenAPI + fixture | pfSense readiness `contract_only` | +| `/api/contracts/openapi.json` | repository contract | стабильный OpenAPI contract | +| `/api/contracts/typescript.d.ts` | repository contract | стабильные TypeScript declarations | + +Контрактные файлы: + +- `adk-rust/crates/detmir-portal/src/contracts/openapi.json`; +- `adk-rust/crates/detmir-portal/src/contracts/typescript.d.ts`. + +## Demo data evidence + +Демонстрационные материалы: + +- `docs/screenshots/01-executive-overview.png`; +- `docs/screenshots/02-risk-heatmap.png`; +- `docs/screenshots/03-security-view.png`; +- `docs/screenshots/04-operations-view.png`; +- `docs/screenshots/05-investigation-pack.png`; +- `docs/screenshots/06-markdown-report.png`; +- `docs/fixtures/pfsense-demo-events.json`. + +Требования: + +- не использовать реальные IP-адреса; +- не использовать реальные hostname; +- не использовать реальные логины; +- не использовать ФИО сотрудников; +- не использовать реальные подразделения заказчика; +- не использовать реальные события безопасности. + +Для сетевых примеров допустимы только RFC 5737 диапазоны: + +- `192.0.2.0/24`; +- `198.51.100.0/24`; +- `203.0.113.0/24`. + +## Verification evidence + +Обязательный набор команд: + +```bash +cd adk-rust +cargo fmt --all --check +cargo clippy --workspace --all-targets -- -D warnings +cargo test --workspace +cargo build --workspace --release +cd .. +git diff --check +node scripts/detmir-portal-tabs-smoke.mjs +``` + +Что подтверждают команды: + +- `cargo fmt --all --check` - Rust-код форматирован. +- `cargo clippy --workspace --all-targets -- -D warnings` - нет warnings в + workspace. +- `cargo test --workspace` - unit/integration tests проходят. +- `cargo build --workspace --release` - release-сборка workspace проходит. +- `git diff --check` - нет whitespace-ошибок в diff. +- `node scripts/detmir-portal-tabs-smoke.mjs` - портал, вкладки, роли и + server-side role gates проходят smoke. + +## Приемочный вывод + +Pilot v1.0 готов к демонстрации, если: + +- все команды verification evidence прошли успешно; +- role gates подтверждены smoke-тестом; +- UEBA Score v1 остается rule-based; +- pfSense readiness остается `contract_only`; +- документация не содержит обещаний SIEM, классического DLP, ML/LLM или + реального pfSense ingestion.