Files
The files tab is a flat browser of every asset attached to an observation — raw frames, processed images, calibration data, plot files, intermediate products. It's separate from the results panel because results are the per-task summary; files are the raw inventory.
The panel lives at
app/components/entity/ObservationFilesPanel.tsx.
Grid layout
Files are presented as a responsive thumbnail grid — typically 2-6 columns wide depending on viewport size — with role-based filters at the top.
Each tile shows:
- A thumbnail (image-derived for visual files, an icon for binaries).
- The asset's filename or display name.
- Quick metadata: file role, file size, MIME type, timestamp.
Clicking a tile opens a lightbox:
- JPEG / PNG previews render inline.
- FITS files don't preview — the lightbox offers a download link. Use Afterglow or Astromancer for in-browser FITS inspection.
- Other formats — download link only.
Role filters
Every asset carries a role that captures what kind of file it is. Common roles:
- Science — the actual exposures or radio data the observation was after.
- Calibration — bias, dark, flat, gain calibration frames.
- Processing intermediates — files produced by the processing pipeline that aren't the final science product (background- subtracted, WCS-solved, color-stacked, …).
- Plots and tables — analysis output, photometry curves, source catalogs.
The role filter at the top of the grid lets you narrow to just one kind. Default is all roles.
Files vs. results — when to use which
- Use Results when you want the per-task summary view: "here's what each task produced, with a status badge and a few thumbnails." This is the view most observers spend most of their time in.
- Use Files when you want the flat inventory: "every file this observation produced, regardless of which task or pipeline stage." This is where you go to find a specific file by role or to download raw data.
The two views show the same underlying ObservationAsset records,
just organized differently.
Asset model under the hood
Every file is an
ObservationAsset
row linked to:
- The observation that owns it.
- A
task_inforeference (which task produced it). - A
SkynetAssetrow carrying the binary metadata (size, MIME type, storage backend, hash). - Optional
AssetEdgerecords describing how this asset relates to others — e.g., "this calibrated frame was derived from this raw frame," "these per-tile exposures were stacked into this mosaic."
The asset edges are what let the pipeline reproduce and explain provenance; the UI usually doesn't surface them directly, but the API does.
Galleries
A specific subset of files can be promoted into the observation's
public gallery (ObservationGalleryItem) — these are what show up on
the observation's public-facing card for sharing. Observatory and
telescope galleries work the same way; the
Telescope page has more on the
observatory and telescope side.
Reference
ObservationAsset— the per-file record.SkynetAsset— binary metadata and storage backend.AssetEdge— provenance edges between assets.ObservationGalleryItem— gallery promotion record.