diff --git a/apps/public-api/src/app.js b/apps/public-api/src/app.js index c4d77ae0..421daf41 100644 --- a/apps/public-api/src/app.js +++ b/apps/public-api/src/app.js @@ -2,7 +2,7 @@ const dotenv = require('dotenv'); const path = require('path'); dotenv.config({ path: path.join(__dirname, '../../../.env') }); -const {validateEnv} = require('@urbackend/common'); +const { validateEnv } = require('@urbackend/common'); if (process.env.NODE_ENV !== 'test') { validateEnv(); @@ -19,13 +19,13 @@ const { capture } = require('@kiroo/sdk'); // Initialize Queue Workers -const {emailQueue} = require('@urbackend/common'); -const {authEmailQueue} = require('@urbackend/common'); -const {initWebhookWorker} = require('@urbackend/common'); -const {initAuthEmailWorker, initPublicEmailWorker} = require('@urbackend/common'); -const {initActivityRollupWorker, scheduleActivityRollup} = require('@urbackend/common'); -const {initReliabilityAlertWorker, scheduleReliabilityAlert} = require('@urbackend/common'); -const {initTrashCleanupWorker} = require('@urbackend/common'); +const { emailQueue } = require('@urbackend/common'); +const { authEmailQueue } = require('@urbackend/common'); +const { initWebhookWorker } = require('@urbackend/common'); +const { initAuthEmailWorker, initPublicEmailWorker } = require('@urbackend/common'); +const { initActivityRollupWorker, scheduleActivityRollup } = require('@urbackend/common'); +const { initReliabilityAlertWorker, scheduleReliabilityAlert } = require('@urbackend/common'); +const { initTrashCleanupWorker } = require('@urbackend/common'); app.use('/api/mail/webhook', express.raw({ type: 'application/json' })); app.use(express.json()); @@ -41,10 +41,10 @@ if (process.env.NODE_ENV !== 'test') { } app.use(capture({ - supabaseUrl: process.env.SUPABASE_URL, - supabaseKey: process.env.SUPABASE_KEY, - bucket: process.env.SUPABASE_BUCKET, - sampleRate: 0 + supabaseUrl: process.env.SUPABASE_URL, + supabaseKey: process.env.SUPABASE_KEY, + bucket: process.env.SUPABASE_BUCKET, + sampleRate: 0 })); @@ -117,7 +117,7 @@ app.use((err, req, res, next) => { app.use((req, res) => { const id = res.get("X-Kiroo-Replay-ID"); - res.json({error: "Not Found", replayId: id}) + res.json({ error: "Not Found", replayId: id }) }) // INITIALIZATION if (process.env.NODE_ENV !== 'test') { diff --git a/apps/public-api/src/middlewares/api_usage.js b/apps/public-api/src/middlewares/api_usage.js index 45affdf9..a9ed8afa 100644 --- a/apps/public-api/src/middlewares/api_usage.js +++ b/apps/public-api/src/middlewares/api_usage.js @@ -9,17 +9,13 @@ const limiter = rateLimit({ message: { error: "Too many requests, please try again later." }, standardHeaders: true, legacyHeaders: false, - validate: { - xForwardedForHeader: false, - trustProxy: false - } }); // Logger with API analytics const logger = (req, res, next) => { // Capture start time for response time measurement const startHr = process.hrtime(); - + // Check for routes included in platform analytics if ( req.originalUrl.startsWith('/api/data') || @@ -44,7 +40,7 @@ const logger = (req, res, next) => { if (!req._dailyCountIncremented) { const day = getDayKey(); const reqCountKey = `project:usage:req:count:${req.project._id}:${day}`; - incrWithTtlAtomic(redis, reqCountKey, DEFAULT_DAILY_TTL_SECONDS).catch(() => {}); + incrWithTtlAtomic(redis, reqCountKey, DEFAULT_DAILY_TTL_SECONDS).catch(() => { }); } console.log(`📝 Logged: ${req.method} ${req.originalUrl} (${res.statusCode})`); @@ -52,12 +48,12 @@ const logger = (req, res, next) => { console.error("Logging failed:", e.message); } } - + // --- API performance analytics --- if (req.project) { const diff = process.hrtime(startHr); const responseTimeMs = (diff[0] * 1e3 + diff[1] / 1e6).toFixed(2); - + setImmediate(async () => { try { await ApiAnalytics.create({ @@ -111,7 +107,7 @@ const logger = (req, res, next) => { } }); } - + next(); }; diff --git a/package-lock.json b/package-lock.json index 76c104f7..8df804eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2909,7 +2909,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2943,7 +2942,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2977,7 +2975,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3043,7 +3040,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6876,7 +6872,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6893,7 +6888,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6910,7 +6904,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6927,7 +6920,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6944,7 +6936,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6961,7 +6952,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6978,7 +6968,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6995,7 +6984,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7012,7 +7000,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7029,7 +7016,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7046,7 +7032,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7063,7 +7048,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7080,7 +7064,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7097,7 +7080,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7114,7 +7096,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7131,7 +7112,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7148,7 +7128,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7165,7 +7144,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7182,7 +7160,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7199,7 +7176,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7216,7 +7192,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7233,7 +7208,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [