mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-04 16:09:05 +00:00
### **User description** 1. This PR introduces reo dot dev in the application ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Integrate Reo.dev analytics SDK - Add route meta titles across app - Track key button clicks and pages - Set dynamic document titles ___ ### Diagram Walkthrough ```mermaid flowchart LR main["App bootstrap (main.ts)"] -- "init + setup titles" --> reo["Reo Analytics Service"] router["Vue Router"] -- "meta.title -> document.title" --> dom["Document Title"] router -- "afterEach" --> reo views["Views & Components"] -- "useReo().track/identify" --> reo config["aws-exports.ts"] -- "REO_CLIENT_KEY + flags" --> reo pkg["package.json"] -- "add dependency" --> reo ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>aws-exports.ts</strong><dd><code>Add Reo.dev client key to config</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-74d362ad26d23cf7e76c13e3daeb72d37923a335074d512a543d0f5bfa6a30d2">+1/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>37 files</summary><table> <tr> <td><strong>router.ts</strong><dd><code>Add meta titles for primary routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-a1827956e5a817edc7efb5f4516e7cc4d453e15ea9e9d970aafb8360b09fc78e">+43/-5</a> </td> </tr> <tr> <td><strong>useEnterpriseRoutes.ts</strong><dd><code>Add meta titles for enterprise routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-962367ed3d329e73232da2c262cf10c60b14820dd43e95e94302cdcb2f080cbe">+28/-1</a> </td> </tr> <tr> <td><strong>useManagementRoutes.ts</strong><dd><code>Add meta titles for management routes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-b71a1d39b1fab0749f0668d5f16382536fbda6e2f0c92c56a972fb5d8b5835f5">+22/-0</a> </td> </tr> <tr> <td><strong>main.ts</strong><dd><code>Initialize Reo analytics and page titles</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-37b29c5a3b76595194070205d9a0cdedcd717bf7c4367022d1e2667395962f2e">+9/-0</a> </td> </tr> <tr> <td><strong>index.ts</strong><dd><code>Set document title from route meta</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-8d302fe8581dca01e60aaf346dfdb0f8e24731551e7e5f91e5da9fc64250f7d2">+7/-0</a> </td> </tr> <tr> <td><strong>reodotdev_analytics.ts</strong><dd><code>New Reo.dev analytics service with queueing</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-1df83f0fa6b7599b6cd3ad863ff77d8abc4351b651932ad4d0359690148e1180">+168/-0</a> </td> </tr> <tr> <td><strong>ActionScipts.vue</strong><dd><code>Track add action scripts button click</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-6cfeff0b8dbbaba52b13ba67d6f4f8fdc3c58996eccdfae2ad0db2e7aee20f08">+6/-0</a> </td> </tr> <tr> <td><strong>AddAlert.vue</strong><dd><code>Track alert save/update button clicks</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+13/-1</a> </td> </tr> <tr> <td><strong>AddDestination.vue</strong><dd><code>Track destination save actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-61b295458e13049a538f5014124855d58dce664dfbd644b57a964a37a07b7a3f">+10/-0</a> </td> </tr> <tr> <td><strong>AddTemplate.vue</strong><dd><code>Track template save actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-2508a43827e6b35c07f3222deebd9945101ca6bc32b9dc592e6253ab99908bba">+10/-0</a> </td> </tr> <tr> <td><strong>AlertList.vue</strong><dd><code>Track alert add/hide form button actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-be3e41b823e163b226ffc270d95cc4981e59c600851e4e0d10ee5e4ee994ac8e">+10/-0</a> </td> </tr> <tr> <td><strong>AlertsDestinationList.vue</strong><dd><code>Track add destination action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-e9d05ba6c071c0e2f5d9ef7acdef757f79910abd6897b29e27b069a10d4ba8de">+8/-0</a> </td> </tr> <tr> <td><strong>PipelinesDestinationList.vue</strong><dd><code>Track add pipeline destination action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-088c66f5a34e73a5350a794a772e5d905262277337c937dd36f4295072203ebf">+8/-0</a> </td> </tr> <tr> <td><strong>TemplateList.vue</strong><dd><code>Track add template action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-7df66364d7d69a26cfa25cbc555d0e090c2f73e51c8386d9b0435bae4412564c">+8/-0</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong><dd><code>Track save new folder action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-41d2f8fac44084c004d8386ea4cc32e9c5d3e33266c4009cc855e57fb00a41af">+6/-0</a> </td> </tr> <tr> <td><strong>FolderList.vue</strong><dd><code>Track add folder button click</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-b97284b1720dfb524e425f49acd70f1a4e59da3d493eb2d4b3de8551b2da7141">+6/-0</a> </td> </tr> <tr> <td><strong>AddFolder.vue</strong><dd><code>Track dashboard folder saving</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-3bd1ba28ba29b71469aac901fd8000480c3db6c0f2dbc86ea55221787ae3ffd2">+6/-0</a> </td> </tr> <tr> <td><strong>AddEnrichmentTable.vue</strong><dd><code>Track save enrichment table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-9aad551dbc051edfdb3994a664506ed6d5e27dcb64f9c2fa917b02e51a35d86e">+6/-0</a> </td> </tr> <tr> <td><strong>AddFunction.vue</strong><dd><code>Track save/cancel function actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-ebfd6c538f3cd3ecb9ab17550fd76e2e89e7a1abccc83a7505077e4af3eee110">+10/-1</a> </td> </tr> <tr> <td><strong>EnrichmentTableList.vue</strong><dd><code>Track add/update enrichment table</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-6a29e253f59405d3c0f756dba36afd7483f10ad86927cbbc3348ede6372c3077">+10/-0</a> </td> </tr> <tr> <td><strong>FunctionList.vue</strong><dd><code>Track add/update function actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-6ff9af50a1597504b7f0dca91e61cf30c800b4a17b4be2ed2c3a4f7a7b2d7068">+10/-0</a> </td> </tr> <tr> <td><strong>AddGroup.vue</strong><dd><code>Track save group action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-dd49436305aadc01990cd6d9ea0abf97b964195920a1b49e64e8868fcc8afa6c">+7/-0</a> </td> </tr> <tr> <td><strong>AppGroups.vue</strong><dd><code>Track add group action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-402fb2a5338e60fdc3da489f4d50b5cf52f06b4e884a6fe7b82441c9fa5ea22c">+7/-0</a> </td> </tr> <tr> <td><strong>AddUpdateOrganization.vue</strong><dd><code>Track save organization action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-bca5bebfa6d5f435715dc5fa948876de02fef95a84e3e663e5c7922d601b4b9d">+7/-0</a> </td> </tr> <tr> <td><strong>AddRole.vue</strong><dd><code>Track save role action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-fca7dd7f91da83de52bfc40e82451a8756001af43974d592de2e03a815b21c9b">+7/-0</a> </td> </tr> <tr> <td><strong>AppRoles.vue</strong><dd><code>Track add role button click</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-191634ef09436199f91f442968110a01f54ae46b5ceee67476f52613ad796db4">+7/-0</a> </td> </tr> <tr> <td><strong>AddServiceAccount.vue</strong><dd><code>Track create/update service account</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-4e6840978e90be9195797d1b73b6cd1545ddac45cef84aa08701a9d66013c61b">+28/-17</a> </td> </tr> <tr> <td><strong>ServiceAccountsList.vue</strong><dd><code>Track add service account action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-3afe835bcfbec3fda2e9550850c29581092ee0717e7dd8de8888e774a0048d24">+6/-0</a> </td> </tr> <tr> <td><strong>AddUser.vue</strong><dd><code>Track create/update user actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-47543c0488c8cb5bcf77e2bb4af9d0a5dd249993cd9577c4852f7950c7aaec91">+18/-5</a> </td> </tr> <tr> <td><strong>Login.vue</strong><dd><code>Identify user on login; delayed redirect</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-4c2da0196f97e92fff1a813ce1337a4e94f6592b054e0f5c326ee137657003ff">+11/-3</a> </td> </tr> <tr> <td><strong>AddStream.vue</strong><dd><code>Track save stream action</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-78b8c84a558e60d942bacffee365633d074042e464be465eb6984b0ee5df82b9">+8/-0</a> </td> </tr> <tr> <td><strong>PipelineEditor.vue</strong><dd><code>Track node additions and save/cancel</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+48/-0</a> </td> </tr> <tr> <td><strong>CreateReport.vue</strong><dd><code>Track save/cancel report actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-cf2258c64249d4f28b2a103558bce3af1c87f0b2f23fe0652b458b8c20bb9c64">+11/-0</a> </td> </tr> <tr> <td><strong>ReportList.vue</strong><dd><code>Track add report navigation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-f7d700f7e67fbaba3c58ab5d2c614925db743101828214445ce9dae35dc29067">+7/-0</a> </td> </tr> <tr> <td><strong>Dashboards.vue</strong><dd><code>Track add dashboard/folder actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-8da3187db8ce3d795d0f196ede6b2290221ffa3e27b15dcc2b645e44dd196213">+10/-0</a> </td> </tr> <tr> <td><strong>LogStream.vue</strong><dd><code>Track add stream button click</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-56f4223b74568c10bc305741cc9fc3a8830184a251b4eaa6a2649033bc6200e3">+9/-1</a> </td> </tr> <tr> <td><strong>Login.vue</strong><dd><code>Identify user after SSO; delayed redirect</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-a135c379ef6ac8f92199ea5f7ff19a227971a9b0a87ccccf87c0268740522c2c">+11/-2</a> </td> </tr> </table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>package.json</strong><dd><code>Add Reo.dev dependency</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/8279/files#diff-b861012a5dd72b8a9f3281b7cf09f5a779c98569d040b1bbc1db50f1b15e7cce">+1/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___
149 lines
5.0 KiB
JSON
149 lines
5.0 KiB
JSON
{
|
|
"name": "zinc-observe-web",
|
|
"version": "0.1.0",
|
|
"license": "AGPL-3.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"devcloud": "NODE_ENV=devcloud vite --mode=devcloud",
|
|
"build-alpha1": "run-p type-check build-only-alpha1",
|
|
"build-cloud-prod": "run-p type-check build-only-cloud-prod",
|
|
"build": "run-p type-check build-only",
|
|
"postbuild": "run-p copy",
|
|
"preview": "vite preview",
|
|
"copy": "cd dist && mkdir src && cd src && mkdir assets && cd .. && cd .. && cp -r src/assets/* dist/src/assets/",
|
|
"test:unit": "vitest --environment jsdom --root src/",
|
|
"test:unit:coverage": "vitest --coverage --run",
|
|
"test:coverage:check": "./coverage.sh check",
|
|
"test:e2e": "start-server-and-test preview :4173 'cypress run --e2e'",
|
|
"test:e2e:dev": "start-server-and-test 'vite dev --port 4173' :4173 'cypress open --e2e'",
|
|
"build-only": "vite build",
|
|
"build-only-alpha1": "vite build --mode=alpha1",
|
|
"build-only-cloud-prod": "vite build --mode=production",
|
|
"type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false",
|
|
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix"
|
|
},
|
|
"dependencies": {
|
|
"@codemirror/autocomplete": "^6.18.6",
|
|
"@codemirror/commands": "^6.8.1",
|
|
"@codemirror/lang-html": "^6.4.9",
|
|
"@codemirror/lang-javascript": "^6.2.4",
|
|
"@codemirror/lang-json": "^6.0.1",
|
|
"@codemirror/lang-markdown": "^6.3.3",
|
|
"@codemirror/lang-python": "^6.2.1",
|
|
"@codemirror/lang-sql": "^6.9.0",
|
|
"@codemirror/language": "^6.11.1",
|
|
"@codemirror/search": "^6.5.11",
|
|
"@codemirror/state": "^6.5.2",
|
|
"@codemirror/theme-one-dark": "^6.1.2",
|
|
"@codemirror/view": "^6.37.2",
|
|
"@esbuild-plugins/node-globals-polyfill": "^0.2.3",
|
|
"@joakimono/echarts-extension-leaflet": "^1.0.2",
|
|
"@openobserve/browser-logs": "^0.2.11",
|
|
"@openobserve/browser-rum": "^0.2.11",
|
|
"@openobserve/node-sql-parser": "^0.1.5",
|
|
"@openobserve/rrweb-player": "^0.1.1",
|
|
"@quasar/extras": "^1.16.16",
|
|
"@replit/codemirror-indentation-markers": "^6.5.3",
|
|
"@tanstack/vue-table": "^8.20.5",
|
|
"@tanstack/vue-virtual": "^3.11.2",
|
|
"@types/codemirror": "^5.60.16",
|
|
"@vue-flow/background": "^1.3.2",
|
|
"@vue-flow/controls": "^1.1.2",
|
|
"@vue-flow/core": "^1.42.1",
|
|
"acorn": "^8.15.0",
|
|
"acorn-walk": "^8.3.4",
|
|
"codemirror": "^6.0.1",
|
|
"cron-parser": "^4.9.0",
|
|
"d3-scale": "^4.0.2",
|
|
"date-fns": "^4.1.0",
|
|
"date-fns-tz": "^3.2.0",
|
|
"dompurify": "^3.2.3",
|
|
"echarts": "^5.6.0",
|
|
"echarts-gl": "^2.0.9",
|
|
"escodegen": "^2.1.0",
|
|
"flag-icons": "^7.3.2",
|
|
"gridstack": "^12.2.1",
|
|
"highlight.js": "^11.11.1",
|
|
"js-beautify": "^1.15.4",
|
|
"js-cookie": "^3.0.5",
|
|
"json-2-csv": "^5.5.9",
|
|
"jszip": "^3.10.1",
|
|
"leaflet": "^1.9.4",
|
|
"lodash-es": "^4.17.21",
|
|
"luxon": "^3.5.0",
|
|
"marked": "^15.0.11",
|
|
"moment": "^2.30.1",
|
|
"moment-timezone": "^0.5.46",
|
|
"node-polyfill-webpack-plugin": "^4.1.0",
|
|
"quasar": "^2.17.7",
|
|
"reodotdev": "^1.0.0",
|
|
"rollup-plugin-node-polyfills": "^0.2.1",
|
|
"rollup-plugin-polyfill-node": "^0.13.0",
|
|
"rudder-sdk-js": "2.48.43",
|
|
"sql-formatter": "^15.6.5",
|
|
"uuid": "^11.0.5",
|
|
"vue": "^3.5.14",
|
|
"vue-drag-resize": "^1.5.4",
|
|
"vue-draggable-next": "^2.2.1",
|
|
"vue-i18n": "^11.1.10",
|
|
"vue-router": "^4.5.0",
|
|
"vuex": "^4.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@cypress/vue": "^6.0.2",
|
|
"@cypress/webpack-dev-server": "^4.0.1",
|
|
"@quasar/vite-plugin": "^1.9.0",
|
|
"@rushstack/eslint-patch": "^1.10.5",
|
|
"@tailwindcss/typography": "^0.5.16",
|
|
"@types/axios": "^0.14.4",
|
|
"@types/d3-scale": "^4.0.8",
|
|
"@types/dompurify": "^3.2.0",
|
|
"@types/fs-extra": "^11.0.4",
|
|
"@types/js-cookie": "^3.0.6",
|
|
"@types/jsdom": "^21.1.7",
|
|
"@types/leaflet": "^1.9.16",
|
|
"@types/lodash-es": "^4.17.12",
|
|
"@types/luxon": "^3.4.2",
|
|
"@types/node": "^22.10.9",
|
|
"@types/uuid": "^10.0.0",
|
|
"@vitejs/plugin-vue": "^5.2.1",
|
|
"@vitejs/plugin-vue-jsx": "^4.1.1",
|
|
"@vitest/coverage-v8": "^3.1.1",
|
|
"@vitest/ui": "^3.0.5",
|
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
"@vue/eslint-config-typescript": "^14.3.0",
|
|
"@vue/test-utils": "^2.4.6",
|
|
"@vue/tsconfig": "^0.7.0",
|
|
"autoprefixer": "^10.4.20",
|
|
"c8": "^10.1.3",
|
|
"cypress": "^14.0.0",
|
|
"cypress-localstorage-commands": "^2.2.7",
|
|
"dotenv": "^16.4.7",
|
|
"eslint": "^9.10.0",
|
|
"eslint-config-prettier": "^10.0.1",
|
|
"eslint-plugin-cypress": "^4.1.0",
|
|
"eslint-plugin-vue": "^9.32.0",
|
|
"fs-extra": "^11.3.0",
|
|
"happy-dom": "^16.7.2",
|
|
"jsdom": "^26.0.0",
|
|
"msw": "^2.7.3",
|
|
"npm-run-all": "^4.1.5",
|
|
"postcss": "^8.4.39",
|
|
"prettier": "^3.4.2",
|
|
"rollup-plugin-analyzer": "^4.0.0",
|
|
"rollup-plugin-visualizer": "^5.12.0",
|
|
"sass": "^1.77.8",
|
|
"sass-loader": "^14.2.1",
|
|
"start-server-and-test": "^2.0.4",
|
|
"tailwindcss": "^3.4.4",
|
|
"typescript": "~5.5.3",
|
|
"vite": "^6.3.4",
|
|
"vite-plugin-istanbul": "^6.0.2",
|
|
"vitest": "^3.0.5",
|
|
"vitest-canvas-mock": "^0.3.3",
|
|
"vue-tsc": "^2.2.0"
|
|
}
|
|
}
|