feat(web): 視覺化 IwoooS 資安指揮板
This commit is contained in:
@@ -1,3 +1,58 @@
|
||||
## 2026-05-31|IwoooS 視覺化資安指揮板與 Kali 維護就緒度
|
||||
|
||||
**背景**:
|
||||
|
||||
- 使用者指出 `/zh-TW/iwooos` 文字量過高,不符合專業資安市場主流的視覺化、圖表化、互動式資安體驗。
|
||||
- 本輪保持 Gate 0 與低摩擦原則:只改善前台 UX、只讀 evidence 與 guard,不啟動掃描、`/execute`、Kali 更新、重啟或 GitHub primary 切換。
|
||||
|
||||
**本次調整**:
|
||||
|
||||
- `apps/web/src/app/[locale]/iwooos/page.tsx`:
|
||||
- 新增 `IwoooSVisualCommandDashboard`,第一層改成風險環、產品 / 主機覆蓋節點、Gate 矩陣與 drill-down details。
|
||||
- overview 長內容改為預設收合,避免首頁一進來就被大量文字淹沒。
|
||||
- 新增 `KaliMaintenanceReadinessBoard`,把 Kali `192.168.0.112` 的只讀快照、待更新套件 `1994`、failed systemd unit `1`、full-upgrade / reboot Gate 0 邊界視覺化。
|
||||
- `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json`:
|
||||
- 補齊視覺化資安指揮板與 Kali 維護就緒度文案;兩個語系維持繁體中文鏡像。
|
||||
- `docs/security/iwooos-posture-projection.snapshot.json`:
|
||||
- 新增 `display_visual_command_dashboard`、`visual_command_dashboard_widget_count=13`、`long_form_sections_default_collapsed=true`。
|
||||
- 新增 Kali 維護就緒度四個只讀 projection item。
|
||||
- `scripts/security/security-mirror-progress-guard.py`:
|
||||
- 新增視覺化指揮板、Kali 維護就緒度、繁中鏡像與禁止升級成執行授權的 guard。
|
||||
|
||||
**驗證**:
|
||||
|
||||
```text
|
||||
python3 scripts/security/security-mirror-progress-guard.py -> SECURITY_MIRROR_PROGRESS_GUARD_OK
|
||||
python3 scripts/security/source-control-owner-response-guard.py -> SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK
|
||||
python3 -m json.tool apps/web/messages/zh-TW.json / en.json / docs/security/iwooos-posture-projection.snapshot.json -> pass
|
||||
cmp -s apps/web/messages/zh-TW.json apps/web/messages/en.json -> pass
|
||||
pnpm --dir apps/web run typecheck -> pass
|
||||
NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --dir apps/web run build -> pass
|
||||
|
||||
local browser smoke:
|
||||
/zh-TW/iwooos desktop 1440:
|
||||
visualDashboardVisible=true
|
||||
overviewOpen=false
|
||||
horizontalOverflow=false
|
||||
hasChartRing=true
|
||||
hasKaliGate=true
|
||||
/zh-TW/iwooos mobile 390:
|
||||
visualDashboardVisible=true
|
||||
overviewOpen=false
|
||||
horizontalOverflow=false
|
||||
hasChartRing=true
|
||||
hasKaliGate=true
|
||||
screenshots:
|
||||
/tmp/iwooos-visual-dashboard-desktop-20260531.png
|
||||
/tmp/iwooos-visual-dashboard-mobile-20260531.png
|
||||
```
|
||||
|
||||
**進度邊界**:
|
||||
|
||||
- 整體資安進度仍維持 `61%`;這是 UX / 可理解性 / read-only projection 進步,不是 runtime 開閘。
|
||||
- Kali `192.168.0.112` 仍沒有執行 full-upgrade、autoremove、reboot、active scan 或 `/execute`。
|
||||
- 下一個真正推動 headline progress 的 Gate 仍是負責人回覆被驗收、redacted finding ingestion、GitHub primary evidence 或 active runtime gate 其中之一。
|
||||
|
||||
## 2026-05-31|Work Items 焦點 Incident 稽核鏈 local 收斂
|
||||
|
||||
**背景**:
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
"approval_queue_total": 8,
|
||||
"pending_approval_count": 7,
|
||||
"block_candidate_count": 1,
|
||||
"visual_command_dashboard_widget_count": 13,
|
||||
"visual_command_dashboard_first_layer": true,
|
||||
"long_form_sections_default_collapsed": true,
|
||||
"owner_response_validation_received_count": 0,
|
||||
"owner_response_validation_accepted_count": 0,
|
||||
"github_primary_ready_count": 0,
|
||||
@@ -49,6 +52,7 @@
|
||||
"operator_journey_step_count": 6,
|
||||
"owner_evidence_readiness_item_count": 7,
|
||||
"host_coverage_item_count": 3,
|
||||
"kali_maintenance_readiness_item_count": 4,
|
||||
"host_action_gate_item_count": 6,
|
||||
"host_evidence_readiness_item_count": 7,
|
||||
"host_evidence_collection_step_count": 7,
|
||||
@@ -242,6 +246,7 @@
|
||||
"allowed_frontend_outputs": [
|
||||
"display_security_posture",
|
||||
"display_progress_estimate",
|
||||
"display_visual_command_dashboard",
|
||||
"display_awooop_read_only_landing_readiness",
|
||||
"display_awooop_cross_session_handoff_packets",
|
||||
"display_progress_hold_movement_gates",
|
||||
@@ -254,6 +259,7 @@
|
||||
"display_operator_journey_steps",
|
||||
"display_owner_evidence_readiness_board",
|
||||
"display_host_coverage_view",
|
||||
"display_kali_maintenance_readiness_board",
|
||||
"display_host_action_gate_matrix",
|
||||
"display_host_evidence_readiness_board",
|
||||
"display_evidence_refs",
|
||||
@@ -1139,6 +1145,57 @@
|
||||
"not_authorization": true
|
||||
}
|
||||
],
|
||||
"kali_maintenance_readiness_items": [
|
||||
{
|
||||
"item_id": "kali_112_read_only_snapshot",
|
||||
"display_order": 1,
|
||||
"source_contract": "kali_integration_status_v1",
|
||||
"source_observed_at_taipei": "2026-05-31T17:22:20+08:00",
|
||||
"readiness_state": "snapshot_collected_read_only",
|
||||
"display_mode": "maintenance_readiness_only",
|
||||
"runtime_execution_authorized": false,
|
||||
"package_update_executed": false,
|
||||
"host_reboot_executed": false,
|
||||
"active_scan_executed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"item_id": "kali_112_upgradable_package_count",
|
||||
"display_order": 2,
|
||||
"source_contract": "kali_integration_status_v1",
|
||||
"metric_value": 1994,
|
||||
"readiness_state": "maintenance_window_required",
|
||||
"display_mode": "maintenance_readiness_only",
|
||||
"full_upgrade_authorized": false,
|
||||
"runtime_execution_authorized": false,
|
||||
"package_update_executed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"item_id": "kali_112_failed_systemd_unit_count",
|
||||
"display_order": 3,
|
||||
"source_contract": "kali_integration_status_v1",
|
||||
"metric_value": 1,
|
||||
"readiness_state": "pre_maintenance_health_check_required",
|
||||
"display_mode": "maintenance_readiness_only",
|
||||
"runtime_execution_authorized": false,
|
||||
"host_reboot_executed": false,
|
||||
"not_authorization": true
|
||||
},
|
||||
{
|
||||
"item_id": "kali_112_full_upgrade_reboot_gate",
|
||||
"display_order": 4,
|
||||
"source_contract": "security_approval_queue_v1",
|
||||
"source_queue_item_id": "kali-full-upgrade-reboot-approval-20260513",
|
||||
"readiness_state": "pending_approval_requires_window_snapshot_rollback_post_health",
|
||||
"display_mode": "maintenance_readiness_only",
|
||||
"full_upgrade_authorized": false,
|
||||
"reboot_authorized": false,
|
||||
"runtime_execution_authorized": false,
|
||||
"action_buttons_allowed": false,
|
||||
"not_authorization": true
|
||||
}
|
||||
],
|
||||
"host_action_gate_items": [
|
||||
{
|
||||
"action_id": "host_active_scan_gate",
|
||||
|
||||
Reference in New Issue
Block a user