{
  "assessment": {
    "all_ok": true,
    "blockers": [],
    "decision": "PASS_STEP_044F_RUNTIME_EGRESS_LEASE_READ_MODEL_AND_ALLOCATOR_DRYRUN",
    "expected_absence": {
      "allocator_live_enabled": false,
      "force_mode_enabled": false,
      "lease_rows_inserted": false,
      "lease_rows_updated": false,
      "manual_agent_service_start_used": false,
      "private_material_published": false,
      "rebalance_paused": false,
      "vm100_changed": false,
      "vm101_changed": false,
      "vm121_changed": false
    },
    "success_checks": {
      "active_leases_zero": true,
      "all_leases_bootstrap": true,
      "all_leases_forced_false": true,
      "all_leases_idle": true,
      "enabled_peer_count_five": true,
      "expired_leases_zero": true,
      "force_all_to_class_preview_rows_five": true,
      "force_all_to_target_preview_rows_five": true,
      "forced_leases_zero": true,
      "idle_leases_five": true,
      "lease_rows_five": true,
      "lease_total_class_counts_one_each": true,
      "leases_detail_count_five": true,
      "leases_query_ok": true,
      "normal_allocator_decision_created": true,
      "normal_allocator_tie_break_cs1": true,
      "pause_preview_preserves_all_five": true,
      "pending_jobs_zero": true,
      "postgres_container_found": true,
      "public_index_rebuilt": true,
      "public_report_created": true,
      "reactivation_sequence_balances_one_each": true,
      "reactivation_sequence_rows_five": true,
      "setting_active_min_bytes_16384": true,
      "setting_active_min_packets_10": true,
      "setting_allocator_enabled": true,
      "setting_force_mode_off": true,
      "setting_idle_seconds_900": true,
      "setting_rebalance_not_paused": true,
      "settings_query_ok": true,
      "settings_rows_fourteen": true,
      "summary_query_ok": true,
      "target_rows_five": true,
      "targets_query_ok": true,
      "vm100_allowed_ip_count_five": true,
      "vm100_peer_count_five": true,
      "vm100_selector_rows_five": true,
      "vm100_state_collected": true,
      "vm100_uci_peer_count_zero": true,
      "vm101_cs1_to_vpn3_seen": true,
      "vm101_cs2_to_vpn4_seen": true,
      "vm101_cs3_to_vpn5_seen": true,
      "vm101_cs4_to_vpn1_seen": true,
      "vm101_cs5_to_vpn2_seen": true,
      "vm101_slot_map_collected": true,
      "vm121_read_model_collected": true
    },
    "warnings": [
      "STEP_044F is dry-run/read-only; it does not update lease rows or regenerate VM100 selector.",
      "Activity counters are not integrated yet; active/idle decisions are simulated from current lease state.",
      "Custom emergency target is supported by schema, but actual emergency interface mapping must be added later before FORCE_MODE=all_to_target uses a non-cs target."
    ]
  },
  "changes": {
    "allocator_live_enabled": "NO",
    "force_mode_enabled": "NO",
    "lease_rows_inserted": "NO",
    "lease_rows_updated": "NO",
    "manual_agent_service_start_used": "NO",
    "private_material_published": "NO",
    "rebalance_paused": "NO",
    "vm100_changed": "NO",
    "vm101_changed": "NO",
    "vm121_changed": "NO_READONLY_DRYRUN"
  },
  "db_summary": {
    "active_leases": 0,
    "enabled_peers": 5,
    "expired_leases": 0,
    "forced_leases": 0,
    "idle_leases": 5,
    "lease_rows": 5,
    "pending_jobs": 0,
    "settings_rows": 14,
    "target_rows": 5
  },
  "dryrun": {
    "force_all_to_class_cs1_preview": [
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs1",
        "forced_target_id": "cs1_vpn3",
        "old_class": "cs1",
        "reason": "dryrun_force_all_to_class_cs1_not_applied",
        "tunnel_ip": "10.253.1.10/32"
      },
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs1",
        "forced_target_id": "cs1_vpn3",
        "old_class": "cs2",
        "reason": "dryrun_force_all_to_class_cs1_not_applied",
        "tunnel_ip": "10.253.1.11/32"
      },
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs1",
        "forced_target_id": "cs1_vpn3",
        "old_class": "cs3",
        "reason": "dryrun_force_all_to_class_cs1_not_applied",
        "tunnel_ip": "10.253.1.12/32"
      },
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs1",
        "forced_target_id": "cs1_vpn3",
        "old_class": "cs4",
        "reason": "dryrun_force_all_to_class_cs1_not_applied",
        "tunnel_ip": "10.253.1.13/32"
      },
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs1",
        "forced_target_id": "cs1_vpn3",
        "old_class": "cs5",
        "reason": "dryrun_force_all_to_class_cs1_not_applied",
        "tunnel_ip": "10.253.1.14/32"
      }
    ],
    "force_all_to_target_cs5_vpn2_preview": [
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs5",
        "forced_target_id": "cs5_vpn2",
        "old_class": "cs1",
        "reason": "dryrun_force_all_to_target_cs5_vpn2_not_applied",
        "tunnel_ip": "10.253.1.10/32"
      },
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs5",
        "forced_target_id": "cs5_vpn2",
        "old_class": "cs2",
        "reason": "dryrun_force_all_to_target_cs5_vpn2_not_applied",
        "tunnel_ip": "10.253.1.11/32"
      },
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs5",
        "forced_target_id": "cs5_vpn2",
        "old_class": "cs3",
        "reason": "dryrun_force_all_to_target_cs5_vpn2_not_applied",
        "tunnel_ip": "10.253.1.12/32"
      },
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs5",
        "forced_target_id": "cs5_vpn2",
        "old_class": "cs4",
        "reason": "dryrun_force_all_to_target_cs5_vpn2_not_applied",
        "tunnel_ip": "10.253.1.13/32"
      },
      {
        "assignment_source": "emergency_override",
        "forced": true,
        "forced_class": "cs5",
        "forced_target_id": "cs5_vpn2",
        "old_class": "cs5",
        "reason": "dryrun_force_all_to_target_cs5_vpn2_not_applied",
        "tunnel_ip": "10.253.1.14/32"
      }
    ],
    "normal_decision": {
      "chosen_class_for_next_new_or_returning_active_peer": "cs1",
      "chosen_target": {
        "egress_class": "cs1",
        "fwmark": "0x203",
        "interface_name": "vpn3",
        "is_emergency": false,
        "kind": "vpn",
        "route_table": 203,
        "status": "enabled",
        "target_id": "cs1_vpn3",
        "weight": 100
      },
      "current_active_counts": {
        "cs1": 0,
        "cs2": 0,
        "cs3": 0,
        "cs4": 0,
        "cs5": 0
      },
      "current_total_lease_counts": {
        "cs1": 1,
        "cs2": 1,
        "cs3": 1,
        "cs4": 1,
        "cs5": 1
      },
      "eligible_classes": [
        "cs1",
        "cs2",
        "cs3",
        "cs4",
        "cs5"
      ],
      "note": "All bootstrapped leases are currently idle, so active load is zero on all classes and stable tie-break chooses cs1.",
      "policy": "least_active_leases_then_stable_class_order"
    },
    "pause_preview": [
      {
        "action": "preserve_existing_lease",
        "current_class": "cs1",
        "current_target_id": "cs1_vpn3",
        "reason": "ROUTER_EGRESS_REBALANCE_PAUSED=1 dry-run",
        "tunnel_ip": "10.253.1.10/32"
      },
      {
        "action": "preserve_existing_lease",
        "current_class": "cs2",
        "current_target_id": "cs2_vpn4",
        "reason": "ROUTER_EGRESS_REBALANCE_PAUSED=1 dry-run",
        "tunnel_ip": "10.253.1.11/32"
      },
      {
        "action": "preserve_existing_lease",
        "current_class": "cs3",
        "current_target_id": "cs3_vpn5",
        "reason": "ROUTER_EGRESS_REBALANCE_PAUSED=1 dry-run",
        "tunnel_ip": "10.253.1.12/32"
      },
      {
        "action": "preserve_existing_lease",
        "current_class": "cs4",
        "current_target_id": "cs4_vpn1",
        "reason": "ROUTER_EGRESS_REBALANCE_PAUSED=1 dry-run",
        "tunnel_ip": "10.253.1.13/32"
      },
      {
        "action": "preserve_existing_lease",
        "current_class": "cs5",
        "current_target_id": "cs5_vpn2",
        "reason": "ROUTER_EGRESS_REBALANCE_PAUSED=1 dry-run",
        "tunnel_ip": "10.253.1.14/32"
      }
    ],
    "reactivation_sequence": [
      {
        "assignment_source": "allocator",
        "chosen_class": "cs1",
        "chosen_target_id": "cs1_vpn3",
        "event": "idle_peer_becomes_active",
        "forced": false,
        "old_class": "cs1",
        "tunnel_ip": "10.253.1.10/32",
        "would_reassign": false
      },
      {
        "assignment_source": "allocator",
        "chosen_class": "cs2",
        "chosen_target_id": "cs2_vpn4",
        "event": "idle_peer_becomes_active",
        "forced": false,
        "old_class": "cs2",
        "tunnel_ip": "10.253.1.11/32",
        "would_reassign": false
      },
      {
        "assignment_source": "allocator",
        "chosen_class": "cs3",
        "chosen_target_id": "cs3_vpn5",
        "event": "idle_peer_becomes_active",
        "forced": false,
        "old_class": "cs3",
        "tunnel_ip": "10.253.1.12/32",
        "would_reassign": false
      },
      {
        "assignment_source": "allocator",
        "chosen_class": "cs4",
        "chosen_target_id": "cs4_vpn1",
        "event": "idle_peer_becomes_active",
        "forced": false,
        "old_class": "cs4",
        "tunnel_ip": "10.253.1.13/32",
        "would_reassign": false
      },
      {
        "assignment_source": "allocator",
        "chosen_class": "cs5",
        "chosen_target_id": "cs5_vpn2",
        "event": "idle_peer_becomes_active",
        "forced": false,
        "old_class": "cs5",
        "tunnel_ip": "10.253.1.14/32",
        "would_reassign": false
      }
    ],
    "reactivation_sequence_class_counts": {
      "cs1": 1,
      "cs2": 1,
      "cs3": 1,
      "cs4": 1,
      "cs5": 1
    }
  },
  "leases": [
    {
      "assignment_source": "bootstrap",
      "egress_class": "cs1",
      "forced": false,
      "last_activity_at": "",
      "peer_enabled": true,
      "peer_id": "376dfa07-0ba4-4182-af39-389a2cb3badd",
      "reason": "bootstrap_from_existing_vm100_selector",
      "state": "idle",
      "target_id": "cs1_vpn3",
      "tunnel_ip": "10.253.1.10/32",
      "updated_at": "2026-07-09 13:18:38.59577+00"
    },
    {
      "assignment_source": "bootstrap",
      "egress_class": "cs2",
      "forced": false,
      "last_activity_at": "",
      "peer_enabled": true,
      "peer_id": "cb533a1a-7070-416d-9272-846327545060",
      "reason": "bootstrap_from_existing_vm100_selector",
      "state": "idle",
      "target_id": "cs2_vpn4",
      "tunnel_ip": "10.253.1.11/32",
      "updated_at": "2026-07-09 13:18:38.59577+00"
    },
    {
      "assignment_source": "bootstrap",
      "egress_class": "cs3",
      "forced": false,
      "last_activity_at": "",
      "peer_enabled": true,
      "peer_id": "a3cbe3b5-8416-4847-b5ee-21f42359b465",
      "reason": "bootstrap_from_existing_vm100_selector",
      "state": "idle",
      "target_id": "cs3_vpn5",
      "tunnel_ip": "10.253.1.12/32",
      "updated_at": "2026-07-09 13:18:38.59577+00"
    },
    {
      "assignment_source": "bootstrap",
      "egress_class": "cs4",
      "forced": false,
      "last_activity_at": "",
      "peer_enabled": true,
      "peer_id": "219a1f63-ec47-4f72-9663-c1a17d82301e",
      "reason": "bootstrap_from_existing_vm100_selector",
      "state": "idle",
      "target_id": "cs4_vpn1",
      "tunnel_ip": "10.253.1.13/32",
      "updated_at": "2026-07-09 13:18:38.59577+00"
    },
    {
      "assignment_source": "bootstrap",
      "egress_class": "cs5",
      "forced": false,
      "last_activity_at": "",
      "peer_enabled": true,
      "peer_id": "e4adcfa1-6fbc-4471-b66b-8d7837f35f9d",
      "reason": "bootstrap_from_existing_vm100_selector",
      "state": "idle",
      "target_id": "cs5_vpn2",
      "tunnel_ip": "10.253.1.14/32",
      "updated_at": "2026-07-09 13:18:38.59577+00"
    }
  ],
  "mode": "READONLY_READ_LEASE_MODEL_AND_DRYRUN_NORMAL_PAUSE_FORCE_ALLOCATOR_POLICIES",
  "publish": {
    "local_report": "http://127.0.0.1:8099/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260709-132313_step044f_runtime_egress_lease_read_model_allocator_dryrun/",
    "public_index_rebuilt": true,
    "trycf_report": "https://helena-background-beam-harry.trycloudflare.com/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260709-132313_step044f_runtime_egress_lease_read_model_allocator_dryrun/"
  },
  "schema": "router-step-facts-v1",
  "settings_effective": {
    "ROUTER_EGRESS_ACTIVE_MIN_BYTES": {
      "value_int": "16384",
      "value_text": "16384"
    },
    "ROUTER_EGRESS_ACTIVE_MIN_PACKETS": {
      "value_int": "10",
      "value_text": "10"
    },
    "ROUTER_EGRESS_ACTIVITY_METRIC": {
      "value_int": "",
      "value_text": "inner_forwarded_transit_vpn"
    },
    "ROUTER_EGRESS_ALLOCATOR_ENABLED": {
      "value_int": "1",
      "value_text": "1"
    },
    "ROUTER_EGRESS_CLASSES": {
      "value_int": "",
      "value_text": "cs1,cs2,cs3,cs4,cs5"
    },
    "ROUTER_EGRESS_FORCE_CLASS": {
      "value_int": "",
      "value_text": ""
    },
    "ROUTER_EGRESS_FORCE_MODE": {
      "value_int": "",
      "value_text": "off"
    },
    "ROUTER_EGRESS_FORCE_REASON": {
      "value_int": "",
      "value_text": ""
    },
    "ROUTER_EGRESS_FORCE_TARGET_ID": {
      "value_int": "",
      "value_text": ""
    },
    "ROUTER_EGRESS_FORCE_UNTIL": {
      "value_int": "",
      "value_text": ""
    },
    "ROUTER_EGRESS_IDLE_SECONDS": {
      "value_int": "900",
      "value_text": "900"
    },
    "ROUTER_EGRESS_REASSIGN_COOLDOWN_SECONDS": {
      "value_int": "900",
      "value_text": "900"
    },
    "ROUTER_EGRESS_REBALANCE_PAUSED": {
      "value_int": "0",
      "value_text": "0"
    },
    "ROUTER_EGRESS_SAMPLE_SECONDS": {
      "value_int": "120",
      "value_text": "120"
    }
  },
  "step": "STEP_044F_RUNTIME_EGRESS_LEASE_READ_MODEL_AND_ALLOCATOR_DRYRUN",
  "targets": [
    {
      "egress_class": "cs1",
      "fwmark": "0x203",
      "interface_name": "vpn3",
      "is_emergency": false,
      "kind": "vpn",
      "route_table": 203,
      "status": "enabled",
      "target_id": "cs1_vpn3",
      "weight": 100
    },
    {
      "egress_class": "cs2",
      "fwmark": "0x204",
      "interface_name": "vpn4",
      "is_emergency": false,
      "kind": "vpn",
      "route_table": 204,
      "status": "enabled",
      "target_id": "cs2_vpn4",
      "weight": 100
    },
    {
      "egress_class": "cs3",
      "fwmark": "0x205",
      "interface_name": "vpn5",
      "is_emergency": false,
      "kind": "vpn",
      "route_table": 205,
      "status": "enabled",
      "target_id": "cs3_vpn5",
      "weight": 100
    },
    {
      "egress_class": "cs4",
      "fwmark": "0x201",
      "interface_name": "vpn1",
      "is_emergency": false,
      "kind": "vpn",
      "route_table": 201,
      "status": "enabled",
      "target_id": "cs4_vpn1",
      "weight": 100
    },
    {
      "egress_class": "cs5",
      "fwmark": "0x202",
      "interface_name": "vpn2",
      "is_emergency": false,
      "kind": "vpn",
      "route_table": 202,
      "status": "enabled",
      "target_id": "cs5_vpn2",
      "weight": 100
    }
  ]
}
