mirror of
https://tangled.org/evan.jarrett.net/at-container-registry
synced 2026-08-29 04:06:58 +00:00
The namespace no longer depends on the personal PDS at jarrett.app being online. lexicons/ is compiled by Corpora into a signed AT Protocol repository and served from a Cloudflare Worker that holds no key, no state and no database. Signing happens offline; nothing at serving time signs. This is the failure that prompted it: when that PDS returned HTTP 500, OAuth logins failed with "invalid_scope: Failed to resolve requested permission set", and only for users whose Auth Server met the NSID on a cold cache — which is why it looked user-specific rather than global. lexicons/ stays the source of truth. dist/ is compiled output and is gitignored, as is any signing key, which lives outside both repositories and is needed for every publish: any record change moves the MST root and re-signs the whole repo. The README carries the cutover runbook and the distinction that is easiest to get wrong — lexicon.atcr.io is the host the Worker serves on and is created once by wrangler, while the six _lexicon.* TXT records are the authority pointers and are flipped separately. Cutover completed 2026-08-04. All six authority domains name did:web:lexicon.atcr.io. Verified by corpora verify (101 checks), goat, @atproto/lexicon-resolver returning our exact record CIDs, and a cold OAuth PAR against two unrelated Auth Servers. Two lexicons resolve for the first time: io.atcr.hold.image.getConfig and io.atcr.hold.stats.daily. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5 lines
115 B
JavaScript
5 lines
115 B
JavaScript
import { createWorker } from 'corpora/worker'
|
|
import data from './dist/data.js'
|
|
|
|
export default createWorker(data)
|