docs: split-domain handles idea + interop constraint for the trails check
Prompted by Hollo's split-domain setup. Two parts:
- docs/ideas/split-domain-handles.md: offering split handle/server
domains to self-hosters is config-level work — Fedify's origin
option natively accepts { handleHost, webOrigin } — and handles are
permanent identity, so apex handles matter. Single-domain stays the
default (Decision #18); post-launch polish.
- Interop constraint pinned in social-federation task 6.1 and
route-federation's gating decision: the trails-to-trails NodeInfo
check must run against the actor IRI's host after WebFinger
resolution, never the handle's domain — split-domain remote
instances would otherwise be wrongly refused.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
76b468d422
commit
bf907976c4
4 changed files with 62 additions and 0 deletions
|
|
@ -71,6 +71,11 @@ activities are neither delivered to nor accepted from non-trails
|
|||
instances. (The Wanderer-interop idea would widen this allowlist —
|
||||
explicitly out of scope here.)
|
||||
|
||||
Split-domain interop: the check runs against the **actor IRI's host**
|
||||
(server domain) after WebFinger resolution, never the handle's domain —
|
||||
remote instances may run Hollo/Mastodon-style split domains. See
|
||||
`docs/ideas/split-domain-handles.md`.
|
||||
|
||||
### Decision: Sync check is a pg-boss cron, owner-driven re-fetch
|
||||
|
||||
Daily job on the *mirror-holding* instance: for each mirror whose
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@
|
|||
## 6. Outbound follow + trails-to-trails check
|
||||
|
||||
- [ ] 6.1 Update `followUser` to allow remote IRIs; before creating, fetch the remote actor object and inspect `software`/discovery endpoint
|
||||
> Split-domain interop constraint (2026-06-07): resolve the handle via WebFinger first, then run the NodeInfo/`software` check against the **actor IRI's host** (the server domain), never the handle's domain — Hollo/Mastodon-style split-domain instances (`@user@example.com` served from `social.example.com`) would otherwise be wrongly refused. See `docs/ideas/split-domain-handles.md`.
|
||||
- [ ] 6.2 Implement `/.well-known/trails-cool` endpoint on our side (publishes our software identity) so other trails instances recognize us
|
||||
- [ ] 6.3 If the discovery check fails, return 4xx with a clear "outbound federation to non-trails instances isn't supported yet" message + docs link
|
||||
- [ ] 6.4 If the check passes, write follow row with `accepted_at = NULL`, push `Follow` activity to remote inbox
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue