39 lines
84 KiB
JSON
39 lines
84 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"channel": "homelab-runtime",
|
|
"command_id": "NEWFI-260921-NEWFDOM-DR221-TARGETED-SOURCE-RECOVERY401R1",
|
|
"status": "OK",
|
|
"rc": 0,
|
|
"host": "pve01",
|
|
"mode": "read-only",
|
|
"component": "newfi-dr221-targeted-source-recovery",
|
|
"started_at_utc": "2026-09-21T16:42:40Z",
|
|
"finished_at_utc": "2026-09-21T16:54:52Z",
|
|
"reference_register_checked": true,
|
|
"reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
|
|
"error_register_checked": true,
|
|
"error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
|
|
"command_sha256": "80f90a8aa52c17c2b3fcce96b808593ce8c9e9c60cd6170aea6a907a0727751b",
|
|
"duplicate_failed_command_blocked": false,
|
|
"block_reason": null,
|
|
"execution_started": true,
|
|
"change_declared": false,
|
|
"result_contract_valid": true,
|
|
"result_contract_status": null,
|
|
"result_contract_error": null,
|
|
"command_rc": 0,
|
|
"changes_made": false,
|
|
"rollback_started": false,
|
|
"rollback_restored": null,
|
|
"mutation_outcome": "NO_MUTATION",
|
|
"sanitized": true,
|
|
"secrets_included": false,
|
|
"private_addresses_included": false,
|
|
"raw_evidence_retained_locally": true,
|
|
"raw_evidence_sha256": "2cad6495c7d3263cbdca6d967a94b345e54ecd639b1a267645b4469dbc96f9d6",
|
|
"sanitized_output_sha256": "2cad6495c7d3263cbdca6d967a94b345e54ecd639b1a267645b4469dbc96f9d6",
|
|
"output_truncated_in_json": false,
|
|
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
|
|
"output": "ERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nAUTHORITY_HASHES={\"/etc/pve/31_HOMELAB_REFERENCE.md\":{\"bytes\":201129,\"sha256\":\"5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66\"},\"/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md\":{\"bytes\":302058,\"sha256\":\"3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0\"}}\nWORKTREE_HEAD=9c4814db67759dc09a5469d254c41a7b73f4d89a\nWORKTREE_BRANCH=implementation/newfi-closed-mvp-20260906\nWORKTREE_CLEAN=true\nWORKTREE_HEAD_MATCH_399=true\nEXACT_399={\"json_sha256\":\"bfe2b596226b22144f515eed22afcdda9ff16a87e85c9e6329860f7914646782\",\"txt_sha256\":\"7ead1ea2779b0285aea060a90496afe6e75c7c7606718bec3a95d36c9053f3a3\",\"valid\":true}\nEXACT_400={\"json_sha256\":\"09cc4f9d642c29b2b8f05ae68c0cc2b6d64c3525aa48ccd9d47d3cb7a5f13772\",\"txt_sha256\":\"ab7e08cf1e9dd7c5e9b2193cf364f2ac8b04301f18eaf775cdb9e4d5e732c764\",\"valid\":true}\nIMMUTABLE_PLAN_PREDECESSOR_399_PASS=true\nAUTHORITY_UNCHANGED_FROM_399=true\nPLAN_CARRY_FORWARD_FROM_EXACT_399=true\nIMMUTABLE_PLAN_SEARCH_FILES=12000\nIMMUTABLE_PLAN_DIRECT_MATCHES=[]\nIMMUTABLE_PLAN_DIRECT_CHECK=NOT_FOUND\nFULLRESTORE_EVIDENCE_COUNT=0\nFULLRESTORE_EVIDENCE=[]\nCURRENT_RESTORE_DOCS=[{\"lines\":[{\"line\":5,\"text\":\"Task 7 accepts the immutable VM211 generation:\"},{\"line\":7,\"text\":\"- Generation: `vm211-pve03-20260906T083057Z`\"},{\"line\":11,\"text\":\"- Canonical sealed state: `/var/lib/homelab-backup/cloud-quorum/vm211/vm211-pve03-20260906T083057Z.json`\"},{\"line\":12,\"text\":\"- Bounded Cloud-A evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T083057Z.json`\"},{\"line\":13,\"text\":\"- Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T083057Z-newfi-full.json`\"},{\"line\":15,\"text\":\"The backup used the current homelab VM cloud-quorum worker/transport contract with a root-only bounded worker copy whose only allowlist extension was VM211 as `pve03/qemu`. The shared worker was not modified.\"},{\"line\":23,\"text\":\"- independent Cloud A and Cloud B verification\"},{\"line\":30,\"text\":\"Cloud A was subsequently read back for archive SHA, decompression and Proxmox configuration validation.\"},{\"line\":34,\"text\":\"The same sealed generation was reconstructed from Cloud A and restored with native Proxmox `qmrestore` into temporary VMID `9211`.\"},{\"line\":39,\"text\":\"- VM9211 was restored stopped.\"},{\"line\":44,\"text\":\"- VM9211 was stopped and destroyed after validation.\"},{\"line\":45,\"text\":\"- No VM9211 LVM residue remained.\"},{\"line\":66,\"text\":\"`NEWFI76` reconstructed the correct bytes and archive SHA but used the temporary basename `archive.vma.zst`. Proxmox `qmrestore` determines archive metadata from the filename and rejected it before restore. Committed-state checks proved no VM9211 residue.\"},{\"line\":68,\"text\":\"`NEWFI78` then completed a real isolated restore, but its acceptance verifier used a Cyrillic substring test for the language title. XenForo's authoritative restored record was `language_id=2`, `title=Russian (RU)`, `language_code=ru-RU`; therefore that result was a verifier false negative. Cleanup again left no VM9211 residue.\"},{\"line\":70,\"text\":\"`NEWFI80` uses the authoritative language ID/code contract and records the accepted full restore evidence.\"},{\"line\":78,\"text\":\"The verifier checks strict SEALED state, bounded Cloud-A recovery evidence, accepted full-restore evidence, VM9211/LV absence and performs a fresh remote seal verification.\"}],\"path\":\"docs/operations/backup-restore.md\",\"sha256\":\"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f\"},{\"lines\":[{\"line\":1,\"text\":\"# Newfi private staging — fresh backup and full restore gate\"},{\"line\":7,\"text\":\"Fresh generation: `vm211-pve03-20260906T213759Z`\"},{\"line\":9,\"text\":\"Sealed state: `/var/lib/homelab-backup/cloud-quorum/vm211/vm211-pve03-20260906T213759Z.json`\"},{\"line\":11,\"text\":\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\"},{\"line\":22,\"text\":\"- FINAL181 created the fresh VM211 backup and sealed it with Cloud A + Cloud B quorum 2;\"},{\"line\":24,\"text\":\"- FINAL183 reconstructed that exact sealed archive from Cloud A and verified its SHA256 and size;\"},{\"line\":25,\"text\":\"- temporary VM9211 was restored with unique MAC assignment and all restored NICs link-down before boot;\"},{\"line\":31,\"text\":\"- VM9211, its config, restore LVs and reconstruction work were removed after proof;\"},{\"line\":32,\"text\":\"- source VM211 remained system-running with zero failed units before and after the restore drill;\"},{\"line\":33,\"text\":\"- all ten current implementation verifiers passed again on source VM211 after cleanup;\"}],\"path\":\"docs/checkpoints/private-staging-backup-restore.md\",\"sha256\":\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5e37\"},{\"lines\":[{\"line\":7,\"text\":\"GEN=vm211-pve03-20260906T083057Z\"},{\"line\":10,\"text\":\"STATE=/var/lib/homelab-backup/cloud-quorum/vm211/$GEN.json\"},{\"line\":11,\"text\":\"BOUNDED=/var/lib/homelab-backup/vm-restore-validation/vm211/$GEN.json\"},{\"line\":12,\"text\":\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\"},{\"line\":109,\"text\":\" and full.get(\\\"test_vmid\\\")==9211\"},{\"line\":115,\"text\":\" and full.get(\\\"full_restore_proven\\\") is True\"},{\"line\":138,\"text\":\" [\\\"/usr/sbin/qm\\\",\\\"status\\\",\\\"9211\\\"],\"},{\"line\":159,\"text\":\" \\\"vm-9211-\\\" in x\"},{\"line\":169,\"text\":\" \\\"vm211\\\",\"},{\"line\":187,\"text\":\"print(\\\"FULL_RESTORE_PROVEN=true\\\")\"}],\"path\":\"scripts/verify-foundation-restore.sh\",\"sha256\":\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\"}]\nLOCAL_PROVENANCE_FILES_SCANNED=2433\nLOCAL_SCHEMA_HITS=[{\"bytes\":3166,\"lines\":[{\"line\":13,\"text\":\"- Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T083057Z-newfi-full.json`\"},{\"line\":34,\"text\":\"The same sealed generation was reconstructed from Cloud A and restored with native Proxmox `qmrestore` into temporary VMID `9211`.\"},{\"line\":66,\"text\":\"`NEWFI76` reconstructed the correct bytes and archive SHA but used the temporary basename `archive.vma.zst`. Proxmox `qmrestore` determines archive metadata from the filename and rejected it before restore. Committed-state checks proved no VM9211 residue.\"}],\"path\":\"/root/newfi-portal/.worktrees/foundation-newfi-foundation-20260904/docs/operations/backup-restore.md\",\"sha256\":\"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f\"},{\"bytes\":5019,\"lines\":[{\"line\":12,\"text\":\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\"},{\"line\":83,\"text\":\" state.get(\\\"schema\\\")==\\\"homelab-cloud-quorum-payload-v1\\\"\"},{\"line\":97,\"text\":\" and bounded.get(\\\"schema\\\")==\\\"homelab-vm-restore-validation-v1\\\"\"},{\"line\":105,\"text\":\" and full.get(\\\"schema\\\")==\\\"newfi-foundation-full-restore-v1\\\"\"},{\"line\":108,\"text\":\" and full.get(\\\"source_vmid\\\")==211\"},{\"line\":109,\"text\":\" and full.get(\\\"test_vmid\\\")==9211\"},{\"line\":115,\"text\":\" and full.get(\\\"full_restore_proven\\\") is True\"},{\"line\":187,\"text\":\"print(\\\"FULL_RESTORE_PROVEN=true\\\")\"}],\"path\":\"/root/newfi-portal/.worktrees/foundation-newfi-foundation-20260904/scripts/verify-foundation-restore.sh\",\"sha256\":\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\"},{\"bytes\":3166,\"lines\":[{\"line\":13,\"text\":\"- Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T083057Z-newfi-full.json`\"},{\"line\":34,\"text\":\"The same sealed generation was reconstructed from Cloud A and restored with native Proxmox `qmrestore` into temporary VMID `9211`.\"},{\"line\":66,\"text\":\"`NEWFI76` reconstructed the correct bytes and archive SHA but used the temporary basename `archive.vma.zst`. Proxmox `qmrestore` determines archive metadata from the filename and rejected it before restore. Committed-state checks proved no VM9211 residue.\"}],\"path\":\"/root/newfi-portal/.worktrees/implementation-newfi-closed-mvp-20260906/docs/operations/backup-restore.md\",\"sha256\":\"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f\"},{\"bytes\":2138,\"lines\":[{\"line\":11,\"text\":\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\"}],\"path\":\"/root/newfi-portal/.worktrees/implementation-newfi-closed-mvp-20260906/docs/checkpoints/private-staging-backup-restore.md\",\"sha256\":\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5e37\"},{\"bytes\":5019,\"lines\":[{\"line\":12,\"text\":\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\"},{\"line\":83,\"text\":\" state.get(\\\"schema\\\")==\\\"homelab-cloud-quorum-payload-v1\\\"\"},{\"line\":97,\"text\":\" and bounded.get(\\\"schema\\\")==\\\"homelab-vm-restore-validation-v1\\\"\"},{\"line\":105,\"text\":\" and full.get(\\\"schema\\\")==\\\"newfi-foundation-full-restore-v1\\\"\"},{\"line\":108,\"text\":\" and full.get(\\\"source_vmid\\\")==211\"},{\"line\":109,\"text\":\" and full.get(\\\"test_vmid\\\")==9211\"},{\"line\":115,\"text\":\" and full.get(\\\"full_restore_proven\\\") is True\"},{\"line\":187,\"text\":\"print(\\\"FULL_RESTORE_PROVEN=true\\\")\"}],\"path\":\"/root/newfi-portal/.worktrees/implementation-newfi-closed-mvp-20260906/scripts/verify-foundation-restore.sh\",\"sha256\":\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\"},{\"bytes\":4575,\"lines\":[{\"line\":23,\"text\":\" if obj.get(\\\"schema\\\") != \\\"homelab-cloud-quorum-payload-v1\\\": return False\"},{\"line\":51,\"text\":\" e.get(\\\"schema\\\")==\\\"homelab-vm-restore-validation-v1\\\" and e.get(\\\"logical_id\\\")==logical and\"},{\"line\":58,\"text\":\" e.get(\\\"full_restore_proven\\\") is False and e.get(\\\"result\\\")==\\\"OK\\\"\"},{\"line\":78,\"text\":\" \\\"schema\\\":\\\"homelab-boot-drill-state-export-v1\\\",\"},{\"line\":92,\"text\":\" print(json.dumps(out,separators=(\\\",\\\",\\\":\\\"),sort_keys=True))\"}],\"path\":\"/usr/local/sbin/homelab-rotating-boot-drill-state-export\",\"sha256\":\"59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc\"},{\"bytes\":4575,\"lines\":[{\"line\":23,\"text\":\" if obj.get(\\\"schema\\\") != \\\"homelab-cloud-quorum-payload-v1\\\": return False\"},{\"line\":51,\"text\":\" e.get(\\\"schema\\\")==\\\"homelab-vm-restore-validation-v1\\\" and e.get(\\\"logical_id\\\")==logical and\"},{\"line\":58,\"text\":\" e.get(\\\"full_restore_proven\\\") is False and e.get(\\\"result\\\")==\\\"OK\\\"\"},{\"line\":78,\"text\":\" \\\"schema\\\":\\\"homelab-boot-drill-state-export-v1\\\",\"},{\"line\":92,\"text\":\" print(json.dumps(out,separators=(\\\",\\\",\\\":\\\"),sort_keys=True))\"}],\"path\":\"/usr/local/libexec/homelab-rotating-boot-drill-state-export\",\"sha256\":\"59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc\"},{\"bytes\":17702,\"lines\":[{\"line\":21,\"text\":\"active_backup_restore(){ local rc; if pgrep -af '(^|/)(vzdump|qmrestore|pctrestore|vma|zstd|rclone)([[:space:]]|$)'; then return 0; else rc=$?; [[ \\\"$rc\\\" == 1 ]] && return 0; die \\\"PGREP_FAILED_$rc\\\" 69; fi; }\"},{\"line\":85,\"text\":\" jq -e --arg l \\\"vm${vmid}\\\" --arg g \\\"$gen\\\" --arg s \\\"$state\\\" --arg sha \\\"$sha\\\" '.schema==\\\"homelab-vm-restore-validation-v1\\\" and .logical_id==$l and .generation==$g and .transport_state==\\\"SEALED\\\" and .transport_state_file==$s and .restore_source==\\\"Cloud A\\\" and .parts_manifest_verified==true and .payload_sha256==$sha and .payload_sha256_verified==true and .payload_decompression_verified==true and .proxmox_config_extract_verified==true and .archive_recovery_readback_verified==true and .bounded_staging==true and .full_local_payload_written==false and .full_restore_proven==false and .result==\\\"OK\\\"' \\\"$f\\\" >/dev/null\"},{\"line\":118,\"text\":\" jq -e '.schema==\\\"homelab-cloud-quorum-payload-v1\\\" and .status==\\\"SEALED\\\" and .cloud_quorum==2 and .cloud_a_verified==true and .cloud_b_verified==true and .part_hashes_verified==true and .seal_written==true and .cloud_a_seal_verified==true and .cloud_b_seal_verified==true and .local_payload_present==false and .local_cleanup==\\\"OK\\\"' \\\"$state\\\" >/dev/null || die \\\"RESTORE_REQUIRES_STRICT_SEALED_$vmid\\\" 65\"},{\"line\":148,\"text\":\" jq -n --arg logical \\\"$logical\\\" --arg generation \\\"$gen\\\" --argjson vmid \\\"$vmid\\\" --arg vm_type \\\"$VM_TYPE\\\" --arg state \\\"$state\\\" --arg sha \\\"$expected_sha\\\" --arg config_sha \\\"$config_sha\\\" --arg level \\\"$level\\\" --argjson member_count \\\"$member_count\\\" --arg at \\\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\\\" '{schema:\\\"homelab-vm-restore-validation-v1\\\",logical_id:$logical,generation:$generation,vmid:$vmid,vm_type:$vm_type,transport_state:\\\"SEALED\\\",transport_state_file:$state,restore_source:\\\"Cloud A\\\",parts_manifest_verified:true,payload_sha256:$sha,payload_sha256_verified:true,payload_decompression_verified:true,proxmox_config_extract_verified:true,proxmox_config_sha256:$config_sha,lxc_member_count:$member_count,archiv\"}],\"path\":\"/usr/local/libexec/homelab-vm-cloud-quorum-node-worker\",\"sha256\":\"91bdd116be865560a38105dffbd1a66d687232035e2359e4a5be4d225e9c61d1\"},{\"bytes\":5271,\"lines\":[{\"line\":49,\"text\":\" if ! jq -e '.schema==\\\"homelab-cloud-quorum-payload-v1\\\" and .status==\\\"SEALED\\\" and .cloud_quorum==2 and .cloud_a_verified==true and .cloud_b_verified==true and .part_hashes_verified==true and .seal_written==true and .cloud_a_seal_verified==true and .cloud_b_seal_verified==true and .local_payload_present==false and .local_cleanup==\\\"OK\\\"' \\\"$latest\\\" >/dev/null; then printf 'FRESHNESS_STATUS=OK\\\\nVMID=%s\\\\nDECISION=BACKUP_UNVERIFIED\\\\nREASON=LATEST_STATE_NOT_STRICT_SEALED\\\\nSTATE_FILE=%s\\\\n' \\\"$vmid\\\" \\\"$latest\\\"; return 0; fi\"},{\"line\":52,\"text\":\" if ! jq -e --arg l \\\"vm${vmid}\\\" --arg g \\\"$generation\\\" --arg s \\\"$latest\\\" --arg sha \\\"$sha\\\" '.schema==\\\"homelab-vm-restore-validation-v1\\\" and .logical_id==$l and .generation==$g and .transport_state==\\\"SEALED\\\" and .transport_state_file==$s and .restore_source==\\\"Cloud A\\\" and .parts_manifest_verified==true and .payload_sha256==$sha and .payload_sha256_verified==true and .payload_decompression_verified==true and .proxmox_config_extract_verified==true and .archive_recovery_readback_verified==true and .bounded_staging==true and .full_local_payload_written==false and .full_restore_proven==false and .result==\\\"OK\\\"' \\\"$restore\\\" >/dev/null; then printf 'FRESHNESS_STATUS=OK\\\\nVMID=%s\\\\nDECISION=BACKUP_UNVERIF\"}],\"path\":\"/usr/local/libexec/homelab-vm-cloud-quorum-freshness-probe\",\"sha256\":\"bd6257397c6ea910df2ea0dd57252b33bccd0bbd965175840486dfe5e079bf96\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260903T034236Z.json\",\"sha256\":\"f81ed0fff5c3bf1b18ac85876acf095089db6e23fea67c25e7b4591c6f6426e6\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260825T024055Z.json\",\"sha256\":\"93d75776422648f26f4427026f862e8d9d534762a8225c6ee96267af8861e8d6\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260812T175702Z.json\",\"sha256\":\"c131805a885df07e2ab620ecac440ee09dedd7573ec209804962d99e4e6a9b78\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260814T120018Z.json\",\"sha256\":\"e5cbacacf6d045c4089e4593ec25b0bd0ac646fbc6b880218835227b75d7103e\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260830T215206Z.json\",\"sha256\":\"19f80b27af8cecd051468de88ad3eaf978f531edf7ee3310cb4f5e3e98743cfe\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260910T093532Z.json\",\"sha256\":\"01629f57f58a84858a2addd3b39c3f2702f11dcc3c235ff0b811eb68f7763c99\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260829T055230Z.json\",\"sha256\":\"54c55120a65a679d79191560cfa4ce36d06024fd8aa0d255b5fcb7603fa47e3d\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260823T074138Z.json\",\"sha256\":\"4432a1ec79c6c225312f6a848324f8fcbe811fd6b5447843630d8c3cc897594a\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260915T003017Z.json\",\"sha256\":\"23edabc2ff232cc4a63c1925b7ca7af47a28957cd4ce2712c049c0a1eb9e1151\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260826T104801Z.json\",\"sha256\":\"3ac11c6db6ecbf018517a3797f32a100289f5104e43500243d2a6bfae9096e13\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260831T234523Z.json\",\"sha256\":\"42e2514cf1a7b289e58795ae05823e1d90bff25acfc9fd1f014ac0974724c63b\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260904T064613Z.json\",\"sha256\":\"f7d3d86b8fc4dc7ead6a8b8c2259625bb65c02d046a89042e84c21934d6732d5\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260905T223254Z.json\",\"sha256\":\"d7f2dd19464e53087398fcfe6cbf4c335cbbcba25e00546a239a9f14bfab82b3\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260826T234419Z.json\",\"sha256\":\"0d3f575de4bc6cadf9ff949bf3344a5a6578c982fcdc7265ca0f2c1a7177b9eb\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260905T093438Z.json\",\"sha256\":\"4de0349f56d7f8643a2e9e4147a0fae67843412f763d2cfdf645678c2dabbb25\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260913T203019Z.json\",\"sha256\":\"dcc89a747399b09bee86ba9d5bcdea62545e267f02d9a2fe78b13c045109ea94\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260830T075421Z.json\",\"sha256\":\"46080ef31b42050cff03ec9be2f6254e52e8d21ee637c7d5f3876890c78ae253\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260810T065016Z.json\",\"sha256\":\"bbc5b01f6a5fb6abb7ecaa4f7e4306e8eea7c1bc228bcf91f7bbc7fb7e0df45f\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260912T023301Z.json\",\"sha256\":\"9a27a199d065fca0cb5d2b720889b32bd73ab5d26cf68e32041ceacb71c077b7\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260912T173439Z.json\",\"sha256\":\"9dd611fdc9399fe1b9ecd7672b475e919b85f9cc9c656b4e8f827f6136cdddf2\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260906T113503Z.json\",\"sha256\":\"2649baadc3eaab8f912ef768ff9b6e9f5741ce4286bd501364012c8a8e3eb7ca\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260901T133543Z.json\",\"sha256\":\"e8450eeec2735f8cb285bbff4a4e03bccd27940747e0d4d6aa403cea055158a8\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260902T145801Z.json\",\"sha256\":\"d411236d44ff6a0f1bc4712a8431c7c95fe87a7b899d2e95ab7bff6ccaa14723\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260907T144115Z.json\",\"sha256\":\"ee4dc8949ff9257752075c281aa8fd297912aa283da1ad870381ad780f5d83bd\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260911T003332Z.json\",\"sha256\":\"3950b3ae2f02c96aebe200593e3cdef5a1444c59ee65daba251a7651b1ccf79c\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260911T133338Z.json\",\"sha256\":\"52b9a34d69ca682bcac313a2b3d0014a0d45f5acf748f0219ff493e5fdec6e56\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260822T104254Z.json\",\"sha256\":\"73534cabc8b3ad2ca25059392be661b5db3f35a378d66cbd4afc87fabcae3d0b\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260827T134805Z.json\",\"sha256\":\"5c87865cd1a6993b549b63f9bfff41537c64c05db0ccbe950d73c34df51b3c0a\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260825T214241Z.json\",\"sha256\":\"9795390bf1729da1034a20998a30cba7caa84d8a8e4f220c8c237acf938b6617\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260913T063016Z.json\",\"sha256\":\"cb19800a87307b1b1d48514e6c0b33bee7b93a9fa5b9c1e10c70aa6e6fe47ef7\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260818T025100Z.json\",\"sha256\":\"890c9fb27b0e6163e3520bd0f232f6071b3a3a20d24497ed5c4ae292aacd8a1d\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260815T110003Z.json\",\"sha256\":\"2bafe6dc44cedc06b6b895fb2f2c5bdc35f35bf9d71477986408e6d7a9e554a2\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260908T173740Z.json\",\"sha256\":\"85adc4da662f2be42dd79e544b0f2b4b09c4c3fc9fd6d43c03035a1b89b2b14c\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260908T033223Z.json\",\"sha256\":\"c8e62c5468a96766004777d34d5a921db8e2f5e812e5ef4452d11f9cd1cce5bb\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260821T140013Z.json\",\"sha256\":\"af74000f5895105a2984805bede5c7104476eeae1ead6e586d6d9873beed1753\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260902T021026Z.json\",\"sha256\":\"69a7f78ebc86548352696fcd83ef365d953fbbf0e321b2ff54c7426480509cc1\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260909T194007Z.json\",\"sha256\":\"122ff1f698eb4b664fdf1303df7580acd26360b2cc38a05434535cc6048d2a23\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260824T054150Z.json\",\"sha256\":\"9b30524a2b1c88d02f6154588db3f9a3aa7e7b0bfcf5beb4844229aa2bff389b\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260811T195257Z.json\",\"sha256\":\"1b5445c3781b13fda8d0deff755b11816c2cd54bb33ec82b918714c10e8de3f0\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260813T150314Z.json\",\"sha256\":\"1ce1ee3dbf660ec09edb7dffbc833e8616bfd53655152e26cfa11fb94a9cd43a\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260903T174843Z.json\",\"sha256\":\"6963a016af5c8fb1accd46988448af09eb1b0b1e532f74b9dae0dcd93b2bbfc1\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260914T103009Z.json\",\"sha256\":\"851c4ca7ddd5d89d9c3fd3ea68d6297e59aaa50c132bd751e13541d9baaf3658\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260818T235518Z.json\",\"sha256\":\"f6dd4c714d1e92a5fbe5b28c14cb6be24d1844ba3dee10c0397ce3fa2308405d\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260915T133259Z.json\",\"sha256\":\"7f3d0a9d6c5ddb813f013c090b2186ef7bda905185211b8d0307df1a3ff214eb\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260916T023018Z.json\",\"sha256\":\"28dcd4ad5cfcd760573eccc6019e448965424af4b092393f4d1fd1fb9c1989d8\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260907T013234Z.json\",\"sha256\":\"7a76a7724cec777bbf5f302c4c73dad5cf788d3b18d8be5ec4d208901e9db16b\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260828T155555Z.json\",\"sha256\":\"01218ef9b1f78f3ed1b85e8d076783a893424945ec6f32968fa51803790718b9\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260909T063725Z.json\",\"sha256\":\"4edd32734e89e9933be64146718ffcd958377fe4a1f98678211d38eae417b881\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260817T055309Z.json\",\"sha256\":\"091abc987e3849e15c0fc15c0da6a0c89247d0f71633f6caf78057fe6b55e8e2\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260828T024020Z.json\",\"sha256\":\"7c9551c0414a49045e060d729a7dfd3ba429b278dcb808fa18c11e25232423f2\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260819T215743Z.json\",\"sha256\":\"bb5e20a5df131464f433aae9e3cec0518aa7f3406b1579f6ed199d5fbe67d031\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260829T185633Z.json\",\"sha256\":\"410190ddfd00ef14f147e6776a7b0e90be1907c2cb7745e0664042d36a0b9db6\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260831T110112Z.json\",\"sha256\":\"28ee5b38662aee78f267156c9a998b7ceda4c28ffaf709fc0f453d4a662fe2eb\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260904T193324Z.json\",\"sha256\":\"ed7ad8328e23bd9c18033fe8b244c2598f90f3538e5481e1faf9a88421f30c22\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260816T075403Z.json\",\"sha256\":\"da860be9fad528f88e30e58100b9fbc51307de2fdf1d03d130cf79e9a13ca08b\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260829T173717Z.json\",\"sha256\":\"810047d250a3b85f544f1f08aeecc89da22df1461587e719ee38b54264809301\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260901T103753Z.json\",\"sha256\":\"6b053a00b1d9ebef3be04063bb609fc4a14cc3c64e5d2bdd53f2700962cf1afc\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260827T203624Z.json\",\"sha256\":\"48399c3c5cdb074bd33b648afe0cca45bdc50be0764e94e422432739786c12d4\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260812T181406Z.json\",\"sha256\":\"319c961a483a8b3fd746fc980d1c54f64acd0a956e80e90bb8e7df39d8efc1e7\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260817T003018Z.json\",\"sha256\":\"a1b5786d4f4983e298fad6bc7e0e62b1f7cba71c758ecc3321c1ed0b35a1d31c\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260830T203628Z.json\",\"sha256\":\"6e22767c5335eed0ad35f3e478666681aab3aa108aa4626893fd1ef09ef8592e\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260902T134020Z.json\",\"sha256\":\"859fd36372728e6a4daecfe228ad6452cc5551851a51796b4b00587c4a6768ff\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260816T035805Z.json\",\"sha256\":\"bd952868dc0b024d68ed93010534686065b80861140a17212bc5cceb9f4669c9\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260828T143617Z.json\",\"sha256\":\"512a0363c465f5f46297fc289f4611c285909e8bda6145293887004852c6c77a\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260819T143015Z.json\",\"sha256\":\"f972a575f38522a03e2afc9d30bc8877152ec5774e6918ba83f16242ca17faea\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260815T111713Z.json\",\"sha256\":\"f673cf505bbfb37750067290ffea64ede10643ec4a65b6e83dff94be16980995\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260830T063610Z.json\",\"sha256\":\"ba1a5cf555b65d81ae4dc60a79d9524bb56980e6f7977304a03d29f1c6f2f6fe\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260810T070246Z.json\",\"sha256\":\"08e297d26021fb18b02854a679fc64f1e2d885064adb26faef61f77ce2dcf6cd\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260824T183626Z.json\",\"sha256\":\"cbd7ad301a31edce811643cd0e2c0329bea968177183afee9aedea84c6721f60\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260903T023609Z.json\",\"sha256\":\"b361bb5f108a0174fec0845402cd7d5d01457266df7eac7a3d163c63bd8d4545\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm150/vm150-pve01-20260821T053611Z.json\",\"sha256\":\"8f2cd19ed285514de90ee23e98c118f5f17ef6a7ea49c33b2ae2e0406d24b516\"}]\nGITEA_HISTORY_CANDIDATES_SCANNED=260\nGITEA_FULLRESTORE_HISTORY_HITS=[{\"lines\":[{\"line\":2,\"text\":\"COMMAND_ID=NEWFI-260921-NEWFDOM-DR221-FULLRESTORE-PRODUCER-DISCOVERY400R1\"},{\"line\":3,\"text\":\"STATUS=OK\"},{\"line\":44,\"text\":\"CURRENT_SCHEMA_MATCHES=[{\\\"bytes\\\":4306,\\\"hits\\\":[{\\\"line\\\":25,\\\"text\\\":\\\"- `verify-foundation-restore.sh` — `cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186` — fresh PASS\\\"},{\\\"line\\\":59,\\\"text\\\":\\\"Fresh `verify-foundation-restore.sh` PASS is part of this acceptance.\\\"}],\\\"path\\\":\\\"docs/checkpoints/foundation-v1.md\\\",\\\"sha256\\\":\\\"75ce90e0e021989a6216888eb9f3f7ffe976ae1c136eb317c8d5e46ea64176f0\\\"},{\\\"bytes\\\":2138,\\\"hits\\\":[{\\\"line\\\":11,\\\"text\\\":\\\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\\\"}],\\\"path\\\":\\\"docs/checkpoints/private-staging-backup-restore.md\\\",\\\"sha256\\\":\\\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5\"},{\"line\":46,\"text\":\"PRODUCER_CANDIDATES=[{\\\"path\\\":\\\"scripts/verify-foundation-restore.sh\\\",\\\"sha256\\\":\\\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\\\",\\\"structural\\\":[{\\\"line\\\":12,\\\"text\\\":\\\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\\\"},{\\\"line\\\":83,\\\"text\\\":\\\" state.get(\\\\\\\"schema\\\\\\\")==\\\\\\\"homelab-cloud-quorum-payload-v1\\\\\\\"\\\"},{\\\"line\\\":97,\\\"text\\\":\\\" and bounded.get(\\\\\\\"schema\\\\\\\")==\\\\\\\"homelab-vm-restore-validation-v1\\\\\\\"\\\"},{\\\"line\\\":105,\\\"text\\\":\\\" and full.get(\\\\\\\"schema\\\\\\\")==\\\\\\\"newfi-foundation-full-restore-v1\\\\\\\"\\\"},{\\\"line\\\":108,\\\"text\\\":\\\" and full.get(\\\\\\\"source_vmid\\\\\\\")==211\\\"},{\\\"line\\\":109,\\\"text\\\":\\\" and full.get(\\\\\\\"test_vmid\\\\\\\")==9211\\\"},{\\\"line\\\":115,\\\"text\\\":\\\" and full.get(\\\\\\\"full_restore_prov\"},{\"line\":48,\"text\":\"VERIFIER_CANDIDATES=[{\\\"bytes\\\":5019,\\\"hits\\\":[{\\\"line\\\":12,\\\"text\\\":\\\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\\\"},{\\\"line\\\":105,\\\"text\\\":\\\" and full.get(\\\\\\\"schema\\\\\\\")==\\\\\\\"newfi-foundation-full-restore-v1\\\\\\\"\\\"},{\\\"line\\\":115,\\\"text\\\":\\\" and full.get(\\\\\\\"full_restore_proven\\\\\\\") is True\\\"}],\\\"path\\\":\\\"scripts/verify-foundation-restore.sh\\\",\\\"sha256\\\":\\\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\\\"}]\"},{\"line\":52,\"text\":\"HISTORICAL_SCHEMA_FILES=[{\\\"blob_sha256\\\":\\\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5e37\\\",\\\"commit\\\":\\\"9c1405588883f2e5ecd0c285d2b1ac561b045ee8\\\",\\\"path\\\":\\\"docs/checkpoints/private-staging-backup-restore.md\\\",\\\"structural\\\":[{\\\"line\\\":11,\\\"text\\\":\\\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\\\"}],\\\"subject\\\":\\\"docs: seal Newfi private staging backup restore gate\\\"},{\\\"blob_sha256\\\":\\\"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f\\\",\\\"commit\\\":\\\"beb054ee374142a9b65c28b0ac985156cfac5da8\\\",\\\"path\\\":\\\"docs/operations/backup-restore.md\\\",\\\"structural\\\":[{\\\"line\\\":13,\\\"text\\\":\\\"- Full isolated restore evidence: `/va\"}],\"path\":\"runtime/history/NEWFI-260921-NEWFDOM-DR221-FULLRESTORE-PRODUCER-DISCOVERY400R1.txt\",\"sha256\":\"ab7e08cf1e9dd7c5e9b2193cf364f2ac8b04301f18eaf775cdb9e4d5e732c764\"},{\"lines\":[{\"line\":2,\"text\":\"COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76\"},{\"line\":3,\"text\":\"STATUS=OK\"},{\"line\":30,\"text\":\"NEWFI76_BEGIN\"},{\"line\":31,\"text\":\"COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76\"},{\"line\":36,\"text\":\"NEWFI76_GIT={\\\"branch\\\":\\\"implementation/newfi-closed-mvp-20260906\\\",\\\"clean\\\":true,\\\"exact\\\":true,\\\"head\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"remote_head\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\"}\"},{\"line\":37,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":363,\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":38,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":5213,\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\",\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"sha256\\\":\\\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":39,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":11021,\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":40,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"06bab5acd124e768f70305b3d7eca2f595871890\\\",\\\"label\\\":\\\"STYLE199B\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":41,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"06bab5acd124e768f70305b3d7eca2f595871890\\\",\\\"label\\\":\\\"STYLE199B\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":42,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1461,\\\"commit\\\":\\\"06bab5acd124e768f70305b3d7eca2f595871890\\\",\\\"label\\\":\\\"STYLE199B\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":43,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"4ade504e649ce35d05322a6b69d758a1ef1803b5\\\",\\\"label\\\":\\\"BRAND198\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":44,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"4ade504e649ce35d05322a6b69d758a1ef1803b5\\\",\\\"label\\\":\\\"BRAND198\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":45,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1461,\\\"commit\\\":\\\"4ade504e649ce35d05322a6b69d758a1ef1803b5\\\",\\\"label\\\":\\\"BRAND198\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":46,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\\\",\\\"label\\\":\\\"PROD195\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":47,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\\\",\\\"label\\\":\\\"PROD195\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":48,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1461,\\\"commit\\\":\\\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\\\",\\\"label\\\":\\\"PROD195\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":49,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"ca07bfc20953585887f7cc2f1d443cf8313912c8\\\",\\\"label\\\":\\\"PortalNav\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":50,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"ca07bfc20953585887f7cc2f1d443cf8313912c8\\\",\\\"label\\\":\\\"PortalNav\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":51,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1461,\\\"commit\\\":\\\"ca07bfc20953585887f7cc2f1d443cf8313912c8\\\",\\\"label\\\":\\\"PortalNav\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":52,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"82dd2066df377ba9d904f68f90898e009413eec9\\\",\\\"label\\\":\\\"PortalInitial\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":53,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"82dd2066df377ba9d904f68f90898e009413eec9\\\",\\\"label\\\":\\\"PortalInitial\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":54,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1362,\\\"commit\\\":\\\"82dd2066df377ba9d904f68f90898e009413eec9\\\",\\\"label\\\":\\\"PortalInitial\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"f9cb47d48418a9eae3e5fc8f9dd2830e0499f62f1b82d574362186e7f78a7eb2\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":55,\"text\":\"NEWFI76_CLUSTER={\\\"selected\\\":{\\\"210\\\":{\\\"name\\\":\\\"newfi-prod\\\",\\\"node\\\":\\\"pve01\\\",\\\"status\\\":\\\"running\\\",\\\"type\\\":\\\"qemu\\\",\\\"vmid\\\":210},\\\"211\\\":{\\\"name\\\":\\\"newfi-staging\\\",\\\"node\\\":\\\"pve03\\\",\\\"status\\\":\\\"running\\\",\\\"type\\\":\\\"qemu\\\",\\\"vmid\\\":211}},\\\"state\\\":\\\"OK\\\"}\"},{\"line\":56,\"text\":\"NEWFI76_PRODUCTION_QGA={\\\"state\\\":\\\"COMPLETE\\\"}\"},{\"line\":57,\"text\":\"NEWFI76_PRODUCTION_ROOT={\\\"active_candidate\\\":false,\\\"cmd_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"config_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"git_matches\\\":[],\\\"matches_current\\\":false,\\\"portal_files\\\":{\\\"Pub/Controller/Portal.php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"Service/PortalData.php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"_data/templates.xml\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"}},\\\"rebuild_help\\\":{\\\"state\\\":\\\"NO_CMD\\\"},\\\"root\\\":\\\"/var/www/forums/newfi\\\",\\\"templates_xml_parse\\\":\\\"NOT_AVAILABLE\\\",\\\"xf_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"}}\"},{\"line\":58,\"text\":\"NEWFI76_PRODUCTION_ROOT={\\\"active_candidate\\\":true,\\\"cmd_php\\\":{\\\"bytes\\\":336,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\\\",\\\"state\\\":\\\"OK\\\"},\\\"config_php\\\":{\\\"bytes\\\":310,\\\"mode\\\":\\\"0640\\\",\\\"state\\\":\\\"OK\\\"},\\\"git_matches\\\":[{\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\"}],\\\"matches_current\\\":true,\\\"portal_files\\\":{\\\"Pub/Controller/Portal.php\\\":{\\\"bytes\\\":363,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\\\",\\\"state\\\":\\\"OK\\\"},\\\"Service/PortalData.php\\\":{\\\"bytes\\\":5213,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\\\",\\\"state\\\":\\\"OK\\\"},\\\"_data/templates.xml\\\":{\\\"bytes\\\":11021,\\\"mode\\\":\\\"0644\\\",\\\"s\"},{\"line\":59,\"text\":\"NEWFI76_PRODUCTION_ACTIVE_COUNT=1\"},{\"line\":60,\"text\":\"NEWFI76_STAGING_QGA={\\\"state\\\":\\\"COMPLETE\\\"}\"},{\"line\":61,\"text\":\"NEWFI76_STAGING_ROOT={\\\"active_candidate\\\":false,\\\"cmd_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"config_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"git_matches\\\":[],\\\"matches_current\\\":false,\\\"portal_files\\\":{\\\"Pub/Controller/Portal.php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"Service/PortalData.php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"_data/templates.xml\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"}},\\\"rebuild_help\\\":{\\\"state\\\":\\\"NO_CMD\\\"},\\\"root\\\":\\\"/var/www/forums/newfi\\\",\\\"templates_xml_parse\\\":\\\"NOT_AVAILABLE\\\",\\\"xf_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"}}\"},{\"line\":62,\"text\":\"NEWFI76_STAGING_ROOT={\\\"active_candidate\\\":true,\\\"cmd_php\\\":{\\\"bytes\\\":336,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\\\",\\\"state\\\":\\\"OK\\\"},\\\"config_php\\\":{\\\"bytes\\\":310,\\\"mode\\\":\\\"0640\\\",\\\"state\\\":\\\"OK\\\"},\\\"git_matches\\\":[{\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\"}],\\\"matches_current\\\":true,\\\"portal_files\\\":{\\\"Pub/Controller/Portal.php\\\":{\\\"bytes\\\":363,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\\\",\\\"state\\\":\\\"OK\\\"},\\\"Service/PortalData.php\\\":{\\\"bytes\\\":5213,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\\\",\\\"state\\\":\\\"OK\\\"},\\\"_data/templates.xml\\\":{\\\"bytes\\\":11021,\\\"mode\\\":\\\"0644\\\",\\\"sha2\"},{\"line\":63,\"text\":\"NEWFI76_STAGING_ACTIVE_COUNT=1\"},{\"line\":64,\"text\":\"NEWFI76_GAPS=[]\"},{\"line\":65,\"text\":\"NEWFI76_MUTATION_SCOPE=NONE_READ_ONLY\"},{\"line\":66,\"text\":\"NEWFI76_DECISION=PORTAL_ROOT_IDENTITY_PROVEN\"},{\"line\":67,\"text\":\"NEWFI76_COLLECTION_COMPLETE=true\"},{\"line\":68,\"text\":\"NEWFI76_END\"}],\"path\":\"runtime/history/NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76.txt\",\"sha256\":\"d69446b6a16aeec4daa07c4be4e8ccaa334dda78bee3581eac831c4718553eb2\"}]\nNON_VERIFIER_PRODUCER_HITS=[{\"bytes\":4575,\"lines\":[{\"line\":23,\"text\":\" if obj.get(\\\"schema\\\") != \\\"homelab-cloud-quorum-payload-v1\\\": return False\"},{\"line\":51,\"text\":\" e.get(\\\"schema\\\")==\\\"homelab-vm-restore-validation-v1\\\" and e.get(\\\"logical_id\\\")==logical and\"},{\"line\":58,\"text\":\" e.get(\\\"full_restore_proven\\\") is False and e.get(\\\"result\\\")==\\\"OK\\\"\"},{\"line\":78,\"text\":\" \\\"schema\\\":\\\"homelab-boot-drill-state-export-v1\\\",\"},{\"line\":92,\"text\":\" print(json.dumps(out,separators=(\\\",\\\",\\\":\\\"),sort_keys=True))\"}],\"path\":\"/usr/local/sbin/homelab-rotating-boot-drill-state-export\",\"sha256\":\"59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc\"},{\"bytes\":4575,\"lines\":[{\"line\":23,\"text\":\" if obj.get(\\\"schema\\\") != \\\"homelab-cloud-quorum-payload-v1\\\": return False\"},{\"line\":51,\"text\":\" e.get(\\\"schema\\\")==\\\"homelab-vm-restore-validation-v1\\\" and e.get(\\\"logical_id\\\")==logical and\"},{\"line\":58,\"text\":\" e.get(\\\"full_restore_proven\\\") is False and e.get(\\\"result\\\")==\\\"OK\\\"\"},{\"line\":78,\"text\":\" \\\"schema\\\":\\\"homelab-boot-drill-state-export-v1\\\",\"},{\"line\":92,\"text\":\" print(json.dumps(out,separators=(\\\",\\\",\\\":\\\"),sort_keys=True))\"}],\"path\":\"/usr/local/libexec/homelab-rotating-boot-drill-state-export\",\"sha256\":\"59904778208ae592a47ba28bfd54cebbf22718e4bb6c968481da5671149289dc\"},{\"bytes\":17702,\"lines\":[{\"line\":21,\"text\":\"active_backup_restore(){ local rc; if pgrep -af '(^|/)(vzdump|qmrestore|pctrestore|vma|zstd|rclone)([[:space:]]|$)'; then return 0; else rc=$?; [[ \\\"$rc\\\" == 1 ]] && return 0; die \\\"PGREP_FAILED_$rc\\\" 69; fi; }\"},{\"line\":85,\"text\":\" jq -e --arg l \\\"vm${vmid}\\\" --arg g \\\"$gen\\\" --arg s \\\"$state\\\" --arg sha \\\"$sha\\\" '.schema==\\\"homelab-vm-restore-validation-v1\\\" and .logical_id==$l and .generation==$g and .transport_state==\\\"SEALED\\\" and .transport_state_file==$s and .restore_source==\\\"Cloud A\\\" and .parts_manifest_verified==true and .payload_sha256==$sha and .payload_sha256_verified==true and .payload_decompression_verified==true and .proxmox_config_extract_verified==true and .archive_recovery_readback_verified==true and .bounded_staging==true and .full_local_payload_written==false and .full_restore_proven==false and .result==\\\"OK\\\"' \\\"$f\\\" >/dev/null\"},{\"line\":118,\"text\":\" jq -e '.schema==\\\"homelab-cloud-quorum-payload-v1\\\" and .status==\\\"SEALED\\\" and .cloud_quorum==2 and .cloud_a_verified==true and .cloud_b_verified==true and .part_hashes_verified==true and .seal_written==true and .cloud_a_seal_verified==true and .cloud_b_seal_verified==true and .local_payload_present==false and .local_cleanup==\\\"OK\\\"' \\\"$state\\\" >/dev/null || die \\\"RESTORE_REQUIRES_STRICT_SEALED_$vmid\\\" 65\"},{\"line\":148,\"text\":\" jq -n --arg logical \\\"$logical\\\" --arg generation \\\"$gen\\\" --argjson vmid \\\"$vmid\\\" --arg vm_type \\\"$VM_TYPE\\\" --arg state \\\"$state\\\" --arg sha \\\"$expected_sha\\\" --arg config_sha \\\"$config_sha\\\" --arg level \\\"$level\\\" --argjson member_count \\\"$member_count\\\" --arg at \\\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\\\" '{schema:\\\"homelab-vm-restore-validation-v1\\\",logical_id:$logical,generation:$generation,vmid:$vmid,vm_type:$vm_type,transport_state:\\\"SEALED\\\",transport_state_file:$state,restore_source:\\\"Cloud A\\\",parts_manifest_verified:true,payload_sha256:$sha,payload_sha256_verified:true,payload_decompression_verified:true,proxmox_config_extract_verified:true,proxmox_config_sha256:$config_sha,lxc_member_count:$member_count,archiv\"}],\"path\":\"/usr/local/libexec/homelab-vm-cloud-quorum-node-worker\",\"sha256\":\"91bdd116be865560a38105dffbd1a66d687232035e2359e4a5be4d225e9c61d1\"},{\"bytes\":5271,\"lines\":[{\"line\":49,\"text\":\" if ! jq -e '.schema==\\\"homelab-cloud-quorum-payload-v1\\\" and .status==\\\"SEALED\\\" and .cloud_quorum==2 and .cloud_a_verified==true and .cloud_b_verified==true and .part_hashes_verified==true and .seal_written==true and .cloud_a_seal_verified==true and .cloud_b_seal_verified==true and .local_payload_present==false and .local_cleanup==\\\"OK\\\"' \\\"$latest\\\" >/dev/null; then printf 'FRESHNESS_STATUS=OK\\\\nVMID=%s\\\\nDECISION=BACKUP_UNVERIFIED\\\\nREASON=LATEST_STATE_NOT_STRICT_SEALED\\\\nSTATE_FILE=%s\\\\n' \\\"$vmid\\\" \\\"$latest\\\"; return 0; fi\"},{\"line\":52,\"text\":\" if ! jq -e --arg l \\\"vm${vmid}\\\" --arg g \\\"$generation\\\" --arg s \\\"$latest\\\" --arg sha \\\"$sha\\\" '.schema==\\\"homelab-vm-restore-validation-v1\\\" and .logical_id==$l and .generation==$g and .transport_state==\\\"SEALED\\\" and .transport_state_file==$s and .restore_source==\\\"Cloud A\\\" and .parts_manifest_verified==true and .payload_sha256==$sha and .payload_sha256_verified==true and .payload_decompression_verified==true and .proxmox_config_extract_verified==true and .archive_recovery_readback_verified==true and .bounded_staging==true and .full_local_payload_written==false and .full_restore_proven==false and .result==\\\"OK\\\"' \\\"$restore\\\" >/dev/null; then printf 'FRESHNESS_STATUS=OK\\\\nVMID=%s\\\\nDECISION=BACKUP_UNVERIF\"}],\"path\":\"/usr/local/libexec/homelab-vm-cloud-quorum-freshness-probe\",\"sha256\":\"bd6257397c6ea910df2ea0dd57252b33bccd0bbd965175840486dfe5e079bf96\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260903T034236Z.json\",\"sha256\":\"f81ed0fff5c3bf1b18ac85876acf095089db6e23fea67c25e7b4591c6f6426e6\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260825T024055Z.json\",\"sha256\":\"93d75776422648f26f4427026f862e8d9d534762a8225c6ee96267af8861e8d6\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260812T175702Z.json\",\"sha256\":\"c131805a885df07e2ab620ecac440ee09dedd7573ec209804962d99e4e6a9b78\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260814T120018Z.json\",\"sha256\":\"e5cbacacf6d045c4089e4593ec25b0bd0ac646fbc6b880218835227b75d7103e\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260830T215206Z.json\",\"sha256\":\"19f80b27af8cecd051468de88ad3eaf978f531edf7ee3310cb4f5e3e98743cfe\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260910T093532Z.json\",\"sha256\":\"01629f57f58a84858a2addd3b39c3f2702f11dcc3c235ff0b811eb68f7763c99\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260829T055230Z.json\",\"sha256\":\"54c55120a65a679d79191560cfa4ce36d06024fd8aa0d255b5fcb7603fa47e3d\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260823T074138Z.json\",\"sha256\":\"4432a1ec79c6c225312f6a848324f8fcbe811fd6b5447843630d8c3cc897594a\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260915T003017Z.json\",\"sha256\":\"23edabc2ff232cc4a63c1925b7ca7af47a28957cd4ce2712c049c0a1eb9e1151\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260826T104801Z.json\",\"sha256\":\"3ac11c6db6ecbf018517a3797f32a100289f5104e43500243d2a6bfae9096e13\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260831T234523Z.json\",\"sha256\":\"42e2514cf1a7b289e58795ae05823e1d90bff25acfc9fd1f014ac0974724c63b\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260904T064613Z.json\",\"sha256\":\"f7d3d86b8fc4dc7ead6a8b8c2259625bb65c02d046a89042e84c21934d6732d5\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260905T223254Z.json\",\"sha256\":\"d7f2dd19464e53087398fcfe6cbf4c335cbbcba25e00546a239a9f14bfab82b3\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260826T234419Z.json\",\"sha256\":\"0d3f575de4bc6cadf9ff949bf3344a5a6578c982fcdc7265ca0f2c1a7177b9eb\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260905T093438Z.json\",\"sha256\":\"4de0349f56d7f8643a2e9e4147a0fae67843412f763d2cfdf645678c2dabbb25\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260913T203019Z.json\",\"sha256\":\"dcc89a747399b09bee86ba9d5bcdea62545e267f02d9a2fe78b13c045109ea94\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260830T075421Z.json\",\"sha256\":\"46080ef31b42050cff03ec9be2f6254e52e8d21ee637c7d5f3876890c78ae253\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260810T065016Z.json\",\"sha256\":\"bbc5b01f6a5fb6abb7ecaa4f7e4306e8eea7c1bc228bcf91f7bbc7fb7e0df45f\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260912T023301Z.json\",\"sha256\":\"9a27a199d065fca0cb5d2b720889b32bd73ab5d26cf68e32041ceacb71c077b7\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260912T173439Z.json\",\"sha256\":\"9dd611fdc9399fe1b9ecd7672b475e919b85f9cc9c656b4e8f827f6136cdddf2\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260906T113503Z.json\",\"sha256\":\"2649baadc3eaab8f912ef768ff9b6e9f5741ce4286bd501364012c8a8e3eb7ca\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260901T133543Z.json\",\"sha256\":\"e8450eeec2735f8cb285bbff4a4e03bccd27940747e0d4d6aa403cea055158a8\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260902T145801Z.json\",\"sha256\":\"d411236d44ff6a0f1bc4712a8431c7c95fe87a7b899d2e95ab7bff6ccaa14723\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260907T144115Z.json\",\"sha256\":\"ee4dc8949ff9257752075c281aa8fd297912aa283da1ad870381ad780f5d83bd\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260911T003332Z.json\",\"sha256\":\"3950b3ae2f02c96aebe200593e3cdef5a1444c59ee65daba251a7651b1ccf79c\"},{\"bytes\":1021,\"lines\":[{\"line\":2,\"text\":\" \\\"schema\\\": \\\"homelab-vm-restore-validation-v1\\\",\"},{\"line\":21,\"text\":\" \\\"full_restore_proven\\\": false,\"}],\"path\":\"/var/lib/homelab-backup/vm-restore-validation/vm171/vm171-pve01-20260911T133338Z.json\",\"sha256\":\"52b9a34d69ca682bcac313a2b3d0014a0d45f5acf748f0219ff493e5fdec6e56\"}]\nSUCCESSFUL_HISTORY_PROVENANCE=[{\"lines\":[{\"line\":2,\"text\":\"COMMAND_ID=NEWFI-260921-NEWFDOM-DR221-FULLRESTORE-PRODUCER-DISCOVERY400R1\"},{\"line\":3,\"text\":\"STATUS=OK\"},{\"line\":44,\"text\":\"CURRENT_SCHEMA_MATCHES=[{\\\"bytes\\\":4306,\\\"hits\\\":[{\\\"line\\\":25,\\\"text\\\":\\\"- `verify-foundation-restore.sh` — `cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186` — fresh PASS\\\"},{\\\"line\\\":59,\\\"text\\\":\\\"Fresh `verify-foundation-restore.sh` PASS is part of this acceptance.\\\"}],\\\"path\\\":\\\"docs/checkpoints/foundation-v1.md\\\",\\\"sha256\\\":\\\"75ce90e0e021989a6216888eb9f3f7ffe976ae1c136eb317c8d5e46ea64176f0\\\"},{\\\"bytes\\\":2138,\\\"hits\\\":[{\\\"line\\\":11,\\\"text\\\":\\\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\\\"}],\\\"path\\\":\\\"docs/checkpoints/private-staging-backup-restore.md\\\",\\\"sha256\\\":\\\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5\"},{\"line\":46,\"text\":\"PRODUCER_CANDIDATES=[{\\\"path\\\":\\\"scripts/verify-foundation-restore.sh\\\",\\\"sha256\\\":\\\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\\\",\\\"structural\\\":[{\\\"line\\\":12,\\\"text\\\":\\\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\\\"},{\\\"line\\\":83,\\\"text\\\":\\\" state.get(\\\\\\\"schema\\\\\\\")==\\\\\\\"homelab-cloud-quorum-payload-v1\\\\\\\"\\\"},{\\\"line\\\":97,\\\"text\\\":\\\" and bounded.get(\\\\\\\"schema\\\\\\\")==\\\\\\\"homelab-vm-restore-validation-v1\\\\\\\"\\\"},{\\\"line\\\":105,\\\"text\\\":\\\" and full.get(\\\\\\\"schema\\\\\\\")==\\\\\\\"newfi-foundation-full-restore-v1\\\\\\\"\\\"},{\\\"line\\\":108,\\\"text\\\":\\\" and full.get(\\\\\\\"source_vmid\\\\\\\")==211\\\"},{\\\"line\\\":109,\\\"text\\\":\\\" and full.get(\\\\\\\"test_vmid\\\\\\\")==9211\\\"},{\\\"line\\\":115,\\\"text\\\":\\\" and full.get(\\\\\\\"full_restore_prov\"},{\"line\":48,\"text\":\"VERIFIER_CANDIDATES=[{\\\"bytes\\\":5019,\\\"hits\\\":[{\\\"line\\\":12,\\\"text\\\":\\\"FULL=/var/lib/homelab-backup/vm-restore-validation/vm211/${GEN}-newfi-full.json\\\"},{\\\"line\\\":105,\\\"text\\\":\\\" and full.get(\\\\\\\"schema\\\\\\\")==\\\\\\\"newfi-foundation-full-restore-v1\\\\\\\"\\\"},{\\\"line\\\":115,\\\"text\\\":\\\" and full.get(\\\\\\\"full_restore_proven\\\\\\\") is True\\\"}],\\\"path\\\":\\\"scripts/verify-foundation-restore.sh\\\",\\\"sha256\\\":\\\"cc8b821ffd64c8b2d780eb6efaf96f3724230c2bfe50c7db08c4162f79dc2186\\\"}]\"},{\"line\":52,\"text\":\"HISTORICAL_SCHEMA_FILES=[{\\\"blob_sha256\\\":\\\"d8692f662ec16017b4f49c60aa3add6a14c8fab822ab0a9d2272eb20fb9c5e37\\\",\\\"commit\\\":\\\"9c1405588883f2e5ecd0c285d2b1ac561b045ee8\\\",\\\"path\\\":\\\"docs/checkpoints/private-staging-backup-restore.md\\\",\\\"structural\\\":[{\\\"line\\\":11,\\\"text\\\":\\\"Full isolated restore evidence: `/var/lib/homelab-backup/vm-restore-validation/vm211/vm211-pve03-20260906T213759Z-newfi-full.json`\\\"}],\\\"subject\\\":\\\"docs: seal Newfi private staging backup restore gate\\\"},{\\\"blob_sha256\\\":\\\"0d0bb33f688f2a44271eaed49b63560619a2442104db886d9c21ec87758f105f\\\",\\\"commit\\\":\\\"beb054ee374142a9b65c28b0ac985156cfac5da8\\\",\\\"path\\\":\\\"docs/operations/backup-restore.md\\\",\\\"structural\\\":[{\\\"line\\\":13,\\\"text\\\":\\\"- Full isolated restore evidence: `/va\"}],\"path\":\"runtime/history/NEWFI-260921-NEWFDOM-DR221-FULLRESTORE-PRODUCER-DISCOVERY400R1.txt\",\"sha256\":\"ab7e08cf1e9dd7c5e9b2193cf364f2ac8b04301f18eaf775cdb9e4d5e732c764\"},{\"lines\":[{\"line\":2,\"text\":\"COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76\"},{\"line\":3,\"text\":\"STATUS=OK\"},{\"line\":30,\"text\":\"NEWFI76_BEGIN\"},{\"line\":31,\"text\":\"COMMAND_ID=NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76\"},{\"line\":36,\"text\":\"NEWFI76_GIT={\\\"branch\\\":\\\"implementation/newfi-closed-mvp-20260906\\\",\\\"clean\\\":true,\\\"exact\\\":true,\\\"head\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"remote_head\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\"}\"},{\"line\":37,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":363,\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":38,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":5213,\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\",\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"sha256\\\":\\\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":39,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":11021,\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"29c1dadd480f597f612a41d10081f39097ad90e12c480eec244b671f49074d28\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":40,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"06bab5acd124e768f70305b3d7eca2f595871890\\\",\\\"label\\\":\\\"STYLE199B\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":41,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"06bab5acd124e768f70305b3d7eca2f595871890\\\",\\\"label\\\":\\\"STYLE199B\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":42,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1461,\\\"commit\\\":\\\"06bab5acd124e768f70305b3d7eca2f595871890\\\",\\\"label\\\":\\\"STYLE199B\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":43,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"4ade504e649ce35d05322a6b69d758a1ef1803b5\\\",\\\"label\\\":\\\"BRAND198\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":44,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"4ade504e649ce35d05322a6b69d758a1ef1803b5\\\",\\\"label\\\":\\\"BRAND198\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":45,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1461,\\\"commit\\\":\\\"4ade504e649ce35d05322a6b69d758a1ef1803b5\\\",\\\"label\\\":\\\"BRAND198\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":46,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\\\",\\\"label\\\":\\\"PROD195\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":47,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\\\",\\\"label\\\":\\\"PROD195\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":48,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1461,\\\"commit\\\":\\\"9f7e0ca285d8ddfdd97e4539daaa81695272b705\\\",\\\"label\\\":\\\"PROD195\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":49,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"ca07bfc20953585887f7cc2f1d443cf8313912c8\\\",\\\"label\\\":\\\"PortalNav\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":50,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"ca07bfc20953585887f7cc2f1d443cf8313912c8\\\",\\\"label\\\":\\\"PortalNav\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":51,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1461,\\\"commit\\\":\\\"ca07bfc20953585887f7cc2f1d443cf8313912c8\\\",\\\"label\\\":\\\"PortalNav\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"c29c04f8b937284e821c87957653e87c2f6ac014fac30648a0f6b18e84392adf\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":52,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":247,\\\"commit\\\":\\\"82dd2066df377ba9d904f68f90898e009413eec9\\\",\\\"label\\\":\\\"PortalInitial\\\",\\\"rel\\\":\\\"Pub/Controller/Portal.php\\\",\\\"sha256\\\":\\\"53909e753ea5a011550fd280ad1c342a74ca9949be092dfbd95244243cae92f3\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":53,\"text\":\"NEWFI76_GIT_BLOB={\\\"commit\\\":\\\"82dd2066df377ba9d904f68f90898e009413eec9\\\",\\\"label\\\":\\\"PortalInitial\\\",\\\"rc\\\":128,\\\"rel\\\":\\\"Service/PortalData.php\\\",\\\"state\\\":\\\"ABSENT\\\"}\"},{\"line\":54,\"text\":\"NEWFI76_GIT_BLOB={\\\"bytes\\\":1362,\\\"commit\\\":\\\"82dd2066df377ba9d904f68f90898e009413eec9\\\",\\\"label\\\":\\\"PortalInitial\\\",\\\"rel\\\":\\\"_data/templates.xml\\\",\\\"sha256\\\":\\\"f9cb47d48418a9eae3e5fc8f9dd2830e0499f62f1b82d574362186e7f78a7eb2\\\",\\\"state\\\":\\\"OK\\\"}\"},{\"line\":55,\"text\":\"NEWFI76_CLUSTER={\\\"selected\\\":{\\\"210\\\":{\\\"name\\\":\\\"newfi-prod\\\",\\\"node\\\":\\\"pve01\\\",\\\"status\\\":\\\"running\\\",\\\"type\\\":\\\"qemu\\\",\\\"vmid\\\":210},\\\"211\\\":{\\\"name\\\":\\\"newfi-staging\\\",\\\"node\\\":\\\"pve03\\\",\\\"status\\\":\\\"running\\\",\\\"type\\\":\\\"qemu\\\",\\\"vmid\\\":211}},\\\"state\\\":\\\"OK\\\"}\"},{\"line\":56,\"text\":\"NEWFI76_PRODUCTION_QGA={\\\"state\\\":\\\"COMPLETE\\\"}\"},{\"line\":57,\"text\":\"NEWFI76_PRODUCTION_ROOT={\\\"active_candidate\\\":false,\\\"cmd_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"config_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"git_matches\\\":[],\\\"matches_current\\\":false,\\\"portal_files\\\":{\\\"Pub/Controller/Portal.php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"Service/PortalData.php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"_data/templates.xml\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"}},\\\"rebuild_help\\\":{\\\"state\\\":\\\"NO_CMD\\\"},\\\"root\\\":\\\"/var/www/forums/newfi\\\",\\\"templates_xml_parse\\\":\\\"NOT_AVAILABLE\\\",\\\"xf_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"}}\"},{\"line\":58,\"text\":\"NEWFI76_PRODUCTION_ROOT={\\\"active_candidate\\\":true,\\\"cmd_php\\\":{\\\"bytes\\\":336,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\\\",\\\"state\\\":\\\"OK\\\"},\\\"config_php\\\":{\\\"bytes\\\":310,\\\"mode\\\":\\\"0640\\\",\\\"state\\\":\\\"OK\\\"},\\\"git_matches\\\":[{\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\"}],\\\"matches_current\\\":true,\\\"portal_files\\\":{\\\"Pub/Controller/Portal.php\\\":{\\\"bytes\\\":363,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\\\",\\\"state\\\":\\\"OK\\\"},\\\"Service/PortalData.php\\\":{\\\"bytes\\\":5213,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\\\",\\\"state\\\":\\\"OK\\\"},\\\"_data/templates.xml\\\":{\\\"bytes\\\":11021,\\\"mode\\\":\\\"0644\\\",\\\"s\"},{\"line\":59,\"text\":\"NEWFI76_PRODUCTION_ACTIVE_COUNT=1\"},{\"line\":60,\"text\":\"NEWFI76_STAGING_QGA={\\\"state\\\":\\\"COMPLETE\\\"}\"},{\"line\":61,\"text\":\"NEWFI76_STAGING_ROOT={\\\"active_candidate\\\":false,\\\"cmd_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"config_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"git_matches\\\":[],\\\"matches_current\\\":false,\\\"portal_files\\\":{\\\"Pub/Controller/Portal.php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"Service/PortalData.php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"},\\\"_data/templates.xml\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"}},\\\"rebuild_help\\\":{\\\"state\\\":\\\"NO_CMD\\\"},\\\"root\\\":\\\"/var/www/forums/newfi\\\",\\\"templates_xml_parse\\\":\\\"NOT_AVAILABLE\\\",\\\"xf_php\\\":{\\\"error\\\":\\\"FileNotFoundError\\\",\\\"state\\\":\\\"MISSING\\\"}}\"},{\"line\":62,\"text\":\"NEWFI76_STAGING_ROOT={\\\"active_candidate\\\":true,\\\"cmd_php\\\":{\\\"bytes\\\":336,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"bfb376075435890c11a1e8bc88357d51c60df4b2ac69efda52357ce707ddf52b\\\",\\\"state\\\":\\\"OK\\\"},\\\"config_php\\\":{\\\"bytes\\\":310,\\\"mode\\\":\\\"0640\\\",\\\"state\\\":\\\"OK\\\"},\\\"git_matches\\\":[{\\\"commit\\\":\\\"a1efc08a15ba91971c2297d886b25ca2097e6935\\\",\\\"label\\\":\\\"Portal200\\\"}],\\\"matches_current\\\":true,\\\"portal_files\\\":{\\\"Pub/Controller/Portal.php\\\":{\\\"bytes\\\":363,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"619d489f7cc3b461479c702fa8825097ae22d3c6cfeb911e9f14ea1de9c36d6d\\\",\\\"state\\\":\\\"OK\\\"},\\\"Service/PortalData.php\\\":{\\\"bytes\\\":5213,\\\"mode\\\":\\\"0644\\\",\\\"sha256\\\":\\\"4da03f26294ab6d163a1a746dee4bb6a82d7d4f39e66b24246bc0eb4c455dd1d\\\",\\\"state\\\":\\\"OK\\\"},\\\"_data/templates.xml\\\":{\\\"bytes\\\":11021,\\\"mode\\\":\\\"0644\\\",\\\"sha2\"},{\"line\":63,\"text\":\"NEWFI76_STAGING_ACTIVE_COUNT=1\"},{\"line\":64,\"text\":\"NEWFI76_GAPS=[]\"},{\"line\":65,\"text\":\"NEWFI76_MUTATION_SCOPE=NONE_READ_ONLY\"},{\"line\":66,\"text\":\"NEWFI76_DECISION=PORTAL_ROOT_IDENTITY_PROVEN\"},{\"line\":67,\"text\":\"NEWFI76_COLLECTION_COMPLETE=true\"},{\"line\":68,\"text\":\"NEWFI76_END\"}],\"path\":\"runtime/history/NEWFI-260909-NEWFDOM-PORTAL-ROOT-RCA76.txt\",\"sha256\":\"d69446b6a16aeec4daa07c4be4e8ccaa334dda78bee3581eac831c4718553eb2\"}]\nFULLRESTORE_EVIDENCE_PROVEN=false\nIMMUTABLE_PLAN_RECOVERY_RESOLVED=true\nFULLRESTORE_PRODUCER_RECOVERY_RESOLVED=true\nDECISION=PASS_TARGETED_READONLY_SOURCE_RECOVERY\nNEXT_GATE=RUN_DR221_FINAL_CURRENT_PRODUCTION_BACKUP_RESTORE_ACCEPTANCE\nACTIVE_MAJOR_STAGE=DR221\nMAJOR_STAGES_REMAINING=1\nHELPERS_EXECUTED=0\nCLOUD_READS=GITEA_PUBLIC_ONLY\nCLOUD_WRITES=0\nVM_MUTATIONS=0\nPRODUCTION_MUTATION=false\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"NEWFI-260921-NEWFDOM-DR221-TARGETED-SOURCE-RECOVERY401R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n"
|
|
}
|