diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index b06df768d..e61697594 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -13994,12 +13994,14 @@ "syncing": "Syncing live readback", "bootstrap": "Showing latest deployed readback", "failed": "Tool closure readback is not deployed or failed to load", + "open": "Source evidence is readable; runtime closure is still open", "ready": "Source evidence is readable; production closure advances only from runtime receipts" }, "metrics": { "closure": "Runtime closure", - "tracks": "Source ready", - "wazuh": "Wazuh registry", + "source": "Source ready", + "tracks": "Closed tracks", + "wazuh": "Wazuh verifier", "alerts": "Alert receipt", "runtime": "Controlled candidates" }, diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index e8012044e..739e3fff7 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -13994,12 +13994,14 @@ "syncing": "同步 live readback", "bootstrap": "顯示最近部署驗收值", "failed": "工具閉環 readback 尚未部署或讀取失敗", + "open": "來源證據可讀,runtime 閉環仍未完成", "ready": "來源證據可讀,正式環境閉環仍依 runtime 收據推進" }, "metrics": { "closure": "Runtime 閉環", - "tracks": "來源就緒", - "wazuh": "Wazuh registry", + "source": "來源就緒", + "tracks": "已閉環軌", + "wazuh": "Wazuh verifier", "alerts": "Alert receipt", "runtime": "受控候選" }, diff --git a/apps/web/src/app/[locale]/iwooos/page.tsx b/apps/web/src/app/[locale]/iwooos/page.tsx index 85d338848..f63ca4465 100644 --- a/apps/web/src/app/[locale]/iwooos/page.tsx +++ b/apps/web/src/app/[locale]/iwooos/page.tsx @@ -534,26 +534,26 @@ const SECURITY_TOOL_CLOSURE_BOOTSTRAP_SUMMARY: IwoooSSecurityToolClosureSummary source_readback_count: 8, tool_track_count: 8, p0_tool_track_count: 3, - source_ready_tool_track_count: 1, + source_ready_tool_track_count: 2, closed_tool_track_count: 0, partial_tool_track_count: 1, - missing_tool_track_count: 6, - total_ready_signal_count: 14, + missing_tool_track_count: 5, + total_ready_signal_count: 16, total_required_signal_count: 42, - tool_source_readiness_percent: 33, + tool_source_readiness_percent: 38, tool_runtime_closure_percent: 0, tool_closure_percent: 0, wazuh_expected_host_scope_count: 6, wazuh_manager_registry_accepted_count: 6, wazuh_registry_complete_count: 1, wazuh_fim_vulnerability_alert_closed_count: 0, - wazuh_fim_vulnerability_alert_source_verifier_ready_count: 0, + wazuh_fim_vulnerability_alert_source_verifier_ready_count: 1, wazuh_fim_vulnerability_alert_runtime_closed_count: 0, - wazuh_fim_vulnerability_alert_verifier_ready_count: 0, - wazuh_fim_vulnerability_alert_verifier_ready_signal_count: 5, - alert_receipt_observed_count: 0, - alert_receipt_accepted_count: 0, - alert_receipt_source_status: 'not_connected', + wazuh_fim_vulnerability_alert_verifier_ready_count: 1, + wazuh_fim_vulnerability_alert_verifier_ready_signal_count: 6, + alert_receipt_observed_count: 1, + alert_receipt_accepted_count: 1, + alert_receipt_source_status: 'ready', controlled_apply_preflight_ready_count: 1, owner_review_packet_accepted_count: 1, allowlisted_dry_run_result_ref_count: 1, @@ -562,7 +562,7 @@ const SECURITY_TOOL_CLOSURE_BOOTSTRAP_SUMMARY: IwoooSSecurityToolClosureSummary web_api_dast_closed_count: 0, normalized_detection_schema_closed_count: 0, controlled_apply_policy_active_count: 1, - controlled_apply_candidate_ready_count: 1, + controlled_apply_candidate_ready_count: 2, owner_review_required_for_low_medium_high_count: 0, runtime_execution_performed_count: 0, secret_value_collection_allowed_count: 0, @@ -574,22 +574,22 @@ const SECURITY_TOOL_CLOSURE_BOOTSTRAP_TRACKS: IwoooSSecurityToolClosureTrack[] = priority: 'P0', label: 'Wazuh detection and response', tool_ids: ['wazuh'], - closure_state: 'partial_source_readiness_runtime_open', + closure_state: 'source_ready_runtime_open', closure_percent: 0, - source_readiness_state: 'source_readiness_incomplete', - source_readiness_percent: 83, - runtime_closure_state: 'partial_source_readiness_runtime_open', + source_readiness_state: 'source_ready', + source_readiness_percent: 100, + runtime_closure_state: 'source_ready_runtime_open', runtime_closed: false, - ready_signal_count: 5, + ready_signal_count: 6, required_signal_count: 6, - missing_signal_count: 1, + missing_signal_count: 0, controlled_apply_policy_allowed: true, - execution_candidate_ready: false, + execution_candidate_ready: true, runtime_execution_performed: false, owner_review_required: false, critical_break_glass_required: false, secret_value_collection_allowed: false, - next_executable_action: 'attach_incident_case_and_active_response_dry_run_receipts_without_runtime_gate', + next_executable_action: 'attach_live_alert_case_controlled_response_and_independent_post_verifier', required_verifier: 'wazuh_registry_fim_vulnerability_alert_receipt_post_verifier', source_refs: ['apps/api/src/services/iwooos_wazuh_fim_vulnerability_alert_verifier.py'], }, @@ -718,15 +718,15 @@ const SECURITY_TOOL_CLOSURE_BOOTSTRAP_TRACKS: IwoooSSecurityToolClosureTrack[] = priority: 'P1', label: 'Normalized detection schema', tool_ids: ['sigma', 'ocsf'], - closure_state: 'source_missing_runtime_open', + closure_state: 'partial_source_readiness_runtime_open', closure_percent: 0, source_readiness_state: 'source_readiness_incomplete', - source_readiness_percent: 0, - runtime_closure_state: 'source_missing_runtime_open', + source_readiness_percent: 25, + runtime_closure_state: 'partial_source_readiness_runtime_open', runtime_closed: false, - ready_signal_count: 0, + ready_signal_count: 1, required_signal_count: 4, - missing_signal_count: 4, + missing_signal_count: 3, controlled_apply_policy_allowed: true, execution_candidate_ready: false, runtime_execution_performed: false, @@ -771,9 +771,9 @@ const SECURITY_TOOL_CLOSURE_BOOTSTRAP_QUEUE: IwoooSSecurityToolClosureQueueEntry { queue_id: 'P0-03', track_id: 'wazuh_detection_response', - state: 'wazuh_registry_complete_move_to_fim_vulnerability_alert', - next_action: 'attach_fim_vulnerability_alert_receipt_post_verifier', - ready_signal_count: 5, + state: 'wazuh_source_verifier_ready_runtime_closure_open', + next_action: 'attach_live_event_case_controlled_response_and_post_verifier', + ready_signal_count: 6, controlled_apply_policy_allowed: true, }, { @@ -794,12 +794,12 @@ const SECURITY_TOOL_CLOSURE_BOOTSTRAP_QUEUE: IwoooSSecurityToolClosureQueueEntry ] const SECURITY_TOOL_CLOSURE_BOOTSTRAP_BOUNDARY_MARKERS = [ - 'iwooos_security_tool_source_readiness_percent=33', + 'iwooos_security_tool_source_readiness_percent=38', 'iwooos_security_tool_runtime_closure_percent=0', 'iwooos_security_tool_closure_percent=0', 'iwooos_security_tool_closure_wazuh_manager_registry_accepted_count=6', - 'iwooos_security_tool_closure_alert_receipt_accepted_count=0', - 'iwooos_security_tool_closure_controlled_apply_candidate_ready_count=1', + 'iwooos_security_tool_closure_alert_receipt_accepted_count=1', + 'iwooos_security_tool_closure_controlled_apply_candidate_ready_count=2', 'owner_review_required_for_low_medium_high=false', 'runtime_execution_performed=false', 'secret_value_collection_allowed=false', @@ -16586,8 +16586,11 @@ function IwoooSSecurityToolClosureBoard() { }, []) const summary = data?.summary ?? SECURITY_TOOL_CLOSURE_BOOTSTRAP_SUMMARY - const statusKey = readbackFresh ? 'ready' : failed ? 'bootstrap' : loading ? 'syncing' : 'bootstrap' - const statusTone: 'steady' | 'warn' = readbackFresh ? 'steady' : 'warn' + const runtimeClosureOpen = summary.tool_runtime_closure_percent < 100 + const statusKey = readbackFresh + ? runtimeClosureOpen ? 'open' : 'ready' + : failed ? 'bootstrap' : loading ? 'syncing' : 'bootstrap' + const statusTone: 'steady' | 'warn' = runtimeClosureOpen ? 'warn' : 'steady' const tracks = data?.tool_tracks?.length ? data.tool_tracks : SECURITY_TOOL_CLOSURE_BOOTSTRAP_TRACKS const queue = data?.next_executable_queue?.length ? data.next_executable_queue : SECURITY_TOOL_CLOSURE_BOOTSTRAP_QUEUE const boundaryMarkers = data?.boundary_markers?.length ? data.boundary_markers : SECURITY_TOOL_CLOSURE_BOOTSTRAP_BOUNDARY_MARKERS @@ -16600,10 +16603,16 @@ function IwoooSSecurityToolClosureBoard() { tone: summary.tool_runtime_closure_percent >= 100 ? 'steady' : summary.tool_runtime_closure_percent > 0 ? 'warn' : 'locked', }, { - key: 'tracks', - value: `${summary.source_ready_tool_track_count}/${summary.tool_track_count}`, + key: 'source', + value: `${summary.tool_source_readiness_percent}%`, icon: SearchCheck, - tone: summary.source_ready_tool_track_count > 0 ? 'warn' : 'locked', + tone: summary.tool_source_readiness_percent > 0 ? 'warn' : 'locked', + }, + { + key: 'tracks', + value: `${summary.closed_tool_track_count}/${summary.tool_track_count}`, + icon: ListChecks, + tone: summary.closed_tool_track_count > 0 ? 'warn' : 'locked', }, { key: 'wazuh', @@ -16619,7 +16628,7 @@ function IwoooSSecurityToolClosureBoard() { key: 'alerts', value: `${summary.alert_receipt_accepted_count}/${summary.alert_receipt_observed_count}`, icon: Bell, - tone: summary.alert_receipt_accepted_count > 0 ? 'steady' : 'warn', + tone: summary.alert_receipt_accepted_count > 0 ? 'warn' : 'locked', }, { key: 'runtime',