docs: enter demo freeze housekeeping
This commit is contained in:
@@ -22,3 +22,44 @@ AWatch-rus.
|
||||
|
||||
Pilot v1 можно показывать заказчику с понятным списком готовых возможностей,
|
||||
ограничений и smoke-проверок.
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено как часть Pilot v1 freeze.
|
||||
|
||||
Что закреплено:
|
||||
|
||||
- роли `executive`, `manager`, `security`, `forensics`, `admin`;
|
||||
- серверные role gates для Pilot v1 API;
|
||||
- Executive, Workforce, Security и Forensics portal views;
|
||||
- Pilot v1 acceptance/evidence документация;
|
||||
- demo/runbook слой для контролируемого показа;
|
||||
- browser-level conformance smoke для ключевых представлений.
|
||||
|
||||
Ключевые артефакты:
|
||||
|
||||
- `docs/PILOT_V1_RU.md`;
|
||||
- `docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md`;
|
||||
- `docs/PILOT_V1_EVIDENCE_RU.md`;
|
||||
- `docs/PILOT_VALIDATION_CHECKLIST_RU.md`;
|
||||
- `docs/DEMO_RUNBOOK_RU.md`;
|
||||
- `docs/BROWSER_CONFORMANCE_RU.md`;
|
||||
- `scripts/detmir-portal-tabs-smoke.mjs`;
|
||||
- `scripts/browser-conformance-smoke.mjs`;
|
||||
- `scripts/pilot-validation-smoke.mjs`.
|
||||
|
||||
Проверки:
|
||||
|
||||
- `node scripts/pilot-validation-smoke.mjs`;
|
||||
- `node scripts/detmir-portal-tabs-smoke.mjs` на локальном портале;
|
||||
- `node scripts/browser-conformance-smoke.mjs` на локальном портале;
|
||||
- `git diff --check`.
|
||||
|
||||
Известные ограничения:
|
||||
|
||||
- production acceptance требует отдельной live-проверки на стенде заказчика;
|
||||
- screenshots из `artifacts/browser-smoke/` являются runtime artifacts и не
|
||||
коммитятся;
|
||||
- новые collectors и новая функциональность в freeze-фазе не добавляются.
|
||||
|
||||
@@ -381,3 +381,72 @@ Smoke должен проверять:
|
||||
7. Результаты команд проверки.
|
||||
8. Результат smoke.
|
||||
9. Известные ограничения
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено для Pilot v1 production-hardening слоя портала.
|
||||
|
||||
Краткое описание:
|
||||
|
||||
- добавлены production endpoints `/healthz`, `/readyz`, `/version`, `/metrics`;
|
||||
- добавлены request id / correlation id headers;
|
||||
- добавлены structured JSON HTTP logs;
|
||||
- добавлены bounded query/body limits для тяжелых API;
|
||||
- добавлена валидация production-конфигурации;
|
||||
- role gates сохранены и проверяются smoke;
|
||||
- pfSense остается `contract_only`, без заявления ingestion/SIEM.
|
||||
|
||||
Ключевые файлы:
|
||||
|
||||
- `adk-rust/crates/detmir-portal/src/production/`;
|
||||
- `adk-rust/crates/detmir-portal/src/main.rs`;
|
||||
- `docs/PRODUCTION_READINESS_RU.md`;
|
||||
- `scripts/awatch-production-hardening-smoke.mjs`.
|
||||
|
||||
Endpoints:
|
||||
|
||||
- `GET /healthz`;
|
||||
- `GET /readyz`;
|
||||
- `GET /version`;
|
||||
- `GET /metrics`;
|
||||
- защищенные Pilot v1 API: `/api/reports`, `/api/executive`,
|
||||
`/api/workforce`, `/api/security`, `/api/forensics`, `/api/ueba`,
|
||||
`/api/pfsense`, `/api/workforce/kpi/explain`.
|
||||
|
||||
Лимиты и защита:
|
||||
|
||||
- max request body size;
|
||||
- max/default page size;
|
||||
- max report date range;
|
||||
- request timeout и slow request logging threshold;
|
||||
- отказ `400` для слишком большого `page_size` или диапазона отчета;
|
||||
- отказ `413` для слишком большого body;
|
||||
- отказ `403` по role gate.
|
||||
|
||||
Метрики:
|
||||
|
||||
- `awatch_http_requests_total`;
|
||||
- `awatch_http_request_duration_seconds`;
|
||||
- `awatch_reports_generated_total`;
|
||||
- `awatch_ingestion_records_total`;
|
||||
- `awatch_ingestion_rejected_total`;
|
||||
- `awatch_role_denied_total`;
|
||||
- `awatch_readyz_status`.
|
||||
|
||||
Проверки:
|
||||
|
||||
- `cargo fmt --all --check`;
|
||||
- `cargo clippy --all-targets --all-features -- -D warnings`;
|
||||
- `cargo test --all`;
|
||||
- `cargo build --release`;
|
||||
- `AWATCH_PORTAL_SMOKE_URL=http://127.0.0.1:8720 node scripts/awatch-production-hardening-smoke.mjs`;
|
||||
- `git diff --check`.
|
||||
|
||||
Известные ограничения:
|
||||
|
||||
- production-hardening smoke не заменяет live acceptance;
|
||||
- `/readyz` отражает только реально настроенные зависимости;
|
||||
- contract-only интеграции не считаются работающими сборщиками;
|
||||
- freeze-фаза допускает только исправление дефектов и уточнение документации.
|
||||
|
||||
@@ -309,4 +309,72 @@ docs/EXPLAINABLE_KPI_RU.md
|
||||
5. Добавленные UI-блоки.
|
||||
6. Добавленные тесты.
|
||||
7. Результаты проверок.
|
||||
8. Известные ограничения.
|
||||
8. Известные ограничения.
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено для Pilot v1.
|
||||
|
||||
Краткое описание:
|
||||
|
||||
- добавлен explainability-контракт Workforce KPI;
|
||||
- добавлен endpoint `GET /api/workforce/kpi/explain`;
|
||||
- добавлена детерминированная rule-based модель факторов;
|
||||
- добавлен confidence level `high` / `medium` / `low`;
|
||||
- UI показывает блок `Почему такой индекс активности?`;
|
||||
- Markdown-отчет содержит explainability-раздел;
|
||||
- OpenAPI и TypeScript contracts включают explain model;
|
||||
- employee-level детализация не добавлена без отдельного безопасного контракта.
|
||||
|
||||
Ключевые файлы:
|
||||
|
||||
- `adk-rust/crates/detmir-portal/src/workforce_kpi_explain.rs`;
|
||||
- `adk-rust/crates/detmir-portal/src/static/app.js`;
|
||||
- `adk-rust/crates/detmir-portal/src/contracts/openapi.json`;
|
||||
- `adk-rust/crates/detmir-portal/src/contracts/typescript.d.ts`;
|
||||
- `docs/EXPLAINABLE_KPI_RU.md`.
|
||||
|
||||
API endpoint:
|
||||
|
||||
- `GET /api/workforce/kpi/explain`.
|
||||
|
||||
Модель explainability:
|
||||
|
||||
- `kpi_score`;
|
||||
- `confidence`;
|
||||
- `coverage`;
|
||||
- `factors`;
|
||||
- `top_applications`;
|
||||
- `warnings`;
|
||||
- `recommendations`.
|
||||
|
||||
Минимальные факторы:
|
||||
|
||||
- `productive_activity`;
|
||||
- `business_app_usage`;
|
||||
- `idle_time`;
|
||||
- `afterhours_activity`;
|
||||
- `remote_session_activity`;
|
||||
- `data_coverage`;
|
||||
- `missing_data`;
|
||||
- `trend_change`.
|
||||
|
||||
Проверки:
|
||||
|
||||
- unit tests для explainability-модели и confidence;
|
||||
- role-filtering smoke;
|
||||
- markdown/report smoke;
|
||||
- `cargo fmt --all --check`;
|
||||
- `cargo clippy --all-targets --all-features -- -D warnings`;
|
||||
- `cargo test --all`;
|
||||
- `cargo build --release`;
|
||||
- portal smoke.
|
||||
|
||||
Известные ограничения:
|
||||
|
||||
- не используется ML, LLM или predictive scoring;
|
||||
- KPI не является HR-дисциплинарной оценкой;
|
||||
- персональная explainability-модель в Pilot v1 не включена;
|
||||
- качество объяснения зависит от свежести и полноты источников.
|
||||
|
||||
@@ -278,4 +278,82 @@ docs/RISK_NARRATIVE_RU.md
|
||||
6. Обновления report/OpenAPI/TypeScript.
|
||||
7. Добавленные тесты.
|
||||
8. Результаты fmt/clippy/test/build/smoke.
|
||||
9. Известные ограничения.
|
||||
9. Известные ограничения.
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено для Pilot v1.
|
||||
|
||||
Краткое описание:
|
||||
|
||||
- добавлен rule-based Risk Narrative layer;
|
||||
- добавлен endpoint `GET /api/risk/narrative`;
|
||||
- risk score связывает Workforce KPI, Explainable KPI, UEBA, coverage,
|
||||
security correlation, incident candidates и pfSense `contract_only`
|
||||
limitation;
|
||||
- Executive UI показывает блок `Риск-нарратив`;
|
||||
- Security UI проверяет ИБ-релевантную связь рисков и активности;
|
||||
- Markdown-отчет содержит раздел `## Риск-нарратив`;
|
||||
- OpenAPI и TypeScript contracts обновлены;
|
||||
- создана отдельная документация `docs/RISK_NARRATIVE_RU.md`.
|
||||
|
||||
Ключевые файлы:
|
||||
|
||||
- `adk-rust/crates/detmir-portal/src/risk_narrative.rs`;
|
||||
- `adk-rust/crates/detmir-portal/src/static/app.js`;
|
||||
- `adk-rust/crates/detmir-portal/src/contracts/openapi.json`;
|
||||
- `adk-rust/crates/detmir-portal/src/contracts/typescript.d.ts`;
|
||||
- `docs/RISK_NARRATIVE_RU.md`;
|
||||
- `scripts/browser-conformance-smoke.mjs`;
|
||||
- `scripts/detmir-portal-tabs-smoke.mjs`.
|
||||
|
||||
Risk scoring rules:
|
||||
|
||||
- `0-24` - `low`;
|
||||
- `25-49` - `guarded`;
|
||||
- `50-74` - `medium`;
|
||||
- `75-89` - `high`;
|
||||
- `90-100` - `critical`.
|
||||
|
||||
Сигналы:
|
||||
|
||||
- low Workforce KPI;
|
||||
- low KPI confidence;
|
||||
- low agent coverage;
|
||||
- increased UEBA severity;
|
||||
- incident candidates count;
|
||||
- high security correlation;
|
||||
- missing data;
|
||||
- afterhours/remote activity;
|
||||
- pfSense `contract_only` limitation.
|
||||
|
||||
UI-блоки:
|
||||
|
||||
- Executive: `Риск-нарратив`, `Почему`, `Подтверждения`, `Дальше`,
|
||||
`Ограничения`;
|
||||
- Security: `Связь рисков и активности`, `Требует проверки`,
|
||||
`Рекомендуемые действия ИБ`;
|
||||
- Forensics: расследования, timeline, материалы расследования и аудит.
|
||||
|
||||
Проверки:
|
||||
|
||||
- unit tests для risk narrative scenarios;
|
||||
- OpenAPI/TypeScript contract smoke;
|
||||
- `node scripts/browser-conformance-smoke.mjs`;
|
||||
- `node scripts/detmir-portal-tabs-smoke.mjs`;
|
||||
- `cargo fmt --all --check`;
|
||||
- `cargo clippy --all-targets --all-features -- -D warnings`;
|
||||
- `cargo test --all`;
|
||||
- `cargo build --release`;
|
||||
- `git diff --check`.
|
||||
|
||||
Известные ограничения:
|
||||
|
||||
- Risk Narrative не является ML/LLM/predictive analytics;
|
||||
- Risk Narrative не подтверждает нарушение без ручной проверки;
|
||||
- нет auto-remediation;
|
||||
- pfSense не заявляется как ingestion/SIEM, пока это не пройдет отдельную
|
||||
приемку;
|
||||
- live customer-stand validation остается отдельным шагом Demo Freeze v1.
|
||||
|
||||
Reference in New Issue
Block a user