From 953d97fd2e0ea4f8a5bebfd75df432444ed1617b Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Wed, 25 Feb 2026 05:25:26 +0000
Subject: [PATCH] fix: Setting Status Page Analytics Type to "None" fails with
SQLite constraint violation (#7043)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: CommanderStorm <26258709+CommanderStorm@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
---
server/socket-handlers/status-page-socket-handler.js | 4 ++++
src/pages/StatusPage.vue | 6 ++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/server/socket-handlers/status-page-socket-handler.js b/server/socket-handlers/status-page-socket-handler.js
index 5d1035d1..9c6bd052 100644
--- a/server/socket-handlers/status-page-socket-handler.js
+++ b/server/socket-handlers/status-page-socket-handler.js
@@ -338,6 +338,10 @@ module.exports.statusPageSocketHandler = (socket) => {
statusPage.modified_date = R.isoDateTime();
statusPage.analytics_id = config.analyticsId;
statusPage.analytics_script_url = config.analyticsScriptUrl;
+ const validAnalyticsTypes = ["google", "umami", "plausible", "matomo"];
+ if (config.analyticsType !== null && !validAnalyticsTypes.includes(config.analyticsType)) {
+ throw new Error("Invalid analytics type");
+ }
statusPage.analytics_type = config.analyticsType;
await R.store(statusPage);
diff --git a/src/pages/StatusPage.vue b/src/pages/StatusPage.vue
index defc980b..4003b4a0 100644
--- a/src/pages/StatusPage.vue
+++ b/src/pages/StatusPage.vue
@@ -156,7 +156,7 @@
class="form-select"
data-testid="analytics-type-select"
>
-
+
@@ -688,7 +688,9 @@ export default {
enableEditMode: false,
enableEditIncidentMode: false,
hasToken: false,
- config: {},
+ config: {
+ analyticsType: null,
+ },
selectedMonitor: null,
incident: null,
previousIncident: null,