2393 lines
84 KiB
JSON
2393 lines
84 KiB
JSON
{
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boundaries": {
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"ansible_apply_authorized": false,
|
||
"docker_action_authorized": false,
|
||
"docker_compose_action_authorized": false,
|
||
"docker_kill_authorized": false,
|
||
"docker_restart_authorized": false,
|
||
"docker_start_authorized": false,
|
||
"live_host_read_authorized": false,
|
||
"nginx_reload_authorized": false,
|
||
"not_authorization": true,
|
||
"production_write_authorized": false,
|
||
"public_gateway_reload_authorized": false,
|
||
"raw_log_or_config_storage_allowed": false,
|
||
"repair_bot_execution_authorized": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_execution_authorized": false,
|
||
"secret_value_collection_allowed": false,
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"systemctl_action_authorized": false,
|
||
"systemctl_restart_authorized": false
|
||
},
|
||
"generated_at": "2026-06-15T20:30:00+08:00",
|
||
"git_commit": "c641d1b2",
|
||
"outcome_lanes": [
|
||
{
|
||
"lane_id": "waiting_post_incident_readback",
|
||
"meaning": "尚未收到主機服務事故回讀包;所有 accepted / runtime count 維持 0。"
|
||
},
|
||
{
|
||
"lane_id": "request_actor_supplement",
|
||
"meaning": "缺 actor / owner / decision 時要求補件。"
|
||
},
|
||
{
|
||
"lane_id": "request_before_after_supplement",
|
||
"meaning": "缺 before / after、boot time、restart window 或 restoration evidence 時要求補件。"
|
||
},
|
||
{
|
||
"lane_id": "request_service_state_supplement",
|
||
"meaning": "缺 Docker daemon、compose、systemd、failed unit、port binding 或 dependency 狀態時要求補件。"
|
||
},
|
||
{
|
||
"lane_id": "request_impact_supplement",
|
||
"meaning": "缺 public/admin route、AI provider、monitoring、operator notification 或 cross-project sync 時要求補件。"
|
||
},
|
||
{
|
||
"lane_id": "quarantine_raw_payload",
|
||
"meaning": "收到 secret、env dump、raw log、raw journal、raw compose 或未脫敏 host config 時只能隔離。"
|
||
},
|
||
{
|
||
"lane_id": "reject_unattributed_restart",
|
||
"meaning": "無 actor、無 affected scope、無 rollback 或無 notification 的 restart / kill / compose action 不得驗收。"
|
||
},
|
||
{
|
||
"lane_id": "ready_for_host_service_post_incident_review",
|
||
"meaning": "metadata 合格後,只能進 reviewer review。"
|
||
},
|
||
{
|
||
"lane_id": "recurrence_guard_backfill_required",
|
||
"meaning": "需補防再發 guard、owner review、change freeze 或 automation block。"
|
||
},
|
||
{
|
||
"lane_id": "waiting_runtime_gate",
|
||
"meaning": "即使 readback accepted,runtime gate 仍需獨立人工批准。"
|
||
}
|
||
],
|
||
"readback_candidates": [
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "docker_compose_source",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "local_dev_only",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "AWOOOI local development compose",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:local_dev_compose",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": false,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"web",
|
||
"api",
|
||
"postgres",
|
||
"redis"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:local_dev_compose",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "local_dev_compose",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": false
|
||
},
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "docker_compose_source",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "192.168.0.110",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "110 monitoring docker compose",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:monitoring_110_compose",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": true,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"cadvisor",
|
||
"prometheus",
|
||
"grafana",
|
||
"blackbox-exporter",
|
||
"alertmanager",
|
||
"github-exporter"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:monitoring_110_compose",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "monitoring_110_compose",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": false
|
||
},
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "docker_compose_source",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "192.168.0.188",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "188 database exporters compose",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:monitoring_exporters_188_compose",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": true,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"postgres-exporter",
|
||
"redis-exporter"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:monitoring_exporters_188_compose",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "monitoring_exporters_188_compose",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": false
|
||
},
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "docker_compose_reference",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "192.168.0.110",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "110 Sentry self-hosted reference compose",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:sentry_110_reference_compose",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": true,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"sentry-placeholder-reference"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:sentry_110_reference_compose",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "sentry_110_reference_compose",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": false
|
||
},
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "docker_compose_source",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "192.168.0.110",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "110 Langfuse compose",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:langfuse_110_compose",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": true,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"langfuse",
|
||
"langfuse-db"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:langfuse_110_compose",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "langfuse_110_compose",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": false
|
||
},
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "ansible_service_executor",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "multi_host",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "Ansible docker-compose-service role",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:ansible_docker_compose_service_role",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": true,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"docker compose up -d"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:ansible_docker_compose_service_role",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "ansible_docker_compose_service_role",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": true
|
||
},
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "host_repair_whitelist",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "192.168.0.110",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "110 repair-bot compose whitelist",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:repair_bot_110_whitelist",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": true,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"sentry",
|
||
"harbor",
|
||
"gitea",
|
||
"gitea-runner",
|
||
"langfuse",
|
||
"alertmanager",
|
||
"signoz"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:repair_bot_110_whitelist",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "repair_bot_110_whitelist",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": true
|
||
},
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "host_repair_whitelist",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "192.168.0.188",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "188 repair-bot compose/systemd whitelist",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:repair_bot_188_whitelist",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": true,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"openclaw",
|
||
"minio",
|
||
"signoz",
|
||
"redis",
|
||
"nginx",
|
||
"ollama"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:repair_bot_188_whitelist",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "repair_bot_188_whitelist",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": true
|
||
},
|
||
{
|
||
"action_buttons_allowed": false,
|
||
"active_scan_authorized": false,
|
||
"actor_attribution_accepted": false,
|
||
"actor_attribution_ref": null,
|
||
"admin_route_recovery_accepted": false,
|
||
"admin_route_recovery_ref": null,
|
||
"after_service_state_ref": null,
|
||
"agent_provider_health_accepted": false,
|
||
"agent_provider_health_ref": null,
|
||
"ansible_apply_authorized": false,
|
||
"before_after_state_accepted": false,
|
||
"before_service_state_ref": null,
|
||
"blocked_actions": [
|
||
"ssh_read",
|
||
"ssh_write",
|
||
"live_host_read",
|
||
"docker_ps_live_read",
|
||
"docker_restart",
|
||
"docker_kill",
|
||
"docker_start",
|
||
"docker_compose_up",
|
||
"docker_compose_down",
|
||
"docker_compose_pull",
|
||
"systemctl_restart",
|
||
"systemctl_reload",
|
||
"systemctl_kill",
|
||
"systemctl_start",
|
||
"repair_bot_execute",
|
||
"ansible_apply",
|
||
"sudo_action",
|
||
"host_file_write",
|
||
"firewall_change",
|
||
"port_change",
|
||
"route_smoke",
|
||
"public_gateway_reload",
|
||
"nginx_reload",
|
||
"active_scan",
|
||
"secret_value_collection",
|
||
"raw_live_config_storage",
|
||
"raw_docker_log_storage",
|
||
"raw_journal_storage",
|
||
"raw_env_dump_storage",
|
||
"accept_restart_without_actor",
|
||
"accept_recovery_without_before_after",
|
||
"accept_service_healthy_as_config_accepted",
|
||
"accept_route_200_as_all_green",
|
||
"accept_container_up_as_all_green",
|
||
"skip_dependency_map_review",
|
||
"skip_port_binding_review",
|
||
"hide_daemon_runner_contention",
|
||
"mark_readback_accepted_without_reviewer_record",
|
||
"open_runtime_gate",
|
||
"add_action_button",
|
||
"production_write"
|
||
],
|
||
"boot_time_ref": null,
|
||
"change_or_incident_ref": null,
|
||
"compose_stack_state_accepted": false,
|
||
"compose_stack_state_ref": null,
|
||
"config_kind": "backup_capture_contract",
|
||
"control_tier": "C1",
|
||
"cross_project_sync_accepted": false,
|
||
"cross_project_sync_ref": null,
|
||
"dependency_impact_accepted": false,
|
||
"dependency_impact_ref": null,
|
||
"docker_action_authorized": false,
|
||
"docker_daemon_state_accepted": false,
|
||
"docker_daemon_state_ref": null,
|
||
"expected_host_scope": "110_188_120_121_cluster",
|
||
"failed_unit_review_accepted": false,
|
||
"failed_unit_review_ref": null,
|
||
"followup_owner": "pending_post_incident_readback",
|
||
"label": "host config backup capture contract",
|
||
"live_host_read_authorized": false,
|
||
"maintenance_window": "pending_post_incident_readback",
|
||
"maintenance_window_accepted": false,
|
||
"monitoring_alert_accepted": false,
|
||
"monitoring_alert_ref": null,
|
||
"no_false_green_accepted": false,
|
||
"not_approval": true,
|
||
"operator_notification_accepted": false,
|
||
"operator_notification_ref": null,
|
||
"outcome_lanes": [
|
||
"waiting_post_incident_readback",
|
||
"request_actor_supplement",
|
||
"request_before_after_supplement",
|
||
"request_service_state_supplement",
|
||
"request_impact_supplement",
|
||
"quarantine_raw_payload",
|
||
"reject_unattributed_restart",
|
||
"ready_for_host_service_post_incident_review",
|
||
"recurrence_guard_backfill_required",
|
||
"waiting_runtime_gate"
|
||
],
|
||
"port_binding_state_accepted": false,
|
||
"port_binding_state_ref": null,
|
||
"post_incident_readback_accepted": false,
|
||
"post_incident_readback_received": false,
|
||
"postcheck_readback_accepted": false,
|
||
"postcheck_readback_ref": null,
|
||
"production_write_authorized": false,
|
||
"public_route_recovery_accepted": false,
|
||
"public_route_recovery_ref": null,
|
||
"readback_candidate_id": "host_service_post_incident_readback:config_backup_host_capture",
|
||
"readback_fields": [
|
||
"readback_candidate_id",
|
||
"source_change_evidence_candidate_id",
|
||
"surface_id",
|
||
"label",
|
||
"expected_host_scope",
|
||
"config_kind",
|
||
"service_scope",
|
||
"control_tier",
|
||
"write_capable_surface",
|
||
"requires_live_evidence",
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"reviewer_outcome",
|
||
"followup_owner",
|
||
"not_approval"
|
||
],
|
||
"recurrence_guard_accepted": false,
|
||
"recurrence_guard_ref": null,
|
||
"repair_bot_execution_authorized": false,
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"requires_live_evidence": true,
|
||
"restart_or_recovery_window_ref": null,
|
||
"restoration_evidence_accepted": false,
|
||
"restoration_evidence_ref": null,
|
||
"reviewer_checks": [
|
||
"source_change_evidence_current",
|
||
"incident_ref_present",
|
||
"actor_not_anonymous",
|
||
"boot_or_recovery_window_present",
|
||
"before_after_service_state_present",
|
||
"docker_daemon_state_present",
|
||
"compose_stack_state_present",
|
||
"systemd_unit_state_present",
|
||
"failed_unit_review_present",
|
||
"port_binding_state_present",
|
||
"dependency_impact_present",
|
||
"public_route_recovery_present",
|
||
"admin_route_recovery_present",
|
||
"agent_provider_health_present",
|
||
"monitoring_alert_ref_present",
|
||
"operator_notification_present",
|
||
"cross_project_sync_present",
|
||
"restoration_evidence_present",
|
||
"postcheck_independent",
|
||
"recurrence_guard_present",
|
||
"runner_repair_bot_contention_present",
|
||
"maintenance_window_present",
|
||
"rollback_owner_present",
|
||
"no_false_green_route_or_container",
|
||
"raw_log_config_absent",
|
||
"secret_or_key_value_absent",
|
||
"counts_transition_safe",
|
||
"runtime_stays_zero"
|
||
],
|
||
"reviewer_outcome": "waiting_post_incident_readback",
|
||
"rollback_owner": "pending_post_incident_readback",
|
||
"rollback_owner_accepted": false,
|
||
"route_smoke_authorized": false,
|
||
"runtime_gate": false,
|
||
"secret_value_collection_allowed": false,
|
||
"service_scope": [
|
||
"systemd",
|
||
"docker",
|
||
"nginx",
|
||
"cron",
|
||
"k8s",
|
||
"host-configs"
|
||
],
|
||
"source_change_evidence_candidate_id": "host_service_change_evidence:config_backup_host_capture",
|
||
"ssh_read_authorized": false,
|
||
"ssh_write_authorized": false,
|
||
"status": "waiting_post_incident_readback",
|
||
"surface_id": "config_backup_host_capture",
|
||
"systemctl_action_authorized": false,
|
||
"systemd_unit_state_accepted": false,
|
||
"systemd_unit_state_ref": null,
|
||
"write_capable_surface": false
|
||
}
|
||
],
|
||
"required_readback_fields": [
|
||
"change_or_incident_ref",
|
||
"actor_attribution_ref",
|
||
"boot_time_ref",
|
||
"restart_or_recovery_window_ref",
|
||
"before_service_state_ref",
|
||
"after_service_state_ref",
|
||
"docker_daemon_state_ref",
|
||
"compose_stack_state_ref",
|
||
"systemd_unit_state_ref",
|
||
"failed_unit_review_ref",
|
||
"port_binding_state_ref",
|
||
"dependency_impact_ref",
|
||
"public_route_recovery_ref",
|
||
"admin_route_recovery_ref",
|
||
"agent_provider_health_ref",
|
||
"monitoring_alert_ref",
|
||
"operator_notification_ref",
|
||
"cross_project_sync_ref",
|
||
"restoration_evidence_ref",
|
||
"postcheck_readback_ref",
|
||
"recurrence_guard_ref",
|
||
"maintenance_window",
|
||
"rollback_owner",
|
||
"followup_owner",
|
||
"redacted_evidence_refs",
|
||
"no_secret_value_attestation",
|
||
"no_raw_log_or_config_attestation",
|
||
"no_false_green_attestation"
|
||
],
|
||
"reviewer_checks": [
|
||
{
|
||
"check_id": "source_change_evidence_current",
|
||
"instruction": "來源 host service change evidence snapshot 必須是目前版本。"
|
||
},
|
||
{
|
||
"check_id": "incident_ref_present",
|
||
"instruction": "必須有可追溯 change / incident ref。"
|
||
},
|
||
{
|
||
"check_id": "actor_not_anonymous",
|
||
"instruction": "必須標示 actor role / team,不接受匿名 restart、kill、start、compose 或 daemon 操作。"
|
||
},
|
||
{
|
||
"check_id": "boot_or_recovery_window_present",
|
||
"instruction": "boot time、restart window 或 recovery window 必須有脫敏 ref。"
|
||
},
|
||
{
|
||
"check_id": "before_after_service_state_present",
|
||
"instruction": "必須有 before / after service state ref,不能只寫服務已恢復。"
|
||
},
|
||
{
|
||
"check_id": "docker_daemon_state_present",
|
||
"instruction": "Docker daemon active、starting、failed、socket、contention 或 API reachable 狀態必須有摘要 ref。"
|
||
},
|
||
{
|
||
"check_id": "compose_stack_state_present",
|
||
"instruction": "Compose stack / container state 只能收脫敏狀態摘要 ref,不保存 raw docker ps dump。"
|
||
},
|
||
{
|
||
"check_id": "systemd_unit_state_present",
|
||
"instruction": "systemd failed unit、restart policy 或 degraded state 必須有摘要 ref。"
|
||
},
|
||
{
|
||
"check_id": "failed_unit_review_present",
|
||
"instruction": "必須說明 failed unit 是否與事故、restart 或服務恢復相關。"
|
||
},
|
||
{
|
||
"check_id": "port_binding_state_present",
|
||
"instruction": "必須確認 host port、container port、proxy、gateway 與 firewall 狀態是否一致。"
|
||
},
|
||
{
|
||
"check_id": "dependency_impact_present",
|
||
"instruction": "必須列出上游、下游、DB、queue、registry、AI provider、public route 與 monitoring 影響。"
|
||
},
|
||
{
|
||
"check_id": "public_route_recovery_present",
|
||
"instruction": "public route 受影響時需有恢復 ref;無影響也需明確不適用。"
|
||
},
|
||
{
|
||
"check_id": "admin_route_recovery_present",
|
||
"instruction": "admin / internal operator route 受影響時需有恢復 ref;無影響也需明確不適用。"
|
||
},
|
||
{
|
||
"check_id": "agent_provider_health_present",
|
||
"instruction": "Ollama、AI provider、agent route 或 webhook 受影響時需有健康 readback ref。"
|
||
},
|
||
{
|
||
"check_id": "monitoring_alert_ref_present",
|
||
"instruction": "需列 monitoring / alert / dashboard / incident ref,不能只靠人工觀察。"
|
||
},
|
||
{
|
||
"check_id": "operator_notification_present",
|
||
"instruction": "需提供已通知受影響產品、owner 或 Session 的脫敏 ref。"
|
||
},
|
||
{
|
||
"check_id": "cross_project_sync_present",
|
||
"instruction": "若影響 AwoooP、IwoooS、agent-bounty、StockPlatform、公開網站或監控,需有跨專案同步 ref。"
|
||
},
|
||
{
|
||
"check_id": "restoration_evidence_present",
|
||
"instruction": "已恢復事故需提供恢復時間與恢復證據;未恢復需提供 still-degraded ref。"
|
||
},
|
||
{
|
||
"check_id": "postcheck_independent",
|
||
"instruction": "post-check 必須獨立於原操作人與 UI 卡片。"
|
||
},
|
||
{
|
||
"check_id": "recurrence_guard_present",
|
||
"instruction": "必須提出防再發 guard、change freeze、owner review 或自動化阻擋。"
|
||
},
|
||
{
|
||
"check_id": "runner_repair_bot_contention_present",
|
||
"instruction": "必須確認 runner、repair-bot、backup job、iptables / xtables 或 compose action 是否競爭。"
|
||
},
|
||
{
|
||
"check_id": "maintenance_window_present",
|
||
"instruction": "後續任何 restart / repair / compose / systemd 操作都需維護窗口。"
|
||
},
|
||
{
|
||
"check_id": "rollback_owner_present",
|
||
"instruction": "rollback owner 與 rollback plan 必須同時存在。"
|
||
},
|
||
{
|
||
"check_id": "no_false_green_route_or_container",
|
||
"instruction": "不得只用 route 200、container up、Docker API 回應、dashboard up 或 service healthy 當成事故已驗收。"
|
||
},
|
||
{
|
||
"check_id": "raw_log_config_absent",
|
||
"instruction": "不得保存 raw docker logs、raw journal、raw compose、raw systemd unit、env dump 或未脫敏 host config。"
|
||
},
|
||
{
|
||
"check_id": "secret_or_key_value_absent",
|
||
"instruction": "不得包含 secret、SSH key、token、cookie、private key、hash 或 partial secret。"
|
||
},
|
||
{
|
||
"check_id": "counts_transition_safe",
|
||
"instruction": "只有 reviewer record 能更新 accepted count,且不得同時開 runtime gate。"
|
||
},
|
||
{
|
||
"check_id": "runtime_stays_zero",
|
||
"instruction": "readback plan 不得觸發任何 SSH、Docker、systemctl、repair-bot、Ansible、route smoke 或 production write。"
|
||
}
|
||
],
|
||
"schema_version": "host_service_post_incident_readback_plan_v1",
|
||
"source_paths": [
|
||
"docs/security/HOST-SERVICE-CHANGE-EVIDENCE-ACCEPTANCE.md",
|
||
"docs/security/host-service-change-evidence-acceptance.snapshot.json",
|
||
"docs/security/HOST-SERVICE-OWNER-RESPONSE-ACCEPTANCE.md",
|
||
"docs/security/host-service-owner-response-acceptance.snapshot.json"
|
||
],
|
||
"source_schema_version": "host_service_change_evidence_acceptance_v1",
|
||
"source_status": "change_evidence_acceptance_ready_no_runtime_action",
|
||
"status": "post_incident_readback_plan_ready_no_runtime_action",
|
||
"summary": {
|
||
"action_button_count": 0,
|
||
"actor_attribution_accepted_count": 0,
|
||
"admin_route_recovery_accepted_count": 0,
|
||
"agent_provider_health_accepted_count": 0,
|
||
"before_after_state_accepted_count": 0,
|
||
"blocked_action_count": 41,
|
||
"compose_stack_state_accepted_count": 0,
|
||
"coverage_percent_after_readback_plan": 64,
|
||
"cross_project_sync_accepted_count": 0,
|
||
"cross_project_sync_required_candidate_count": 9,
|
||
"dependency_impact_accepted_count": 0,
|
||
"docker_daemon_state_accepted_count": 0,
|
||
"failed_unit_review_accepted_count": 0,
|
||
"live_evidence_required_readback_candidate_count": 8,
|
||
"monitoring_alert_accepted_count": 0,
|
||
"no_false_green_accepted_count": 0,
|
||
"no_false_green_required_candidate_count": 9,
|
||
"operator_notification_accepted_count": 0,
|
||
"outcome_lane_count": 10,
|
||
"port_binding_state_accepted_count": 0,
|
||
"post_incident_readback_accepted_count": 0,
|
||
"post_incident_readback_received_count": 0,
|
||
"postcheck_readback_accepted_count": 0,
|
||
"public_route_recovery_accepted_count": 0,
|
||
"readback_candidate_count": 9,
|
||
"readback_field_count": 36,
|
||
"recovery_health_impact_review_required_candidate_count": 9,
|
||
"recurrence_guard_accepted_count": 0,
|
||
"required_readback_field_count": 28,
|
||
"restoration_evidence_accepted_count": 0,
|
||
"reviewer_check_count": 28,
|
||
"runtime_gate_count": 0,
|
||
"systemd_unit_state_accepted_count": 0,
|
||
"write_capable_readback_candidate_count": 3
|
||
}
|
||
}
|