From 1e421cb912a9bc8dc564b814984bcdad4a597ada Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:51:13 +0200 Subject: [feature] Distribute + ingest Accepts to followers (#3404) --- docs/federation/posts.md | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'docs/federation') diff --git a/docs/federation/posts.md b/docs/federation/posts.md index 1330476a9..c599587a7 100644 --- a/docs/federation/posts.md +++ b/docs/federation/posts.md @@ -569,6 +569,7 @@ For example, the following json object `Reject`s the attempt of `@someone@somewh ```json { + "@context": "https://www.w3.org/ns/activitystreams", "actor": "https://example.org/users/post_author", "to": "https://somewhere.else.example.org/users/someone", "id": "https://example.org/users/post_author/activities/reject/01J0K2YXP9QCT5BE1JWQSAM3B6", @@ -591,7 +592,12 @@ For example, the following json object `Accept`s the attempt of `@someone@somewh ```json { + "@context": "https://www.w3.org/ns/activitystreams", "actor": "https://example.org/users/post_author", + "cc": [ + "https://www.w3.org/ns/activitystreams#Public", + "https://example.org/users/post_author/followers" + ], "to": "https://somewhere.else.example.org/users/someone", "id": "https://example.org/users/post_author/activities/reject/01J0K2YXP9QCT5BE1JWQSAM3B6", "object": "https://somewhere.else.example.org/users/someone/statuses/01J17XY2VXGMNNPH1XR7BG2524", @@ -601,6 +607,9 @@ For example, the following json object `Accept`s the attempt of `@someone@somewh If this happens, `@someone@somewhere.else.example.org` (and their instance) should consider the interaction as having been approved / accepted. The instance can then feel free to distribute the interaction `Activity` to all of the recipients targed by `to`, `cc`, etc, with the additional property `approvedBy` ([see below](#approvedby)). +!!! Note + In the above example, actor `https://example.org/users/post_author` addresses the `Accept` activity not just to the interacting actor `https://somewhere.else.example.org/users/someone`, but to their followers collection as well (and, implicitly, to the public). This allows followers of `https://example.org/users/post_author` on other servers to also mark the interaction as accepted, and to show the interaction alongside the interacted-with post. + ### Validating presence in a Followers / Following collection If an `Actor` interacting with an `Object` (via `Like`, `inReplyTo`, or `Announce`) is permitted to do that interaction based on their presence in a `Followers` or `Following` collection in the `always` field of an interaction policy, then their server should *still* wait for an `Accept` to be received from the server of the target account, before distributing the interaction more widely with the `approvedBy` property set to the URI of the `Accept`. -- cgit v1.2.3