Merge pull request #5505 from matrix-org/erikj/messages_worker
Support pagination API in client_reader worker
3 files changed, 10 insertions, 0 deletions
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)
|