diff --git a/apps/gateway/src/routes/billing.ts b/apps/gateway/src/routes/billing.ts index 058f1f7..5abce64 100644 --- a/apps/gateway/src/routes/billing.ts +++ b/apps/gateway/src/routes/billing.ts @@ -4,6 +4,7 @@ import amqp from "amqplib"; import { writePool as pool } from "../lib/db"; import { authMiddleware } from "../lib/auth"; import { writeAuditLog } from "../lib/audit"; +import { apiRateLimiter } from "../middleware/rateLimiting"; const RABBITMQ_URL = process.env.RABBITMQ_URL || "amqp://grainguard:grainguard@rabbitmq:5672/grainguard"; const STRIPE_BILLING_QUEUE = "grainguard.stripe.billing"; @@ -62,6 +63,7 @@ function parseCurrentPeriodEnd(value: unknown): number | null { billingRouter.get( "/billing/subscription", authMiddleware, + apiRateLimiter, async (req: Request, res: Response) => { const { rows } = await pool.query( `SELECT tb.stripe_customer_id, @@ -121,6 +123,7 @@ billingRouter.get( billingRouter.post( "/billing/checkout", authMiddleware, + apiRateLimiter, async (req: Request, res: Response) => { const { plan } = req.body as { plan: string }; @@ -188,6 +191,7 @@ billingRouter.post( billingRouter.post( "/billing/portal", authMiddleware, + apiRateLimiter, async (req: Request, res: Response) => { const { rows } = await pool.query( `SELECT stripe_customer_id FROM tenant_billing WHERE tenant_id = $1`, diff --git a/apps/gateway/src/services/device.ts b/apps/gateway/src/services/device.ts index 33cde3f..309f8dd 100644 --- a/apps/gateway/src/services/device.ts +++ b/apps/gateway/src/services/device.ts @@ -8,10 +8,9 @@ import fs from "fs"; 📦 Load Proto ========================================= */ -const protoPath = path.resolve( - __dirname, - "../../../../libs/proto/device.proto" -); +const protoPath = fs.existsSync("/app/libs/proto/device.proto") + ? "/app/libs/proto/device.proto" + : path.resolve(__dirname, "../../libs/proto/device.proto"); const packageDefinition = protoLoader.loadSync(protoPath, { keepCase: true, diff --git a/scripts/load-tests/performance-budget.js b/scripts/load-tests/performance-budget.js index f7aeedf..eade28e 100644 --- a/scripts/load-tests/performance-budget.js +++ b/scripts/load-tests/performance-budget.js @@ -82,7 +82,7 @@ function hasGraphqlErrors(response) { try { const errors = response.json("errors"); return Array.isArray(errors) && errors.length > 0; - } catch { + } catch (error) { return true; } }