Remove personal path on etcher

Change-type: minor
This commit is contained in:
Otávio Jacobi 2023-01-06 15:31:08 +00:00
parent f3f7ecb852
commit 2b728d3c52
2 changed files with 32 additions and 2 deletions

View File

@ -21,6 +21,35 @@ import * as settings from '../models/settings';
import { store } from '../models/store';
import * as packageJSON from '../../../../package.json';
const clearUserPath = (filename: string): string => {
const generatedFile = filename.split('generated').reverse()[0];
return `generated${generatedFile}`;
};
export const anonymizeData = (
event: SentryRenderer.Event,
): SentryRenderer.Event => {
event.exception?.values?.forEach((exception) => {
exception.stacktrace?.frames?.forEach((frame) => {
if (frame.filename) {
frame.filename = clearUserPath(frame.filename);
}
});
});
event.breadcrumbs?.forEach((breadcrumb) => {
if (breadcrumb.data?.url) {
breadcrumb.data.url = clearUserPath(breadcrumb.data.url);
}
});
if (event.request?.url) {
event.request.url = clearUserPath(event.request.url);
}
return event;
};
let analyticsClient: Client;
/**
* @summary Init analytics configurations
@ -29,7 +58,7 @@ export const initAnalytics = _.once(() => {
const dsn =
settings.getSync('analyticsSentryToken') ||
_.get(packageJSON, ['analytics', 'sentry', 'token']);
SentryRenderer.init({ dsn });
SentryRenderer.init({ dsn, beforeSend: anonymizeData });
const projectName =
settings.getSync('analyticsAmplitudeToken') ||

View File

@ -32,6 +32,7 @@ import { buildWindowMenu } from './menu';
import * as i18n from 'i18next';
import * as SentryMain from '@sentry/electron/main';
import * as packageJSON from '../../package.json';
import { anonymizeData } from './app/modules/analytics';
const customProtocol = 'etcher';
const scheme = `${customProtocol}://`;
@ -109,7 +110,7 @@ const initSentryMain = _.once(() => {
settings.getSync('analyticsSentryToken') ||
_.get(packageJSON, ['analytics', 'sentry', 'token']);
SentryMain.init({ dsn });
SentryMain.init({ dsn, beforeSend: anonymizeData });
});
const sourceSelectorReady = new Promise((resolve) => {