{
  "assessment": {
    "all_ok": true,
    "decision": "PASS_STEP_046J_VM100_LOCAL_DYNAMIC_EGRESS_CONTROLLER_DRYRUN_INSTALL",
    "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,
      "dry_run_action_count_zero": true,
      "dry_run_apply_would_not_run": true,
      "dry_run_noop": true,
      "dry_run_rc_zero": true,
      "dry_run_rows_five": true,
      "dry_run_selector_no_change": true,
      "init_disabled": true,
      "init_executable": true,
      "line_12_restored": true,
      "peer_count_final_five": true,
      "script_executable": true,
      "selector_rows_final_five": true,
      "service_not_running": true,
      "uci_peer_sections_final_zero": true,
      "vm100_install_command_ok": true,
      "vm101_mapper_ok": true,
      "vm121_db_safety_ok": true
    },
    "warnings": [
      "Controller is installed but disabled; no automatic loop yet.",
      "Apply mode is intentionally refused with rc=78.",
      "This step must not change selector or WG runtime."
    ]
  },
  "changes": {
    "jobs_created": "NO",
    "selector_changed": "NO",
    "vm100_init_installed_disabled": "YES",
    "vm100_script_installed": "YES",
    "vm100_service_enabled": "NO",
    "vm100_service_running": "NO",
    "vm121_db_changed": "NO",
    "wg_runtime_changed": "NO"
  },
  "db_summary": {
    "enabled_peers": 5,
    "forced_leases": 0,
    "lease_rows": 5,
    "pending_jobs": 0
  },
  "dry_run_json": {
    "config": {
      "active_min_bytes": 16384,
      "active_min_packets": 10,
      "allocator_enabled": "1",
      "force_class": "",
      "force_mode": "off",
      "idle_seconds": 900,
      "rebalance_paused": "0",
      "sample_seconds": 3
    },
    "epoch": 1783678197,
    "host": "",
    "mode": "--dry-run",
    "rows": [
      {
        "active_now": false,
        "egress_class": "cs1",
        "expected_dev": "vpn3",
        "expected_target_id": "canary_vpn3",
        "in_bytes": 0,
        "in_packets": 0,
        "out_bytes": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn3",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.10"
      },
      {
        "active_now": false,
        "egress_class": "cs2",
        "expected_dev": "vpn4",
        "expected_target_id": "canary_vpn4",
        "in_bytes": 0,
        "in_packets": 0,
        "out_bytes": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn4",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.11"
      },
      {
        "active_now": false,
        "egress_class": "cs3",
        "expected_dev": "vpn5",
        "expected_target_id": "canary_vpn5",
        "in_bytes": 0,
        "in_packets": 0,
        "out_bytes": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn5",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.12"
      },
      {
        "active_now": false,
        "egress_class": "cs4",
        "expected_dev": "vpn1",
        "expected_target_id": "canary_vpn1",
        "in_bytes": 0,
        "in_packets": 0,
        "out_bytes": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn1",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.13"
      },
      {
        "active_now": false,
        "egress_class": "cs5",
        "expected_dev": "vpn2",
        "expected_target_id": "canary_vpn2",
        "in_bytes": 0,
        "in_packets": 0,
        "out_bytes": 0,
        "out_packets": 0,
        "selector_target_match": true,
        "target_id": "canary_vpn2",
        "total_bytes": 0,
        "total_packets": 0,
        "tunnel_ip": "10.253.1.14"
      }
    ],
    "schema": "router-wgpay-egress-local-v1",
    "summary": {
      "action_count": 0,
      "active_count": 0,
      "block_reason": "",
      "blocked": false,
      "idle_count": 5,
      "noop": true,
      "rows": 5,
      "selector_apply_would_run": false,
      "selector_file_would_change": false,
      "state_file_would_write": false
    }
  },
  "mode": "VM100_LOCAL_DYNAMIC_EGRESS_CONTROLLER_DRYRUN_INSTALLED_DISABLED",
  "publish": {
    "latest_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/latest/report.txt",
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260710-100957_step046j_vm100_local_dynamic_egress_controller_dryrun_install/"
  },
  "schema": "router-step-facts-v1",
  "step": "STEP_046J_VM100_LOCAL_DYNAMIC_EGRESS_CONTROLLER_DRYRUN_INSTALL",
  "summary": {
    "allowed_ip_count_final": "5",
    "apply_refusal_rc": "78",
    "dry_run_summary": {
      "action_count": 0,
      "active_count": 0,
      "block_reason": "",
      "blocked": false,
      "idle_count": 5,
      "noop": true,
      "rows": 5,
      "selector_apply_would_run": false,
      "selector_file_would_change": false,
      "state_file_would_write": false
    },
    "init": "/etc/init.d/router-wgpay-egress-local",
    "init_enabled_final": "false",
    "init_sha256": "fa999f17cf4f5435bc045fd61ddecd85f8929fbb120ab91f4126c24b64060bbd",
    "peer_count_final": "5",
    "rollback": "/root/rollback-step046j-vm100-local-controller-20260710-100957.sh",
    "script": "/usr/local/sbin/router-wgpay-egress-local.sh",
    "script_sha256": "f08900b430e9cb5a2effb71523bd53ade17c0bc6f55f0c5cf45844885c225004",
    "selector_rows_final": "5",
    "service_running_final": "false",
    "uci_peer_sections_final": "0"
  }
}
