{ "schema_version": 1, "channel": "homelab-runtime", "command_id": "NEWFI-260907-PORTAL200-CONTRACTRULE1", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", "component": "newfi-portal200-contract-rule-rca", "started_at_utc": "2026-09-07T11:36:30Z", "finished_at_utc": "2026-09-07T11:36:30Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", "command_sha256": "99c8bb9eac94ce1eada078fce55bc35c4edc8e3462cc495df345a313b0d5ae13", "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": "73bd998618637ad3029540bf984bd03793bc3bfbec9d9cf1e51ca20c92287386", "sanitized_output_sha256": "73bd998618637ad3029540bf984bd03793bc3bfbec9d9cf1e51ca20c92287386", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", "output": "NEWFI57_BEGIN\nCOMMAND_ID=NEWFI-260907-PORTAL200-CONTRACTRULE1\nMUTATION_SCOPE=NONE_READ_ONLY\nAPPLY3_FAILURE_LINES=[]\nAPPLY3_RESULT_CONTRACT_LINES=[]\nAPPLY3_PHASE_LINES=[]\nRUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\nRUNNER_CONTRACT_RULES=[{\"line\":54,\"text\":\"if status not in {\\\"OK\\\", \\\"BLOCKED\\\", \\\"FAIL\\\"}:\"},{\"line\":55,\"text\":\"raise ValueError(\\\"invalid status\\\")\"},{\"line\":60,\"text\":\"raise ValueError(\\\"changes_made must be boolean\\\")\"},{\"line\":61,\"text\":\"if not isinstance(rollback_started, bool):\"},{\"line\":62,\"text\":\"raise ValueError(\\\"rollback_started must be boolean\\\")\"},{\"line\":63,\"text\":\"if rollback_restored is not None and not isinstance(\"},{\"line\":70,\"text\":\"if rollback_restored is True and rollback_started is not True:\"},{\"line\":71,\"text\":\"raise ValueError(\"},{\"line\":74,\"text\":\"if rollback_started is True and changes is not True:\"},{\"line\":75,\"text\":\"raise ValueError(\"},{\"line\":78,\"text\":\"if status == \\\"BLOCKED\\\" and (\"},{\"line\":86,\"text\":\"if status == \\\"OK\\\" and command_rc != 0:\"},{\"line\":87,\"text\":\"raise ValueError(\\\"OK contract inconsistent with rc\\\")\"},{\"line\":88,\"text\":\"if status == \\\"FAIL\\\" and command_rc == 0:\"},{\"line\":89,\"text\":\"raise ValueError(\\\"FAIL contract inconsistent with rc\\\")\"},{\"line\":93,\"text\":\"elif not rollback_started:\"},{\"line\":95,\"text\":\"elif rollback_restored is True:\"},{\"line\":97,\"text\":\"elif rollback_restored is False:\"},{\"line\":111,\"text\":\"if rollback_restored is None\"},{\"line\":653,\"text\":\"if contract_status in {\\\"\\\", \\\"UNKNOWN\\\", \\\"NOT_APPLICABLE\\\"}\"}]\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"NEWFI-260907-PORTAL200-CONTRACTRULE1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\nNEWFI57_END\n" }