From adce8a0111a37795bc4167afb2543a8877320b6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Hirsch?= <rafal@hirsch.net>
Date: Mon, 9 Dec 2024 17:30:03 +0100
Subject: [PATCH] Reorganize account data, receipts and presence request
 regexps in generic_worker docs (#17954)

POST requests for account data, receipts and presence require the worker
to be configured as a stream writer. The regular expressions in the
default list don't assume any HTTP method, so if the worker is not a
stream writer, the request fails.

The stream writer section of the documentation lists the same regexps as
the one I'm removing, so people configuring stream writers can still
configure their routing properly.

More context:
https://github.com/element-hq/synapse/issues/17243#issuecomment-2493621645
---
 changelog.d/17954.doc |  1 +
 docs/workers.md       | 18 +++++++-----------
 2 files changed, 8 insertions(+), 11 deletions(-)
 create mode 100644 changelog.d/17954.doc

diff --git a/changelog.d/17954.doc b/changelog.d/17954.doc
new file mode 100644
index 0000000000..8986e41e58
--- /dev/null
+++ b/changelog.d/17954.doc
@@ -0,0 +1 @@
+Update `synapse.app.generic_worker` documentation to only recommend `GET` requests for stream writer routes by default, unless the worker is also configured as a stream writer. Contributed by @evoL.
diff --git a/docs/workers.md b/docs/workers.md
index 0116c455bc..6c614bd6d0 100644
--- a/docs/workers.md
+++ b/docs/workers.md
@@ -273,17 +273,6 @@ information.
     ^/_matrix/client/(api/v1|r0|v3|unstable)/knock/
     ^/_matrix/client/(api/v1|r0|v3|unstable)/profile/
 
-    # Account data requests
-    ^/_matrix/client/(r0|v3|unstable)/.*/tags
-    ^/_matrix/client/(r0|v3|unstable)/.*/account_data
-
-    # Receipts requests
-    ^/_matrix/client/(r0|v3|unstable)/rooms/.*/receipt
-    ^/_matrix/client/(r0|v3|unstable)/rooms/.*/read_markers
-
-    # Presence requests
-    ^/_matrix/client/(api/v1|r0|v3|unstable)/presence/
-
     # User directory search requests
     ^/_matrix/client/(r0|v3|unstable)/user_directory/search$
 
@@ -292,6 +281,13 @@ Additionally, the following REST endpoints can be handled for GET requests:
     ^/_matrix/client/(api/v1|r0|v3|unstable)/pushrules/
     ^/_matrix/client/unstable/org.matrix.msc4140/delayed_events
 
+    # Account data requests
+    ^/_matrix/client/(r0|v3|unstable)/.*/tags
+    ^/_matrix/client/(r0|v3|unstable)/.*/account_data
+
+    # Presence requests
+    ^/_matrix/client/(api/v1|r0|v3|unstable)/presence/
+
 Pagination requests can also be handled, but all requests for a given
 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
-- 
GitLab