docs: add pilot v1 acceptance evidence

This commit is contained in:
igor04091968
2026-06-06 13:09:28 +03:00
parent 067ad0939c
commit 9297d60a33
3 changed files with 251 additions and 0 deletions
+144
View File
@@ -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 считается готовой только при успешном прохождении всех
команд и отсутствии новых продуктовых обещаний за пределами текущего контура.
+105
View File
@@ -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.