From 5725712d477e41761aa89a79edd77d613c36a30a Mon Sep 17 00:00:00 2001 From: MomentQYC <62551256+MomentQYC@users.noreply.github.com> Date: Mon, 2 Oct 2023 21:07:53 +0800 Subject: [PATCH] Remove Python version from `/_synapse/admin/v1/server_version` (#16380) There's no reason to expose the full Python version over what is frequently a public API. --- changelog.d/16380.removal | 1 + docs/admin_api/version_api.md | 10 ++++++---- synapse/rest/admin/__init__.py | 6 +----- tests/rest/admin/test_admin.py | 4 +--- 4 files changed, 9 insertions(+), 12 deletions(-) create mode 100644 changelog.d/16380.removal diff --git a/changelog.d/16380.removal b/changelog.d/16380.removal new file mode 100644 index 0000000000..6e9372134d --- /dev/null +++ b/changelog.d/16380.removal @@ -0,0 +1 @@ +Remove Python version from `/_synapse/admin/v1/server_version`. \ No newline at end of file diff --git a/docs/admin_api/version_api.md b/docs/admin_api/version_api.md index 27977de0d3..bdc37d9119 100644 --- a/docs/admin_api/version_api.md +++ b/docs/admin_api/version_api.md @@ -1,7 +1,7 @@ # Version API -This API returns the running Synapse version and the Python version -on which Synapse is being run. This is useful when a Synapse instance +This API returns the running Synapse version. +This is useful when a Synapse instance is behind a proxy that does not forward the 'Server' header (which also contains Synapse version information). @@ -15,7 +15,9 @@ It returns a JSON body like the following: ```json { - "server_version": "0.99.2rc1 (b=develop, abcdef123)", - "python_version": "3.7.8" + "server_version": "0.99.2rc1 (b=develop, abcdef123)" } ``` + +*Changed in Synapse 1.94.0:* The `python_version` key was removed from the +response body. diff --git a/synapse/rest/admin/__init__.py b/synapse/rest/admin/__init__.py index 7d0b4b55a0..e42dade246 100644 --- a/synapse/rest/admin/__init__.py +++ b/synapse/rest/admin/__init__.py @@ -16,7 +16,6 @@ # limitations under the License. import logging -import platform from http import HTTPStatus from typing import TYPE_CHECKING, Optional, Tuple @@ -107,10 +106,7 @@ class VersionServlet(RestServlet): PATTERNS = admin_patterns("/server_version$") def __init__(self, hs: "HomeServer"): - self.res = { - "server_version": SYNAPSE_VERSION, - "python_version": platform.python_version(), - } + self.res = {"server_version": SYNAPSE_VERSION} def on_GET(self, request: SynapseRequest) -> Tuple[int, JsonDict]: return HTTPStatus.OK, self.res diff --git a/tests/rest/admin/test_admin.py b/tests/rest/admin/test_admin.py index 695e84357a..359d131b37 100644 --- a/tests/rest/admin/test_admin.py +++ b/tests/rest/admin/test_admin.py @@ -42,9 +42,7 @@ class VersionTestCase(unittest.HomeserverTestCase): channel = self.make_request("GET", self.url, shorthand=False) self.assertEqual(200, channel.code, msg=channel.json_body) - self.assertEqual( - {"server_version", "python_version"}, set(channel.json_body.keys()) - ) + self.assertEqual({"server_version"}, set(channel.json_body.keys())) class QuarantineMediaTestCase(unittest.HomeserverTestCase):