{ "schema_version": 1, "channel": "homelab-runtime", "command_id": "SUPPORT-260924-HOMELAB-MOLDOVA-CLOUDFLARE-CONTROL-PREFLIGHT-1160R1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", "component": "homelab-moldova-cloudflare-control-preflight", "started_at_utc": "2026-09-23T23:23:07Z", "finished_at_utc": "2026-09-23T23:23:08Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", "command_sha256": "85dd2d6ae586942deaddc0690a3f91764837fdc2ede99bb4377aaea2a1553297", "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": "a361996e350aea494209756bfa60a101a6e1f233ee272949c06f69d67d770430", "sanitized_output_sha256": "a361996e350aea494209756bfa60a101a6e1f233ee272949c06f69d67d770430", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", "output": "WORKERS2_MOLDOVA_CLOUDFLARE_CONTROL_PREFLIGHT_BEGIN=1\nCOMMAND_ID=SUPPORT-260924-HOMELAB-MOLDOVA-CLOUDFLARE-CONTROL-PREFLIGHT-1160R1\nMODE=read-only\nCOMPONENT=homelab-moldova-cloudflare-control-preflight\nMUTATION_BOUNDARY=NONE;LOCAL_CLOUDFLARE_CONTROL_PATH_AND_READ_API_PROOF_ONLY;NO_MOLDOVA_CONNECTION;NO_REMOTE_SSH;CLOUDFLARE_GET_ONLY;NO_DNS_WRITE;NO_PROVIDER_MUTATION;NO_SYSTEMD_ACTION;NO_BACKUP_MUTATION;NO_TARGET_POLICY_MUTATION;NO_NETBIRD_MUTATION;NO_GIT_WRITE;NO_SECRET_VALUE_OUTPUT\nPREDECESSOR_1158=PASS_MOLDOVA_1158_COMPACT_1155_RESULT_RECOVERED\nRECOVERED_PROVIDER=CLOUDFLARE\nRECOVERED_CONTROL_PATH_CLASS=NOT_PROVEN\nHISTORICAL_EDGE_HELPER=pvepro-cf-upsert-a.py\nLOCAL_REJECTED_CID_1159=true\nCARRIER_BASELINE=KNOWN_GOOD_1137_BYTE_SEMANTICS\nREFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66\nERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nTARGETS_SHA256=5cba5f1e14c65211c9fab6d11594c19279ab68369b4db3f7283708c368348288\nMD_RELAY_COUNT=1\nMD_RELAY_ENABLED=false\nCONTROL_ARTIFACT_COUNT=3\nCONTROL_ARTIFACT|base=cf_token_audit.py|path_sha256=6c2970c878a1cbf6c261160e5063e1e0b7f8962e6b437fa89d1c71a32b33556b|bytes=3020|mode=600|owner=0:0|sha256=a5ce4ec019b811c68333d9394b55824814a35269958b0edc4ce221995ffab118\nCONTROL_SRC|base=cf_token_audit.py|line=14|text= (\"pvepro\", \"/opt/npmplus/secure/pvepro_cf_token\", [\"pvepro.ru\"]),\nCONTROL_SRC|base=cf_token_audit.py|line=18|text=def extract_token(text):\nCONTROL_SRC|base=cf_token_audit.py|line=62|text= token = [REDACTED]\"ignore\"))\nCONTROL_SRC|base=cf_token_audit.py|line=69|text= verify = cf_get(token, \"https://api.cloudflare.com/client/v4/user/tokens/verify\")\nCONTROL_SRC|base=cf_token_audit.py|line=83|text= url = \"https://api.cloudflare.com/client/v4/zones?name=\" + urllib.parse.quote(zone) + \"&per_page=1\"\nCONTROL_ARTIFACT|base=edge-cf-zone-check.py|path_sha256=87c1aa6eafb8b6a7b2b3d7ee76cd1dd06e6c8438d2378a2a889d9b0698b4348d|bytes=3607|mode=700|owner=1000:1000|sha256=81dde2bc42ca56e63af77bdb49c3423703fe9ca3befe00045ea36b630be8bd88\nCONTROL_SRC|base=edge-cf-zone-check.py|line=47|text= url = \"https://api.cloudflare.com/client/v4\" + path\nCONTROL_SRC|base=edge-cf-zone-check.py|line=48|text= req = urllib.request.Request(url, headers=headers, method=\"GET\")\nCONTROL_SRC|base=edge-cf-zone-check.py|line=70|text= z_status, z_data = api_get(\"/zones?\" + q)\nCONTROL_SRC|base=edge-cf-zone-check.py|line=83|text= zone_id = zone.get(\"id\", \"\")\nCONTROL_SRC|base=edge-cf-zone-check.py|line=85|text= print(f\"CF_ZONE_ACCESS DOMAIN={domain} ACCESS=yes HTTP_STATUS={z_status} ZONE_NAME={zone_name} ZONE_ID_PREFIX={zone_id[:8]}\")\nCONTROL_SRC|base=edge-cf-zone-check.py|line=88|text= r_status, r_data = api_get(f\"/zones/{zone_id}/dns_records?type=A&name={urllib.parse.quote(domain)}\")\nCONTROL_ARTIFACT|base=pvepro-cf-upsert-a.py|path_sha256=51e628648f15a76c6f5ae3b06496f8957794f75dca09af2edd6e1002a4ab85bc|bytes=2521|mode=700|owner=1000:1000|sha256=605ee9215580abc5f254f2452b29adc331ab929974a42f96250f8b8dff79a05b\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=6|text=DOMAIN = \"pvepro.ru\"\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=10|text=def token(): return TOKEN_PATH.read_text(encoding=\"utf-8\").strip()\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=13|text= req = urllib.request.Request(\"https://api.cloudflare.com/client/v4\"+path, data=data, headers={\"Authorization\":\"Bearer \"+token(), \"Content-Type\":\"application/json\"}, method=method)\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=21|text=def zone_id():\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=22|text= status, data = api(\"GET\", \"/zones?\"+urllib.parse.urlencode({\"name\": DOMAIN}))\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=25|text= zid=data[\"result\"][0][\"id\"]; out(f\"PVEPRO_DNS_ZONE_LOOKUP OK=yes ZONE_ID_PREFIX={zid[:8]}\"); return zid\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=27|text= status, data = api(\"GET\", f\"/zones/{zid}/dns_records?\"+urllib.parse.urlencode({\"type\":\"A\",\"name\":name}))\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=35|text= status, resp = api(\"PUT\", f\"/zones/{zid}/dns_records/{r['id']}\", payload)\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=40|text= status, resp = api(\"POST\", f\"/zones/{zid}/dns_records\", payload)\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=44|text=zid = zone_id()\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=47|text=ok1 = upsert(zid, \"pvepro.ru\")\nCONTROL_SRC|base=pvepro-cf-upsert-a.py|line=48|text=ok2 = upsert(zid, \"www.pvepro.ru\")\nCONTROL_ENV_NAME_COUNT=1\nCONTROL_ENV_NAME=CF_ZONE_ACCESS\nCONTROL_LITERAL_PATH_COUNT=6\nCONTROL_LITERAL_PATH|base=forum_cf_token.env|path_sha256=dd63233c1b049d3d64222fb321969ae4925381be668e3516fc8a65137556d432|exists=false\nCONTROL_LITERAL_PATH|base=gram1_cf_token|path_sha256=641c598a546799f0d1316aa993d57731741eee0da3d43d11055c0d8ceaedc6be|exists=false\nCONTROL_LITERAL_PATH|base=parked_cf_token|path_sha256=ffc4f9615e6abbf61d7e0c09ef0f54b579fe107beb147c054f44a930d86619a1|exists=false\nCONTROL_LITERAL_PATH|base=pvepro_cf_token|path_sha256=c7daf39db4f8bf2479c549e135e9b1354fbc38c686923ff950a58ee40802724a|exists=false\nCONTROL_LITERAL_PATH|base=taftauto_cf_token|path_sha256=87ea3adb51036747bc9fe04f659a6d0858255ba3e2f24c62dcd608b01fbf63bc|exists=false\nCONTROL_LITERAL_PATH|base=verify|path_sha256=b5311e03be0fc877b4a7eb67c335d0acbce814d03878bd2190dfe7e8da34bd81|exists=false\nTOKEN_CANDIDATE_COUNT=0\nTOKEN_VALID_COUNT=0\nREAD_AUTHORITY_COUNT=0\nLOCAL_UPSERT_HELPER_COUNT=1\nLOCAL_UPSERT_HELPER|path_sha256=51e628648f15a76c6f5ae3b06496f8957794f75dca09af2edd6e1002a4ab85bc|sha256=605ee9215580abc5f254f2452b29adc331ab929974a42f96250f8b8dff79a05b|methods=|has_read=true|has_record_id=true|has_rollback_terms=true\nREPO_CONTEXT_COUNT=0\nCLOUDFLARE_READ_CONTROL_CLASS=NO_VALID_LOCAL_CLOUDFLARE_TOKEN\nCLOUDFLARE_WRITE_PATH_CANDIDATE=false\nNEXT_CONTROL_GATE=LOCATE_OR_PROVE_AUTHORITATIVE_A_RECORD_WRITE_PATH\nDECISION=PASS_MOLDOVA_1160_CLOUDFLARE_CONTROL_PREFLIGHT_COLLECTED\nNEXT_GATE=READ_EXACT_1160_AND_CHOOSE_SAFE_DNS_RETIREMENT_PATH\nTASK_RESULT=PASS_MOLDOVA_CLOUDFLARE_CONTROL_PREFLIGHT\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260924-HOMELAB-MOLDOVA-CLOUDFLARE-CONTROL-PREFLIGHT-1160R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\nWORKERS2_MOLDOVA_CLOUDFLARE_CONTROL_PREFLIGHT_END=1\n" }