summary refs log tree commit diff
path: root/src/util
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-09-29 21:28:06 +0200
committerRory& <root@rory.gay>2025-09-29 22:08:03 +0200
commit0c3d8a792f9f17f2f28ad449cd8bc5c2a381c8d5 (patch)
treec3496223456f3af11f5ce322d36619c22f961cb1 /src/util
parentUpdate file-type (diff)
downloadserver-ts-0c3d8a792f9f17f2f28ad449cd8bc5c2a381c8d5.tar.xz
Drop @sentry/node (Sentry support) - untested and unused
Diffstat (limited to 'src/util')
-rw-r--r--src/util/config/Config.ts2
-rw-r--r--src/util/config/types/SentryConfiguration.ts27
-rw-r--r--src/util/config/types/index.ts1
-rw-r--r--src/util/util/Sentry.ts130
-rw-r--r--src/util/util/index.ts1
5 files changed, 0 insertions, 161 deletions
diff --git a/src/util/config/Config.ts b/src/util/config/Config.ts

index 56054641..1458ab4b 100644 --- a/src/util/config/Config.ts +++ b/src/util/config/Config.ts
@@ -35,7 +35,6 @@ import { RegionConfiguration, RegisterConfiguration, SecurityConfiguration, - SentryConfiguration, TemplateConfiguration, UserConfiguration, } from "../config"; @@ -56,7 +55,6 @@ export class ConfigValue { kafka: KafkaConfiguration = new KafkaConfiguration(); templates: TemplateConfiguration = new TemplateConfiguration(); metrics: MetricsConfiguration = new MetricsConfiguration(); - sentry: SentryConfiguration = new SentryConfiguration(); defaults: DefaultsConfiguration = new DefaultsConfiguration(); external: ExternalTokensConfiguration = new ExternalTokensConfiguration(); email: EmailConfiguration = new EmailConfiguration(); diff --git a/src/util/config/types/SentryConfiguration.ts b/src/util/config/types/SentryConfiguration.ts deleted file mode 100644
index 3d92c62a..00000000 --- a/src/util/config/types/SentryConfiguration.ts +++ /dev/null
@@ -1,27 +0,0 @@ -/* - Spacebar: A FOSS re-implementation and extension of the Discord.com backend. - Copyright (C) 2023 Spacebar and Spacebar Contributors - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. -*/ - -import { hostname } from "os"; - -export class SentryConfiguration { - enabled: boolean = false; - endpoint: string = - "https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6"; - traceSampleRate: number = 1.0; - environment: string = hostname(); -} diff --git a/src/util/config/types/index.ts b/src/util/config/types/index.ts
index a141bacf..cc671bfa 100644 --- a/src/util/config/types/index.ts +++ b/src/util/config/types/index.ts
@@ -34,7 +34,6 @@ export * from "./RabbitMQConfiguration"; export * from "./RegionConfiguration"; export * from "./RegisterConfiguration"; export * from "./SecurityConfiguration"; -export * from "./SentryConfiguration"; export * from "./subconfigurations"; export * from "./TemplateConfiguration"; export * from "./UsersConfiguration"; diff --git a/src/util/util/Sentry.ts b/src/util/util/Sentry.ts deleted file mode 100644
index 005b09e7..00000000 --- a/src/util/util/Sentry.ts +++ /dev/null
@@ -1,130 +0,0 @@ -/* - Spacebar: A FOSS re-implementation and extension of the Discord.com backend. - Copyright (C) 2023 Spacebar and Spacebar Contributors - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. -*/ - -import { yellow } from "picocolors"; -import { Config } from "./Config"; - -import * as Integrations from "@sentry/node"; -import express from "express"; - -// Work around for when bundle calls api/etc -let errorHandlersUsed = false; - -export const Sentry = { - /** Call BEFORE registering your routes */ - init: async (app?: express.Application) => { - const { enabled, endpoint, traceSampleRate, environment } = - Config.get().sentry; - if (!enabled) return; - - if (Integrations.getClient()) return; // we've already initialised sentry - - console.log("[Sentry] Enabling sentry..."); - - if (traceSampleRate >= 0.8) { - console.log( - `[Sentry] ${yellow( - "Your sentry trace sampling rate is >= 80%. For large loads, this may degrade performance.", - )}`, - ); - } - - const integrations = [ - Integrations.httpIntegration(), - Integrations.rewriteFramesIntegration({ - root: __dirname, - }), - Integrations.httpIntegration(), - ...Integrations.getAutoPerformanceIntegrations(), - ]; - - //deprecated in v8? unable to test - // if (app) - // integrations.push( - // Integrations.expressIntegration({ - // app, - // }), - // ); - - Integrations.init({ - dsn: endpoint, - integrations, - tracesSampleRate: traceSampleRate, // naming? - environment, - }); - - Integrations.addEventProcessor((event) => { - if (event.transaction) { - // Rewrite things that look like IDs to `:id` for sentry - event.transaction = event.transaction - .split("/") - .map((x) => (!parseInt(x) ? x : ":id")) - .join("/"); - } - - // TODO: does this even do anything? - delete event.request?.cookies; - if (event.request?.headers) { - delete event.request.headers["X-Real-Ip"]; - delete event.request.headers["X-Forwarded-For"]; - delete event.request.headers["X-Forwarded-Host"]; - delete event.request.headers["X-Super-Properties"]; - } - - if (event.breadcrumbs) { - event.breadcrumbs = event.breadcrumbs.filter((x) => { - // Filter breadcrumbs that we don't care about - if (x.message?.includes("identified as")) return false; - if (x.message?.includes("[WebSocket] closed")) return false; - if ( - x.message?.includes( - "Got Resume -> cancel not implemented", - ) - ) - return false; - if (x.message?.includes("[Gateway] New connection from")) - return false; - - return true; - }); - } - - return event; - }); - }, - - /** Call AFTER registering your routes */ - errorHandler: (app: express.Application) => { - if (!Config.get().sentry.enabled) return; - if (errorHandlersUsed) return; - errorHandlersUsed = true; - - Integrations.setupExpressErrorHandler(app); - - // The typings for this are broken? - // eslint-disable-next-line @typescript-eslint/no-explicit-any - app.use(function onError(err: any, req: any, res: any, next: any) { - res.statusCode = 500; - res.end(res.sentry + "\n"); - }); - }, - - close: () => { - Integrations.close(); - }, -}; diff --git a/src/util/util/index.ts b/src/util/util/index.ts
index 05bdcdf8..e7d8caa9 100644 --- a/src/util/util/index.ts +++ b/src/util/util/index.ts
@@ -37,7 +37,6 @@ export * from "./Permissions"; export * from "./RabbitMQ"; export * from "./Regex"; export * from "./Rights"; -export * from "./Sentry"; export * from "./Snowflake"; export * from "./Stopwatch"; export * from "./String";