activitypub
activitypub copied to clipboard
What is an "ActivityPub conformant Federated Server"?
The ActivityPub specification describes the following specification profile:
ActivityPub conformant Federated Server This designation applies to any implementation of the entirety of the federation protocols.
Elsewhere "federation protocol" is described in the context of the "server to server protocol" (S2S), so it seems to relate to Chapter 7 of the specification ("Server to Server Interactions").
I'm developing an AP test suite and would like to be able to determine if an implementation conforms to the Federated Server profile. Given an implementation must support the entirety of the federation protocol(s), that seems to require implementing all the S2S behaviors in Chapter 7.
Most ActivityPub servers implement a subset of the S2S behaviors. For example, most servers do not support Add
and Remove
for Collections. Does that mean they are not conformant Federated Servers?
Unless I'm mistaken, none of the behaviors in Chapter 7 are mandatory. I'm interpreting the profile definition as requiring implementation of the optional behaviors to be considered a conformant Federated Server. Otherwise, the conformance profile has no meaning since a server could implement only a few or even none of the S2S behaviors and be conformant.
I'm assuming that wasn't the intent. Can someone provide information on what was intended and how it could be tested?
I think this is a good question. We discussed during issue triage and have the following suggestions:
-
Any conformant implementation of any of the conformance profiles must correctly handle the requirements in sections 3, 4, and 5. This is the "read-only" aspect of ActivityPub, but it's very important for conformance!
-
Conformance specifically for the "ActivityPub conformant Federated Server" may have two levels: one is fully implementing the entirety of section 7, and another is being conformant with section 7 in the parts that are implemented. So, for your example of a server that does not handle the
Add
orRemove
activity types, it would be partially conformant if it properly handles all the other activity types.
I realize this doesn't give a boolean yes/no value on conformance, but conformance doesn't always work that way. 🤷
@steve-bate I agree the conformance requirements are pretty strong, especially for the AP API client!
Also, it doesn't seem like we have a good reference for managing Activity types that aren't handled by the server. If a server receives the Add
activity type, and does not handle it, what's the best way to tell the sending server?
Also, it doesn't seem like we have a good reference for managing Activity types that aren't handled by the server. If a server receives the
Add
activity type, and does not handle it, what's the best way to tell the sending server?
I don't know if it's the best way, but one possibility is to respond with an HTTP 501 "Not Implemented" status code.
On the conformance question, let's say an AP test suite is created and the W3C/SocialCG decides to start awarding conformance "badges" ("This site is ActivityPub S2S Compliant") to conforming implementations. I understand your previous response is that there may be degrees of conformance. Then the question becomes, how small of a subset of AP S2S must be implemented to qualify for the hypothetical conformance badge?