1
0
Files
homelab-public-context/runtime/latest.json
T

39 lines
4.5 KiB
JSON

{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "HOMELAB-KB-V2-R3-ROLLBACK-ARTIFACTS-R6-RISK-SCHEMA-READ-ONLY-20260806T035200Z",
"status": "OK",
"rc": 0,
"host": "pve01",
"mode": "verify",
"component": "homelab-kb-v2-r3-rollback-artifacts-r6-risk-schema-read-only",
"started_at_utc": "2026-08-06T03:55:42Z",
"finished_at_utc": "2026-08-06T03:55:42Z",
"reference_register_checked": true,
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
"error_register_checked": true,
"error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83",
"command_sha256": "ff45c88a0d1d4780d91752952c56fc75cfdcd21f555d75ebc4203c57b7b532f5",
"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": "5b3b7e6398d26e93c0b286604a828b353e2e7aa222c732925faf93f91bb3c114",
"sanitized_output_sha256": "5b3b7e6398d26e93c0b286604a828b353e2e7aa222c732925faf93f91bb3c114",
"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-KB-V2-R3-ROLLBACK-ARTIFACTS-R6-RISK-SCHEMA-READ-ONLY-20260806T035200Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"backup_changed\":false,\"changes_made\":false,\"command_id\":\"HOMELAB-KB-V2-R3-ROLLBACK-ARTIFACTS-R6-RISK-SCHEMA-READ-ONLY-20260806T035200Z\",\"exact_risk_values\":[\"HIGH\",\"READ_ONLY\",\"REVERSIBLE\"],\"gitea_changed\":false,\"invalid_risk_literal_found\":true,\"mutation_outcome\":\"NO_MUTATION\",\"private_addresses_included\":false,\"production_changed\":false,\"purpose\":\"READ_ONLY_EXACT_ADAPTER_RISK_ENUM\",\"rollback_restored\":null,\"rollback_started\":false,\"sanitized\":true,\"schema\":2,\"secrets_included\":false,\"services_changed\":false,\"snippets\":[{\"basis\":\"risk_assignment\",\"snippet\":\"ALLOWED_RISKS = {\\n \\\"READ_ONLY\\\",\\n \\\"REVERSIBLE\\\",\\n \\\"HIGH\\\",\\n}\",\"snippet_sha256\":\"3fb1a623c396c6f52340e3fd2a21dcb3bf8ef20853577b1f546ef06365ce93b1\",\"values\":[\"HIGH\",\"READ_ONLY\",\"REVERSIBLE\"]},{\"basis\":\"risk_not_in\",\"snippet\":\"risk not in {\\\"REVERSIBLE\\\", \\\"HIGH\\\"}\",\"snippet_sha256\":\"724ee6c7d954e249f31d377b059766cc67b75131513b547c93479821daff1665\",\"values\":[\"HIGH\",\"REVERSIBLE\"]},{\"basis\":\"validator_error_context\",\"line\":385,\"snippet\":\" raise AdapterError(\\\"invalid mode\\\")\\n if document.get(\\\"target\\\") != \\\"pve01\\\":\\n raise AdapterError(\\\"only pve01 target is supported\\\")\\n\\n timeout_seconds = document.get(\\\"timeout_seconds\\\")\\n if (\\n not isinstance(timeout_seconds, int)\\n or isinstance(timeout_seconds, bool)\\n or not 1 <= timeout_seconds <= 7200\\n ):\\n raise AdapterError(\\\"invalid timeout_seconds\\\")\\n\\n risk = document.get(\\\"risk\\\")\\n if risk not in ALLOWED_RISKS:\\n raise AdapterError(\\\"invalid risk\\\")\\n if mode == \\\"change\\\" and risk not in {\\\"REVERSIBLE\\\", \\\"HIGH\\\"}:\\n raise AdapterError(\\\"change capsule risk must be REVERSIBLE or HIGH\\\")\\n if mode != \\\"change\\\" and risk != \\\"READ_ONLY\\\":\\n raise AdapterError(\\\"non-change capsule risk must be READ_ONLY\\\")\\n\\n flags = document.get(\\\"change_flags\\\")\\n if not isinstance(flags, dict):\\n raise AdapterError(\\\"change_flags must be object\\\")\\n if set(flags) != ALLOWED_CHANGE_FLAGS:\\n raise AdapterError(\\\"change_flags keys invalid\\\")\\n if any(type(value) is not bool for value in flags.values()):\\n raise AdapterError(\\\"change_flags values must be boolean\\\")\\n\\n if mode != \\\"change\\\" and any(flags.values()):\",\"snippet_sha256\":\"9e3fc0cf1111e8c480a659092819a244d1b0d701eaec4c5c544dd3aed65280b7\"}],\"source_bytes\":86019,\"source_path\":\"/usr/local/sbin/homelab-command-adapter\",\"source_sha256\":\"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d\",\"status\":\"AUDIT_COMPLETE\"}\n"
}