diff options
author | Jason Robinson <jasonr@element.io> | 2022-01-12 18:09:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-12 16:09:36 +0000 |
commit | 2560b1b6b2f74b5724253396c0e3665fa1f7968c (patch) | |
tree | fca16f002a9b0b287afab75dc7e0a35deb23087f /synapse/config/api.py | |
parent | Fix documentation of supported PostgreSQL version (#11725) (diff) | |
download | synapse-2560b1b6b2f74b5724253396c0e3665fa1f7968c.tar.xz |
Allow tracking puppeted users for MAU (#11561)
Currently when puppeting another user, the user doing the puppeting is tracked for client IPs and MAU (if configured). When tracking MAU is important, it becomes necessary to be possible to also track the client IPs and MAU of puppeted users. As an example a client that manages user creation and creation of tokens via the Synapse admin API, passing those tokens for the client to use. This PR adds optional configuration to enable tracking of puppeted users into monthly active users. The default behaviour stays the same. Signed-off-by: Jason Robinson <jasonr@matrix.org>
Diffstat (limited to 'synapse/config/api.py')
-rw-r--r-- | synapse/config/api.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/synapse/config/api.py b/synapse/config/api.py index 25538b82d5..bdbe9f0fa2 100644 --- a/synapse/config/api.py +++ b/synapse/config/api.py @@ -29,6 +29,7 @@ class ApiConfig(Config): def read_config(self, config: JsonDict, **kwargs): validate_config(_MAIN_SCHEMA, config, ()) self.room_prejoin_state = list(self._get_prejoin_state_types(config)) + self.track_puppeted_user_ips = config.get("track_puppeted_user_ips", False) def generate_config_section(cls, **kwargs) -> str: formatted_default_state_types = "\n".join( @@ -59,6 +60,12 @@ class ApiConfig(Config): # #additional_event_types: # - org.example.custom.event.type + + # If enabled, puppeted user IP's can also be tracked. By default when + # puppeting another user, the user who has created the access token + # for puppeting is tracked. If this is enabled, both requests are tracked. + # Implicitly enables MAU tracking for puppeted users. + #track_puppeted_user_ips: false """ % { "formatted_default_state_types": formatted_default_state_types } @@ -138,5 +145,8 @@ _MAIN_SCHEMA = { "properties": { "room_prejoin_state": _ROOM_PREJOIN_STATE_CONFIG_SCHEMA, "room_invite_state_types": _ROOM_INVITE_STATE_TYPES_SCHEMA, + "track_puppeted_user_ips": { + "type": "boolean", + }, }, } |