Skip to content

Commit

Permalink
Add telemetry admin view
Browse files Browse the repository at this point in the history
Signed-off-by: nscuro <[email protected]>
  • Loading branch information
nscuro committed Feb 14, 2025
1 parent bcc3dd4 commit 8c0d1c6
Show file tree
Hide file tree
Showing 17 changed files with 234 additions and 12 deletions.
8 changes: 7 additions & 1 deletion src/i18n/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "OSV-Basis-URL",
"welcome_message": "Willkommensnachricht",
"welcome_message_desc": "Passen Sie die Willkommensnachricht an, die auf der Startseite von Dependency-Track angezeigt wird, bevor sich Benutzer anmelden.",
"welcome_message_enable": "Willkommensnachricht aktivieren"
"welcome_message_enable": "Willkommensnachricht aktivieren",
"enable_telemetry_submission": "Übermittlung von Telemetriedaten aktivieren",
"preferences": "Einstellungen",
"telemetry": "Telemetrie",
"telemetry_last_submission": "Letzte Übermittlung",
"telemetry_no_data_submitted_yet": "Noch keine Telemetriedaten übermittelt.",
"telemetry_submitted_at": "Übermittelt: {timestamp}"
},
"condition": {
"forbidden": "Verboten (403)",
Expand Down
6 changes: 6 additions & 0 deletions src/i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@
"enable_email": "Enable email",
"enable_index_consistency_check": "Enable periodic consistency check",
"enable_svg_badge": "Enable unauthenticated SVG badge access",
"enable_telemetry_submission": "Enable telemetry submission",
"enabled": "Enabled",
"enabled_for_tags": "Enabled for tags",
"experimental": "Experimental",
Expand Down Expand Up @@ -194,6 +195,7 @@
"permissions": "Permissions",
"personal_access_token": "Personal Access Token",
"portfolio_access_control": "Portfolio Access Control",
"preferences": "Preferences",
"preview": "Preview",
"project_access": "Project access",
"publisher": "Publisher",
Expand Down Expand Up @@ -253,6 +255,10 @@
"team_membership": "Team membership",
"team_name": "Team Name",
"teams": "Teams",
"telemetry": "Telemetry",
"telemetry_last_submission": "Last submission",
"telemetry_no_data_submitted_yet": "No telemetry data submitted yet.",
"telemetry_submitted_at": "Submitted: {timestamp}",
"template": "Template",
"template_basedir": "Template base directory",
"template_basedir_tooltip": "This property is used as base directory for notification templates search",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "URL base de OSV",
"welcome_message": "Mensaje de bienvenida",
"welcome_message_desc": "Personalice el mensaje de bienvenida que aparece en la página de inicio de Dependency-Track antes de que los usuarios inicien sesión.",
"welcome_message_enable": "Habilitar mensaje de bienvenida"
"welcome_message_enable": "Habilitar mensaje de bienvenida",
"enable_telemetry_submission": "Habilitar la envío de telemetría",
"preferences": "Preferencias",
"telemetry": "Telemetría",
"telemetry_last_submission": "Última presentación",
"telemetry_no_data_submitted_yet": "No hay datos de telemetría enviados todavía.",
"telemetry_submitted_at": "Enviado: {timestamp}"
},
"condition": {
"forbidden": "Prohibido (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "URL de base OSV",
"welcome_message": "Message de bienvenue",
"welcome_message_desc": "Personnalisez le message de bienvenue qui apparaît sur la page de démarrage de Dependency-Track avant que les utilisateurs ne se connectent.",
"welcome_message_enable": "Activer le message de bienvenue"
"welcome_message_enable": "Activer le message de bienvenue",
"enable_telemetry_submission": "Activer la soumission de télémétrie",
"preferences": "Préférences",
"telemetry": "Télémétrie",
"telemetry_last_submission": "Dernière soumission",
"telemetry_no_data_submitted_yet": "Aucune donnée de télémétrie soumise encore.",
"telemetry_submitted_at": "Soumis: {timestamp}"
},
"condition": {
"forbidden": "Interdit (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/hi.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "OSV बेस यूआरएल",
"welcome_message": "स्वागत संदेश",
"welcome_message_desc": "उपयोगकर्ताओं के साइन इन करने से पहले डिपेंडेंसी-ट्रैक के आरंभ पृष्ठ पर दिखाई देने वाले स्वागत संदेश को अनुकूलित करें।",
"welcome_message_enable": "स्वागत संदेश सक्षम करें"
"welcome_message_enable": "स्वागत संदेश सक्षम करें",
"enable_telemetry_submission": "टेलीमेट्री सबमिशन सक्षम करें",
"preferences": "वरीयताएँ",
"telemetry": "टेलीमेटरी",
"telemetry_last_submission": "अंतिम सबमिशन",
"telemetry_no_data_submitted_yet": "अभी तक कोई टेलीमेट्री डेटा प्रस्तुत नहीं किया गया है।",
"telemetry_submitted_at": "प्रस्तुत: {timestamp}"
},
"condition": {
"forbidden": "निषिद्ध (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "URL di base OSV",
"welcome_message": "Messaggio di benvenuto",
"welcome_message_desc": "Personalizza il messaggio di benvenuto che appare nella pagina iniziale di Dependency-Track prima che gli utenti accedano.",
"welcome_message_enable": "Abilita il messaggio di benvenuto"
"welcome_message_enable": "Abilita il messaggio di benvenuto",
"enable_telemetry_submission": "Abilita l'invio della telemetria",
"preferences": "Preferenze",
"telemetry": "Telemetria",
"telemetry_last_submission": "Ultima sottomissione",
"telemetry_no_data_submitted_yet": "Nessun dato di telemetria ancora inviato.",
"telemetry_submitted_at": "Inviato: {timestamp}"
},
"condition": {
"forbidden": "Proibito (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "OSV ベース URL",
"welcome_message": "ウェルカムメッセージ",
"welcome_message_desc": "ユーザーがサインインする前に、Dependency-Track の開始ページに表示されるウェルカム メッセージをカスタマイズします。",
"welcome_message_enable": "ウェルカムメッセージを有効にする"
"welcome_message_enable": "ウェルカムメッセージを有効にする",
"enable_telemetry_submission": "テレメトリの提出を有効にします",
"preferences": "好み",
"telemetry": "テレメトリー",
"telemetry_last_submission": "最後の提出",
"telemetry_no_data_submitted_yet": "まだ送信されていません。",
"telemetry_submitted_at": "提出:{timestamp}"
},
"condition": {
"forbidden": "禁止 (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "Podstawowy adres URL OSV",
"welcome_message": "Wiadomość powitalna",
"welcome_message_desc": "Dostosuj wiadomość powitalną wyświetlaną na stronie początkowej funkcji Depency-Track przed zalogowaniem się użytkownika.",
"welcome_message_enable": "Włącz wiadomość powitalną"
"welcome_message_enable": "Włącz wiadomość powitalną",
"enable_telemetry_submission": "Włącz zgłoszenie telemetryczne",
"preferences": "Preferencje",
"telemetry": "Telemetria",
"telemetry_last_submission": "Ostatnie zgłoszenie",
"telemetry_no_data_submitted_yet": "Brak danych telemetrycznych.",
"telemetry_submitted_at": "Przesłane: {timestamp}"
},
"condition": {
"forbidden": "Zabronione (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "URL base do OSV",
"welcome_message": "Mensagem de boas-vindas",
"welcome_message_desc": "Personalize a mensagem de boas-vindas que aparece na página inicial do Dependency-Track antes dos usuários fazerem login.",
"welcome_message_enable": "Ativar mensagem de boas-vindas"
"welcome_message_enable": "Ativar mensagem de boas-vindas",
"enable_telemetry_submission": "Ativar envio de telemetria",
"preferences": "Preferências",
"telemetry": "Telemetria",
"telemetry_last_submission": "Última finalização",
"telemetry_no_data_submitted_yet": "Nenhum dados de telemetria ainda enviado.",
"telemetry_submitted_at": "Enviado: {timestamp}"
},
"condition": {
"forbidden": "Proibido (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "URL base do OSV",
"welcome_message": "Mensagem de boas-vindas",
"welcome_message_desc": "Personalize a mensagem de boas-vindas que aparece na página inicial do Dependency-Track antes dos usuários fazerem login.",
"welcome_message_enable": "Ativar mensagem de boas-vindas"
"welcome_message_enable": "Ativar mensagem de boas-vindas",
"enable_telemetry_submission": "Ativar envio de telemetria",
"preferences": "Preferências",
"telemetry": "Telemetria",
"telemetry_last_submission": "Última finalização",
"telemetry_no_data_submitted_yet": "Nenhum dados de telemetria ainda enviado.",
"telemetry_submitted_at": "Enviado: {timestamp}"
},
"condition": {
"forbidden": "Proibido (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "Базовый URL OSV",
"welcome_message": "Приветственное сообщение",
"welcome_message_desc": "Настройте приветственное сообщение, которое отображается на стартовой странице Dependency-Track перед входом пользователей.",
"welcome_message_enable": "Включить приветственное сообщение"
"welcome_message_enable": "Включить приветственное сообщение",
"enable_telemetry_submission": "Включить подчинение телеметрии",
"preferences": "Предпочтения",
"telemetry": "Телеметрия",
"telemetry_last_submission": "Последнее представление",
"telemetry_no_data_submitted_yet": "Данные телеметрии пока не представлены.",
"telemetry_submitted_at": "Отправлено: {timestamp}"
},
"condition": {
"forbidden": "Запрещено (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/uk-UA.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "Базовий URL OSV",
"welcome_message": "Вітальне повідомлення",
"welcome_message_desc": "Налаштуйте вітальне повідомлення, яке з’являється на початковій сторінці Dependency-Track перед входом користувачів.",
"welcome_message_enable": "Увімкнути вітальне повідомлення"
"welcome_message_enable": "Увімкнути вітальне повідомлення",
"enable_telemetry_submission": "Увімкнути подання телеметрії",
"preferences": "Уподобання",
"telemetry": "Телеметрія",
"telemetry_last_submission": "Останнє подання",
"telemetry_no_data_submitted_yet": "Ще немає даних телеметрії, що подаються.",
"telemetry_submitted_at": "Представлено: {timestamp}"
},
"condition": {
"forbidden": "Заборонено (403)",
Expand Down
8 changes: 7 additions & 1 deletion src/i18n/locales/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,13 @@
"vulnsource_osv_base_url": "OSV 基本 URL",
"welcome_message": "欢迎辞",
"welcome_message_desc": "自定义用户登录前 Dependency-Track 起始页上显示的欢迎消息。",
"welcome_message_enable": "启用欢迎消息"
"welcome_message_enable": "启用欢迎消息",
"enable_telemetry_submission": "启用遥测提交",
"preferences": "偏好",
"telemetry": "遥测",
"telemetry_last_submission": "最后提交",
"telemetry_no_data_submitted_yet": "尚未提交遥测数据。",
"telemetry_submitted_at": "提交:{timestamp}"
},
"condition": {
"forbidden": "禁止 (403)",
Expand Down
13 changes: 13 additions & 0 deletions src/router/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ const InternalComponents = () =>
import('@/views/administration/configuration/InternalComponents');
const TaskScheduler = () =>
import('@/views/administration/configuration/TaskScheduler');
const Telemetry = () =>
import('@/views/administration/configuration/Telemetry');
const Search = () => import('@/views/administration/configuration/Search');
const Experimental = () =>
import('@/views/administration/configuration/Experimental');
Expand Down Expand Up @@ -440,6 +442,17 @@ function configRoutes() {
permission: 'SYSTEM_CONFIGURATION',
},
},
{
path: 'configuration/telemetry',
component: Telemetry,
meta: {
title: i18n.t('message.administration'),
i18n: 'message.administration',
sectionPath: '/admin',
sectionName: 'Admin',
permission: 'SYSTEM_CONFIGURATION',
},
},
{
path: 'configuration/search',
component: Search,
Expand Down
5 changes: 5 additions & 0 deletions src/views/administration/AdminMenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,11 @@ export default {
name: this.$t('admin.task_scheduler'),
route: 'configuration/taskScheduler',
},
{
component: 'Telemetry',
name: this.$t('admin.telemetry'),
route: 'configuration/telemetry',
},
{
component: 'Search',
name: this.$t('message.search'),
Expand Down
2 changes: 2 additions & 0 deletions src/views/administration/Administration.vue
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import InternalComponents from './configuration/InternalComponents';
import Jira from './configuration/JiraConfig';
import Search from './configuration/Search.vue';
import TaskScheduler from './configuration/TaskScheduler.vue';
import Telemetry from './configuration/Telemetry.vue';
import Experimental from './configuration/Experimental.vue';
import WelcomeMessage from './configuration/WelcomeMessage.vue';
// Analyzer plugins
Expand Down Expand Up @@ -79,6 +80,7 @@ export default {
Jira,
InternalComponents,
TaskScheduler,
Telemetry,
Search,
Experimental,
InternalAnalyzer,
Expand Down
124 changes: 124 additions & 0 deletions src/views/administration/configuration/Telemetry.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
<template>
<b-card no-body :header="this.$t('admin.telemetry')">
<b-card-body>
<b-form-group
:label="this.$t('admin.preferences')"
label-size="lg"
label-class="font-weight-bold pt-0 mb-2"
>
<c-switch
id="submission-enabled"
color="primary"
v-model="isSubmissionEnabled"
label
v-bind="labelIcon"
/>{{ this.$t('admin.enable_telemetry_submission') }}
</b-form-group>
<b-form-group
label-size="lg"
label-class="font-weight-bold pt-0 mb-2"
:label="this.$t('admin.telemetry_last_submission')"
:description="lastSubmissionDataDescription"
label-for="last-submission-data"
>
<b-form-textarea
id="last-submission-data"
:value="lastSubmissionDataString"
rows="3"
max-rows="6"
readonly
></b-form-textarea>
</b-form-group>
</b-card-body>
<b-card-footer>
<b-button
size="md"
class="px-4"
variant="outline-primary"
@click="saveChanges"
>{{ $t('message.update') }}</b-button
>
</b-card-footer>
</b-card>
</template>

<script>
import { Switch as cSwitch } from '@coreui/vue';
import BValidatedInputGroupFormInput from '../../../forms/BValidatedInputGroupFormInput';
import configPropertyMixin from '../mixins/configPropertyMixin';
import common from '../../../shared/common';
export default {
computed: {
common() {
return common;
},
lastSubmissionDataString() {
return this.lastSubmissionData
? JSON.stringify(this.lastSubmissionData, null, 2)
: this.$t('admin.telemetry_no_data_submitted_yet');
},
lastSubmissionDataDescription() {
return this.lastSubmissionEpochSeconds
? this.$t('admin.telemetry_submitted_at', {
timestamp: common.formatTimestamp(
this.lastSubmissionEpochSeconds,
true,
),
})
: '';
},
},
mixins: [configPropertyMixin],
props: {
header: String,
},
components: {
cSwitch,
BValidatedInputGroupFormInput,
},
data() {
return {
isSubmissionEnabled: null,
lastSubmissionEpochSeconds: null,
lastSubmissionData: null,
};
},
methods: {
saveChanges: function () {
this.updateConfigProperties([
{
groupName: 'telemetry',
propertyName: 'submission.enabled',
propertyValue: this.isSubmissionEnabled,
},
]);
},
},
created() {
this.axios.get(this.configUrl).then((response) => {
let configItems = response.data.filter(function (item) {
return item.groupName === 'telemetry';
});
for (let i = 0; i < configItems.length; i++) {
let item = configItems[i];
switch (item.propertyName) {
case 'enabled':
this.isSubmissionEnabled = common.toBoolean(item.propertyValue);
break;
case 'last.submission.epoch.seconds':
this.lastSubmissionEpochSeconds = item.propertyValue
? parseInt(item.propertyValue) * 1000
: null;
break;
case 'last.submission.data':
this.lastSubmissionData = item.propertyValue
? JSON.parse(item.propertyValue)
: null;
break;
}
}
});
},
};
</script>

0 comments on commit 8c0d1c6

Please sign in to comment.