-
-
Notifications
You must be signed in to change notification settings - Fork 85
Description
Summary
GoToSocial has developed a comprehensive interaction policy system that allows actors to specify who can interact with their posts and how. This system is now being adopted by other implementations, most notably as the foundation for FEP-044f (Mastodon-style quote posts). Adding support for GoToSocial's interaction policy vocabulary would improve Fedify's interoperability with GoToSocial and prepare the groundwork for FEP-044f support.
Problem
Currently, Fedify cannot:
- Express interaction policies on outgoing posts (who can like, reply, announce)
- Understand interaction policies on incoming posts from GoToSocial instances
- Handle the approval/rejection flow for interactions that require manual approval
- Generate or validate approval objects for authorized interactions
This limits interoperability with GoToSocial instances and will become more important as other implementations adopt these patterns (e.g., Mastodon for quote posts).
Proposed solution
Add the GoToSocial interaction policy vocabulary to Fedify:
Core vocabulary
interactionPolicyproperty for post objects- Sub-policies:
canLike,canReply,canAnnounce - Policy fields:
automaticApproval,manualApproval - Approval types:
LikeApproval,ReplyApproval,AnnounceApproval - Related properties:
interactingObject,interactionTarget,approvedBy
Implementation notes
The approval objects (LikeApproval, ReplyApproval, AnnounceApproval) can be implemented as regular ActivityStreams objects that are dereferenceable through Fedify's existing object dispatcher mechanism. No special infrastructure should be needed.
Context
GoToSocial's interaction policy specification is documented at: https://docs.gotosocial.org/en/latest/federation/interaction_policy/
This vocabulary is being extended by FEP-044f for quote posts (see #452), making it increasingly important for fediverse interoperability.
Scope
This issue covers only the GoToSocial interaction policy vocabulary itself. FEP-044f extensions (quote posts) would be handled separately in #452.
References
- GoToSocial interaction policy documentation
- GoToSocial namespace context
- Related: FEP-044f capabilities (Mastodon-style quote posts) #452 (FEP-044f quote posts)