From f017cfc2a91dd94aec09da6b9231e62346ac743e Mon Sep 17 00:00:00 2001 From: Rufus Knight Date: Wed, 31 Jan 2024 16:59:46 -0500 Subject: [PATCH 1/2] Adding appId --- README.md | 5 +++++ src/UserALEWebExtension/background.js | 2 ++ src/UserALEWebExtension/content.js | 1 + src/getInitialSettings.js | 7 +++++++ src/packageLogs.js | 3 +++ 5 files changed, 18 insertions(+) diff --git a/README.md b/README.md index ae4e83ee..acef868a 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ Then, you can use the `userale.start()` API export to begin logging at the appro const changeMe = "me"; userale.options({ "userId": changeMe, + "appId": changeMe, "autostart": false, "url": "http://localhost:8000/", "version": "next", @@ -132,6 +133,7 @@ The complete list of configurable parameters that can be configured via `userale | transmitInterval | Delay between transmit checks | 5000 (ms) | | logCountThreshold | Minimum number of logs to send | 5 | | userId | User identifier | null | +| appId | Application identifier | null (but required) | | sessionID | Session identifier | null | | version | Application version identifier | null | | logDetails | Toggle detailed logs (keys pressed and input/change values) | false | @@ -147,6 +149,7 @@ If you have included UserALE.js as a `script-tag` in your project, you can use H src="./node_modules/flagon-userale/build/userale-2.4.0.min.js" data-url="http://localhost:8000/" data-user="example-user" + data-appId="sample-app" data-version="2.4.0" data-tool="Apache UserALE.js Example" > @@ -161,6 +164,7 @@ You have access to the same parameters listed above, however, naming conventions | data-interval | Delay between transmit checks | 5000 (ms) | | data-threshold | Minimum number of logs to send | 5 | | data-user | User identifier | null | +| data-appId | Application identifier | null (but is required) | | data-version | Application version identifier | null | | data-log-details | Toggle detailed logs (keys pressed and input/change values) | false | | data-resolution | Delay between instances of high frequency logs (mouseover, scroll, etc.) | 500 (ms) | @@ -249,6 +253,7 @@ document.addEventListener('change', function(e) { customField1: 'foo', customField2: 'bar', userId: userale.options().userId, + appId: userale.options().appId, toolVersion: userale.options().version, toolName: userale.options().toolName, useraleVersion: userale.options().useraleVersion, diff --git a/src/UserALEWebExtension/background.js b/src/UserALEWebExtension/background.js index 60ebf2ea..db881005 100644 --- a/src/UserALEWebExtension/background.js +++ b/src/UserALEWebExtension/background.js @@ -42,6 +42,7 @@ var config = { version: null, resolution: 500, time: timeStampScale({}), + appId: "browser-plugin", on: true, }; var sessionId = 'session_' + Date.now(); @@ -95,6 +96,7 @@ function packageBrowserLog(type, logDetail) { 'userAction' : true, 'details' : logDetail, 'userId' : globals.toolUser, + 'appId': "browser-plugin", 'toolVersion': null, 'toolName': null, 'useraleVersion': null, diff --git a/src/UserALEWebExtension/content.js b/src/UserALEWebExtension/content.js index 7ede7a6c..70a34923 100644 --- a/src/UserALEWebExtension/content.js +++ b/src/UserALEWebExtension/content.js @@ -42,6 +42,7 @@ function storeCallback(item) { injectScript({ url: item.userAleHost, userId: item.toolUser, + appId: "browser-plugin", sessionID: item.sessionId, toolName: item.toolName, toolVersion: item.toolVersion diff --git a/src/getInitialSettings.js b/src/getInitialSettings.js index 174c6424..d87b7b8e 100644 --- a/src/getInitialSettings.js +++ b/src/getInitialSettings.js @@ -37,6 +37,7 @@ export function getInitialSettings() { const get = script ? script.getAttribute.bind(script) : function () { return null; }; + settings.autostart = get('data-autostart') === 'false' ? false : true; settings.url = get('data-url') || 'http://localhost:8000'; settings.transmitInterval = +get('data-interval') || 5000; @@ -51,6 +52,12 @@ export function getInitialSettings() { settings.sessionID = get('data-session') || sessionId; settings.authHeader = get('data-auth') || null; settings.custIndex = get('data-index') || null; + settings.appId = get('data-appId') || null; + + if (settings.appId === null || settings.appId === "") { + throw "Please set the application id (appId) in the script tag before use."; + } + return settings; } diff --git a/src/packageLogs.js b/src/packageLogs.js index db287d17..36747cf8 100644 --- a/src/packageLogs.js +++ b/src/packageLogs.js @@ -140,6 +140,7 @@ export function packageLog(e, detailFcn) { 'userAction' : true, 'details' : details, 'userId' : config.userId, + 'appId': config.appId, 'toolVersion' : config.version, 'toolName' : config.toolName, 'useraleVersion': config.useraleVersion, @@ -195,6 +196,7 @@ export function packageCustomLog(customLog, detailFcn, userAction) { 'userAction' : userAction, 'details' : details, 'userId' : config.userId, + 'appId': config.appId, 'toolVersion' : config.version, 'toolName' : config.toolName, 'useraleVersion': config.useraleVersion, @@ -279,6 +281,7 @@ export function packageIntervalLog(e) { 'typeChange': intervalType !== type, 'userAction': false, 'userId': config.userId, + 'appId': config.appId, 'toolVersion': config.version, 'toolName': config.toolName, 'useraleVersion': config.useraleVersion, From 5f46bec74b33408be56dd6e69ba718270ded05c3 Mon Sep 17 00:00:00 2001 From: Rufus Knight Date: Mon, 12 Feb 2024 13:38:26 -0500 Subject: [PATCH 2/2] Removed appId and now using toolName --- README.md | 10 +++------- src/UserALEWebExtension/background.js | 5 ++--- src/UserALEWebExtension/content.js | 1 - src/UserALEWebExtension/globals.js | 2 +- src/getInitialSettings.js | 5 ++--- src/packageLogs.js | 3 --- 6 files changed, 8 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index acef868a..cb56d6cb 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,6 @@ Then, you can use the `userale.start()` API export to begin logging at the appro const changeMe = "me"; userale.options({ "userId": changeMe, - "appId": changeMe, "autostart": false, "url": "http://localhost:8000/", "version": "next", @@ -133,13 +132,12 @@ The complete list of configurable parameters that can be configured via `userale | transmitInterval | Delay between transmit checks | 5000 (ms) | | logCountThreshold | Minimum number of logs to send | 5 | | userId | User identifier | null | -| appId | Application identifier | null (but required) | | sessionID | Session identifier | null | | version | Application version identifier | null | | logDetails | Toggle detailed logs (keys pressed and input/change values) | false | | resolution | Delay between instances of high frequency logs (mouseover, scroll, etc.) | 500 (ms) | | userFromParams | Query param in the page URL to fetch userId from | null | -| toolName | Name of tool being logged | null | +| toolName | Name of tool being logged | null (but required) | | authHeader | Authorization header to be passed to logging endpoint | null | If you have included UserALE.js as a `script-tag` in your project, you can use HTML data parameters to pass configuration options to the library through the script tag. For example: @@ -149,7 +147,7 @@ If you have included UserALE.js as a `script-tag` in your project, you can use H src="./node_modules/flagon-userale/build/userale-2.4.0.min.js" data-url="http://localhost:8000/" data-user="example-user" - data-appId="sample-app" + data-toolName="sample-app" data-version="2.4.0" data-tool="Apache UserALE.js Example" > @@ -164,12 +162,11 @@ You have access to the same parameters listed above, however, naming conventions | data-interval | Delay between transmit checks | 5000 (ms) | | data-threshold | Minimum number of logs to send | 5 | | data-user | User identifier | null | -| data-appId | Application identifier | null (but is required) | | data-version | Application version identifier | null | | data-log-details | Toggle detailed logs (keys pressed and input/change values) | false | | data-resolution | Delay between instances of high frequency logs (mouseover, scroll, etc.) | 500 (ms) | | data-user-from-params | Query param in the page URL to fetch userId from | null | -| data-tool | Name of tool being logged | null | +| data-toolName | Name of tool being logged | null (but is required) | | data-auth | Authorization header to be passed to logging endpoint | null | If you are using our [WebExtension](https://github.com/apache/flagon-useralejs/tree/master/src/UserALEWebExtension), @@ -253,7 +250,6 @@ document.addEventListener('change', function(e) { customField1: 'foo', customField2: 'bar', userId: userale.options().userId, - appId: userale.options().appId, toolVersion: userale.options().version, toolName: userale.options().toolName, useraleVersion: userale.options().useraleVersion, diff --git a/src/UserALEWebExtension/background.js b/src/UserALEWebExtension/background.js index db881005..2ed8432d 100644 --- a/src/UserALEWebExtension/background.js +++ b/src/UserALEWebExtension/background.js @@ -42,7 +42,7 @@ var config = { version: null, resolution: 500, time: timeStampScale({}), - appId: "browser-plugin", + toolName: "browser-plugin", on: true, }; var sessionId = 'session_' + Date.now(); @@ -96,9 +96,8 @@ function packageBrowserLog(type, logDetail) { 'userAction' : true, 'details' : logDetail, 'userId' : globals.toolUser, - 'appId': "browser-plugin", 'toolVersion': null, - 'toolName': null, + 'toolName': "browser-plugin", 'useraleVersion': null, 'sessionID': sessionId, }); diff --git a/src/UserALEWebExtension/content.js b/src/UserALEWebExtension/content.js index 70a34923..7ede7a6c 100644 --- a/src/UserALEWebExtension/content.js +++ b/src/UserALEWebExtension/content.js @@ -42,7 +42,6 @@ function storeCallback(item) { injectScript({ url: item.userAleHost, userId: item.toolUser, - appId: "browser-plugin", sessionID: item.sessionId, toolName: item.toolName, toolVersion: item.toolVersion diff --git a/src/UserALEWebExtension/globals.js b/src/UserALEWebExtension/globals.js index bda0d7fc..9325d3f4 100644 --- a/src/UserALEWebExtension/globals.js +++ b/src/UserALEWebExtension/globals.js @@ -21,7 +21,7 @@ export var userAleHost = 'http://localhost:8000'; export var userAleScript = 'userale-2.4.0.min.js'; export var toolUser = 'nobody'; -export var toolName = 'test_app'; +export var toolName = 'browser-plugin'; export var toolVersion = '2.4.0'; /* eslint-enable */ diff --git a/src/getInitialSettings.js b/src/getInitialSettings.js index d87b7b8e..5535158a 100644 --- a/src/getInitialSettings.js +++ b/src/getInitialSettings.js @@ -52,10 +52,9 @@ export function getInitialSettings() { settings.sessionID = get('data-session') || sessionId; settings.authHeader = get('data-auth') || null; settings.custIndex = get('data-index') || null; - settings.appId = get('data-appId') || null; - if (settings.appId === null || settings.appId === "") { - throw "Please set the application id (appId) in the script tag before use."; + if (settings.toolName === null || settings.toolName === "") { + throw "Please set the tool name before use."; } return settings; diff --git a/src/packageLogs.js b/src/packageLogs.js index 36747cf8..db287d17 100644 --- a/src/packageLogs.js +++ b/src/packageLogs.js @@ -140,7 +140,6 @@ export function packageLog(e, detailFcn) { 'userAction' : true, 'details' : details, 'userId' : config.userId, - 'appId': config.appId, 'toolVersion' : config.version, 'toolName' : config.toolName, 'useraleVersion': config.useraleVersion, @@ -196,7 +195,6 @@ export function packageCustomLog(customLog, detailFcn, userAction) { 'userAction' : userAction, 'details' : details, 'userId' : config.userId, - 'appId': config.appId, 'toolVersion' : config.version, 'toolName' : config.toolName, 'useraleVersion': config.useraleVersion, @@ -281,7 +279,6 @@ export function packageIntervalLog(e) { 'typeChange': intervalType !== type, 'userAction': false, 'userId': config.userId, - 'appId': config.appId, 'toolVersion': config.version, 'toolName': config.toolName, 'useraleVersion': config.useraleVersion,