Service Capability Discovery

The S2S specification doesn’t appear to have an API for discovering what capabilities an Actor’s server supports. As an example, I happen to know that right now Mastodon doesn’t support AP features such as relationships, so I shouldn’t offer my users an option to use those features with actors running on Mastodon. If I did, the experience for my user would be confusing (“I sent Bob an Offer activity (friend request), but Bob never responded,” when Mastodon never presented Bob with the activity).

How can I as a developer (on behalf of my users), know what features are supported for a given Actor? Manually maintaining a table of (Server, Version) => [Feature] seems inadequate, but also seems like the only option available to me right now.

How is service interoperability supposed to work in this model?

As far as I know, you have two options:

  1. Specify the features your server supports in its NodeInfo
  2. Specify feature flags in each actor object, in your own namespace (see supportsFriendRequests in this actor as an example: https://friends.grishka.me/grishka).
1 Like