diff --git a/changelog.d/5505.feature b/changelog.d/5505.feature new file mode 100644 index 0000000000..5c6bab2c31 --- /dev/null +++ b/changelog.d/5505.feature @@ -0,0 +1 @@ +Add support for handling pagination APIs on client reader worker. diff --git a/docs/workers.rst b/docs/workers.rst index aa4e7a120b..7b2d2db533 100644 --- a/docs/workers.rst +++ b/docs/workers.rst @@ -239,6 +239,13 @@ be routed to the same instance:: ^/_matrix/client/(r0|unstable)/register$ +Pagination requests can also be handled, but all requests with the same path +room must be routed to the same instance. Additionally, care must be taken to +ensure that the purge history admin API is not used while pagination requests +for the room are in flight:: + + ^/_matrix/client/(api/v1|r0|unstable)/rooms/.*/messages$ + ``synapse.app.user_dir`` ~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/synapse/app/client_reader.py b/synapse/app/client_reader.py index 310cdab2e4..fb82206762 100644 --- a/synapse/app/client_reader.py +++ b/synapse/app/client_reader.py @@ -52,6 +52,7 @@ from synapse.rest.client.v1.room import ( PublicRoomListRestServlet, RoomEventContextServlet, RoomMemberListRestServlet, + RoomMessageListRestServlet, RoomStateRestServlet, ) from synapse.rest.client.v1.voip import VoipRestServlet @@ -109,6 +110,7 @@ class ClientReaderServer(HomeServer): JoinedRoomMemberListRestServlet(self).register(resource) RoomStateRestServlet(self).register(resource) RoomEventContextServlet(self).register(resource) + RoomMessageListRestServlet(self).register(resource) RegisterRestServlet(self).register(resource) LoginRestServlet(self).register(resource) ThreepidRestServlet(self).register(resource)