3.6 KiB
3.6 KiB
Federation
Protocols and standards
- ActivityPub (S2S)
- WebFinger
- HTTP Signatures.
- Outgoing requests are RSA-SHA256 signed; incoming requests must verify, including optional
(created)and(expires)components.
- Outgoing requests are RSA-SHA256 signed; incoming requests must verify, including optional
- NodeInfo
- 2.0 and 2.1.
- Webmention
- Incoming:
/webmention-hookaccepts notifications and records them for relevant timelines. - Outgoing: links in posts are tried for Webmention hooks.
- Incoming:
FEP support
ActivityPub details
Actor discovery
- Local actor IDs match
https://<domain>/<user>and the same URL is persisted as the canonical identifier. - WebFinger exposes
acct:<user>@<domain>entries using the host-meta template. /authorize_interactionand/shareendpoints are available.
Collections and endpoints
GET /<user>returns the actor document (application/ld+json) including inbox/outbox/followers/following/featured collection URLs and the actor's public key.GET /<user>/outboxexposes most recent public posts inorderedItems.GET /<user>/featuredpublishes user's pinned posts collection.GET /<user>/followersand/followingreturn empty collections unless the user enablesshow_contact_metrics, in which case only totals are shared.- Individual public objects are available via
/p/<id>, and their replies collections under/r/<id>, with optional paging. POST /<user>/inboxand/shared-inboxaccept signed JSON objects; shared inbox traffic is queued for the appropriate local recipients.
Supported activities and objects
- Inbound:
Follow,Accept,Create,Update,Delete,Announce,Like,EmojiReact,Undo(for Follow/Like/Announce), andMovecoveringNote,Question,Page,Article,Event, andVideo. - Outbound: the same set.
Createcurrently emitsNoteandQuestionobjects. - Ordered collections: outboxes present the latest entries; follower/following collections hide membership by default.
Delivery and moderation
- Outbound requests are signed over
(request-target) host digest date; inbound signatures must validate or message is dropped. Digestheaders on inbound POSTs are checked; mismatches receive HTTP 400.- Deliveries use a retry queue with parameters
queue_retry_max,queue_retry_minutes,queue_timeout, andqueue_timeout_2inserver.json. - Messages are rejected if they originate from muted or limited actors, blocked hashtags, or blocked servers.
Audience and account features
- Visibility modes include Public, Unlisted, Followers-only, and Direct (addressed only to mentioned accounts). Direct replies retain the mention list.
- Users may require follow approvals, hide follower counts, mark accounts as bots, and adjust other publishing preferences.
- Account migration emits ActivityPub
Movemessages to followers and follows the new identity when a compliantMoveis received.
Shared inbox handling
/shared-inboxreceives the same signature verification, queuing, and moderation treatment as user inboxes.
Additional documentation
- Full documentation: https://comam.es/snac-doc/
- User manual:
doc/snac.1 - Data formats:
doc/snac.5 - Administrator manual:
doc/snac.8
- User manual:
- Release history and other notes:
RELEASE_NOTES.md