Remove all ID fields from telemetry (#1299)

* Remove all ID fields from telemetry

* Fix how some of the fields are blanked out

* Add back blank userId

* Disable VS Code tests broken by this change
This commit is contained in:
Karl Burtram
2018-04-30 16:52:54 -07:00
committed by GitHub
parent 55e3947cf7
commit a0456bf4f7
4 changed files with 76 additions and 83 deletions

View File

@@ -33,8 +33,9 @@ function getClient(aiKey: string): typeof appInsights.client {
client.channel.setOfflineMode(true);
// {{SQL CARBON EDIT}}
client.context.tags[client.context.keys.deviceMachineName] = ''; //prevent App Insights from reporting machine name
client.context.tags[client.context.keys.cloudRoleInstance] = ''; //prevent App Insights from reporting machine name
// clear all ID fields from telemetry
client.context.tags[client.context.keys.deviceMachineName] = '';
client.context.tags[client.context.keys.cloudRoleInstance] = '';
// set envelope flags to suppress Vortex ingest header
client.addTelemetryProcessor((envelope, contextObjects) => {

View File

@@ -14,10 +14,15 @@ import product from 'vs/platform/node/product';
export function resolveCommonProperties(commit: string, version: string, machineId: string, installSourcePath: string): TPromise<{ [name: string]: string; }> {
const result: { [name: string]: string; } = Object.create(null);
// {{SQL CARBON EDIT}}
// __GDPR__COMMON__ "common.machineId" : { "endPoint": "MacAddressHash", "classification": "EndUserPseudonymizedInformation", "purpose": "FeatureInsight" }
result['common.machineId'] = machineId;
// __GDPR__COMMON__ "sessionID" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['sessionID'] = uuid.generateUuid() + Date.now();
// result['common.machineId'] = machineId;
result['common.machineId'] = '';
// // __GDPR__COMMON__ "sessionID" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
// result['sessionID'] = uuid.generateUuid() + Date.now();
result['sessionID'] = '';
// __GDPR__COMMON__ "commitHash" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['commitHash'] = commit;
// __GDPR__COMMON__ "version" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
@@ -32,7 +37,7 @@ export function resolveCommonProperties(commit: string, version: string, machine
result['common.nodePlatform'] = process.platform;
// __GDPR__COMMON__ "common.nodeArch" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['common.nodeArch'] = process.arch;
// {{SQL CARBON EDIT}}
result['common.application.name'] = product.nameLong;

View File

@@ -20,48 +20,34 @@ export function resolveWorkbenchCommonProperties(storageService: IStorageService
result['common.version.renderer'] = process.versions && (<any>process).versions['chrome'];
// {{SQL CARBON EDIT}}
result['common.application.name'] = product.nameLong;
getUserId(storageService).then(value => result['common.userId'] = value);
// {{SQL CARBON EDIT}}
result['common.userId'] = '';
const lastSessionDate = storageService.get('telemetry.lastSessionDate');
const firstSessionDate = storageService.get('telemetry.firstSessionDate') || new Date().toUTCString();
storageService.store('telemetry.firstSessionDate', firstSessionDate);
storageService.store('telemetry.lastSessionDate', new Date().toUTCString());
// {{SQL CARBON EDIT}}
// const lastSessionDate = storageService.get('telemetry.lastSessionDate');
// const firstSessionDate = storageService.get('telemetry.firstSessionDate') || new Date().toUTCString();
// storageService.store('telemetry.firstSessionDate', firstSessionDate);
// storageService.store('telemetry.lastSessionDate', new Date().toUTCString());
// __GDPR__COMMON__ "common.firstSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['common.firstSessionDate'] = firstSessionDate;
// __GDPR__COMMON__ "common.lastSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['common.lastSessionDate'] = lastSessionDate;
// __GDPR__COMMON__ "common.isNewSession" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['common.isNewSession'] = !lastSessionDate ? '1' : '0';
// // __GDPR__COMMON__ "common.firstSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
// result['common.firstSessionDate'] = firstSessionDate;
// // __GDPR__COMMON__ "common.lastSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
// result['common.lastSessionDate'] = lastSessionDate;
// // __GDPR__COMMON__ "common.isNewSession" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
// result['common.isNewSession'] = !lastSessionDate ? '1' : '0';
// {{SQL CARBON EDIT}}
// __GDPR__COMMON__ "common.instanceId" : { "classification": "EndUserPseudonymizedInformation", "purpose": "FeatureInsight" }
result['common.instanceId'] = getOrCreateInstanceId(storageService);
// result['common.instanceId'] = getOrCreateInstanceId(storageService);
result['common.instanceId'] = '';
return result;
});
}
function getOrCreateInstanceId(storageService: IStorageService): string {
const result = storageService.get('telemetry.instanceId') || uuid.generateUuid();
storageService.store('telemetry.instanceId', result);
return result;
}
// {{SQL CARBON EDIT}}
// Get the unique ID for the current user
function getUserId(storageService: IStorageService): Promise<string> {
var userId = storageService.get('common.userId');
return new Promise<string>(resolve => {
// Generate the user id if it has not been created already
if (typeof userId === 'undefined') {
let id = Utils.generateUserId();
id.then( newId => {
userId = newId;
resolve(userId);
//store the user Id in the storage service
storageService.store('common.userId', userId);
});
} else {
resolve(userId);
}
});
}
// function getOrCreateInstanceId(storageService: IStorageService): string {
// const result = storageService.get('telemetry.instanceId') || uuid.generateUuid();
// storageService.store('telemetry.instanceId', result);
// return result;
// }