Jump to content
AssetFlux astro.assetflux.org

shelf: astro
last sync 2026-09-18 06:14Z
74 releases on disk

Shelf · astro

Integrity ledger

Digests are taken once, at fetch time, before the artifact touches any edge. Nothing on this page is computed on demand.

Two forms are published because two audiences want them. Package managers want the base64 sha512 string that goes into a lockfile. Browsers want a sha384 subresource-integrity attribute. They describe different files, so do not mix them up.

Every entry below is distinct. If two versions ever show the same digest, that is a bug on our side and we want to hear about it — see the service policy for how to reach us.

Tarballs — sha512, lockfile form

This is the value that lands in an integrity: field. It covers the published .tgz exactly as upstream produced it.

Browser builds — sha384, SRI form

These cover the two entry points extracted from each tarball into /r/<version>/b/. Paste the value into an integrity attribute alongside crossorigin="anonymous"; the usage page has a complete snippet.

Checking by hand

# lockfile-style sha512, base64
openssl dgst -sha512 -binary astro-5.14.2.tgz | openssl base64 -A

# SRI-style sha384, base64
openssl dgst -sha384 -binary config.browser.mjs | openssl base64 -A

A mirror is a trust shortcut, and a trust shortcut you cannot audit is just a risk you moved somewhere less visible. Verify the first pull of anything that will end up in production.

What we sign, and what we do not

We record
The digest of every artifact at the moment we fetched it, plus the upstream ETag and Last-Modified we saw, in each version’s manifest.json.
We do not re-sign
If a publisher shipped provenance material inside the tarball, it is still in there untouched. We add no signature of our own and ask you to trust none.
We do not rewrite
No repacking, no dependency pinning, no patching. A digest mismatch against upstream would mean we broke something.