{ "schema_version": 1, "channel": "homelab-runtime", "command_id": "SUPPORT-260913-INFRA-DR-BACKUPV2-VPS-POLICY-CLOSURE-315R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", "component": "infra-dr-backupv2-vps-policy-closure", "started_at_utc": "2026-09-13T15:20:53Z", "finished_at_utc": "2026-09-13T15:21:02Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", "command_sha256": "7c9e4287929960f12eb2543fc6f15cc42f6e23cc917ef8bea0f4aaf7f1eeb493", "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": "e5ff92ae09f1c1239a59ef78745e2fc4af44f8fac3fc7df13e264c5b076ffee1", "sanitized_output_sha256": "e5ff92ae09f1c1239a59ef78745e2fc4af44f8fac3fc7df13e264c5b076ffee1", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", "output": "VPS315_BEGIN=\nCOMMAND_ID=SUPPORT-260913-INFRA-DR-BACKUPV2-VPS-POLICY-CLOSURE-315R1\nANCHOR314_COMMIT=e25be13ca38281333f21f1397f53fef70d4da379\nMODE=READ_ONLY_VPS_POLICY_CLOSURE_TLS_REISSUE_SQLITE\nCHANGES_MADE=false\nLIVE_TAR_DB_DATA_ALLOWED=NO\nCLOUD_WRITE_ATTEMPTS=0\nEXTERNAL_MUTATIONS=0\nSYSTEMD_MUTATIONS=0\nFORWARDED_AGENT_READY={\"expected\":true,\"fingerprints\":[\"SHA256:JMCyBDSD7PKqwwKndzDGAO4Lgm55nEmec9Ssn6QGtKg\"],\"present\":true}\nUS_OPERATOR_KEY_READY={\"fingerprint_match\":true,\"fingerprints\":[\"SHA256:wipXiBB3cpAwyWap9LcB185WjEEmDxtRJsI/UuMVAp0\"],\"present\":true}\nROLE_POLICY={\"access\":\"PASS\",\"complete\":true,\"hostkey\":{\"expected\":\"SHA256:Ef+HsZb8lIXoadvYBXuGKIL3H7NyJMmf9EYCoJRoSv8\",\"observed\":[\"SHA256:Ef+HsZb8lIXoadvYBXuGKIL3H7NyJMmf9EYCoJRoSv8\"],\"status\":\"PASS\"},\"policy\":{\"cert_ref_count\":15,\"certbot\":true,\"dependency\":\"DNS_AND_PUBLIC_HTTP_HTTPS_ROUTING\",\"http_listen_count\":32,\"key_ref_count\":15,\"live_tar_db_data_allowed\":false,\"nginx_failure_class\":\"PERMISSION_OTHER\",\"ready\":false,\"server_name_count\":28,\"strategy\":\"REISSUE_TLS_ON_RESTORE\"},\"role\":\"SPB_INGRESS\",\"ssh\":{\"complete\":true,\"rc\":0,\"rows\":[\"POLICY_BEGIN\",\"ROLE=SPB_INGRESS\",\"REMOTE_UID=1000\",\"REMOTE_USER=edgeadmin\",\"SUDO_NONINTERACTIVE=NO\",\"SPB_CERTBOT=YES\",\"SPB_CERTBOT_VERSION=certbot 4.0.0\",\"SPB_SERVER_NAME_COUNT=28\",\"SPB_HTTP_LISTEN_COUNT=32\",\"SPB_CERT_REF_COUNT=15\",\"SPB_KEY_REF_COUNT=15\",\"SPB_RENEWAL_CONFIG_COUNT=15\",\"SPB_KEY_REF_TOTAL=15\",\"SPB_KEY_REF_UNREADABLE=15\",\"SPB_NGINX_TEST_RC=1\",\"SPB_NGINX_FAILURE_CLASS=PERMISSION_OTHER\",\"SPB_NGINX_STDERR_BYTES=547\",\"SPB_NGINX_STDERR_SHA256=ae48c7d965f36c1608e99cfd28a1e0a8634d597bababc841136fca184ffc73a3\",\"SPB_TLS_RECOVERY_STRATEGY=REISSUE_TLS_ON_RESTORE\",\"SPB_TLS_REISSUE_DEPENDENCY=DNS_AND_PUBLIC_HTTP_HTTPS_ROUTING\",\"LIVE_TAR_DB_DATA_ALLOWED=NO\",\"POLICY_END\"],\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"}}\nROLE_POLICY={\"access\":\"PASS\",\"complete\":true,\"hostkey\":{\"expected\":\"SHA256:805Q9eh/fePUci42dfY58I6q0lFiiPHn0/M+mckypmE\",\"observed\":[\"SHA256:805Q9eh/fePUci42dfY58I6q0lFiiPHn0/M+mckypmE\"],\"status\":\"PASS\"},\"policy\":{\"acme_json_ok\":true,\"live_tar_db_data_allowed\":false,\"method\":\"PYTHON_SQLITE3_BACKUP_API\",\"ready\":true,\"sqlite_count\":4,\"sqlite_quickcheck_ok\":4},\"role\":\"US_NETBIRD\",\"ssh\":{\"complete\":true,\"rc\":0,\"rows\":[\"POLICY_BEGIN\",\"ROLE=US_NETBIRD\",\"REMOTE_UID=0\",\"REMOTE_USER=root\",\"SUDO_NONINTERACTIVE=YES\",\"US_PYTHON3=YES\",\"US_PYTHON_SQLITE_BACKUP_API=YES\",\"US_SQLITE_CHECK=events.db|quick_check=OK|journal=delete|pages=10|bytes=40960\",\"US_SQLITE_CHECK=geonames_20260602.db|quick_check=OK|journal=delete|pages=1766|bytes=7233536\",\"US_SQLITE_CHECK=idp.db|quick_check=OK|journal=delete|pages=28|bytes=114688\",\"US_SQLITE_CHECK=store.db|quick_check=OK|journal=delete|pages=137|bytes=561152\",\"US_ACME_JSON=600|0|0|28394|json=OK\",\"US_SQLITE_ONLINE_BACKUP_METHOD=PYTHON_SQLITE3_BACKUP_API\",\"LIVE_TAR_DB_DATA_ALLOWED=NO\",\"POLICY_END\"],\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"}}\nPOLICIES=[{\"cert_ref_count\":15,\"certbot\":true,\"dependency\":\"DNS_AND_PUBLIC_HTTP_HTTPS_ROUTING\",\"http_listen_count\":32,\"key_ref_count\":15,\"live_tar_db_data_allowed\":false,\"nginx_failure_class\":\"PERMISSION_OTHER\",\"ready\":false,\"role\":\"SPB_INGRESS\",\"server_name_count\":28,\"strategy\":\"REISSUE_TLS_ON_RESTORE\"},{\"acme_json_ok\":true,\"live_tar_db_data_allowed\":false,\"method\":\"PYTHON_SQLITE3_BACKUP_API\",\"ready\":true,\"role\":\"US_NETBIRD\",\"sqlite_count\":4,\"sqlite_quickcheck_ok\":4}]\nROLE_HOLDS=[{\"reason\":\"POLICY_NOT_READY\",\"role\":\"SPB_INGRESS\"}]\nPOLICY_CLOSURE_COMPLETE=NO\nSPB_TLS_POLICY=REISSUE_TLS_ON_RESTORE\nUS_SQLITE_BACKUP_POLICY=PYTHON_SQLITE3_BACKUP_API\nSTATUS=OK\nPHASE=COMPLETE\nNEXT_GATE=VPS_POLICY_CLOSURE_REQUIRED\nVPS315_END=\n" }