From c3c6fbabde2eca05aadecdab2b931744d608a40c Mon Sep 17 00:00:00 2001 From: Thibault Le Ouay Date: Tue, 10 Jun 2025 13:43:02 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A5=85=20=20add=20sentry=20(#1271)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🥅 add sentry * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- apps/workflows/package.json | 1 + apps/workflows/src/cron/monitor.ts | 5 +- apps/workflows/src/env.ts | 1 + apps/workflows/src/index.ts | 3 + apps/workflows/src/scripts/tinybird.ts | 6 +- apps/workflows/tsconfig.json | 3 +- pnpm-lock.yaml | 91 +++++++++----------------- 7 files changed, 43 insertions(+), 67 deletions(-) diff --git a/apps/workflows/package.json b/apps/workflows/package.json index 1679ec5c7..41f52b11a 100644 --- a/apps/workflows/package.json +++ b/apps/workflows/package.json @@ -7,6 +7,7 @@ }, "dependencies": { "@google-cloud/tasks": "4.0.1", + "@hono/sentry": "1.2.0", "@openstatus/db": "workspace:*", "@openstatus/emails": "workspace:*", "@openstatus/notification-discord": "workspace:*", diff --git a/apps/workflows/src/cron/monitor.ts b/apps/workflows/src/cron/monitor.ts index 0e0bc1c8a..ece126195 100644 --- a/apps/workflows/src/cron/monitor.ts +++ b/apps/workflows/src/cron/monitor.ts @@ -8,7 +8,6 @@ import { isNull, lte, max, - ne, or, schema, } from "@openstatus/db"; @@ -288,8 +287,8 @@ export async function StepPaused(userId: number, workFlowRunTimestamp: number) { .get(); // We should only have one user :) if (!users) { - console.log(`No user found for ${userId}`); - throw new Error("Too many users found"); + console.error(`No user found for ${userId}`); + return; } await db diff --git a/apps/workflows/src/env.ts b/apps/workflows/src/env.ts index d81539770..160b68aca 100644 --- a/apps/workflows/src/env.ts +++ b/apps/workflows/src/env.ts @@ -19,5 +19,6 @@ export const env = () => SCREENSHOT_SERVICE_URL: z.string().default(""), TWILLIO_AUTH_TOKEN: z.string().default(""), TWILLIO_ACCOUNT_ID: z.string().default(""), + SENTRY_DSN: z.string().default(""), }) .parse(process.env); diff --git a/apps/workflows/src/index.ts b/apps/workflows/src/index.ts index 58b14ac0e..fc282f79a 100644 --- a/apps/workflows/src/index.ts +++ b/apps/workflows/src/index.ts @@ -1,3 +1,4 @@ +import { sentry } from "@hono/sentry"; import { Hono } from "hono"; import { showRoutes } from "hono/dev"; import { logger } from "hono/logger"; @@ -9,6 +10,8 @@ const { NODE_ENV, PORT } = env(); const app = new Hono({ strict: false }); +app.use("*", sentry({ dsn: env().SENTRY_DSN })); + app.use("/*", logger()); app.get("/", (c) => c.text("workflows", 200)); diff --git a/apps/workflows/src/scripts/tinybird.ts b/apps/workflows/src/scripts/tinybird.ts index 4493ee698..fed54814c 100644 --- a/apps/workflows/src/scripts/tinybird.ts +++ b/apps/workflows/src/scripts/tinybird.ts @@ -99,15 +99,15 @@ async function main() { const starters = await getWorkspaceIdsByPlan("starter"); const teams = await getWorkspaceIdsByPlan("team"); - const pros = await getWorkspaceIdsByPlan("pro"); + // const pros = await getWorkspaceIdsByPlan("pro"); // all other workspaces, we need to 'reverse' the deletion here to NOT include those workspaces - const rest = [...starters, ...teams, ...pros]; + const rest = [...starters, ...teams]; deleteLogs(lastTwoWeeks, rest, true); deleteLogs(lastThreeMonths, starters); deleteLogs(lastYear, teams); - deleteLogs(lastYear, pros); + // deleteLogs(lastYear, pros); } /** diff --git a/apps/workflows/tsconfig.json b/apps/workflows/tsconfig.json index b9ff712ce..b69227ef8 100644 --- a/apps/workflows/tsconfig.json +++ b/apps/workflows/tsconfig.json @@ -2,6 +2,7 @@ "extends": "@openstatus/tsconfig/base.json", "compilerOptions": { "jsx": "react-jsx", - "jsxImportSource": "hono/jsx" + "jsxImportSource": "hono/jsx", + "lib": ["ES2022"] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9293868d9..1a068440a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,7 +83,7 @@ importers: version: 0.2.1(hono@4.5.3)(zod@3.23.8) '@libsql/client': specifier: 0.14.0 - version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.5) + version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) '@openstatus/db': specifier: workspace:* version: link:../../packages/db @@ -98,7 +98,7 @@ importers: version: 2.6.2 drizzle-orm: specifier: 0.35.3 - version: 0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.5))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.7.0)(bun-types@1.2.13)(react@19.1.0) + version: 0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0)(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.7.0)(bun-types@1.2.15)(react@19.1.0) hono: specifier: 4.5.3 version: 4.5.3 @@ -211,7 +211,7 @@ importers: version: 3.9.1(react-hook-form@7.54.1(react@19.1.0)) '@libsql/client': specifier: 0.14.0 - version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.5) + version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) '@openpanel/nextjs': specifier: ^1.0.8 version: 1.0.8(next@15.2.4(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -480,6 +480,9 @@ importers: '@google-cloud/tasks': specifier: 4.0.1 version: 4.0.1(encoding@0.1.13) + '@hono/sentry': + specifier: 1.2.0 + version: 1.2.0(hono@4.5.3) '@openstatus/db': specifier: workspace:* version: link:../../packages/db @@ -537,7 +540,7 @@ importers: version: link:../../packages/tsconfig '@types/bun': specifier: latest - version: 1.2.13 + version: 1.2.15 typescript: specifier: 5.6.2 version: 5.6.2 @@ -651,10 +654,10 @@ importers: version: 0.7.0(typescript@5.6.2)(zod@3.23.8) drizzle-orm: specifier: 0.35.3 - version: 0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.13)(react@19.1.0) + version: 0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.15)(react@19.1.0) drizzle-zod: specifier: 0.5.1 - version: 0.5.1(drizzle-orm@0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.13)(react@19.1.0))(zod@3.23.8) + version: 0.5.1(drizzle-orm@0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.15)(react@19.1.0))(zod@3.23.8) zod: specifier: 3.23.8 version: 3.23.8 @@ -996,7 +999,7 @@ importers: version: 3.4.3(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2)) tsup: specifier: 7.2.0 - version: 7.2.0(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2))(typescript@5.6.2) + version: 7.2.0(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2))(typescript@5.6.2) typescript: specifier: 5.6.2 version: 5.6.2 @@ -4693,8 +4696,8 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/bun@1.2.13': - resolution: {integrity: sha512-u6vXep/i9VBxoJl3GjZsl/BFIsvML8DfVDO0RYLEwtSZSp981kEO1V5NwRcO1CPJ7AmvpbnDCiMKo3JvbDEjAg==} + '@types/bun@1.2.15': + resolution: {integrity: sha512-U1ljPdBEphF0nw1MIk0hI7kPg7dFdPyM7EenHsp6W5loNHl7zqy6JQf/RKCgnUn2KDzUpkBwHPnEJEjII594bA==} '@types/caseless@0.12.4': resolution: {integrity: sha512-2in/lrHRNmDvHPgyormtEralhPcN3An1gLjJzj2Bw145VBxkQ75JEXW6CTdMAwShiHQcYsl2d10IjQSdJSJz4g==} @@ -5309,8 +5312,8 @@ packages: bun-types@1.0.8: resolution: {integrity: sha512-2dNB+dBwAcFW7RSd4y5vKycRjouKVklSwPk4EjBKWvcMYUBOqZGGNzV7+b2tfKBG3BeRXnozbnegVKR1azuATg==} - bun-types@1.2.13: - resolution: {integrity: sha512-rRjA1T6n7wto4gxhAO/ErZEtOXyEZEmnIHQfl0Dt1QQSB4QV0iP6BZ9/YB5fZaHFQ2dwHFrmPaRQ9GGMX01k9Q==} + bun-types@1.2.15: + resolution: {integrity: sha512-NarRIaS+iOaQU1JPfyKhZm4AsUOrwUOqRNHY0XxI8GI8jYxiLXLcdjYMG9UKS+fwWasc1uw1htV9AX24dD+p4w==} bundle-require@4.0.2: resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} @@ -6924,6 +6927,7 @@ packages: libsql@0.4.5: resolution: {integrity: sha512-sorTJV6PNt94Wap27Sai5gtVLIea4Otb2LUiAUyr3p6BPOScGMKGt5F1b5X/XgkNtcsDKeX5qfeBDj+PdShclQ==} + cpu: [x64, arm64, wasm32] os: [darwin, linux, win32] lilconfig@2.1.0: @@ -7547,6 +7551,7 @@ packages: node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead node-fetch-native@1.6.6: resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} @@ -11429,17 +11434,6 @@ snapshots: - bufferutil - utf-8-validate - '@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.5)': - dependencies: - '@libsql/core': 0.14.0 - '@libsql/hrana-client': 0.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.5) - js-base64: 3.7.5 - libsql: 0.4.5 - promise-limit: 2.7.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@libsql/core@0.14.0': dependencies: js-base64: 3.7.5 @@ -11460,16 +11454,6 @@ snapshots: - bufferutil - utf-8-validate - '@libsql/hrana-client@0.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.5)': - dependencies: - '@libsql/isomorphic-fetch': 0.3.1 - '@libsql/isomorphic-ws': 0.1.5(bufferutil@4.0.8)(utf-8-validate@6.0.5) - js-base64: 3.7.5 - node-fetch: 3.3.2 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@libsql/isomorphic-fetch@0.3.1': {} '@libsql/isomorphic-ws@0.1.5(bufferutil@4.0.8)(utf-8-validate@6.0.3)': @@ -11480,14 +11464,6 @@ snapshots: - bufferutil - utf-8-validate - '@libsql/isomorphic-ws@0.1.5(bufferutil@4.0.8)(utf-8-validate@6.0.5)': - dependencies: - '@types/ws': 8.5.13 - ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.5) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@libsql/linux-arm64-gnu@0.4.5': optional: true @@ -13585,9 +13561,9 @@ snapshots: dependencies: '@babel/types': 7.26.3 - '@types/bun@1.2.13': + '@types/bun@1.2.15': dependencies: - bun-types: 1.2.13 + bun-types: 1.2.15 '@types/caseless@0.12.4': {} @@ -14402,7 +14378,7 @@ snapshots: bun-types@1.0.8: {} - bun-types@1.2.13: + bun-types@1.2.15: dependencies: '@types/node': 22.10.2 @@ -14885,7 +14861,7 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.13)(react@19.1.0): + drizzle-orm@0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.15)(react@19.1.0): dependencies: '@libsql/client-wasm': 0.14.0 optionalDependencies: @@ -14895,25 +14871,25 @@ snapshots: '@types/pg': 8.11.10 '@types/react': 19.1.0 better-sqlite3: 11.4.0 - bun-types: 1.2.13 + bun-types: 1.2.15 react: 19.1.0 - drizzle-orm@0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.5))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.7.0)(bun-types@1.2.13)(react@19.1.0): + drizzle-orm@0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0)(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.7.0)(bun-types@1.2.15)(react@19.1.0): dependencies: '@libsql/client-wasm': 0.14.0 optionalDependencies: '@cloudflare/workers-types': 4.20250303.0 - '@libsql/client': 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.5) + '@libsql/client': 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) '@opentelemetry/api': 1.9.0 '@types/pg': 8.11.10 '@types/react': 19.1.0 better-sqlite3: 11.7.0 - bun-types: 1.2.13 + bun-types: 1.2.15 react: 19.1.0 - drizzle-zod@0.5.1(drizzle-orm@0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.13)(react@19.1.0))(zod@3.23.8): + drizzle-zod@0.5.1(drizzle-orm@0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.15)(react@19.1.0))(zod@3.23.8): dependencies: - drizzle-orm: 0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.13)(react@19.1.0) + drizzle-orm: 0.35.3(@cloudflare/workers-types@4.20250303.0)(@libsql/client-wasm@0.14.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@19.1.0)(better-sqlite3@11.4.0)(bun-types@1.2.15)(react@19.1.0) zod: 3.23.8 dset@3.1.4: {} @@ -17592,12 +17568,12 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.3 - postcss-load-config@4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2)): + postcss-load-config@4.0.1(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2)): dependencies: lilconfig: 2.1.0 yaml: 2.3.3 optionalDependencies: - postcss: 8.5.3 + postcss: 8.4.38 ts-node: 10.9.2(@types/node@20.8.0)(typescript@5.6.2) postcss-load-config@4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.6.2)): @@ -19093,7 +19069,7 @@ snapshots: tslib@2.8.1: {} - tsup@7.2.0(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2))(typescript@5.6.2): + tsup@7.2.0(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2))(typescript@5.6.2): dependencies: bundle-require: 4.0.2(esbuild@0.18.20) cac: 6.7.14 @@ -19103,14 +19079,14 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2)) + postcss-load-config: 4.0.1(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.6.2)) resolve-from: 5.0.0 rollup: 3.29.4 source-map: 0.8.0-beta.0 sucrase: 3.34.0 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.3 + postcss: 8.4.38 typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -19733,11 +19709,6 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 6.0.3 - ws@8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.5): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.5 - ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@6.0.5): optionalDependencies: bufferutil: 4.0.8 -- 2.54.0