Merge remote-tracking branch 'origin/api-v1.7.0' into dev

This commit is contained in:
Taha Yassine Kraiem 2022-07-04 18:33:17 +02:00
commit 929d1374ec
6 changed files with 69 additions and 55 deletions

View file

@ -1,5 +1,6 @@
#!/bin/bash
touch .env.override
if [[ -z "${ENV_CONFIG_OVERRIDE_PATH}" ]]; then
echo 'no env-override'
else
@ -7,7 +8,6 @@ else
if [ -f "$override" ]; then
cp $override .env.override
else
touch .env.override
echo "$override does not exist."
fi

View file

@ -1,7 +1,6 @@
const _io = require('socket.io');
const express = require('express');
const {
extractSessionInfo,
extractPeerId,
hasFilters,
isValidSession,
@ -9,6 +8,9 @@ const {
getValidAttributes,
uniqueAutocomplete
} = require('../utils/helper');
const {
extractSessionInfo
} = require('../utils/assistHelper');
const {
extractProjectKeyFromRequest,
extractSessionIdFromRequest,

View file

@ -1,7 +1,6 @@
const _io = require('socket.io');
const express = require('express');
const {
extractSessionInfo,
extractPeerId,
hasFilters,
isValidSession,
@ -9,6 +8,9 @@ const {
getValidAttributes,
uniqueAutocomplete
} = require('../utils/helper');
const {
extractSessionInfo
} = require('../utils/assistHelper');
const {
extractProjectKeyFromRequest,
extractSessionIdFromRequest,

View file

@ -1,7 +1,6 @@
const _io = require('socket.io');
const express = require('express');
const {
extractSessionInfo,
extractPeerId,
extractProjectKeyFromRequest,
extractSessionIdFromRequest,
@ -12,6 +11,9 @@ const {
getValidAttributes,
uniqueAutocomplete
} = require('../utils/helper');
const {
extractSessionInfo
} = require('../utils/assistHelper');
const wsRouter = express.Router();
const UPDATE_EVENT = "UPDATE_SESSION";
const IDENTITIES = {agent: 'agent', session: 'session'};

View file

@ -0,0 +1,59 @@
const uaParser = require('ua-parser-js');
const {geoip} = require('./geoIP');
let debug = process.env.debug === "1" || false;
const BASE_sessionInfo = {
"pageTitle": "Page",
"active": true,
"live": true,
"sessionID": "0",
"metadata": {},
"userID": "",
"userUUID": "",
"projectKey": "",
"revID": "",
"timestamp": 0,
"trackerVersion": "",
"isSnippet": true,
"userOs": "",
"userBrowser": "",
"userBrowserVersion": "",
"userDevice": "",
"userDeviceType": "",
"userCountry": "",
"projectId": 0
};
const extractSessionInfo = function (socket) {
if (socket.handshake.query.sessionInfo !== undefined) {
debug && console.log("received headers");
debug && console.log(socket.handshake.headers);
socket.handshake.query.sessionInfo = JSON.parse(socket.handshake.query.sessionInfo);
socket.handshake.query.sessionInfo = {...BASE_sessionInfo, ...socket.handshake.query.sessionInfo};
let ua = uaParser(socket.handshake.headers['user-agent']);
socket.handshake.query.sessionInfo.userOs = ua.os.name || null;
socket.handshake.query.sessionInfo.userBrowser = ua.browser.name || null;
socket.handshake.query.sessionInfo.userBrowserVersion = ua.browser.version || null;
socket.handshake.query.sessionInfo.userDevice = ua.device.model || null;
socket.handshake.query.sessionInfo.userDeviceType = ua.device.type || 'desktop';
socket.handshake.query.sessionInfo.userCountry = null;
if (geoip() !== null) {
debug && console.log(`looking for location of ${socket.handshake.headers['x-forwarded-for'] || socket.handshake.address}`);
try {
let country = geoip().country(socket.handshake.headers['x-forwarded-for'] || socket.handshake.address);
socket.handshake.query.sessionInfo.userCountry = country.country.isoCode;
} catch (e) {
debug && console.log("geoip-country failed");
debug && console.log(e);
}
}
}
}
module.exports = {
extractSessionInfo
};

View file

@ -1,5 +1,3 @@
const uaParser = require('ua-parser-js');
const {geoip} = require('./geoIP');
let PROJECT_KEY_LENGTH = parseInt(process.env.PROJECT_KEY_LENGTH) || 20;
let debug = process.env.debug === "1" || false;
const extractPeerId = (peerId) => {
@ -186,56 +184,7 @@ const uniqueAutocomplete = function (list) {
}
return _list;
}
const BASE_sessionInfo = {
"pageTitle": "Page",
"active": true,
"live": true,
"sessionID": "0",
"metadata": {},
"userID": "",
"userUUID": "",
"projectKey": "",
"revID": "",
"timestamp": 0,
"trackerVersion": "",
"isSnippet": true,
"userOs": "",
"userBrowser": "",
"userBrowserVersion": "",
"userDevice": "",
"userDeviceType": "",
"userCountry": "",
"projectId": 0
};
const extractSessionInfo = function (socket) {
if (socket.handshake.query.sessionInfo !== undefined) {
debug && console.log("received headers");
debug && console.log(socket.handshake.headers);
socket.handshake.query.sessionInfo = JSON.parse(socket.handshake.query.sessionInfo);
socket.handshake.query.sessionInfo = {...BASE_sessionInfo, ...socket.handshake.query.sessionInfo};
let ua = uaParser(socket.handshake.headers['user-agent']);
socket.handshake.query.sessionInfo.userOs = ua.os.name || null;
socket.handshake.query.sessionInfo.userBrowser = ua.browser.name || null;
socket.handshake.query.sessionInfo.userBrowserVersion = ua.browser.version || null;
socket.handshake.query.sessionInfo.userDevice = ua.device.model || null;
socket.handshake.query.sessionInfo.userDeviceType = ua.device.type || 'desktop';
socket.handshake.query.sessionInfo.userCountry = null;
if (geoip() !== null) {
debug && console.log(`looking for location of ${socket.handshake.headers['x-forwarded-for'] || socket.handshake.address}`);
try {
let country = geoip().country(socket.handshake.headers['x-forwarded-for'] || socket.handshake.address);
socket.handshake.query.sessionInfo.userCountry = country.country.isoCode;
} catch (e) {
debug && console.log("geoip-country failed");
debug && console.log(e);
}
}
}
}
module.exports = {
extractSessionInfo,
extractPeerId,
request_logger,
getValidAttributes,