RESOURCE PACKAGES / IMMUTABLE RELEASES

Every package version, published and downloadable

Browse published Resource Packages release by release, like a changelog of the sky. Download archives directly or pin a version through the API with SHA-256 verification.

PUBLISHING PIPELINE

How data is discovered, verified and published

Two source paths, one reviewed publication process. This diagram explains the workflow; it is not a live task monitor.

01

Existing MOC

Search public coverage records in CDS MocServer.

https://alasky.cds.unistra.fr/MocServer/query
  1. Query the CDS directory
  2. Select a candidate
  3. Download and lock source
  4. Validate and build MOC
02

Source data scan

Scan explicitly selected source files through Warehouse, then build coverage from their normalized results.

  1. Submit a bounded scan
  2. Warehouse returns normalized results
  3. Build with a coverage recipe
03

Both paths → reviewed publication

Source references and SHA-256 preserve identity; ICRS and actual HEALPix orders preserve spatial meaning. Scan completion does not publish coverage.

  1. Review the product version
  2. Explicitly select for publication
  3. Incremental upload and integrity checks
  4. Confirm website activation
  5. Public directory and Sky Atlas

Review binds to a specific version. Publication completes after website verification. A full release archive is for export or restore, not required for each product publication.

IMMUTABLE ARCHIVES

Published versions

VERSIONED · CHECKSUMMED · PUBLIC

…

INTEGRATION

FAQ and API sync

FAQ

How can my frontend use a published Resource Package?
const catalogUrl = new URL("/api/v1/resource-packages/catalog.json", assetsBase);
const response = await fetch(catalogUrl);
if (!response.ok) throw new Error(`Catalog HTTP ${response.status}`);
const { packages } = await response.json();
// Select a package, then retain its id, version, sha256 and sizeBytes.
const entry = packages.find(p => p.id === selectedPackageId);
if (!entry) throw new Error("Package is not in this catalog");
const downloadUrl = new URL(entry.archiveUrl, catalogUrl);
// Download and verify the ZIP before parsing or displaying it.

API sync

Download version-pinned packages and verify their bytes. A collection ZIP is available only when the selected release declares one:

BASE="http://astro.assets.dev.72602.space:32080"

# List available versions; select a package and retain its hash.
curl -fsS "$BASE/api/v1/resource-packages/catalog.json" -o catalog.json
python3 -c 'import json; d=json.load(open("catalog.json")); print(*[(p["id"],p["version"],p["sha256"]) for p in d["packages"]], sep="\n")'

# Set these from the SAME catalog entry. Never mix versions and hashes.
PKG="<package-id>"; VER="<version>"; SHA="<sha256>"
curl -fL "$BASE/api/v1/resource-packages/$PKG/versions/$VER/download" -o "$PKG-$VER.zip"
echo "$SHA  $PKG-$VER.zip" | sha256sum -c -

# A historical release has a collection download only if its JSON
# includes a collection entry. Incremental publication need not create one.

Ready-to-run clients with retry, atomic rename and hash verification: asa_package_sync.py AsaPackageSync.java pom.xml