Registered users should be saved locally inside knot/spindle instead of broadcasting to entire network. Just like how PDS handles registration.
The user might try to use a wrong Knot/Spindle, but it's on them trying to use unauthorized service.
Scenario:#
- User register to knot/spindle. They should provide web interface or xrpc api for this. All users will auto-registered to knot1/spindle1 on login.
- User create a repo and input knot host url (AppView can provide easier UI like typeahead)
- AppView assumes they are registered to that knot and try xrpc call to knot. If forbidden, notify that on UI.
If AppView needs the registration state, it can fetch that from {knot,spindle}/xrpc/com.atproto.sync.listRepos.
Implementation plan:#
- switch from jetstream to tap in knot/spindle for better backfilling
- remove the
sh.tangled.*.memberlexicons
Benefits:#
- less jetstream events knot/spindle should listen to
- single source of truth for registered users
- aligns with atproto