{
  "assessment": {
    "all_ok": true,
    "decision": "PASS_STEP_046P_VM100_LOCAL_CONTROLLER_SERVICE_DRYRUN_INSTALL_DISABLED",
    "expected_absence": {
      "jobs_created": false,
      "selector_changed": false,
      "service_enabled": false,
      "vm121_db_written": false,
      "wg_runtime_changed": false
    },
    "success_checks": {
      "allowed_ip_count_final_five": true,
      "apply_refused": true,
      "db_enabled_peers_five": true,
      "db_lease_rows_five": true,
      "db_pending_zero": true,
      "init_executable": true,
      "line_10_final_ok": true,
      "line_12_final_ok": true,
      "log_grew": true,
      "peer_count_final_five": true,
      "precheck_ok": true,
      "script_exists": true,
      "selector_rows_final_five": true,
      "selector_sha_unchanged": true,
      "service_disabled_final": true,
      "service_log_has_action_count_zero": true,
      "service_log_has_begin": true,
      "service_log_has_dryrun_mode": true,
      "service_log_has_noop_true": true,
      "service_log_has_rows_5": true,
      "service_log_has_schema": true,
      "service_log_has_service_run_rc_zero": true,
      "service_not_running_final": true,
      "service_start_rc_zero": true,
      "state_unchanged": true,
      "uci_peer_sections_zero": true,
      "vm100_046p_rc_zero": true,
      "vm121_db_safety_ok": true
    },
    "warnings": [
      "This step installs an init wrapper but leaves it disabled.",
      "Manual service start executes a one-shot --dry-run only.",
      "No selector/state/WG/DB changes are expected."
    ]
  },
  "changes": {
    "jobs_created": "NO",
    "manual_service_dryrun_executed": "YES",
    "selector_changed": "NO",
    "service_enabled": "NO",
    "service_running_final": "NO",
    "state_changed": "NO",
    "vm100_init_wrapper_installed": "YES",
    "vm121_db_changed": "NO",
    "wg_runtime_changed": "NO"
  },
  "db_summary": {
    "enabled_peers": 5,
    "forced_leases": 0,
    "lease_rows": 5,
    "pending_jobs": 0
  },
  "mode": "VM100_INIT_WRAPPER_MANUAL_DRYRUN_DISABLED",
  "publish": {
    "facts_json": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-113810_step046p_vm100_service_dryrun_install_disabled/facts.json",
    "report_txt": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-113810_step046p_vm100_service_dryrun_install_disabled/report.txt",
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-113810_step046p_vm100_service_dryrun_install_disabled/"
  },
  "schema": "router-step-facts-v1",
  "step": "STEP_046P_VM100_LOCAL_CONTROLLER_SERVICE_DRYRUN_INSTALL_DISABLED",
  "summary": {
    "allowed_ip_count_final": "5",
    "apply_refusal_rc": "78",
    "init": "/etc/init.d/router-wgpay-egress-local",
    "init_backup": "/root/step046p-backup-init-20260710-113810",
    "init_enabled_final": "false",
    "line_10_final": "10.253.1.10 cs1 canary_vpn3",
    "line_12_final": "10.253.1.12 cs3 canary_vpn5",
    "log_grew": "true",
    "peer_count_final": "5",
    "rollback": "/root/rollback-step046p-service-wrapper-20260710-113810.sh",
    "script": "/usr/local/sbin/router-wgpay-egress-local.sh",
    "script_sha256": "26abddfc33bae9524bb0c48bde1706c0005b631dffdeb3d002556d3a45911c46",
    "selector_sha_final": "2db1a0c46c1b93d9ede5f560d2d00db2dad3283adbc8f6ca6b0434ab695d8460",
    "selector_sha_pre": "2db1a0c46c1b93d9ede5f560d2d00db2dad3283adbc8f6ca6b0434ab695d8460",
    "service_running_final": "false",
    "service_start_rc": "0",
    "state_exists_final": "false",
    "state_exists_pre": "false",
    "state_sha_final": "none",
    "state_sha_pre": "none",
    "state_unchanged": true,
    "uci_peer_sections_final": "0"
  }
}
