mirror of
https://github.com/element-hq/synapse
synced 2024-06-28 05:43:30 +00:00
Improved wording of documentation and config option naming
This commit is contained in:
parent
89d8b32af7
commit
6b12d3ec6c
|
@ -246,8 +246,8 @@ Example configuration:
|
|||
```yaml
|
||||
presence:
|
||||
enabled: false
|
||||
sync_presence_tracking: true
|
||||
federation_presence_tracking: true
|
||||
local_activity_tracking: true
|
||||
remote_activity_tracking: true
|
||||
```
|
||||
|
||||
`enabled` can also be set to a special value of "untracked" which ignores updates
|
||||
|
@ -259,14 +259,17 @@ received via clients and federation, while still accepting updates from the
|
|||
Enabling presence tracking can be resource intensive for the presence handler when server-side
|
||||
tracking of user activity is enabled. Below are some additional configuration options which may
|
||||
help improve the performance of the presence feature without outright disabling it:
|
||||
* `sync_presence_tracking` (Default enabled): Determines if the server tracks a user's presence
|
||||
activity when syncing. If disabled, the server will not automatically update the user's presence
|
||||
activity when the sync endpoint is called. Note that client applications can still update their
|
||||
presence by calling the respective presence endpoints.
|
||||
* `federation_presence_tracking` (Default enabled): Determines if the server will accept
|
||||
presence EDUs that only contain presence activity updates. If disabled, the server will drop
|
||||
processing EDUs that do not contain updates to the `status_msg`, `displayname`, or
|
||||
`avatar_url` fields.
|
||||
* `local_activity_tracking` (Default enabled): Determines if the server tracks a user's activity
|
||||
when syncing or fetching events. If disabled, the server will not automatically update the
|
||||
user's presence activity when the /sync or /events endpoints are called. Note that client
|
||||
applications can still update their presence by calling the presence /status endpoint.
|
||||
* `remote_activity_tracking` (Default enabled): Determines if the server will accept presence
|
||||
EDUs from remote servers that are exclusively user activity updates. If disabled, the server
|
||||
will reject processing these EDUs. However if a presence EDU contains profile updates to any of
|
||||
the `status_msg`, `displayname`, or `avatar_url` fields, then the server will accept the EDU.
|
||||
|
||||
If the presence `enabled` field is set "untracked", then these options will both act as if set
|
||||
to false.
|
||||
|
||||
---
|
||||
### `require_auth_for_profile_requests`
|
||||
|
|
|
@ -385,13 +385,13 @@ class ServerConfig(Config):
|
|||
self.track_presence = self.presence_enabled and presence_enabled != "untracked"
|
||||
|
||||
# Disabling server-side presence tracking
|
||||
self.sync_presence_tracking = presence_config.get(
|
||||
"sync_presence_tracking", True
|
||||
self.presence_local_activity_tracking = presence_config.get(
|
||||
"local_activity_tracking", True
|
||||
)
|
||||
|
||||
# Disabling federation presence tracking
|
||||
self.federation_presence_tracking = presence_config.get(
|
||||
"federation_presence_tracking", True
|
||||
self.presence_remote_activity_tracking = presence_config.get(
|
||||
"remote_activity_tracking", True
|
||||
)
|
||||
|
||||
# Custom presence router module
|
||||
|
|
|
@ -1425,11 +1425,21 @@ class FederationHandlerRegistry:
|
|||
self._edu_type_to_instance[edu_type] = instance_names
|
||||
|
||||
async def on_edu(self, edu_type: str, origin: str, content: dict) -> None:
|
||||
"""Passes an EDU to a registered handler if one exists
|
||||
|
||||
This potentially modifies the `content` dict for `m.presence` EDUs when
|
||||
presence `remote_activity_tracking` is disabled.
|
||||
|
||||
Args:
|
||||
edu_type: The type of the incoming EDU to process
|
||||
origin: The server we received the event from
|
||||
content: The content of the EDU
|
||||
"""
|
||||
if not self.config.server.track_presence and edu_type == EduTypes.PRESENCE:
|
||||
return
|
||||
|
||||
if (
|
||||
not self.config.server.federation_presence_tracking
|
||||
not self.config.server.presence_remote_activity_tracking
|
||||
and edu_type == EduTypes.PRESENCE
|
||||
):
|
||||
filtered_edus = []
|
||||
|
|
|
@ -201,7 +201,9 @@ class BasePresenceHandler(abc.ABC):
|
|||
|
||||
self._presence_enabled = hs.config.server.presence_enabled
|
||||
self._track_presence = hs.config.server.track_presence
|
||||
self._sync_presence_tracking = hs.config.server.sync_presence_tracking
|
||||
self._presence_local_activity_tracking = (
|
||||
hs.config.server.presence_local_activity_tracking
|
||||
)
|
||||
|
||||
self._federation = None
|
||||
if hs.should_send_federation():
|
||||
|
@ -585,7 +587,7 @@ class WorkerPresenceHandler(BasePresenceHandler):
|
|||
if (
|
||||
not affect_presence
|
||||
or not self._track_presence
|
||||
or not self._sync_presence_tracking
|
||||
or not self._presence_local_activity_tracking
|
||||
):
|
||||
return _NullContextManager()
|
||||
|
||||
|
@ -1152,7 +1154,7 @@ class PresenceHandler(BasePresenceHandler):
|
|||
if (
|
||||
not affect_presence
|
||||
or not self._track_presence
|
||||
or not self._sync_presence_tracking
|
||||
or not self._presence_local_activity_tracking
|
||||
):
|
||||
return _NullContextManager()
|
||||
|
||||
|
|
Loading…
Reference in a new issue