A CLI tool for Statically Defined PDSes — ship an atproto account & your lexicons with your wisp.place static site.

Support wisp-based Websocket firehose! #8

Merged byjp.me
targeting main from native-firehose
Merged opened by and assigned to byjp.me
targeting main from native-firehose

Relays can now subscribe to an at-SDP repo when hosting with wisp.place as a wisp supporter.

build writes the repo's event log into the site (under xrpc/_sdp/events/) and adds wisp.place's opt-in line to the _redirects block; wisp.place then serves com.atproto.sync.subscribeRepos from that log, for sites on a supporter's custom domain.

What changes for people using it:

  • at-sdp build always writes the event log (--events auto|sync|commit, --event-retention and --event-bytes tune it), and warns when the domain is <something>.wisp.place, where the firehose won't be served (only custom domains are supported)
  • a #commit over wisp's 256 KiB frame cap goes out as a #sync instead
  • a build without the private key carries the live log forward, but fails rather than quietly dropping a log it can't read
  • at-sdp check --firehose dials the site and expects exactly the frames the build made, retrying until --timeout, as wisp can take up to a minute to pick up a new opt-in
  • at-sdp notify asks relays (bsky.network & atproto.africa by default; --relay to change) to crawl the site, but only once its own dial has upgraded — bsky.network only takes 50 new hosts a day across everyone, and 16 failed dials mark a host offline, so a site that isn't enabled shouldn't cost a relay anything
Commits 0