Deprecate the groups/communities endpoints and add an experimental configuration flag. (#12200)
parent
ef3619e61d
commit
54f674f7a9
|
@ -0,0 +1 @@
|
||||||
|
The groups/communities feature in Synapse has been deprecated.
|
|
@ -85,6 +85,20 @@ process, for example:
|
||||||
dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb
|
dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Upgrading to v1.56.0
|
||||||
|
|
||||||
|
## Groups/communities feature has been deprecated
|
||||||
|
|
||||||
|
The non-standard groups/communities feature in Synapse has been deprecated and will
|
||||||
|
be disabled by default in Synapse v1.58.0.
|
||||||
|
|
||||||
|
You can test disabling it by adding the following to your homeserver configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
experimental_features:
|
||||||
|
groups_enabled: false
|
||||||
|
```
|
||||||
|
|
||||||
# Upgrading to v1.55.0
|
# Upgrading to v1.55.0
|
||||||
|
|
||||||
## `synctl` script has been moved
|
## `synctl` script has been moved
|
||||||
|
|
|
@ -322,7 +322,8 @@ class GenericWorkerServer(HomeServer):
|
||||||
|
|
||||||
presence.register_servlets(self, resource)
|
presence.register_servlets(self, resource)
|
||||||
|
|
||||||
groups.register_servlets(self, resource)
|
if self.config.experimental.groups_enabled:
|
||||||
|
groups.register_servlets(self, resource)
|
||||||
|
|
||||||
resources.update({CLIENT_API_PREFIX: resource})
|
resources.update({CLIENT_API_PREFIX: resource})
|
||||||
|
|
||||||
|
|
|
@ -74,3 +74,6 @@ class ExperimentalConfig(Config):
|
||||||
|
|
||||||
# MSC3720 (Account status endpoint)
|
# MSC3720 (Account status endpoint)
|
||||||
self.msc3720_enabled: bool = experimental.get("msc3720_enabled", False)
|
self.msc3720_enabled: bool = experimental.get("msc3720_enabled", False)
|
||||||
|
|
||||||
|
# The deprecated groups feature.
|
||||||
|
self.groups_enabled: bool = experimental.get("groups_enabled", True)
|
||||||
|
|
|
@ -289,7 +289,7 @@ class OpenIdUserInfo(BaseFederationServlet):
|
||||||
return 200, {"sub": user_id}
|
return 200, {"sub": user_id}
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_SERVLET_GROUPS: Dict[str, Iterable[Type[BaseFederationServlet]]] = {
|
SERVLET_GROUPS: Dict[str, Iterable[Type[BaseFederationServlet]]] = {
|
||||||
"federation": FEDERATION_SERVLET_CLASSES,
|
"federation": FEDERATION_SERVLET_CLASSES,
|
||||||
"room_list": (PublicRoomList,),
|
"room_list": (PublicRoomList,),
|
||||||
"group_server": GROUP_SERVER_SERVLET_CLASSES,
|
"group_server": GROUP_SERVER_SERVLET_CLASSES,
|
||||||
|
@ -298,6 +298,10 @@ DEFAULT_SERVLET_GROUPS: Dict[str, Iterable[Type[BaseFederationServlet]]] = {
|
||||||
"openid": (OpenIdUserInfo,),
|
"openid": (OpenIdUserInfo,),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFAULT_SERVLET_GROUPS = ("federation", "room_list", "openid")
|
||||||
|
|
||||||
|
GROUP_SERVLET_GROUPS = ("group_server", "group_local", "group_attestation")
|
||||||
|
|
||||||
|
|
||||||
def register_servlets(
|
def register_servlets(
|
||||||
hs: "HomeServer",
|
hs: "HomeServer",
|
||||||
|
@ -320,16 +324,19 @@ def register_servlets(
|
||||||
Defaults to ``DEFAULT_SERVLET_GROUPS``.
|
Defaults to ``DEFAULT_SERVLET_GROUPS``.
|
||||||
"""
|
"""
|
||||||
if not servlet_groups:
|
if not servlet_groups:
|
||||||
servlet_groups = DEFAULT_SERVLET_GROUPS.keys()
|
servlet_groups = DEFAULT_SERVLET_GROUPS
|
||||||
|
# Only allow the groups servlets if the deprecated groups feature is enabled.
|
||||||
|
if hs.config.experimental.groups_enabled:
|
||||||
|
servlet_groups = servlet_groups + GROUP_SERVLET_GROUPS
|
||||||
|
|
||||||
for servlet_group in servlet_groups:
|
for servlet_group in servlet_groups:
|
||||||
# Skip unknown servlet groups.
|
# Skip unknown servlet groups.
|
||||||
if servlet_group not in DEFAULT_SERVLET_GROUPS:
|
if servlet_group not in SERVLET_GROUPS:
|
||||||
raise RuntimeError(
|
raise RuntimeError(
|
||||||
f"Attempting to register unknown federation servlet: '{servlet_group}'"
|
f"Attempting to register unknown federation servlet: '{servlet_group}'"
|
||||||
)
|
)
|
||||||
|
|
||||||
for servletclass in DEFAULT_SERVLET_GROUPS[servlet_group]:
|
for servletclass in SERVLET_GROUPS[servlet_group]:
|
||||||
# Only allow the `/timestamp_to_event` servlet if msc3030 is enabled
|
# Only allow the `/timestamp_to_event` servlet if msc3030 is enabled
|
||||||
if (
|
if (
|
||||||
servletclass == FederationTimestampLookupServlet
|
servletclass == FederationTimestampLookupServlet
|
||||||
|
|
|
@ -118,7 +118,8 @@ class ClientRestResource(JsonResource):
|
||||||
thirdparty.register_servlets(hs, client_resource)
|
thirdparty.register_servlets(hs, client_resource)
|
||||||
sendtodevice.register_servlets(hs, client_resource)
|
sendtodevice.register_servlets(hs, client_resource)
|
||||||
user_directory.register_servlets(hs, client_resource)
|
user_directory.register_servlets(hs, client_resource)
|
||||||
groups.register_servlets(hs, client_resource)
|
if hs.config.experimental.groups_enabled:
|
||||||
|
groups.register_servlets(hs, client_resource)
|
||||||
room_upgrade_rest_servlet.register_servlets(hs, client_resource)
|
room_upgrade_rest_servlet.register_servlets(hs, client_resource)
|
||||||
room_batch.register_servlets(hs, client_resource)
|
room_batch.register_servlets(hs, client_resource)
|
||||||
capabilities.register_servlets(hs, client_resource)
|
capabilities.register_servlets(hs, client_resource)
|
||||||
|
|
|
@ -293,7 +293,8 @@ def register_servlets_for_client_rest_resource(
|
||||||
ResetPasswordRestServlet(hs).register(http_server)
|
ResetPasswordRestServlet(hs).register(http_server)
|
||||||
SearchUsersRestServlet(hs).register(http_server)
|
SearchUsersRestServlet(hs).register(http_server)
|
||||||
UserRegisterServlet(hs).register(http_server)
|
UserRegisterServlet(hs).register(http_server)
|
||||||
DeleteGroupAdminRestServlet(hs).register(http_server)
|
if hs.config.experimental.groups_enabled:
|
||||||
|
DeleteGroupAdminRestServlet(hs).register(http_server)
|
||||||
AccountValidityRenewServlet(hs).register(http_server)
|
AccountValidityRenewServlet(hs).register(http_server)
|
||||||
|
|
||||||
# Load the media repo ones if we're using them. Otherwise load the servlets which
|
# Load the media repo ones if we're using them. Otherwise load the servlets which
|
||||||
|
|
Loading…
Reference in New Issue