Skip to content

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