Skip to content

GoToSocial interaction policy vocabulary #453

@dahlia

Description

@dahlia

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

  • interactionPolicy property 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

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions