diff --git a/apps/server/package.json b/apps/server/package.json index 48a1dae2d..0ec2b6e1e 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -10,6 +10,7 @@ "test": "vitest run" }, "dependencies": { + "@hono/sentry": "^1.0.0", "@hono/zod-openapi": "0.7.1", "@openstatus/db": "workspace:*", "@openstatus/notification-emails": "workspace:*", @@ -24,7 +25,7 @@ }, "devDependencies": { "@openstatus/tsconfig": "workspace:*", - "vitest": "0.34.6", - "dotenv": "16.3.1" + "dotenv": "16.3.1", + "vitest": "0.34.6" } } diff --git a/apps/server/src/index.ts b/apps/server/src/index.ts index 4063b8b2a..6da53a2a1 100644 --- a/apps/server/src/index.ts +++ b/apps/server/src/index.ts @@ -1,3 +1,4 @@ +import { sentry } from "@hono/sentry"; import { Hono } from "hono"; import { checkerRoute } from "./checker"; @@ -7,6 +8,7 @@ import { api } from "./v1"; import { VercelIngest } from "./vercel"; const app = new Hono(); +app.use("*", sentry({ dsn: process.env.SENTRY_DSN })); /** * Vercel Integration diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 67bb0212f..5743abace 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -78,6 +78,9 @@ importers: apps/server: dependencies: + '@hono/sentry': + specifier: ^1.0.0 + version: 1.0.0(hono@3.7.6) '@hono/zod-openapi': specifier: 0.7.1 version: 0.7.1(hono@3.7.6)(zod@3.22.2) @@ -2193,6 +2196,15 @@ packages: tailwindcss: 3.3.2 dev: false + /@hono/sentry@1.0.0(hono@3.7.6): + resolution: {integrity: sha512-GbPxgpGuasM2zRCSaA77MPWu4KDcuk/EMf7JJykjCvnOTbjmtr7FovNxsvg7xlXCIjZDgLmqBaoJMi3AxbeIAA==} + peerDependencies: + hono: 3.* + dependencies: + hono: 3.7.6 + toucan-js: 3.3.0 + dev: false + /@hono/zod-openapi@0.7.1(hono@3.7.6)(zod@3.22.2): resolution: {integrity: sha512-zs6AURALRF0A1gkuY5iKmRBT7d0JsLC3xVPDjBdRbJqNV3XQv4i2kprZTRAcI9AjjGApTsZbLZv1pZRCB2viwQ==} engines: {node: '>=16.0.0'} @@ -4655,6 +4667,15 @@ packages: - supports-color dev: false + /@sentry/core@7.70.0: + resolution: {integrity: sha512-voUsGVM+jwRp99AQYFnRvr7sVd2tUhIMj1L6F42LtD3vp7t5ZnKp3NpXagtFW2vWzXESfyJUBhM0qI/bFvn7ZA==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.70.0 + '@sentry/utils': 7.70.0 + tslib: 2.6.2 + dev: false + /@sentry/core@7.73.0: resolution: {integrity: sha512-9FEz4Gq848LOgVN2OxJGYuQqxv7cIVw69VlAzWHEm3njt8mjvlTq+7UiFsGRo84+59V2FQuHxzA7vVjl90WfSg==} engines: {node: '>=8'} @@ -4664,6 +4685,16 @@ packages: tslib: 2.6.2 dev: false + /@sentry/integrations@7.70.0: + resolution: {integrity: sha512-ffIEuiElROzl4IpYX0O7vtPaadXVycPtyjq86YTHjd2TUFcYuQTPBm5UjEVE0/sSNNCdfWYxNThU/fVyq93l1g==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.70.0 + '@sentry/utils': 7.70.0 + localforage: 1.10.0 + tslib: 2.6.2 + dev: false + /@sentry/integrations@7.73.0: resolution: {integrity: sha512-IjVpn4d+aSL9L1Ntu/oAdRwujz4BzzavDsZf96Xgc/AjBnjAEUT+wT1dAwluThfuKDXmWOJHhZ2cHHMfqI+7vw==} engines: {node: '>=8'} @@ -4745,11 +4776,24 @@ packages: '@sentry/utils': 7.73.0 dev: false + /@sentry/types@7.70.0: + resolution: {integrity: sha512-rY4DqpiDBtXSk4MDNBH3dwWqfPbNBI/9GA7Y5WJSIcObBtfBKp0fzYliHJZD0pgM7d4DPFrDn42K9Iiumgymkw==} + engines: {node: '>=8'} + dev: false + /@sentry/types@7.73.0: resolution: {integrity: sha512-/v8++bly8jW7r4cP2wswYiiVpn7eLLcqwnfPUMeCQze4zj3F3nTRIKc9BGHzU0V+fhHa3RwRC2ksqTGq1oJMDg==} engines: {node: '>=8'} dev: false + /@sentry/utils@7.70.0: + resolution: {integrity: sha512-0cChMH0lsGp+5I3D4wOHWwjFN19HVrGUs7iWTLTO5St3EaVbdeLbI1vFXHxMxvopbwgpeZafbreHw/loIdZKpw==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.70.0 + tslib: 2.6.2 + dev: false + /@sentry/utils@7.73.0: resolution: {integrity: sha512-h3ZK/qpf4k76FhJV9uiSbvMz3V/0Ovy94C+5/9UgPMVCJXFmVsdw8n/dwANJ7LupVPfYP23xFGgebDMFlK1/2w==} engines: {node: '>=8'} @@ -14552,6 +14596,15 @@ packages: resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} dev: false + /toucan-js@3.3.0: + resolution: {integrity: sha512-G3RZpX0SiLXq62UkQQyKuZKkB6yKrnp73Y97lh+cBt/fQLoj9YXJJ5IZ8YZ1Dq5nxGpSale+xpuGfUd4QLKcXA==} + dependencies: + '@sentry/core': 7.70.0 + '@sentry/integrations': 7.70.0 + '@sentry/types': 7.70.0 + '@sentry/utils': 7.70.0 + dev: false + /tough-cookie@4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'}