123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <template lang='pug'>
- v-card
- v-toolbar(flat, color='primary', dark, dense)
- .subtitle-1 {{ $t('admin:utilities.telemetryTitle') }}
- v-form
- v-card-text
- .subtitle-2 What is telemetry?
- .body-2.mt-3 Telemetry allows the developers of Wiki.js to improve the software by collecting basic anonymized data about its usage and the host info. #[br] This is entirely optional and #[strong absolutely no] private data (such as content or personal data) is collected.
- .body-2.mt-3 For maximum privacy, a random client ID is generated during setup. This ID is used to group requests together while keeping complete anonymity. You can reset and generate a new one below at any time.
- v-divider.my-4
- .subtitle-2 What is collected?
- .body-2.mt-3 When telemetry is enabled, only the following data is transmitted:
- v-list
- v-list-item
- v-list-item-avatar: v-icon mdi-information-outline
- v-list-item-content
- v-list-item-title.body-2 Version of Wiki.js installed
- v-list-item-subtitle.caption: em e.g. v2.0.123
- v-list-item
- v-list-item-avatar: v-icon mdi-information-outline
- v-list-item-content
- v-list-item-title.body-2 Basic OS information
- v-list-item-subtitle.caption: em Platform (Linux, macOS or Windows), Total CPU cores and DB type (PostgreSQL, MySQL, MariaDB, SQLite or SQL Server)
- v-list-item
- v-list-item-avatar: v-icon mdi-information-outline
- v-list-item-content
- v-list-item-title.body-2 Crash debug data
- v-list-item-subtitle.caption: em Stack trace of the error
- v-list-item
- v-list-item-avatar: v-icon mdi-information-outline
- v-list-item-content
- v-list-item-title.body-2 Setup analytics
- v-list-item-subtitle.caption: em Installation checkpoint reached
- .body-2 Note that crash debug data is stored for a maximum of 30 days while analytics are stored for a maximum of 16 months, after which it is permanently deleted.
- v-divider.my-4
- .subtitle-2 What is it used for?
- .body-2.mt-3 Telemetry is used by developers to improve Wiki.js, mostly for the following reasons:
- v-list(dense)
- v-list-item
- v-list-item-avatar: v-icon mdi-chevron-right
- v-list-item-content: v-list-item-title: .body-2 Identify critical bugs more easily and fix them in a timely manner.
- v-list-item
- v-list-item-avatar: v-icon mdi-chevron-right
- v-list-item-content: v-list-item-title: .body-2 Understand the upgrade rate of current installations.
- v-list-item
- v-list-item-avatar: v-icon mdi-chevron-right
- v-list-item-content: v-list-item-title: .body-2 Optimize performance and testing scenarios based on most popular environments.
- .body-2 Only authorized developers have access to the data. It is not shared to any 3rd party nor is it used for any other application than improving Wiki.js.
- v-divider.my-4
- .subtitle-2 Settings
- .mt-3
- v-switch.mt-0(
- v-model='telemetry',
- label='Enable Telemetry',
- color='primary',
- hint='Allow Wiki.js to transmit telemetry data.',
- persistent-hint
- )
- v-divider.my-4
- .subtitle-2.mt-3.grey--text.text--darken-1 Client ID
- .body-2.mt-2 {{clientId}}
- v-card-chin
- v-btn.px-3(depressed, color='success', @click='updateTelemetry')
- v-icon(left) mdi-chevron-right
- | Save Changes
- v-spacer
- v-btn.px-3(outlined, color='grey', @click='resetClientId')
- v-icon(left) mdi-autorenew
- span Reset Client ID
- </template>
- <script>
- import _ from 'lodash'
- import utilityTelemetryResetIdMutation from 'gql/admin/utilities/utilities-mutation-telemetry-resetid.gql'
- import utilityTelemetrySetMutation from 'gql/admin/utilities/utilities-mutation-telemetry-set.gql'
- import utilityTelemetryQuery from 'gql/admin/utilities/utilities-query-telemetry.gql'
- export default {
- data() {
- return {
- telemetry: false,
- clientId: 'N/A'
- }
- },
- methods: {
- async updateTelemetry() {
- this.loading = true
- this.$store.commit(`loadingStart`, 'admin-utilities-telemetry-set')
- try {
- const respRaw = await this.$apollo.mutate({
- mutation: utilityTelemetrySetMutation,
- variables: {
- enabled: this.telemetry
- }
- })
- const resp = _.get(respRaw, 'data.system.setTelemetry.responseResult', {})
- if (resp.succeeded) {
- this.$store.commit('showNotification', {
- message: 'Telemetry updated successfully.',
- style: 'success',
- icon: 'check'
- })
- } else {
- throw new Error(resp.message)
- }
- } catch (err) {
- this.$store.commit('pushGraphError', err)
- }
- this.$store.commit(`loadingStop`, 'admin-utilities-telemetry-set')
- this.loading = false
- },
- async resetClientId() {
- this.loading = true
- this.$store.commit(`loadingStart`, 'admin-utilities-telemetry-resetid')
- try {
- const respRaw = await this.$apollo.mutate({
- mutation: utilityTelemetryResetIdMutation
- })
- const resp = _.get(respRaw, 'data.system.resetTelemetryClientId.responseResult', {})
- if (resp.succeeded) {
- this.$apollo.queries.telemetry.refetch()
- this.$store.commit('showNotification', {
- message: 'Telemetry Client ID reset successfully.',
- style: 'success',
- icon: 'check'
- })
- } else {
- throw new Error(resp.message)
- }
- } catch (err) {
- this.$store.commit('pushGraphError', err)
- }
- this.$store.commit(`loadingStop`, 'admin-utilities-telemetry-resetid')
- this.loading = false
- }
- },
- apollo: {
- telemetry: {
- query: utilityTelemetryQuery,
- fetchPolicy: 'network-only',
- manual: true,
- result ({ data }) {
- this.telemetry = _.get(data, 'system.info.telemetry', false)
- this.clientId = _.get(data, 'system.info.telemetryClientId', 'N/A')
- },
- watchLoading (isLoading) {
- this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-utilities-telemetry-refresh')
- }
- }
- }
- }
- </script>
- <style lang='scss'>
- </style>
|