From b274d6561c1ebcc8a464caa9e899a849d5d0d813 Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Tue, 15 Jul 2025 20:25:25 +0200 Subject: [PATCH] Document that some config options for the user directory are in violation of the Matrix spec (#18548) Fix #17534 Signed-off-by: Johannes Marbach --- changelog.d/18548.doc | 1 + docs/usage/configuration/config_documentation.md | 6 +++++- schema/synapse-config.schema.yaml | 9 ++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 changelog.d/18548.doc diff --git a/changelog.d/18548.doc b/changelog.d/18548.doc new file mode 100644 index 000000000..69b073221 --- /dev/null +++ b/changelog.d/18548.doc @@ -0,0 +1 @@ +Document that some config options for the user directory are in violation of the Matrix spec. diff --git a/docs/usage/configuration/config_documentation.md b/docs/usage/configuration/config_documentation.md index 0a3adf021..6918559de 100644 --- a/docs/usage/configuration/config_documentation.md +++ b/docs/usage/configuration/config_documentation.md @@ -3808,7 +3808,11 @@ encryption_enabled_by_default_for_room_type: invite This setting has the following sub-options: -* `enabled` (boolean): Defines whether users can search the user directory. If false then empty responses are returned to all queries. Defaults to `true`. +* `enabled` (boolean): Defines whether users can search the user directory. If `false` then empty responses are returned to all queries. + + *Warning: While the homeserver may determine which subset of users are searched, the Matrix specification requires homeservers to include (at minimum) users visible in public rooms and users sharing a room with the requester. Using `false` improves performance but violates this requirement.* + + Defaults to `true`. * `search_all_users` (boolean): Defines whether to search all users visible to your homeserver at the time the search is performed. If set to true, will return all users known to the homeserver matching the search query. If false, search results will only contain users visible in public rooms and users sharing a room with the requester. diff --git a/schema/synapse-config.schema.yaml b/schema/synapse-config.schema.yaml index a2ba557fe..d9a5a9849 100644 --- a/schema/synapse-config.schema.yaml +++ b/schema/synapse-config.schema.yaml @@ -4719,8 +4719,15 @@ properties: enabled: type: boolean description: >- - Defines whether users can search the user directory. If false then + Defines whether users can search the user directory. If `false` then empty responses are returned to all queries. + + + *Warning: While the homeserver may determine which subset of users are + searched, the Matrix specification requires homeservers to include (at + minimum) users visible in public rooms and users sharing a room with + the requester. Using `false` improves performance but violates this + requirement.* default: true search_all_users: type: boolean