ObservationAssetQaRun
ObservationAssetQaRun Schema¶
Description: Server-side QA over a frame: Skynet's own verdict (C37b).
Two halves, both owned by this run:
* **Verify.** Plate-solve the frame and compare the measured centre against
the commanded one, recording the outcome in ``pointing_solution``. This is
the server's independent check on the pointing the node claimed, and it is
the only thing on the platform that performs it. Skipped for frames with
no usable star field, where the answer would carry no information.
* **Judge.** Combine that with the analysis run's pixel-quality metrics and
decide, writing ``server_qa_status`` / ``server_qa_reason`` /
``server_qa_metrics`` onto the asset.
The analysis run only *describes* a frame (header, header-WCS mirror, pixel
quality); it makes no judgment and produces no geometry. The pointing solve
lived there until 2026-08-25 —
docs/internal/working/analysis-pointing-solve-to-qa.md has the reasoning.
Produces no artifact and writes no file: the run row is job lifecycle +
provenance, the verdict lives on the asset. Executed by the generic
``runnable_worker`` like any other runnable (no dedicated service).
Properties¶
| Name | Type | Description |
|---|---|---|
| id | UUID |
No description |
| observation_asset_id | Integer |
Observation asset judged by this QA run. |
| analysis_run_id | UUID (Optional) |
The analysis run whose results this verdict was derived from. |
| config | JSONB (Optional) |
No description |
| config_hash | String(64) (Optional) |
No description |
| runner_version | String(64) (Optional) |
No description |
| status | Enum(ready, running, completed, failed, canceled) |
No description |
| iterations | Integer |
No description |
| priority | Integer |
No description |
| created_on | DateTime |
No description |
| started_on | DateTime (Optional) |
No description |
| completed_on | DateTime (Optional) |
No description |
| version | String(64) (Optional) |
No description |
| error_messages | JSONB (Optional) |
No description |
| current_stage | String(100) (Optional) |
No description |
| current_stage_index | Integer (Optional) |
No description |
| total_stages | Integer (Optional) |
No description |
| current_stage_progress_fraction | Float (Optional) |
No description |
Relationships¶
| Relationship Name | Type |
|---|---|
| observation_asset | ObservationAsset |
| analysis_run | ObservationAssetAnalysisRun |
| pointing_solution | ObservationAssetQaRunPointingSolution |