Skip to content

Commit

Permalink
feat: emit troubleshooting alerts (#172)
Browse files Browse the repository at this point in the history
  • Loading branch information
rentallect authored Jul 19, 2023
1 parent dbc8d7b commit 8efc745
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 9 deletions.
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,11 @@
"@auth0/auth0-spa-js": "^2.0.4",
"@azure/msal-browser": "^2.38.0",
"@babel/runtime": "^7.17.9",
"@openziti/ziti-browzer-core": "^0.25.1",
"@openziti/ziti-browzer-core": "^0.26.0",
"bowser": "^2.11.0",
"cookie-interceptor": "^1.0.0",
"core-js": "^3.22.8",
"js-base64": "^3.7.2",
"jwt-decode": "^3.1.2",
"localforage": "^1.10.0",
"lodash-es": "^4.17.21",
"uplot": "^1.6.24",
Expand Down
103 changes: 100 additions & 3 deletions src/runtime.js
Original file line number Diff line number Diff line change
Expand Up @@ -842,7 +842,83 @@ class ZitiBrowzerRuntime {

this.logger.trace(`noConfigForServiceEventHandler() `, noConfigForServiceEvent);

let errStr = `Ziti Service [${noConfigForServiceEvent.serviceName}] has no associated configs.\n\nPossible Ziti network misconfiguration exists.`;
let errStr = `Ziti Service [${noConfigForServiceEvent.serviceName}] has no associated configs.\n\nContact your Ziti Network admin.`;

alert(errStr);

}

noServiceEventHandler(noServiceEvent) {

this.logger.trace(`noServiceEventHandler() `, noServiceEvent);

var distance = function (a, b) {
var _a;
if (a.length === 0)
return b.length;
if (b.length === 0)
return a.length;
if (a.length > b.length)
_a = [b, a], a = _a[0], b = _a[1];
var row = [];
for (var i = 0; i <= a.length; i++)
row[i] = i;
for (var i = 1; i <= b.length; i++) {
var prev = i;
for (var j = 1; j <= a.length; j++) {
var val = void 0;
if (b.charAt(i - 1) === a.charAt(j - 1))
val = row[j - 1];
else
val = Math.min(row[j - 1] + 1, prev + 1, row[j] + 1);
row[j - 1] = prev;
prev = val;
}
row[a.length] = prev;
}
return row[a.length];
};

var closestMatch = function (target, array, showOccurrences) {
if (showOccurrences === void 0) { showOccurrences = false; }
if (array.length === 0)
return null;
var vals = [];
var found = [];
for (var i = 0; i < array.length; i++)
vals.push((0, distance)(target, array[i]));
var min = Math.min.apply(Math, vals);
for (var i = 0; i < vals.length; i++) {
if (vals[i] === min)
found.push(array[i]);
}
return showOccurrences ? found : found[0];
};


let cm = closestMatch(noServiceEvent.serviceName, noServiceEvent.serviceList, true);

let errStr = `Ziti Service [${noServiceEvent.serviceName}] not found in list of Services your Identity can access -- closest match [${cm}].\n\nContact your Ziti Network admin.`;

alert(errStr);

}

sessionCreationErrorEventHandler(sessionCreationErrorEvent) {

this.logger.trace(`sessionCreationErrorEventHandler() `, sessionCreationErrorEvent);

let errStr = `Ziti Service [${window.zitiBrowzerRuntime.zitiConfig.httpAgent.target.service}] cannot be reached -- [${sessionCreationErrorEvent.error}].\n\nContact your Ziti Network admin.`;

alert(errStr);

}

invalidAuthEventHandler(invalidAuthEvent) {

this.logger.trace(`invalidAuthEventHandler() `, invalidAuthEvent);

let errStr = `User [${invalidAuthEvent.email}] cannot be authenticated onto Ziti Network.\n\nContact your Ziti Network admin.`;

alert(errStr);

Expand Down Expand Up @@ -1326,8 +1402,11 @@ class ZitiBrowzerRuntime {

this.zitiContext.listControllerVersion();

this.zitiContext.on('idpAuthHealthEvent', this.idpAuthHealthEventHandler);
this.zitiContext.on('noConfigForServiceEvent', this.noConfigForServiceEventHandler);
this.zitiContext.on('idpAuthHealthEvent', this.idpAuthHealthEventHandler);
this.zitiContext.on('noConfigForServiceEvent', this.noConfigForServiceEventHandler);
this.zitiContext.on('noServiceEvent', this.noServiceEventHandler);
this.zitiContext.on('sessionCreationErrorEvent', this.sessionCreationErrorEventHandler);
this.zitiContext.on('invalidAuthEvent', this.invalidAuthEventHandler);
this.zitiContext.on(ZITI_CONSTANTS.ZITI_EVENT_XGRESS, this.xgressEventHandler);

}
Expand Down Expand Up @@ -1771,6 +1850,24 @@ if (isUndefined(window.zitiBrowzerRuntime)) {

}

else if (event.data.type === 'SESSION_CREATION_ERROR') {

window.zitiBrowzerRuntime.sessionCreationErrorEventHandler(event.data.payload.event);

}

else if (event.data.type === 'NO_SERVICE') {

window.zitiBrowzerRuntime.noServiceEventHandler(event.data.payload.event);

}

else if (event.data.type === 'INVALID_AUTH') {

window.zitiBrowzerRuntime.invalidAuthEventHandler(event.data.payload.event);

}

else if (event.data.type === 'PING') {
event.ports[0].postMessage('PONG');
}
Expand Down
9 changes: 5 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1195,10 +1195,10 @@
"@types/emscripten" "^1.39.6"
"@wasmer/wasi" "^1.0.2"

"@openziti/ziti-browzer-core@^0.25.1":
version "0.25.1"
resolved "https://registry.yarnpkg.com/@openziti/ziti-browzer-core/-/ziti-browzer-core-0.25.1.tgz#661bbf042beace49f7d0ae40126769e807abae7e"
integrity sha512-CiMwyFA9/7ZEYwsSMaqOIhFXxPZnU6XeDutLQ8W/gIrLZ6xO/1PzXBA75fjbR0hWps3W624ZhWtpCXdEqt+HUg==
"@openziti/ziti-browzer-core@^0.26.0":
version "0.26.0"
resolved "https://registry.yarnpkg.com/@openziti/ziti-browzer-core/-/ziti-browzer-core-0.26.0.tgz#0d53acf2d1f312f68cc7047d1bc467c68e935d0d"
integrity sha512-T/aeKT/SoLNoWoG7UBDlUd/h2aqqvYDdYPB0xFEvkFo+oicair6IZwZEL19wY7spKyjMWAklY59vTcMiSOoMbw==
dependencies:
"@openziti/libcrypto-js" "^0.15.0"
"@openziti/ziti-browzer-edge-client" "^0.6.2"
Expand All @@ -1215,6 +1215,7 @@
from2 "^2.3.0"
is-ip "^5.0.0"
js-cookie "^3.0.1"
jwt-decode "^3.1.2"
libsodium-wrappers "^0.7.10"
lodash-es "^4.17.21"
md5.js "^1.3.5"
Expand Down

0 comments on commit 8efc745

Please sign in to comment.