{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://erofs.example/pre15/evidence.schema.json", "title": "EROFS FreeBSD Pre15 immutable run evidence", "type": "object", "additionalProperties": false, "required": [ "schema_version", "run_id", "mode", "case_id", "dut_head", "dut_tree", "worktree_diff_sha256", "freebsd_source", "linux_source", "module_sha256", "fixture_sha256", "command_argv", "start_utc", "end_utc", "deadline_seconds", "exit_code", "timed_out", "target_marker", "status", "reason", "failure_origin", "cleanup", "stdout", "stderr", "raw_sha256", "ownership_manifest", "cleanup_log", "identity", "fixtures", "module" ], "properties": { "schema_version": { "const": 1 }, "run_id": { "type": "string", "minLength": 1 }, "mode": { "enum": ["host", "build", "qemu", "smoke", "control"] }, "case_id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" }, "dut_head": { "type": "string", "pattern": "^[0-9a-f]{40}$" }, "dut_tree": { "type": "string", "pattern": "^[0-9a-f]{40}$" }, "worktree_diff_sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "freebsd_source": { "type": "string", "minLength": 1 }, "linux_source": { "type": "string", "minLength": 1 }, "module_sha256": { "oneOf": [ { "type": "null" }, { "type": "string", "pattern": "^[0-9a-f]{64}$" } ] }, "fixture_sha256": { "type": "array", "items": { "type": "string", "pattern": "^[0-9a-f]{64}$" } }, "command_argv": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "start_utc": { "type": "string", "format": "date-time" }, "end_utc": { "type": "string", "format": "date-time" }, "deadline_seconds": { "type": "integer", "minimum": 1 }, "exit_code": { "type": ["integer", "null"] }, "timed_out": { "type": "boolean" }, "target_marker": { "enum": ["reached", "not_reached"] }, "status": { "enum": ["PASS", "DUT_FAIL", "RUNNER_FAIL", "INFRA_BLOCKED", "STOP", "NOT_RUN"] }, "reason": { "type": "string", "minLength": 1 }, "failure_origin": { "enum": ["none", "dut", "runner", "infrastructure", "gate", "plan"] }, "cleanup": { "enum": ["PASS", "FAIL"] }, "stdout": { "type": "string", "minLength": 1 }, "stderr": { "type": "string", "minLength": 1 }, "raw_sha256": { "type": "object", "additionalProperties": false, "required": ["stdout", "stderr", "ownership", "cleanup"], "properties": { "stdout": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "stderr": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "ownership": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "cleanup": { "type": "string", "pattern": "^[0-9a-f]{64}$" } } }, "ownership_manifest": { "type": "string", "minLength": 1 }, "cleanup_log": { "type": "string", "minLength": 1 }, "identity": { "type": "object" }, "fixtures": { "type": "array" }, "module": { "type": ["object", "null"] } } }