From fe34b9fc92077c81f0ba746311e119314953fede Mon Sep 17 00:00:00 2001 From: Herman Snevajs Date: Wed, 2 Apr 2025 15:37:06 +0200 Subject: [PATCH] Send SSO connections for server in statistics --- server/mergin/stats/models.py | 1 + server/mergin/stats/tasks.py | 1 + server/mergin/sync/workspace.py | 5 +++++ server/mergin/tests/test_statistics.py | 2 ++ 4 files changed, 9 insertions(+) diff --git a/server/mergin/stats/models.py b/server/mergin/stats/models.py index 3c32e887..cd67d01f 100644 --- a/server/mergin/stats/models.py +++ b/server/mergin/stats/models.py @@ -24,6 +24,7 @@ class ServerCallhomeData: server_version: Optional[str] monthly_contributors: Optional[int] editors: Optional[int] + sso_connections: Optional[int] class MerginInfo(db.Model): diff --git a/server/mergin/stats/tasks.py b/server/mergin/stats/tasks.py index 9812340d..a98365db 100644 --- a/server/mergin/stats/tasks.py +++ b/server/mergin/stats/tasks.py @@ -39,6 +39,7 @@ def get_callhome_data(info: MerginInfo | None = None) -> ServerCallhomeData: server_version=current_app.config["VERSION"], monthly_contributors=current_app.ws_handler.monthly_contributors_count(), editors=current_app.ws_handler.server_editors_count(), + sso_connections=current_app.ws_handler.sso_connections_count(), ) return data diff --git a/server/mergin/sync/workspace.py b/server/mergin/sync/workspace.py index 79aef2b9..a9818003 100644 --- a/server/mergin/sync/workspace.py +++ b/server/mergin/sync/workspace.py @@ -373,3 +373,8 @@ def server_editors_count(self) -> int: .group_by(ProjectUser.user_id) .count() ) + + @staticmethod + def sso_connections_count() -> int: + """Number of SSO connections for the server""" + return 0 diff --git a/server/mergin/tests/test_statistics.py b/server/mergin/tests/test_statistics.py index a87ba08c..6f339505 100644 --- a/server/mergin/tests/test_statistics.py +++ b/server/mergin/tests/test_statistics.py @@ -63,6 +63,7 @@ def test_send_statistics(app, caplog): "server_version", "monthly_contributors", "editors", + "sso_connections", } assert data["workspaces_count"] == 1 assert data["service_uuid"] == app.config["SERVICE_ID"] @@ -72,6 +73,7 @@ def test_send_statistics(app, caplog): assert data["projects_count"] == 2 assert data["contact_email"] == "test@example.com" assert data["editors"] == 2 + assert data["sso_connections"] == 0 # repeated action does not do anything task = send_statistics.s().apply()