id: web-launch title: Checkers run by somebody else pass against the live deployment status: open crates: [didbot-serve] dependsOn: [deploy] exitCriterion: > Every checker named here has been run against the live deployment by its public name, and each probe either passes or is recorded in docs/conformance.md with the reason its result is accepted. #
web-launch #
Some conformance checks only work once the server is on the public internet.
The checker runs on somebody else's machine, or in a browser tab on somebody
else's origin, and reaches this server the way a stranger would. On
*.localhost there is nothing for it to reach.
docs/conformance.md records what runs in-process and
what goat checks against a local server. This epic is the other half: public
tools, pointed at pds.did.bot, with a record of what each one said.
What makes a check launch-only #
-
Public DNS. The checker asks resolvers this project does not run. pdscheck asks Cloudflare over DNS-over-HTTPS. bsky-debug checks that public resolvers agree with the authoritative answer.
-
A publicly trusted certificate.
infra/pds/'sacme_environmentdefaults tostaging. A staging certificate fails every checker here the same way no certificate does, andinfra/site/'spds_serves_a_production_certificatemoves with it: that variable is what puts the PDS hosts inside did.bot's HSTS header, which a browser then refuses to click through. -
Cross-origin requests. A checker that runs in the browser fetches from its own origin. Each probe passes only if the response carries
Access-Control-Allow-Origin. -
Third parties that crawl. A relay reports a host as active only after it has crawled it.
pdscheck.dev #
A static page that runs its probes in the viewer's browser. Its source is at
tangled.org/chaosgreml.in/pdscheck, and its probe list is one array in that
source. It takes a PDS URL, a handle or a DID. A URL input skips every probe
that needs an account, so a full run is three runs.
The two PLC history probes report skip for a did:web. That is their pass.
bsky-debug.app/handle #
Bluesky's handle debugger. It takes a handle and checks two methods. By DNS:
the _atproto.<handle> TXT record exists, is authoritative, holds a valid DID,
and public resolvers agree. By HTTP: https://<handle>/.well-known/atproto-did
returns 200 and a DID. A handle passes if either method passes.
The rest of the family #
Each of these reaches the server from outside, and each needs its own run and its own record.