1
0
Files
homelab-public-context/runtime/history/HOMELAB-CLUSTER-ADMIN-UPDATES-V14-PUBLICATION-ROOT-READ-ONLY-20260805T123800Z.json
T

39 lines
13 KiB
JSON

{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "HOMELAB-CLUSTER-ADMIN-UPDATES-V14-PUBLICATION-ROOT-READ-ONLY-20260805T123800Z",
"status": "OK",
"rc": 0,
"host": "pve01",
"mode": "verify",
"component": "homelab-cluster-admin-update-visibility",
"started_at_utc": "2026-08-05T12:46:39Z",
"finished_at_utc": "2026-08-05T12:46:39Z",
"reference_register_checked": true,
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
"error_register_checked": true,
"error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83",
"command_sha256": "1e53329d0c6dba95372ad989224a229a943173336501ab6a6925bac0600bcc55",
"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": "cc30d7f4e6be0ab5e78545d4537a39178b59e9f1a79227efaec134b78f6fc233",
"sanitized_output_sha256": "cc30d7f4e6be0ab5e78545d4537a39178b59e9f1a79227efaec134b78f6fc233",
"output_truncated_in_json": false,
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
"output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-ADMIN-UPDATES-V14-PUBLICATION-ROOT-READ-ONLY-20260805T123800Z\",\"command_rc\":0,\"control_plane_error\":null,\"index_candidate_count\":1,\"literal_path_count\":14,\"mutation_outcome\":\"NO_MUTATION\",\"publication_index_sha256\":null,\"publication_root\":null,\"publication_root_unique\":false,\"rc\":0,\"ready_for_corrected_transaction\":false,\"report_bytes\":9909,\"report_sha256\":\"fe300b0680f335cddc570f2fdafc350eab247fe9e5a0f5c2db71f7d9e2292156\",\"rollback_restored\":false,\"rollback_started\":false,\"status\":\"OK\",\"sync_line_count\":1,\"top_candidate_count\":1,\"top_candidate_score\":17,\"v13_exact_error\":\"webpanel publication root not found from exact script\",\"v13_exact_result_identity_confirmed\":true,\"version\":1,\"webpanel_script_sha256\":\"2c57cca503cb0734e5114c2ab46b892a810bdc40c2baa7387b4094373db19276\"}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-ADMIN-UPDATES-V14-PUBLICATION-ROOT-READ-ONLY-20260805T123800Z\",\"index_scan\":{\"allowed_roots\":[\"/var/lib/homelab\",\"/var/www\",\"/srv\",\"/opt\",\"/root\",\"/usr/local/share\"],\"candidate_count\":1,\"candidates\":[{\"evidence\":[\"cluster-admin-content\"],\"index\":\"/root/parked-domains-kit/site/index.html\",\"index_bytes\":4129,\"index_sha256\":\"20f756af0324ae2e97156808bd4260ae641d9c805468ae063cf8d2e80211b940\",\"mode\":\"0o644\",\"root\":\"/root/parked-domains-kit/site\",\"score\":17,\"siblings\":[\"index.html\"],\"title_lines\":[\" <title>Домен припаркован</title>\",\" <div class=\\\"badge\\\"><span class=\\\"dot\\\"></span><span>PARKED_PAGE_OK · homelab</span></div>\"]}],\"directories_scanned\":2209},\"literal_paths\":[{\"allowed\":false,\"bytes\":56144,\"exists\":true,\"expanded\":\"/usr/bin/env\",\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"raw\":\"/usr/bin/env\",\"sha256\":\"eb1c64bbc9908afcdf8cb48524f17112d8dd76a249f80dee2f01da14747b3b6e\"},{\"allowed\":null,\"exists\":false,\"expanded\":\"/tmp/cluster-admin-webpanel-sync\",\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"raw\":\"/tmp/cluster-admin-webpanel-sync\"},{\"allowed\":false,\"bytes\":217,\"exists\":true,\"expanded\":\"/var/lib/homelab-health/cluster-admin-vm-mail-cloud-backup.txt\",\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"raw\":\"/var/lib/homelab-health/cluster-admin-vm-mail-cloud-backup.txt\",\"sha256\":\"e03b236f41f8d66f070ecd3234b3ff0836a44d972fd6f6abc721b9683fa22053\"},{\"allowed\":false,\"bytes\":1535,\"exists\":true,\"expanded\":\"/var/lib/homelab-health/overall.txt\",\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"raw\":\"/var/lib/homelab-health/overall.txt\",\"sha256\":\"0ec7f8bcad6d2578f209b222be1135e7fa03f801e1e07bdbb634ba5f536a101b\"},{\"allowed\":false,\"bytes\":128,\"exists\":true,\"expanded\":\"/var/lib/homelab-health/final-readiness.txt\",\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"raw\":\"/var/lib/homelab-health/final-readiness.txt\",\"sha256\":\"a15ee89bc9826b84a5b52e81f63a133b127bd7e263223eabf6b9ec62930e35ac\"},{\"allowed\":false,\"bytes\":380,\"exists\":true,\"expanded\":\"/var/lib/homelab-health/cluster-admin-strict-final-seal.txt\",\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"raw\":\"/var/lib/homelab-health/cluster-admin-strict-final-seal.txt\",\"sha256\":\"03a07c2be6dd4900c328c05aded594879117efbc02a8d2a7e89ae2d9847dfe8e\"},{\"allowed\":false,\"exists\":true,\"expanded\":\"/tmp/\",\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"raw\":\"/tmp/\"},{\"allowed\":null,\"exists\":false,\"expanded\":\"/var/lib/homelab-health/pve01-pushed\",\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"raw\":\"/var/lib/homelab-health/pve01-pushed\"},{\"allowed\":null,\"exists\":false,\"expanded\":\"/tmp/cluster-admin-vm-mail-cloud-backup.txt\",\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"raw\":\"/tmp/cluster-admin-vm-mail-cloud-backup.txt\"},{\"allowed\":null,\"exists\":false,\"expanded\":\"/tmp/overall.txt\",\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"raw\":\"/tmp/overall.txt\"},{\"allowed\":null,\"exists\":false,\"expanded\":\"/tmp/final-readiness.txt\",\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"raw\":\"/tmp/final-readiness.txt\"},{\"allowed\":null,\"exists\":false,\"expanded\":\"/tmp/cluster-admin-strict-final-seal.txt\",\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"raw\":\"/tmp/cluster-admin-strict-final-seal.txt\"},{\"allowed\":null,\"exists\":false,\"expanded\":\"/var/lib/homelab-health/pve01-pushed/\",\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"raw\":\"/var/lib/homelab-health/pve01-pushed/\"},{\"allowed\":false,\"bytes\":215,\"exists\":true,\"expanded\":\"/var/lib/homelab-health/cluster-admin-webpanel-sync.txt\",\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"raw\":\"/var/lib/homelab-health/cluster-admin-webpanel-sync.txt\",\"sha256\":\"c7a363c1a68111eb09de7911e5ae66a28f4d6abbd16cfcde89b39dbde850b56d\"}],\"mutation_outcome\":\"NO_MUTATION\",\"publication_root_gate\":{\"next_required_action\":\"resolve only remaining publication-root ambiguity\",\"ready_for_corrected_transaction\":false,\"top_candidate_count\":1,\"top_score\":17,\"unique_candidate\":null},\"read_only\":true,\"rollback_restored\":false,\"rollback_started\":false,\"schema\":14,\"status\":\"OK\",\"sync_lines\":[{\"command\":\"scp\",\"expanded\":\"scp -q -o BatchMode=yes -o ConnectTimeout=8 \\\"/tmp/cluster-admin-webpanel-sync\\\"/*.txt debian@<PRIVATE_IPV4>:/tmp/\",\"line\":21,\"operands\":[\"/tmp/cluster-admin-webpanel-sync/*.txt\",\"debian@<PRIVATE_IPV4>:/tmp/\"],\"raw\":\"scp -q -o BatchMode=yes -o ConnectTimeout=8 \\\"$TMP\\\"/*.txt debian@<PRIVATE_IPV4>:/tmp/\",\"tokens\":[\"scp\",\"-q\",\"-o\",\"BatchMode=yes\",\"-o\",\"ConnectTimeout=8\",\"/tmp/cluster-admin-webpanel-sync/*.txt\",\"debian@<PRIVATE_IPV4>:/tmp/\"]}],\"systemd\":{\"homelab-cluster-admin-webpanel-sync.service\":{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"inactive\",\"DropInPaths\":\"\",\"ExecStart\":\"{ path=/usr/local/sbin/homelab-cluster-admin-webpanel-sync ; argv[]=/usr/local/sbin/homelab-cluster-admin-webpanel-sync ; ignore_errors=no ; start_time=[Wed 2026-08-05 15:46:26 MSK] ; stop_time=[Wed 2026-08-05 15:46:27 MSK] ; pid=2863599 ; code=exited ; status=0 }\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-webpanel-sync.service\",\"Group\":\"\",\"LoadState\":\"loaded\",\"SubState\":\"dead\",\"TriggeredBy\":\"homelab-cluster-admin-webpanel-sync.timer\",\"Triggers\":\"\",\"UnitFileState\":\"static\",\"User\":\"\",\"WorkingDirectory\":\"\"},\"show_rc\":0,\"show_stderr\":\"\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-webpanel-sync.service\\n[Unit]\\nDescription=Push public pve01 health files to cluster-admin webpanel\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/local/sbin/homelab-cluster-admin-webpanel-sync\"},\"homelab-cluster-admin-webpanel-sync.timer\":{\"cat_rc\":0,\"cat_stderr\":\"\",\"show\":{\"ActiveState\":\"active\",\"DropInPaths\":\"\",\"FragmentPath\":\"/etc/systemd/system/homelab-cluster-admin-webpanel-sync.timer\",\"LoadState\":\"loaded\",\"SubState\":\"waiting\",\"TriggeredBy\":\"\",\"Triggers\":\"homelab-cluster-admin-webpanel-sync.service\",\"UnitFileState\":\"enabled\"},\"show_rc\":0,\"show_stderr\":\"\",\"unit_text\":\"# /etc/systemd/system/homelab-cluster-admin-webpanel-sync.timer\\n[Unit]\\nDescription=Refresh pushed health files for cluster-admin webpanel\\n\\n[Timer]\\nOnBootSec=2min\\nOnUnitActiveSec=1min\\nPersistent=true\\n\\n[Install]\\nWantedBy=timers.target\"}},\"v13_exact_result\":{\"changes_made\":false,\"control_plane_error\":null,\"exact_error\":\"webpanel publication root not found from exact script\",\"identity_confirmed\":true,\"mutation_outcome\":\"NO_MUTATION\",\"output_bytes\":731,\"output_sha256\":\"a331f7d1e8d501d6295505a832d4717c5eef1246780789980ea20c5670370e62\",\"output_source\":\"runner_json\",\"rollback_restored\":false,\"rollback_started\":false,\"runner_document_rc\":1,\"runner_json_sha256\":\"a210a7acf0f14396a3d55864beb0e1a43e28d5ba83bb9f2e774b9669166a6b01\",\"runner_rc\":1,\"runner_status\":\"FAIL\",\"runner_text_sha256\":\"b5883d67631c9988a99eb6c2a5200da012c08b123c7f7baac7d69b914a5cee5f\",\"runner_wrapper_matches_document\":true,\"state_document_sha256\":\"95bfb7834ba65882a7843a3acd4c8b0d9a5fd4487439d05c959af677223fa17b\",\"state_path_sha256\":\"258275b227d6092dfba94f821359a125ed44d0f39043749d79868071551327d3\",\"state_status\":\"FAIL\"},\"variables\":{\"0\":\"/usr/local/sbin/homelab-cluster-admin-webpanel-sync\",\"BAD\":\"$((BAD+1))\",\"BASH_SOURCE\":\"/usr/local/sbin/homelab-cluster-admin-webpanel-sync\",\"BASH_SOURCE[0]\":\"/usr/local/sbin/homelab-cluster-admin-webpanel-sync\",\"SCP_RC\":\"$?\",\"SCRIPT_DIR\":\"/usr/local/sbin\",\"SCRIPT_PATH\":\"/usr/local/sbin/homelab-cluster-admin-webpanel-sync\",\"SSH_RC\":\"$?\",\"TMP\":\"/tmp/cluster-admin-webpanel-sync\",\"TS\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"dst\":\"$2\",\"src\":\"$1\"},\"webpanel_script\":{\"bash_n_rc\":0,\"bytes\":1609,\"mode\":\"0o755\",\"path\":\"/usr/local/sbin/homelab-cluster-admin-webpanel-sync\",\"sha256\":\"2c57cca503cb0734e5114c2ab46b892a810bdc40c2baa7387b4094373db19276\",\"source\":[{\"line\":1,\"text\":\"#!/usr/bin/env bash\"},{\"line\":2,\"text\":\"set +e\"},{\"line\":3,\"text\":\"TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)\"},{\"line\":4,\"text\":\"TMP=/tmp/cluster-admin-webpanel-sync\"},{\"line\":5,\"text\":\"mkdir -p \\\"$TMP\\\"\"},{\"line\":6,\"text\":\"BAD=0\"},{\"line\":7,\"text\":\"copy_health() {\"},{\"line\":8,\"text\":\" src=\\\"$1\\\"\"},{\"line\":9,\"text\":\" dst=\\\"$2\\\"\"},{\"line\":10,\"text\":\" if [ -s \\\"$src\\\" ]; then\"},{\"line\":11,\"text\":\" cp \\\"$src\\\" \\\"$TMP/$dst\\\"\"},{\"line\":12,\"text\":\" else\"},{\"line\":13,\"text\":\" echo \\\"STATUS=WARN TS=$TS TYPE=missing-health BAD=1 SRC=$src\\\" > \\\"$TMP/$dst\\\"\"},{\"line\":14,\"text\":\" BAD=$((BAD+1))\"},{\"line\":15,\"text\":\" fi\"},{\"line\":16,\"text\":\"}\"},{\"line\":17,\"text\":\"copy_health /var/lib/homelab-health/cluster-admin-vm-mail-cloud-backup.txt cluster-admin-vm-mail-cloud-backup.txt\"},{\"line\":18,\"text\":\"copy_health /var/lib/homelab-health/overall.txt overall.txt\"},{\"line\":19,\"text\":\"copy_health /var/lib/homelab-health/final-readiness.txt final-readiness.txt\"},{\"line\":20,\"text\":\"copy_health /var/lib/homelab-health/cluster-admin-strict-final-seal.txt cluster-admin-strict-final-seal.txt\"},{\"line\":21,\"text\":\"scp -q -o BatchMode=yes -o ConnectTimeout=8 \\\"$TMP\\\"/*.txt debian@<PRIVATE_IPV4>:/tmp/\"},{\"line\":22,\"text\":\"SCP_RC=$?\"},{\"line\":23,\"text\":\"[ \\\"$SCP_RC\\\" = 0 ] || BAD=$((BAD+1))\"},{\"line\":24,\"text\":\"ssh -n -o BatchMode=yes -o ConnectTimeout=8 debian@<PRIVATE_IPV4> 'sudo install -d -m 0755 /var/lib/homelab-health/pve01-pushed; for f in /tmp/cluster-admin-vm-mail-cloud-backup.txt /tmp/overall.txt /tmp/final-readiness.txt /tmp/cluster-admin-strict-final-seal.txt; do test -s \\\"$f\\\" && sudo install -m 0644 \\\"$f\\\" /var/lib/homelab-health/pve01-pushed/; done'\"},{\"line\":25,\"text\":\"SSH_RC=$?\"},{\"line\":26,\"text\":\"[ \\\"$SSH_RC\\\" = 0 ] || BAD=$((BAD+1))\"},{\"line\":27,\"text\":\"if [ \\\"$BAD\\\" = 0 ]; then STATUS=OK; else STATUS=WARN; fi\"},{\"line\":28,\"text\":\"echo \\\"STATUS=$STATUS TS=$TS TYPE=cluster-admin-webpanel-sync BAD=$BAD VMID=180 IP=<PRIVATE_IPV4> SCP_RC=$SCP_RC SSH_RC=$SSH_RC PUSHED=cluster-admin-vm-mail-cloud-backup,overall,final-readiness,cluster-admin-strict-final-seal\\\" > /var/lib/homelab-health/cluster-admin-webpanel-sync.txt\"},{\"line\":29,\"text\":\"cat /var/lib/homelab-health/cluster-admin-webpanel-sync.txt\"}]}}\n"
}