Add sentry in frontend

This commit is contained in:
Christian Cueni 2022-11-16 13:14:46 +01:00
parent 95a15eae6a
commit 4d32e99c8c
5 changed files with 158 additions and 5 deletions

View File

@ -7,6 +7,7 @@ BUILD_TIMESTAMP=$( date '+%F_%H:%M:%S' )
VERSION_TAG="${REPO}:$VERSION"
LOCAL_LOGOUT=$VITE_LOGOUT_REDIRECT
LOCAL_SENTRY_ENV=$VITE_SENTRY_ENV
APP_NAME=${1:-vbv-lernwelt}
@ -15,12 +16,15 @@ echo "Deploy to $APP_NAME"
if [[ "$APP_NAME" == "myvbv" ]]
then
VITE_LOGOUT_REDIRECT="https://edumgr.b2clogin.com/edumgr.onmicrosoft.com/b2c_1_signupandsignin/oauth2/v2.0/logout/?post_logout_redirect_uri=https://myvbv.iterativ.ch/"
VITE_SENTRY_ENV="production"
elif [[ "$APP_NAME" == "myvbv-stage" ]]
then
VITE_LOGOUT_REDIRECT="https://vbvtst.b2clogin.com/vbvtst.onmicrosoft.com/b2c_1_signupandsignin/oauth2/v2.0/logout/?post_logout_redirect_uri=https://myvbv-stage.iterativ.ch/"
VITE_SENTRY_ENV="stage"
elif [[ "$APP_NAME" == "vbv-lernwelt" ]]
then
VITE_LOGOUT_REDIRECT="https://vbvdev.b2clogin.com/vbvdev.onmicrosoft.com/b2c_1_signupandsignin/oauth2/v2.0/logout/?post_logout_redirect_uri=https://vbv-lernwelt.control.iterativ.ch"
VITE_SENTRY_ENV="development"
fi
# script should fail when any process returns non zero code
@ -30,6 +34,7 @@ set -ev
npm run build
VITE_LOGOUT_REDIRECT=$LOCAL_LOGOUT
VITE_SENTRY_ENV=$LOCAL_SENTRY_ENV
# create and push new docker container
## Note that images build with buildx do not appear in your docker images list, therefore the push true must be set

145
client/package-lock.json generated
View File

@ -9,6 +9,8 @@
"version": "0.0.0",
"dependencies": {
"@headlessui/vue": "^1.6.7",
"@sentry/tracing": "^7.20.0",
"@sentry/vue": "^7.20.0",
"d3": "^7.6.1",
"lodash": "^4.17.21",
"loglevel": "^1.8.0",
@ -514,6 +516,85 @@
"integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==",
"dev": true
},
"node_modules/@sentry/browser": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.20.0.tgz",
"integrity": "sha512-L84CdB7DPQ2ohVcWh/KivemndWSZyXRvBZBr+tHFlQchzcaZZ/8lIPvjwvb8OJhzhecDq6JCAyUxaZwyItdyAg==",
"dependencies": {
"@sentry/core": "7.20.0",
"@sentry/types": "7.20.0",
"@sentry/utils": "7.20.0",
"tslib": "^1.9.3"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/core": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.20.0.tgz",
"integrity": "sha512-8dIHk8niyEyVayUQpgECHnV2p444nPBjIyuQrtkdTxL7sBLC5+Y0DhRjxg9cJyZe/bZnXVerGkgcA7niKW4W8A==",
"dependencies": {
"@sentry/types": "7.20.0",
"@sentry/utils": "7.20.0",
"tslib": "^1.9.3"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/tracing": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.20.0.tgz",
"integrity": "sha512-qg3sMvjuMQl/NEaF8I2IpvUcJ4HGGVIwEqqqZ6hkeHXIKt02p6f+nls45pVhluMiNHAaQJ+vefMTUc3E1yZwDA==",
"dependencies": {
"@sentry/core": "7.20.0",
"@sentry/types": "7.20.0",
"@sentry/utils": "7.20.0",
"tslib": "^1.9.3"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/types": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.20.0.tgz",
"integrity": "sha512-x17ddduGWqW95neBFVvxzmInb5WXVw+2PcNASHXpGFhi7v2gz2a7/w2CcIKxsqODNnc+z/k1t0Y+uy9B6aH6ag==",
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/utils": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.20.0.tgz",
"integrity": "sha512-4lc122TFgkaCAvoPRy+uc5vgOCumTa/2nPkzCSxVsezQs+ebHxyMJQK7GWBLI6P+EzKfEjlgyMzRWaPJ3iJatA==",
"dependencies": {
"@sentry/types": "7.20.0",
"tslib": "^1.9.3"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/vue": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-7.20.0.tgz",
"integrity": "sha512-yqBWREIAsgRBdeVxOvHy/x4JyzMUe2YG9uF4Rw6NRUWiP9TV2RR+TRRDB0H2h4x1UV6c1ZOKAlfWfs8ZOAScVw==",
"dependencies": {
"@sentry/browser": "7.20.0",
"@sentry/core": "7.20.0",
"@sentry/types": "7.20.0",
"@sentry/utils": "7.20.0",
"tslib": "^1.9.3"
},
"engines": {
"node": ">=8"
},
"peerDependencies": {
"vue": "2.x || 3.x"
}
},
"node_modules/@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
@ -6273,8 +6354,7 @@
"node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/tsutils": {
"version": "3.21.0",
@ -7324,6 +7404,64 @@
"integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==",
"dev": true
},
"@sentry/browser": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.20.0.tgz",
"integrity": "sha512-L84CdB7DPQ2ohVcWh/KivemndWSZyXRvBZBr+tHFlQchzcaZZ/8lIPvjwvb8OJhzhecDq6JCAyUxaZwyItdyAg==",
"requires": {
"@sentry/core": "7.20.0",
"@sentry/types": "7.20.0",
"@sentry/utils": "7.20.0",
"tslib": "^1.9.3"
}
},
"@sentry/core": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.20.0.tgz",
"integrity": "sha512-8dIHk8niyEyVayUQpgECHnV2p444nPBjIyuQrtkdTxL7sBLC5+Y0DhRjxg9cJyZe/bZnXVerGkgcA7niKW4W8A==",
"requires": {
"@sentry/types": "7.20.0",
"@sentry/utils": "7.20.0",
"tslib": "^1.9.3"
}
},
"@sentry/tracing": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.20.0.tgz",
"integrity": "sha512-qg3sMvjuMQl/NEaF8I2IpvUcJ4HGGVIwEqqqZ6hkeHXIKt02p6f+nls45pVhluMiNHAaQJ+vefMTUc3E1yZwDA==",
"requires": {
"@sentry/core": "7.20.0",
"@sentry/types": "7.20.0",
"@sentry/utils": "7.20.0",
"tslib": "^1.9.3"
}
},
"@sentry/types": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.20.0.tgz",
"integrity": "sha512-x17ddduGWqW95neBFVvxzmInb5WXVw+2PcNASHXpGFhi7v2gz2a7/w2CcIKxsqODNnc+z/k1t0Y+uy9B6aH6ag=="
},
"@sentry/utils": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.20.0.tgz",
"integrity": "sha512-4lc122TFgkaCAvoPRy+uc5vgOCumTa/2nPkzCSxVsezQs+ebHxyMJQK7GWBLI6P+EzKfEjlgyMzRWaPJ3iJatA==",
"requires": {
"@sentry/types": "7.20.0",
"tslib": "^1.9.3"
}
},
"@sentry/vue": {
"version": "7.20.0",
"resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-7.20.0.tgz",
"integrity": "sha512-yqBWREIAsgRBdeVxOvHy/x4JyzMUe2YG9uF4Rw6NRUWiP9TV2RR+TRRDB0H2h4x1UV6c1ZOKAlfWfs8ZOAScVw==",
"requires": {
"@sentry/browser": "7.20.0",
"@sentry/core": "7.20.0",
"@sentry/types": "7.20.0",
"@sentry/utils": "7.20.0",
"tslib": "^1.9.3"
}
},
"@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
@ -11490,8 +11628,7 @@
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"tsutils": {
"version": "3.21.0",

View File

@ -15,6 +15,8 @@
},
"dependencies": {
"@headlessui/vue": "^1.6.7",
"@sentry/tracing": "^7.20.0",
"@sentry/vue": "^7.20.0",
"d3": "^7.6.1",
"lodash": "^4.17.21",
"loglevel": "^1.8.0",

View File

@ -1,3 +1,4 @@
import * as Sentry from "@sentry/vue";
import * as log from "loglevel";
import { createPinia } from "pinia";
import { createApp, markRaw } from "vue";
@ -24,6 +25,13 @@ if (window.location.href.indexOf("localhost") >= 0) {
const i18n = setupI18n();
const app = createApp(App);
Sentry.init({
app,
environment: import.meta.env.VITE_SENTRY_ENV,
dsn: "https://2df6096a4fd94bd6b4802124d10e4b8d@o8544.ingest.sentry.io/4504157846372352",
tracesSampleRate: 0.0,
});
// todo: define lang setup
loadLocaleMessages(i18n, "de").then(() => {
app.use(router);

View File

@ -6,5 +6,6 @@
"ignore hash 5": "1LhwZ0DvP4cGBgbBdCfaBQV7eiaOc4jWKdzO9WEXLFT7AaqBN6jqd0uyaZeAZ19K",
"ignore hash 6": "A035C8C19219BA821ECEA86B64E628F8D684696D",
"json base64 content": "regex:\"content\": \"",
"img base64 content": "regex:data:image/png;base64,.*"
"img base64 content": "regex:data:image/png;base64,.*",
"sentry url": "https://2df6096a4fd94bd6b4802124d10e4b8d@o8544.ingest.sentry.io/4504157846372352"
}