From 331306bfb8bd18379712672591cef2d75e4e7c6c Mon Sep 17 00:00:00 2001 From: silverpill Date: Mon, 19 May 2025 21:37:25 +0200 Subject: [PATCH] FEP-0151: Capability detection (#604) - Updated "Capability detection" section. - Improved `metadata` example. Reviewed-on: https://codeberg.org/fediverse/fep/pulls/604 Co-authored-by: silverpill Co-committed-by: silverpill --- fep/0151/fep-0151.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/fep/0151/fep-0151.md b/fep/0151/fep-0151.md index 4168f3d..9afe54a 100644 --- a/fep/0151/fep-0151.md +++ b/fep/0151/fep-0151.md @@ -27,7 +27,7 @@ Servers SHOULD implement [NodeInfo protocol version 2.1][NodeInfo]. Some information contained in the NodeInfo document might be considered sensitive by server operators. -The NodeInfo endpoint could be disabled to hide that information. Servers MUST NOT publish incorrect software metadata. +The NodeInfo endpoint could be disabled to hide that information. ### Hiding usage statistics @@ -43,11 +43,11 @@ All numeric properties in the `usage` object are optional and could be omitted t Servers MUST NOT publish incorrect usage statistics. -### When to use NodeInfo +### Capability detection -Server operators might intentionally disable NodeInfo, therefore applications SHOULD NOT rely on NodeInfo data for protocol negotiation and capability detection. +Servers SHOULD NOT rely on NodeInfo data for protocol negotiation and capability detection because server operators might intentionally disable NodeInfo. Servers MUST NOT infer capabilities from the `software` field and MUST treat `software.name` and `software.version` values as opaque strings. -Protocol-specific mechanisms could be used instead. +Protocol-specific capability discovery mechanisms could be used instead. ### `metadata` @@ -62,13 +62,15 @@ Example: ```json { - "nodeName": "My server", - "nodeDescription": "My server", - "staffAccounts": [ - "https://social.example/actors/1" - ], - "federation": { - "enabled": true + "metadata": { + "nodeName": "My server", + "nodeDescription": "My server", + "staffAccounts": [ + "https://social.example/actors/1" + ], + "federation": { + "enabled": true + } } } ```