Files
Polisher-Control/shared/schemas/run-log.schema.json

172 lines
4.7 KiB
JSON
Raw Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://polisher-suite.local/schemas/run-log.schema.json",
"title": "Run Log",
"description": "Canonical execution record emitted by polisher-control. Represents executed truth.",
"type": "object",
"required": [
"schema_version",
"run_id",
"job_id",
"controller_job_id",
"controller_version",
"machine_id",
"started_at",
"ended_at",
"result_state",
"segments"
],
"properties": {
"schema_version": {
"type": "string",
"const": "run-log.v1"
},
"run_id": {
"type": "string",
"description": "Stable unique identifier for this execution run."
},
"job_id": {
"type": "string",
"description": "Back-reference to the source planning job."
},
"controller_job_id": {
"type": "string",
"description": "Back-reference to the translated controller-job package."
},
"controller_version": {
"type": "string"
},
"machine_id": {
"type": "string"
},
"started_at": {
"type": "string",
"format": "date-time"
},
"ended_at": {
"type": "string",
"format": "date-time"
},
"result_state": {
"type": "string",
"enum": ["completed", "completed_with_pause", "aborted", "faulted"]
},
"segments": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/executed_segment"
}
},
"commanded_summary": {
"type": "object",
"properties": {
"force_n": { "type": "number" },
"table_rpm": { "type": "number" },
"spindle_rpm": { "type": "number" }
}
},
"actual_summary": {
"type": "object",
"properties": {
"force_n_mean": { "type": "number" },
"force_n_min": { "type": "number" },
"force_n_max": { "type": "number" },
"table_rpm_mean": { "type": "number" },
"spindle_rpm_mean": { "type": "number" }
}
},
"alarms": {
"type": "array",
"items": {
"type": "object",
"required": ["timestamp", "code", "message"],
"properties": {
"timestamp": { "type": "string", "format": "date-time" },
"code": { "type": "string" },
"message": { "type": "string" },
"severity": { "type": "string", "enum": ["info", "warning", "critical"] }
}
}
},
"events": {
"type": "array",
"items": {
"type": "object",
"required": ["timestamp", "type"],
"properties": {
"timestamp": { "type": "string", "format": "date-time" },
"type": { "type": "string" },
"detail": { "type": "string" }
}
}
},
"telemetry_ref": {
"type": "string",
"description": "Filename or path to the raw telemetry data file."
},
"operator_notes": {
"type": "string"
}
},
"$defs": {
"executed_segment": {
"type": "object",
"required": [
"segment_id",
"source_pass_id",
"commanded_duration_s",
"actual_duration_s",
"result_state"
],
"properties": {
"segment_id": { "type": "string" },
"source_pass_id": { "type": "string" },
"commanded_duration_s": { "type": "number" },
"actual_duration_s": { "type": "number" },
"result_state": {
"type": "string",
"enum": ["completed", "completed_with_pause", "aborted", "faulted", "skipped"]
},
"commanded": {
"type": "object",
"properties": {
"force_n": { "type": "number" },
"table_rpm": { "type": "number" },
"spindle_rpm": { "type": "number" },
"cam_amplitude_deg": { "type": "number" },
"cam_offset_deg": { "type": "number" }
}
},
"actual": {
"type": "object",
"properties": {
"force_n_mean": { "type": "number" },
"force_n_min": { "type": "number" },
"force_n_max": { "type": "number" },
"table_rpm_mean": { "type": "number" },
"spindle_rpm_mean": { "type": "number" }
}
},
"pause_windows": {
"type": "array",
"items": {
"type": "object",
"required": ["paused_at", "resumed_at"],
"properties": {
"paused_at": { "type": "string", "format": "date-time" },
"resumed_at": { "type": "string", "format": "date-time" },
"reason": { "type": "string" }
}
}
},
"anomaly_flags": {
"type": "array",
"items": { "type": "string" }
},
"notes": { "type": "string" }
}
}
}
}