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.
Existing MOC
Search public coverage records in CDS MocServer.
https://alasky.cds.unistra.fr/MocServer/query- Query the CDS directory
- Select a candidate
- Download and lock source
- Validate and build MOC
Source data scan
Scan explicitly selected source files through Warehouse, then build coverage from their normalized results.
- Submit a bounded scan
- Warehouse returns normalized results
- Build with a coverage recipe
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.
- Review the product version
- Explicitly select for publication
- Incremental upload and integrity checks
- Confirm website activation
- 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
…
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.
import urllib.request, hashlib, json, os, tempfile, argparse
# Full runnable client: https://<host>/api/v1/assets/documentation-sync-example-python/download
// Full runnable client: https://<host>/api/v1/assets/documentation-sync-example-java-main/download
// Build with Maven: see documentation-sync-example-java-pom (pom.xml)
Ready-to-run clients with retry, atomic rename and hash verification: asa_package_sync.py AsaPackageSync.java pom.xml