summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2023-05-09 22:02:36 +0300
committerGitHub <noreply@github.com>2023-05-09 15:02:36 -0400
commit86d541f37c1bc9197a6f561b31f3aa359740b4bd (patch)
treec5ffe070e1933f8ff0bb202ec1b9ee2ab6f36c1c /synapse
parentHTTP Replication Client (#15470) (diff)
downloadsynapse-86d541f37c1bc9197a6f561b31f3aa359740b4bd.tar.xz
Stabilize MSC2659 support for AS ping endpoint. (#15528)
Diffstat (limited to 'synapse')
-rw-r--r--synapse/api/errors.py8
-rw-r--r--synapse/appservice/api.py2
-rw-r--r--synapse/config/experimental.py3
-rw-r--r--synapse/rest/client/appservice_ping.py10
-rw-r--r--synapse/rest/client/versions.py2
5 files changed, 10 insertions, 15 deletions
diff --git a/synapse/api/errors.py b/synapse/api/errors.py
index f2d6f9ab2d..8c7c94b045 100644
--- a/synapse/api/errors.py
+++ b/synapse/api/errors.py
@@ -108,10 +108,10 @@ class Codes(str, Enum):
 
     USER_AWAITING_APPROVAL = "ORG.MATRIX.MSC3866_USER_AWAITING_APPROVAL"
 
-    AS_PING_URL_NOT_SET = "FI.MAU.MSC2659_URL_NOT_SET"
-    AS_PING_BAD_STATUS = "FI.MAU.MSC2659_BAD_STATUS"
-    AS_PING_CONNECTION_TIMEOUT = "FI.MAU.MSC2659_CONNECTION_TIMEOUT"
-    AS_PING_CONNECTION_FAILED = "FI.MAU.MSC2659_CONNECTION_FAILED"
+    AS_PING_URL_NOT_SET = "M_URL_NOT_SET"
+    AS_PING_BAD_STATUS = "M_BAD_STATUS"
+    AS_PING_CONNECTION_TIMEOUT = "M_CONNECTION_TIMEOUT"
+    AS_PING_CONNECTION_FAILED = "M_CONNECTION_FAILED"
 
     # Attempt to send a second annotation with the same event type & annotation key
     # MSC2677
diff --git a/synapse/appservice/api.py b/synapse/appservice/api.py
index 024098e9cb..5fb3d5083d 100644
--- a/synapse/appservice/api.py
+++ b/synapse/appservice/api.py
@@ -326,7 +326,7 @@ class ApplicationServiceApi(SimpleHttpClient):
         assert service.hs_token is not None
 
         await self.post_json_get_json(
-            uri=f"{service.url}{APP_SERVICE_UNSTABLE_PREFIX}/fi.mau.msc2659/ping",
+            uri=f"{service.url}{APP_SERVICE_PREFIX}/ping",
             post_json={"transaction_id": txn_id},
             headers={"Authorization": [f"Bearer {service.hs_token}"]},
         )
diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py
index 7af6dbcd09..6e453bd963 100644
--- a/synapse/config/experimental.py
+++ b/synapse/config/experimental.py
@@ -189,9 +189,6 @@ class ExperimentalConfig(Config):
         # MSC3967: Do not require UIA when first uploading cross signing keys
         self.msc3967_enabled = experimental.get("msc3967_enabled", False)
 
-        # MSC2659: Application service ping endpoint
-        self.msc2659_enabled = experimental.get("msc2659_enabled", False)
-
         # MSC3981: Recurse relations
         self.msc3981_recurse_relations = experimental.get(
             "msc3981_recurse_relations", False
diff --git a/synapse/rest/client/appservice_ping.py b/synapse/rest/client/appservice_ping.py
index 31466a4ad4..3f553d14d1 100644
--- a/synapse/rest/client/appservice_ping.py
+++ b/synapse/rest/client/appservice_ping.py
@@ -39,9 +39,8 @@ logger = logging.getLogger(__name__)
 
 class AppservicePingRestServlet(RestServlet):
     PATTERNS = client_patterns(
-        "/fi.mau.msc2659/appservice/(?P<appservice_id>[^/]*)/ping",
-        unstable=True,
-        releases=(),
+        "/appservice/(?P<appservice_id>[^/]*)/ping",
+        releases=("v1",),
     )
 
     def __init__(self, hs: "HomeServer"):
@@ -107,9 +106,8 @@ class AppservicePingRestServlet(RestServlet):
 
         duration = time.monotonic() - start
 
-        return HTTPStatus.OK, {"duration": int(duration * 1000)}
+        return HTTPStatus.OK, {"duration_ms": int(duration * 1000)}
 
 
 def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
-    if hs.config.experimental.msc2659_enabled:
-        AppservicePingRestServlet(hs).register(http_server)
+    AppservicePingRestServlet(hs).register(http_server)
diff --git a/synapse/rest/client/versions.py b/synapse/rest/client/versions.py
index 59aed66464..5c98916ec2 100644
--- a/synapse/rest/client/versions.py
+++ b/synapse/rest/client/versions.py
@@ -111,7 +111,7 @@ class VersionsRestServlet(RestServlet):
                     # Allows moderators to fetch redacted event content as described in MSC2815
                     "fi.mau.msc2815": self.config.experimental.msc2815_enabled,
                     # Adds a ping endpoint for appservices to check HS->AS connection
-                    "fi.mau.msc2659": self.config.experimental.msc2659_enabled,
+                    "fi.mau.msc2659.stable": True,  # TODO: remove when "v1.7" is added above
                     # Adds support for login token requests as per MSC3882
                     "org.matrix.msc3882": self.config.experimental.msc3882_enabled,
                     # Adds support for remotely enabling/disabling pushers, as per MSC3881