From 6664dd5f890de160c811878d5b4aa638a66c1a1c Mon Sep 17 00:00:00 2001 From: Adolfo Reyna Date: Thu, 6 Feb 2025 09:57:03 -0500 Subject: [PATCH] Adding analitycs with PostHog --- index.js | 11 ++++++++++ package-lock.json | 51 ++++++++++++++++++++++++++++++++++------------- package.json | 1 + 3 files changed, 49 insertions(+), 14 deletions(-) diff --git a/index.js b/index.js index b57ead3..8e8fb38 100644 --- a/index.js +++ b/index.js @@ -13,6 +13,12 @@ const cookieParser = require('cookie-parser'); const cors = require('cors'); const Notifications = require("./notifications"); // Custom Notification Methods const webPush = require('web-push'); +const PostHog = require('posthog-node'); + +const client_logger = new PostHog.PostHog( + 'phc_2zh7SoBDi83vaa7Rz4YWTXWCjV0bOLfiqRyUo2mkf0b', + { host: 'https://us.i.posthog.com' } +) // TODO: we are probably missing a rate limiter here. @@ -86,6 +92,11 @@ DB.getDB.then((DB) => { } req.profileInfo = { _id: profile_id } if (!userInfo) return res.redirect('/login'); + // Log Reuquest + client_logger.capture({ + distinctId: user_sid, + event: 'server@'+req.url, + }) next(); } else { return res.redirect('/login'); diff --git a/package-lock.json b/package-lock.json index 1e71b74..4f42a6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,7 @@ "mongodb": "^3.6.3", "nodemailer": "^6.6.3", "object-hash": "^3.0.0", + "posthog-node": "^4.4.1", "socket.io": "^4.6.1", "stripe": "^8.178.0", "web-push": "^3.4.5" @@ -161,11 +162,12 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", - "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -706,15 +708,16 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -1301,6 +1304,18 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "node_modules/posthog-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.4.1.tgz", + "integrity": "sha512-o9G9sSvwWITrfSJgIUrPLJd//AYPGJNu5D+pSLxqiBvhUeicc/i639FvU0DPr1OsHiLDE2zHNMmLpa0mw4kBCg==", + "license": "MIT", + "dependencies": { + "axios": "^1.7.4" + }, + "engines": { + "node": ">=15.0.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -1864,11 +1879,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", - "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -2282,9 +2297,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" }, "form-data": { "version": "4.0.0", @@ -2701,6 +2716,14 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "posthog-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.4.1.tgz", + "integrity": "sha512-o9G9sSvwWITrfSJgIUrPLJd//AYPGJNu5D+pSLxqiBvhUeicc/i639FvU0DPr1OsHiLDE2zHNMmLpa0mw4kBCg==", + "requires": { + "axios": "^1.7.4" + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", diff --git a/package.json b/package.json index d5a22d5..9c4ee5a 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "mongodb": "^3.6.3", "nodemailer": "^6.6.3", "object-hash": "^3.0.0", + "posthog-node": "^4.4.1", "socket.io": "^4.6.1", "stripe": "^8.178.0", "web-push": "^3.4.5"