Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into rav/remove_unused_…
Browse files Browse the repository at this point in the history
…mocks
  • Loading branch information
richvdh committed Dec 2, 2020
2 parents ef27046 + 30fba62 commit 3e27c19
Show file tree
Hide file tree
Showing 103 changed files with 481 additions and 171 deletions.
72 changes: 72 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,75 @@
Synapse 1.24.0rc1 (2020-12-02)
==============================

Features
--------

- Add admin API for logging in as a user. ([\#8617](https://github.com/matrix-org/synapse/issues/8617))
- Allow specification of the SAML IdP if the metadata returns multiple IdPs. ([\#8630](https://github.com/matrix-org/synapse/issues/8630))
- Add support for re-trying generation of a localpart for OpenID Connect mapping providers. ([\#8801](https://github.com/matrix-org/synapse/issues/8801), [\#8855](https://github.com/matrix-org/synapse/issues/8855))
- Allow the `Date` header through CORS. Contributed by Nicolas Chamo. ([\#8804](https://github.com/matrix-org/synapse/issues/8804))
- Add a config option, `push.group_by_unread_count`, which controls whether unread message counts in push notifications are defined as "the number of rooms with unread messages" or "total unread messages". ([\#8820](https://github.com/matrix-org/synapse/issues/8820))
- Add `force_purge` option to delete-room admin api. ([\#8843](https://github.com/matrix-org/synapse/issues/8843))


Bugfixes
--------

- Fix a bug where appservices may be sent an excessive amount of read receipts and presence. Broke in v1.22.0. ([\#8744](https://github.com/matrix-org/synapse/issues/8744))
- Fix a bug in some federation APIs which could lead to unexpected behaviour if different parameters were set in the URI and the request body. ([\#8776](https://github.com/matrix-org/synapse/issues/8776))
- Fix a bug where synctl could spawn duplicate copies of a worker. Contributed by Waylon Cude. ([\#8798](https://github.com/matrix-org/synapse/issues/8798))
- Allow per-room profiles to be used for the server notice user. ([\#8799](https://github.com/matrix-org/synapse/issues/8799))
- Fix a bug where logging could break after a call to SIGHUP. ([\#8817](https://github.com/matrix-org/synapse/issues/8817))
- Fix `register_new_matrix_user` failing with "Bad Request" when trailing slash is included in server URL. Contributed by @angdraug. ([\#8823](https://github.com/matrix-org/synapse/issues/8823))
- Fix a minor long-standing bug in login, where we would offer the `password` login type if a custom auth provider supported it, even if password login was disabled. ([\#8835](https://github.com/matrix-org/synapse/issues/8835))
- Fix a long-standing bug which caused Synapse to require unspecified parameters during user-interactive authentication. ([\#8848](https://github.com/matrix-org/synapse/issues/8848))
- Fix a bug introduced in v1.20.0 where the user-agent and IP address reported during user registration for CAS, OpenID Connect, and SAML were of the wrong form. ([\#8784](https://github.com/matrix-org/synapse/issues/8784))


Improved Documentation
----------------------

- Clarify the usecase for a msisdn delegate. Contributed by Adrian Wannenmacher. ([\#8734](https://github.com/matrix-org/synapse/issues/8734))
- Remove extraneous comma from JSON example in User Admin API docs. ([\#8771](https://github.com/matrix-org/synapse/issues/8771))
- Update `turn-howto.md` with troubleshooting notes. ([\#8779](https://github.com/matrix-org/synapse/issues/8779))
- Fix the example on how to set the `Content-Type` header in nginx for the Client Well-Known URI. ([\#8793](https://github.com/matrix-org/synapse/issues/8793))
- Improve the documentation for the admin API to list all media in a room with respect to encrypted events. ([\#8795](https://github.com/matrix-org/synapse/issues/8795))
- Update the formatting of the `push` section of the homeserver config file to better align with the [code style guidelines](https://github.com/matrix-org/synapse/blob/develop/docs/code_style.md#configuration-file-format). ([\#8818](https://github.com/matrix-org/synapse/issues/8818))
- Improve documentation how to configure prometheus for workers. ([\#8822](https://github.com/matrix-org/synapse/issues/8822))
- Update example prometheus console. ([\#8824](https://github.com/matrix-org/synapse/issues/8824))


Deprecations and Removals
-------------------------

- Remove old `/_matrix/client/*/admin` endpoints which were deprecated since Synapse 1.20.0. ([\#8785](https://github.com/matrix-org/synapse/issues/8785))
- Disable pretty printing JSON responses for curl. Users who want pretty-printed output should use [jq](https://stedolan.github.io/jq/) in combination with curl. Contributed by @tulir. ([\#8833](https://github.com/matrix-org/synapse/issues/8833))


Internal Changes
----------------

- Simplify the way the `HomeServer` object caches its internal attributes. ([\#8565](https://github.com/matrix-org/synapse/issues/8565), [\#8851](https://github.com/matrix-org/synapse/issues/8851))
- Add an example and documentation for clock skew to the SAML2 sample configuration to allow for clock/time difference between the homserver and IdP. Contributed by @localguru. ([\#8731](https://github.com/matrix-org/synapse/issues/8731))
- Generalise `RoomMemberHandler._locally_reject_invite` to apply to more flows than just invite. ([\#8751](https://github.com/matrix-org/synapse/issues/8751))
- Generalise `RoomStore.maybe_store_room_on_invite` to handle other, non-invite membership events. ([\#8754](https://github.com/matrix-org/synapse/issues/8754))
- Refactor test utilities for injecting HTTP requests. ([\#8757](https://github.com/matrix-org/synapse/issues/8757), [\#8758](https://github.com/matrix-org/synapse/issues/8758), [\#8759](https://github.com/matrix-org/synapse/issues/8759), [\#8760](https://github.com/matrix-org/synapse/issues/8760), [\#8761](https://github.com/matrix-org/synapse/issues/8761), [\#8777](https://github.com/matrix-org/synapse/issues/8777))
- Consolidate logic between the OpenID Connect and SAML code. ([\#8765](https://github.com/matrix-org/synapse/issues/8765))
- Use `TYPE_CHECKING` instead of magic `MYPY` variable. ([\#8770](https://github.com/matrix-org/synapse/issues/8770))
- Add a commandline script to sign arbitrary json objects. ([\#8772](https://github.com/matrix-org/synapse/issues/8772))
- Minor log line improvements for the SSO mapping code used to generate Matrix IDs from SSO IDs. ([\#8773](https://github.com/matrix-org/synapse/issues/8773))
- Add additional error checking for OpenID Connect and SAML mapping providers. ([\#8774](https://github.com/matrix-org/synapse/issues/8774), [\#8800](https://github.com/matrix-org/synapse/issues/8800))
- Add type hints to HTTP abstractions. ([\#8806](https://github.com/matrix-org/synapse/issues/8806), [\#8812](https://github.com/matrix-org/synapse/issues/8812))
- Remove unnecessary function arguments and add typing to several membership replication classes. ([\#8809](https://github.com/matrix-org/synapse/issues/8809))
- Optimise the lookup for an invite from another homeserver when trying to reject it. ([\#8815](https://github.com/matrix-org/synapse/issues/8815))
- Add tests for `password_auth_provider`s. ([\#8819](https://github.com/matrix-org/synapse/issues/8819))
- Drop redundant database index on `event_json`. ([\#8845](https://github.com/matrix-org/synapse/issues/8845))
- Simplify `uk.half-shot.msc2778.login.application_service` login handler. ([\#8847](https://github.com/matrix-org/synapse/issues/8847))
- Refactor `password_auth_provider` support code. ([\#8849](https://github.com/matrix-org/synapse/issues/8849))
- Add missing `ordering` to background database updates. ([\#8850](https://github.com/matrix-org/synapse/issues/8850))
- Allow for specifying a room version when creating a room in unit tests via `RestHelper.create_room_as`. ([\#8854](https://github.com/matrix-org/synapse/issues/8854))


Synapse 1.23.0 (2020-11-18)
===========================

Expand Down
1 change: 0 additions & 1 deletion changelog.d/8565.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8617.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8630.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8731.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8734.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8744.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8751.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8754.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8757.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8758.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8759.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8760.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8761.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8765.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8770.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8771.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8772.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8773.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8774.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8776.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8777.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8779.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8784.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8785.removal

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8793.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8795.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8798.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8799.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8800.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8801.feature

This file was deleted.

1 change: 1 addition & 0 deletions changelog.d/8802.doc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix the "Event persist rate" section of the included grafana dashboard by adding missing prometheus rules.
1 change: 0 additions & 1 deletion changelog.d/8804.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8806.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8809.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8812.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8815.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8817.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8818.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8819.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8820.feature

This file was deleted.

1 change: 1 addition & 0 deletions changelog.d/8821.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Apply the `federation_ip_range_blacklist` to push and key revocation requests.
1 change: 0 additions & 1 deletion changelog.d/8822.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8823.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8824.doc

This file was deleted.

1 change: 1 addition & 0 deletions changelog.d/8827.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix bug where we might not correctly calculate the current state for rooms with multiple extremities.
1 change: 0 additions & 1 deletion changelog.d/8833.removal

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8835.bugfix

This file was deleted.

1 change: 1 addition & 0 deletions changelog.d/8837.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix a long standing bug in the register admin endpoint (`/_synapse/admin/v1/register`) when the `mac` field was not provided. The endpoint now properly returns a 400 error. Contributed by @edwargix.
1 change: 0 additions & 1 deletion changelog.d/8843.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8845.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8847.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8848.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8849.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8850.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8851.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8854.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/8855.feature

This file was deleted.

18 changes: 18 additions & 0 deletions contrib/prometheus/synapse-v2.rules
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,21 @@ groups:
labels:
type: "PDU"
expr: 'synapse_federation_transaction_queue_pending_pdus + 0'

- record: synapse_storage_events_persisted_by_source_type
expr: sum without(type, origin_type, origin_entity) (synapse_storage_events_persisted_events_sep{origin_type="remote"})
labels:
type: remote
- record: synapse_storage_events_persisted_by_source_type
expr: sum without(type, origin_type, origin_entity) (synapse_storage_events_persisted_events_sep{origin_entity="*client*",origin_type="local"})
labels:
type: local
- record: synapse_storage_events_persisted_by_source_type
expr: sum without(type, origin_type, origin_entity) (synapse_storage_events_persisted_events_sep{origin_entity!="*client*",origin_type="local"})
labels:
type: bridges
- record: synapse_storage_events_persisted_by_event_type
expr: sum without(origin_entity, origin_type) (synapse_storage_events_persisted_events_sep)
- record: synapse_storage_events_persisted_by_origin
expr: sum without(type) (synapse_storage_events_persisted_events_sep)

14 changes: 8 additions & 6 deletions docs/sample_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -642,17 +642,19 @@ acme:
# - nyc.example.com
# - syd.example.com

# Prevent federation requests from being sent to the following
# blacklist IP address CIDR ranges. If this option is not specified, or
# specified with an empty list, no ip range blacklist will be enforced.
# Prevent outgoing requests from being sent to the following blacklisted IP address
# CIDR ranges. If this option is not specified, or specified with an empty list,
# no IP range blacklist will be enforced.
#
# As of Synapse v1.4.0 this option also affects any outbound requests to identity
# servers provided by user input.
# The blacklist applies to the outbound requests for federation, identity servers,
# push servers, and for checking key validitity for third-party invite events.
#
# (0.0.0.0 and :: are always blacklisted, whether or not they are explicitly
# listed here, since they correspond to unroutable addresses.)
#
federation_ip_range_blacklist:
# This option replaces federation_ip_range_blacklist in Synapse v1.24.0.
#
ip_range_blacklist:
- '127.0.0.0/8'
- '10.0.0.0/8'
- '172.16.0.0/12'
Expand Down
2 changes: 1 addition & 1 deletion synapse/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
except ImportError:
pass

__version__ = "1.23.0"
__version__ = "1.24.0rc1"

if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
# We import here so that we don't have to install a bunch of deps when
Expand Down
1 change: 0 additions & 1 deletion synapse/app/generic_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,6 @@ def __init__(self, hs):
super().__init__(hs)
self.hs = hs
self.is_mine_id = hs.is_mine_id
self.http_client = hs.get_simple_http_client()

self._presence_enabled = hs.config.use_presence

Expand Down
40 changes: 25 additions & 15 deletions synapse/config/federation.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,22 +36,30 @@ def read_config(self, config, **kwargs):
for domain in federation_domain_whitelist:
self.federation_domain_whitelist[domain] = True

self.federation_ip_range_blacklist = config.get(
"federation_ip_range_blacklist", []
)
ip_range_blacklist = config.get("ip_range_blacklist", [])

# Attempt to create an IPSet from the given ranges
try:
self.federation_ip_range_blacklist = IPSet(
self.federation_ip_range_blacklist
)

# Always blacklist 0.0.0.0, ::
self.federation_ip_range_blacklist.update(["0.0.0.0", "::"])
self.ip_range_blacklist = IPSet(ip_range_blacklist)
except Exception as e:
raise ConfigError("Invalid range(s) provided in ip_range_blacklist: %s" % e)
# Always blacklist 0.0.0.0, ::
self.ip_range_blacklist.update(["0.0.0.0", "::"])

# The federation_ip_range_blacklist is used for backwards-compatibility
# and only applies to federation and identity servers. If it is not given,
# default to ip_range_blacklist.
federation_ip_range_blacklist = config.get(
"federation_ip_range_blacklist", ip_range_blacklist
)
try:
self.federation_ip_range_blacklist = IPSet(federation_ip_range_blacklist)
except Exception as e:
raise ConfigError(
"Invalid range(s) provided in federation_ip_range_blacklist: %s" % e
)
# Always blacklist 0.0.0.0, ::
self.federation_ip_range_blacklist.update(["0.0.0.0", "::"])

federation_metrics_domains = config.get("federation_metrics_domains") or []
validate_config(
Expand All @@ -76,17 +84,19 @@ def generate_config_section(self, config_dir_path, server_name, **kwargs):
# - nyc.example.com
# - syd.example.com

# Prevent federation requests from being sent to the following
# blacklist IP address CIDR ranges. If this option is not specified, or
# specified with an empty list, no ip range blacklist will be enforced.
# Prevent outgoing requests from being sent to the following blacklisted IP address
# CIDR ranges. If this option is not specified, or specified with an empty list,
# no IP range blacklist will be enforced.
#
# As of Synapse v1.4.0 this option also affects any outbound requests to identity
# servers provided by user input.
# The blacklist applies to the outbound requests for federation, identity servers,
# push servers, and for checking key validitity for third-party invite events.
#
# (0.0.0.0 and :: are always blacklisted, whether or not they are explicitly
# listed here, since they correspond to unroutable addresses.)
#
federation_ip_range_blacklist:
# This option replaces federation_ip_range_blacklist in Synapse v1.24.0.
#
ip_range_blacklist:
- '127.0.0.0/8'
- '10.0.0.0/8'
- '172.16.0.0/12'
Expand Down
4 changes: 2 additions & 2 deletions synapse/crypto/keyring.py
Original file line number Diff line number Diff line change
Expand Up @@ -578,7 +578,7 @@ class PerspectivesKeyFetcher(BaseV2KeyFetcher):
def __init__(self, hs):
super().__init__(hs)
self.clock = hs.get_clock()
self.client = hs.get_http_client()
self.client = hs.get_federation_http_client()
self.key_servers = self.config.key_servers

async def get_keys(self, keys_to_fetch):
Expand Down Expand Up @@ -748,7 +748,7 @@ class ServerKeyFetcher(BaseV2KeyFetcher):
def __init__(self, hs):
super().__init__(hs)
self.clock = hs.get_clock()
self.client = hs.get_http_client()
self.client = hs.get_federation_http_client()

async def get_keys(self, keys_to_fetch):
"""
Expand Down
Loading

0 comments on commit 3e27c19

Please sign in to comment.