Glitchtip-Integration #39
@@ -19,3 +19,7 @@ AUTH_END_SESSION_URI=
|
||||
SERVER_PORT=3000
|
||||
CLIENT_URL= # This is whatever URL the client web app is served on
|
||||
CLIENT_DOMAIN= #whatever.com
|
||||
|
||||
# Glitchtip
|
||||
GLITCHTIP_DSN=
|
||||
DISABLE_GLITCHTIP= # true/false
|
||||
928
api/package-lock.json
generated
928
api/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,9 +9,10 @@
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"dev": "tsc && tsc-alias && node ./built/api/src/index.js",
|
||||
"build" : "tsc && tsc-alias"
|
||||
"build": "tsc && tsc-alias"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/node": "^10.27.0",
|
||||
"connect-sqlite3": "^0.9.16",
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^17.2.1",
|
||||
|
||||
@@ -18,6 +18,16 @@ app.set('trust proxy', 1);
|
||||
|
||||
const port = process.env.SERVER_PORT;
|
||||
|
||||
//glitchtip setup
|
||||
const sentry = require('@sentry/node');
|
||||
if (!process.env.DISABLE_GLITCHTIP) {
|
||||
console.log("Glitchtip disabled AAAAAA")
|
||||
} else {
|
||||
let dsn = process.env.GLITCHTIP_DSN;
|
||||
sentry.init({ dsn: dsn });
|
||||
console.log("Glitchtip initialized");
|
||||
}
|
||||
|
||||
//session setup
|
||||
const path = require('path')
|
||||
const session = require('express-session')
|
||||
|
||||
@@ -1,2 +1,7 @@
|
||||
# SITE SETTINGS
|
||||
VITE_APIHOST=
|
||||
VITE_ENVIRONMENT= # dev / prod
|
||||
|
||||
# Glitchtip
|
||||
VITE_GLITCHTIP_DSN=
|
||||
VITE_DISABLE_GLITCHTIP= # true/false
|
||||
98
ui/package-lock.json
generated
98
ui/package-lock.json
generated
@@ -13,6 +13,7 @@
|
||||
"@fullcalendar/interaction": "^6.1.19",
|
||||
"@fullcalendar/timegrid": "^6.1.19",
|
||||
"@fullcalendar/vue3": "^6.1.19",
|
||||
"@sentry/vue": "^10.27.0",
|
||||
"@tailwindcss/vite": "^4.1.11",
|
||||
"@tanstack/vue-table": "^8.21.3",
|
||||
"@vee-validate/zod": "^4.15.1",
|
||||
@@ -1392,6 +1393,103 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@sentry-internal/browser-utils": {
|
||||
"version": "10.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.27.0.tgz",
|
||||
"integrity": "sha512-17tO6AXP+rmVQtLJ3ROQJF2UlFmvMWp7/8RDT5x9VM0w0tY31z8Twc0gw2KA7tcDxa5AaHDUbf9heOf+R6G6ow==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@sentry/core": "10.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/feedback": {
|
||||
"version": "10.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.27.0.tgz",
|
||||
"integrity": "sha512-UecsIDJcv7VBwycge/MDvgSRxzevDdcItE1i0KSwlPz00rVVxLY9kV28PJ4I2E7r6/cIaP9BkbWegCEcv09NuA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@sentry/core": "10.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/replay": {
|
||||
"version": "10.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.27.0.tgz",
|
||||
"integrity": "sha512-tKSzHq1hNzB619Ssrqo25cqdQJ84R3xSSLsUWEnkGO/wcXJvpZy94gwdoS+KmH18BB1iRRRGtnMxZcUkiPSesw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@sentry-internal/browser-utils": "10.27.0",
|
||||
"@sentry/core": "10.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/replay-canvas": {
|
||||
"version": "10.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.27.0.tgz",
|
||||
"integrity": "sha512-inhsRYSVBpu3BI1kZphXj6uB59baJpYdyHeIPCiTfdFNBE5tngNH0HS/aedZ1g9zICw290lwvpuyrWJqp4VBng==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@sentry-internal/replay": "10.27.0",
|
||||
"@sentry/core": "10.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/browser": {
|
||||
"version": "10.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.27.0.tgz",
|
||||
"integrity": "sha512-G8q362DdKp9y1b5qkQEmhTFzyWTOVB0ps1rflok0N6bVA75IEmSDX1pqJsNuY3qy14VsVHYVwQBJQsNltQLS0g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@sentry-internal/browser-utils": "10.27.0",
|
||||
"@sentry-internal/feedback": "10.27.0",
|
||||
"@sentry-internal/replay": "10.27.0",
|
||||
"@sentry-internal/replay-canvas": "10.27.0",
|
||||
"@sentry/core": "10.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/core": {
|
||||
"version": "10.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.27.0.tgz",
|
||||
"integrity": "sha512-Zc68kdH7tWTDtDbV1zWIbo3Jv0fHAU2NsF5aD2qamypKgfSIMSbWVxd22qZyDBkaX8gWIPm/0Sgx6aRXRBXrYQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/vue": {
|
||||
"version": "10.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-10.27.0.tgz",
|
||||
"integrity": "sha512-vQVxnw59jRe5WsdB9ad/WpMPQ93QXE6Y0JEy01xIRcDlQ1pXp5wuxLkKGuTfvjdQzVUGIBLr0CgIqRAmPRymVg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@sentry/browser": "10.27.0",
|
||||
"@sentry/core": "10.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"pinia": "2.x || 3.x",
|
||||
"vue": "2.x || 3.x"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"pinia": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@sindresorhus/merge-streams": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
"@fullcalendar/interaction": "^6.1.19",
|
||||
"@fullcalendar/timegrid": "^6.1.19",
|
||||
"@fullcalendar/vue3": "^6.1.19",
|
||||
"@sentry/vue": "^10.27.0",
|
||||
"@tailwindcss/vite": "^4.1.11",
|
||||
"@tanstack/vue-table": "^8.21.3",
|
||||
"@vee-validate/zod": "^4.15.1",
|
||||
|
||||
@@ -44,6 +44,8 @@ function formatDate(dateStr) {
|
||||
day: "numeric",
|
||||
});
|
||||
}
|
||||
|
||||
const environment = import.meta.env.VITE_ENVIRONMENT;
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -114,10 +116,15 @@ function formatDate(dateStr) {
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
|
||||
<a v-else :href="APIHOST+'/login'">Login</a>
|
||||
<a v-else :href="APIHOST + '/login'">Login</a>
|
||||
</div>
|
||||
</div>
|
||||
<Separator></Separator>
|
||||
<Alert v-if="environment == 'dev'" class="m-2 mx-auto w-5xl" variant="info">
|
||||
<AlertDescription class="flex flex-row items-center text-nowrap gap-5 mx-auto">
|
||||
<p>This is a development build of the application. Some features will be unavailable or unstable.</p>
|
||||
</AlertDescription>
|
||||
</Alert>
|
||||
<Alert v-if="userStore.user?.loa?.[0]" class="m-2 mx-auto w-5xl" variant="info">
|
||||
<AlertDescription class="flex flex-row items-center text-nowrap gap-5 mx-auto">
|
||||
<p>You are on LOA until <strong>{{ formatDate(userStore.user?.loa?.[0].end_date) }}</strong></p>
|
||||
|
||||
@@ -8,11 +8,34 @@ import router from './router'
|
||||
import FormCheckbox from './components/form/FormCheckbox.vue'
|
||||
import FormInput from './components/form/FormInput.vue'
|
||||
|
||||
import * as Sentry from "@sentry/vue";
|
||||
|
||||
|
||||
|
||||
|
||||
const app = createApp(App)
|
||||
|
||||
|
||||
|
||||
app.use(createPinia())
|
||||
app.use(router)
|
||||
|
||||
if (!!import.meta.env.VITE_DISABLE_GLITCHTIP) {
|
||||
let dsn = import.meta.env.VITE_GLITCHTIP_DSN;
|
||||
let environment = import.meta.env.VITE_ENVIRONMENT;
|
||||
|
||||
Sentry.init({
|
||||
app,
|
||||
dsn: dsn,
|
||||
integrations: [
|
||||
Sentry.browserTracingIntegration({ router }),
|
||||
],
|
||||
tracesSampleRate: 0.01,
|
||||
environment: environment,
|
||||
release: 'release tag'
|
||||
});
|
||||
}
|
||||
|
||||
app.component("FormInput", FormInput)
|
||||
app.component("FormCheckbox", FormCheckbox)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user