6.11 Delivery Ambiguity
6.11 Delivery may not be phrased in its intended manner:
Federated servers MUST perform delivery on all Activities posted to the outbox according to outbox delivery.
I interpret it as:
Federated servers [MUST perform delivery] on all Activities posted to the outbox [and it MUST be done] according to outbox delivery.
Which puts it at odds with 6.9 Block Activity:
Servers SHOULD NOT deliver Block Activities to their object.
And at odds with 7.5 Follow Activity:
Servers MAY choose to not explicitly send a Reject in response to a Follow, though implementors ought to be aware that the server sending the request could be left in an intermediate state.
I realize there's a lot of ambiguity in that single sentence in 6.11 so for my particular implementation, I assume that 6.9 and 7.5 are meant to be exceptions to the MUST in 6.11.
Yes, they're meant to be exceptions. I guess we should think about adding this to errata @cwebber?
I can prepare a PR, we could discuss it on the next CG telecon
Whoops, I assumed we did the same thing as AS2 but I just noticed errata is on the wiki. Shall I just add it then? AFAICT we're just clarifying that requirements are relaxed which the WG has never had problems doing
Where is this errata available? When I go to https://www.w3.org/wiki/ActivityPub_errata I see only an empty page.
That's the right place to add Errata, we just haven't added any yet :)
The expected behavior is really, the server MUST deliver messages posted to outbox according to the mechanisms described in outbox delivery, but the server MAY decide to filter outgoing messages if appropriate for reasons such as abuse mitigation, etc.
That's not great wording, but I think it's the intended effect. Thoughts?
How about something like:
Federated servers intending to deliver an Activity posted to the outbox MUST deliver by using the mechanisms described in outbox delivery.
This gives the Federated server the liberty of intending to not deliver an Activity.
I've added a proposed erratum with the following text:
Section 6.11 should read, Federated servers SHOULD perform delivery on all Activities posted to the outbox according to outbox delivery. Servers MAY filter activities for privacy, abuse mitigation, or other reasons.
I believe this qualifies as an erratum because although section 6.11 uses the term MUST for this requirement, there are as @cjslep has pointed out, several reasons called out in the rest of the spec that a server might not perform delivery. Sections B.6 (Spam), B.7 (Federation denial-of-service) are also examples of where a server may not deliver activities.
I'm going to ask for the community group's input to see if this erratum makes sense for us to include.
This issue has been mentioned on SocialHub. There might be relevant details there:
https://socialhub.activitypub.rocks/t/socialcg-hybrid-meeting-during-tpac-2023/3498/2
Seems to have been resolved but this issue was never closed: https://www.w3.org/wiki/ActivityPub_errata