FEP-9fde: Mechanism for servers to expose supported operations

Hello!

This is a discussion thread for the proposed FEP-9fde: Mechanism for servers to expose supported operations.
Please use this thread to discuss the proposed FEP and any potential problems
or improvements that can be addressed.

Summary

This document proposes an extension to the NodeInfo schema (FEP-f1d5) that would allow developers of Mastodon and Mastodon-like servers to unambigiously communicate the operations their servers support, and allow developers of software that interoperates with those servers to detect those features, promoting interoperability and easier adoption of new features.

(now with my FEP facilitator hat off)

@nikclayton If this proposal is mostly about the Mastodon API, shouldn’t the operations map be part of it and not NodeInfo? The primary purpose of NodeInfo is exposing server stats, and not all developers are keen to implement it.

The operations map can be added to /api/v2/instance response, that would save a HTTP request. In Lemmyverse developers will probably prefer their own equivalent of Instance API endpoint.

You also mention ActivityPub extensions, but I think any kind of capability negotiation is bad for federation and should be discouraged. Furthermore, extensions are already identified by URIs, reverse FQDN naming is not appropriate for that use case.