diff --git a/api/chalicelib/core/assist.py b/api/chalicelib/core/assist.py index 1603ee6f0..6d30f3a58 100644 --- a/api/chalicelib/core/assist.py +++ b/api/chalicelib/core/assist.py @@ -7,6 +7,7 @@ from starlette.exceptions import HTTPException from os import access, R_OK ASSIST_KEY = config("ASSIST_KEY", default=config("S3_KEY")) +ASSIST_URL = config("ASSIST_URL") % ASSIST_KEY SESSION_PROJECTION_COLS = """s.project_id, s.session_id::text AS session_id, s.user_uuid, @@ -48,7 +49,7 @@ def get_live_sessions_ws(project_id, body: schemas.LiveSessionsSearchPayloadSche def __get_live_sessions_ws(project_id, data): project_key = projects.get_project_key(project_id) try: - connected_peers = requests.post(config("ASSIST_URL") + config("assist") % ASSIST_KEY + f"/{project_key}", + connected_peers = requests.post(ASSIST_URL + config("assist") + f"/{project_key}", json=data, timeout=config("assistTimeout", cast=int, default=5)) if connected_peers.status_code != 200: print("!! issue with the peer-server") @@ -79,9 +80,8 @@ def __get_live_sessions_ws(project_id, data): def get_live_session_by_id(project_id, session_id): project_key = projects.get_project_key(project_id) try: - connected_peers = requests.get( - config("ASSIST_URL") + config("assist") % ASSIST_KEY + f"/{project_key}/{session_id}", - timeout=config("assistTimeout", cast=int, default=5)) + connected_peers = requests.get(ASSIST_URL + config("assist") + f"/{project_key}/{session_id}", + timeout=config("assistTimeout", cast=int, default=5)) if connected_peers.status_code != 200: print("!! issue with the peer-server") print(connected_peers.text) @@ -109,9 +109,8 @@ def is_live(project_id, session_id, project_key=None): if project_key is None: project_key = projects.get_project_key(project_id) try: - connected_peers = requests.get( - config("ASSIST_URL") + config("assistList") % ASSIST_KEY + f"/{project_key}/{session_id}", - timeout=config("assistTimeout", cast=int, default=5)) + connected_peers = requests.get(ASSIST_URL + config("assistList") + f"/{project_key}/{session_id}", + timeout=config("assistTimeout", cast=int, default=5)) if connected_peers.status_code != 200: print("!! issue with the peer-server") print(connected_peers.text) @@ -139,7 +138,7 @@ def autocomplete(project_id, q: str, key: str = None): params["key"] = key try: results = requests.get( - config("ASSIST_URL") + config("assistList") % ASSIST_KEY + f"/{project_key}/autocomplete", + ASSIST_URL + config("assistList") + f"/{project_key}/autocomplete", params=params, timeout=config("assistTimeout", cast=int, default=5)) if results.status_code != 200: print("!! issue with the peer-server") diff --git a/api/chalicelib/core/sourcemaps_parser.py b/api/chalicelib/core/sourcemaps_parser.py index a6c2a92cc..72e5b8483 100644 --- a/api/chalicelib/core/sourcemaps_parser.py +++ b/api/chalicelib/core/sourcemaps_parser.py @@ -2,6 +2,14 @@ import requests from decouple import config +SMR_URL = config("sourcemaps_reader") + +if '%s' in SMR_URL: + if config("SMR_KEY", default=None) is not None: + SMR_URL = SMR_URL % config("SMR_KEY") + else: + SMR_URL = SMR_URL % "smr" + def get_original_trace(key, positions): payload = { @@ -16,8 +24,7 @@ def get_original_trace(key, positions): if len(config('S3_HOST', default="")) > 0: payload["S3_HOST"] = config('S3_HOST') try: - r = requests.post(config("sourcemaps_reader"), json=payload, - timeout=config("sourcemapTimeout", cast=int, default=5)) + r = requests.post(SMR_URL, json=payload, timeout=config("sourcemapTimeout", cast=int, default=5)) if r.status_code != 200: print(f"Issue getting sourcemap status_code:{r.status_code}") return None diff --git a/api/env.default b/api/env.default index 563514d1c..b40d2918b 100644 --- a/api/env.default +++ b/api/env.default @@ -26,9 +26,9 @@ jwt_algorithm=HS512 jwt_exp_delta_seconds=2592000 jwt_issuer=openreplay-default-foss jwt_secret="SET A RANDOM STRING HERE" -ASSIST_URL=http://assist-openreplay.app.svc.cluster.local:9001 -assist=/assist/%s/sockets-live -assistList=/assist/%s/sockets-list +ASSIST_URL=http://assist-openreplay.app.svc.cluster.local:9001/assist/%s +assist=/sockets-live +assistList=/sockets-list pg_dbname=postgres pg_host=postgresql.db.svc.cluster.local pg_password=asayerPostgres @@ -45,7 +45,7 @@ sentryURL= sessions_bucket=mobs sessions_region=us-east-1 sourcemaps_bucket=sourcemaps -sourcemaps_reader=http://127.0.0.1:9000/sourcemaps +sourcemaps_reader=http://127.0.0.1:9000/sourcemaps/%s stage=default-foss version_number=1.4.0 FS_DIR=/mnt/efs \ No newline at end of file diff --git a/ee/api/env.default b/ee/api/env.default index c7678be2f..2341dfc9c 100644 --- a/ee/api/env.default +++ b/ee/api/env.default @@ -37,9 +37,9 @@ jwt_algorithm=HS512 jwt_exp_delta_seconds=2592000 jwt_issuer=openreplay-default-ee jwt_secret="SET A RANDOM STRING HERE" -ASSIST_URL=http://assist-openreplay.app.svc.cluster.local:9001 -assist=/assist/%s/sockets-live -assistList=/assist/%s/sockets-list +ASSIST_URL=http://assist-openreplay.app.svc.cluster.local:9001/assist/%s +assist=/sockets-live +assistList=/sockets-list pg_dbname=postgres pg_host=postgresql.db.svc.cluster.local pg_password=asayerPostgres @@ -56,7 +56,7 @@ sentryURL= sessions_bucket=mobs sessions_region=us-east-1 sourcemaps_bucket=sourcemaps -sourcemaps_reader=http://127.0.0.1:9000/sourcemaps +sourcemaps_reader=http://127.0.0.1:9000/sourcemaps/%s stage=default-ee version_number=1.0.0 FS_DIR=/mnt/efs diff --git a/ee/utilities/server.js b/ee/utilities/server.js index f80059a00..c0664c155 100644 --- a/ee/utilities/server.js +++ b/ee/utilities/server.js @@ -10,22 +10,23 @@ if (process.env.redis === "true") { const HOST = process.env.LISTEN_HOST || '0.0.0.0'; const PORT = process.env.LISTEN_PORT || 9001; +const P_KEY = process.env.ASSIST_KEY || process.env.S3_KEY; -let debug = process.env.debug === "1" || false; -const PREFIX = process.env.prefix || `/assist` +let debug = process.env.debug === "1"; +const PREFIX = process.env.PREFIX || process.env.prefix || `/assist` if (process.env.uws !== "true") { let wsapp = express(); wsapp.use(express.json()); wsapp.use(express.urlencoded({extended: true})); wsapp.use(request_logger("[wsapp]")); - wsapp.get([PREFIX, `${PREFIX}/`], (req, res) => { + wsapp.get([PREFIX, `${PREFIX}/`, `${PREFIX}/${P_KEY}`, `${PREFIX}/${P_KEY}/`], (req, res) => { res.statusCode = 200; res.end("ok!"); } ); - wsapp.use(`/heapdump/${process.env.S3_KEY}`, dumps.router); - wsapp.use(`${PREFIX}/${process.env.S3_KEY}`, socket.wsRouter); + wsapp.use(`/heapdump/${P_KEY}`, dumps.router); + wsapp.use(`${PREFIX}/${P_KEY}`, socket.wsRouter); wsapp.enable('trust proxy'); const wsserver = wsapp.listen(PORT, HOST, () => { console.log(`WS App listening on http://${HOST}:${PORT}`); @@ -46,7 +47,8 @@ if (process.env.uws !== "true") { } uapp.get(PREFIX, healthFn); uapp.get(`${PREFIX}/`, healthFn); - uapp.get(`${PREFIX}/${process.env.S3_KEY}`, healthFn); + uapp.get(`${PREFIX}/${P_KEY}`, healthFn); + uapp.get(`${PREFIX}/${P_KEY}/`, healthFn); /* Either onAborted or simply finished request */ @@ -73,19 +75,19 @@ if (process.env.uws !== "true") { return fn(req, res); } } - uapp.get(`${PREFIX}/${process.env.S3_KEY}/sockets-list`, uWrapper(socket.handlers.socketsList)); - uapp.post(`${PREFIX}/${process.env.S3_KEY}/sockets-list`, uWrapper(socket.handlers.socketsList)); - uapp.get(`${PREFIX}/${process.env.S3_KEY}/sockets-list/:projectKey/autocomplete`, uWrapper(socket.handlers.autocomplete)); - uapp.get(`${PREFIX}/${process.env.S3_KEY}/sockets-list/:projectKey`, uWrapper(socket.handlers.socketsListByProject)); - uapp.post(`${PREFIX}/${process.env.S3_KEY}/sockets-list/:projectKey`, uWrapper(socket.handlers.socketsListByProject)); - uapp.get(`${PREFIX}/${process.env.S3_KEY}/sockets-list/:projectKey/:sessionId`, uWrapper(socket.handlers.socketsListByProject)); + uapp.get(`${PREFIX}/${P_KEY}/sockets-list`, uWrapper(socket.handlers.socketsList)); + uapp.post(`${PREFIX}/${P_KEY}/sockets-list`, uWrapper(socket.handlers.socketsList)); + uapp.get(`${PREFIX}/${P_KEY}/sockets-list/:projectKey/autocomplete`, uWrapper(socket.handlers.autocomplete)); + uapp.get(`${PREFIX}/${P_KEY}/sockets-list/:projectKey`, uWrapper(socket.handlers.socketsListByProject)); + uapp.post(`${PREFIX}/${P_KEY}/sockets-list/:projectKey`, uWrapper(socket.handlers.socketsListByProject)); + uapp.get(`${PREFIX}/${P_KEY}/sockets-list/:projectKey/:sessionId`, uWrapper(socket.handlers.socketsListByProject)); - uapp.get(`${PREFIX}/${process.env.S3_KEY}/sockets-live`, uWrapper(socket.handlers.socketsLive)); - uapp.post(`${PREFIX}/${process.env.S3_KEY}/sockets-live`, uWrapper(socket.handlers.socketsLive)); - uapp.get(`${PREFIX}/${process.env.S3_KEY}/sockets-live/:projectKey/autocomplete`, uWrapper(socket.handlers.autocomplete)); - uapp.get(`${PREFIX}/${process.env.S3_KEY}/sockets-live/:projectKey`, uWrapper(socket.handlers.socketsLiveByProject)); - uapp.post(`${PREFIX}/${process.env.S3_KEY}/sockets-live/:projectKey`, uWrapper(socket.handlers.socketsLiveByProject)); - uapp.get(`${PREFIX}/${process.env.S3_KEY}/sockets-live/:projectKey/:sessionId`, uWrapper(socket.handlers.socketsLiveByProject)); + uapp.get(`${PREFIX}/${P_KEY}/sockets-live`, uWrapper(socket.handlers.socketsLive)); + uapp.post(`${PREFIX}/${P_KEY}/sockets-live`, uWrapper(socket.handlers.socketsLive)); + uapp.get(`${PREFIX}/${P_KEY}/sockets-live/:projectKey/autocomplete`, uWrapper(socket.handlers.autocomplete)); + uapp.get(`${PREFIX}/${P_KEY}/sockets-live/:projectKey`, uWrapper(socket.handlers.socketsLiveByProject)); + uapp.post(`${PREFIX}/${P_KEY}/sockets-live/:projectKey`, uWrapper(socket.handlers.socketsLiveByProject)); + uapp.get(`${PREFIX}/${P_KEY}/sockets-live/:projectKey/:sessionId`, uWrapper(socket.handlers.socketsLiveByProject)); socket.start(uapp); diff --git a/ee/utilities/servers/websocket-cluster.js b/ee/utilities/servers/websocket-cluster.js index bc68be6aa..ab3d3ea59 100644 --- a/ee/utilities/servers/websocket-cluster.js +++ b/ee/utilities/servers/websocket-cluster.js @@ -28,7 +28,7 @@ const pubClient = createClient({url: REDIS_URL}); const subClient = pubClient.duplicate(); console.log(`Using Redis: ${REDIS_URL}`); let io; -const debug = process.env.debug === "1" || false; +const debug = process.env.debug === "1"; const createSocketIOServer = function (server, prefix) { if (process.env.uws !== "true") { diff --git a/ee/utilities/servers/websocket.js b/ee/utilities/servers/websocket.js index 11685ee78..259838fb1 100644 --- a/ee/utilities/servers/websocket.js +++ b/ee/utilities/servers/websocket.js @@ -23,7 +23,7 @@ const { const wsRouter = express.Router(); let io; -const debug = process.env.debug === "1" || false; +const debug = process.env.debug === "1"; const createSocketIOServer = function (server, prefix) { if (process.env.uws !== "true") { diff --git a/ee/utilities/utils/helper-ee.js b/ee/utilities/utils/helper-ee.js index 86997f0c4..e189135f0 100644 --- a/ee/utilities/utils/helper-ee.js +++ b/ee/utilities/utils/helper-ee.js @@ -1,5 +1,5 @@ const helper = require('./helper'); -let debug = process.env.debug === "1" || false; +let debug = process.env.debug === "1"; const getBodyFromUWSResponse = async function (res) { return new Promise(((resolve, reject) => { let buffer; diff --git a/sourcemap-reader/server.js b/sourcemap-reader/server.js index 1620bea8f..52374a2b0 100644 --- a/sourcemap-reader/server.js +++ b/sourcemap-reader/server.js @@ -5,16 +5,18 @@ const {request_logger} = require("./utils/helper"); const HOST = process.env.SR_HOST || '127.0.0.1'; const PORT = process.env.SR_PORT || 9000; +const PREFIX = process.env.PREFIX || process.env.prefix || `/sourcemaps` +const P_KEY = process.env.SMR_KEY || process.env.S3_KEY || 'smr'; const app = express(); app.use(request_logger("[SR]")); -app.get(['/'], (req, res) => { +app.get(['/', PREFIX, `${PREFIX}/`, `${PREFIX}/${P_KEY}`, `${PREFIX}/${P_KEY}/`], (req, res) => { res.statusCode = 200; res.end("ok!"); } ); -app.use('/sourcemaps', sourcemapsReaderServer); -app.use('/heapdump', dumps.router); +app.use(`${PREFIX}/${P_KEY}`, sourcemapsReaderServer); +app.use(`/heapdump/${P_KEY}`, dumps.router); const server = app.listen(PORT, HOST, () => { console.log(`SR App listening on http://${HOST}:${PORT}`); diff --git a/utilities/server.js b/utilities/server.js index 96ef8d389..e243814e0 100644 --- a/utilities/server.js +++ b/utilities/server.js @@ -3,17 +3,24 @@ const express = require('express'); const socket = require("./servers/websocket"); const {request_logger} = require("./utils/helper"); -const debug = process.env.debug === "1" || false; +const debug = process.env.debug === "1"; const HOST = process.env.LISTEN_HOST || '0.0.0.0'; const PORT = process.env.LISTEN_PORT || 9001; +const P_KEY = process.env.ASSIST_KEY || process.env.S3_KEY; +const PREFIX = process.env.PREFIX || process.env.prefix || `/assist` const wsapp = express(); wsapp.use(express.json()); wsapp.use(express.urlencoded({extended: true})); wsapp.use(request_logger("[wsapp]")); -wsapp.use(`/assist/${process.env.S3_KEY}`, socket.wsRouter); -wsapp.use(`/heapdump/${process.env.S3_KEY}`, dumps.router); +wsapp.get([PREFIX, `${PREFIX}/`, `${PREFIX}/${P_KEY}`, `${PREFIX}/${P_KEY}/`], (req, res) => { + res.statusCode = 200; + res.end("ok!"); + } +); +wsapp.use(`${PREFIX}/${P_KEY}`, socket.wsRouter); +wsapp.use(`/heapdump/${P_KEY}`, dumps.router); const wsserver = wsapp.listen(PORT, HOST, () => { console.log(`WS App listening on http://${HOST}:${PORT}`); diff --git a/utilities/servers/websocket.js b/utilities/servers/websocket.js index 351ce5be2..d93ef671a 100644 --- a/utilities/servers/websocket.js +++ b/utilities/servers/websocket.js @@ -21,7 +21,7 @@ const { const wsRouter = express.Router(); let io; -const debug = process.env.debug === "1" || false; +const debug = process.env.debug === "1"; const createSocketIOServer = function (server, prefix) { io = _io(server, {