new personal data page that details what data Mycroft collects and what data is sent to third parties
parent
75da5c89ad
commit
6d35b290cd
|
@ -30,6 +30,7 @@ import { ProfileModule } from './modules/profile/profile.module';
|
||||||
import { SharedModule as SharedLibModule } from 'shared';
|
import { SharedModule as SharedLibModule } from 'shared';
|
||||||
import { SharedModule } from 'shared';
|
import { SharedModule } from 'shared';
|
||||||
import { SkillModule } from './modules/skill/skill.module';
|
import { SkillModule } from './modules/skill/skill.module';
|
||||||
|
import { PersonalDataModule } from './modules/personal-data/personal-data.module';
|
||||||
|
|
||||||
@NgModule(
|
@NgModule(
|
||||||
{
|
{
|
||||||
|
@ -41,6 +42,7 @@ import { SkillModule } from './modules/skill/skill.module';
|
||||||
GlobalnavModule,
|
GlobalnavModule,
|
||||||
HttpClientModule,
|
HttpClientModule,
|
||||||
DeviceModule,
|
DeviceModule,
|
||||||
|
PersonalDataModule,
|
||||||
ProfileModule,
|
ProfileModule,
|
||||||
SharedLibModule,
|
SharedLibModule,
|
||||||
SharedModule,
|
SharedModule,
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*! *****************************************************************************
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (c) Mycroft AI Inc. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
|
|
||||||
|
import { PersonalDataComponent } from './personal-data.component';
|
||||||
|
|
||||||
|
const personalDataRoutes: Routes = [
|
||||||
|
{path: 'personal-data', component: PersonalDataComponent},
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild(personalDataRoutes)
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
RouterModule
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class PersonalDataRoutingModule { }
|
|
@ -0,0 +1,90 @@
|
||||||
|
<h1 class="mat-h1" fxLayoutAlign="center">Data Mycroft Collects</h1>
|
||||||
|
<div class="personal-data-page" fxLayout="row wrap" fxLayoutAlign="center" fxLayout.xs="column" fxLayoutGap="16px">
|
||||||
|
<mat-card fxFlex="70">
|
||||||
|
<mat-card-header>
|
||||||
|
<fa-icon mat-card-avatar [icon]="emailAddressIcon"></fa-icon>
|
||||||
|
<mat-card-title>Email Address</mat-card-title>
|
||||||
|
</mat-card-header>
|
||||||
|
<mat-card-content>
|
||||||
|
<p class="mat-body">
|
||||||
|
When you created this account, you provided your email address. It is the method we
|
||||||
|
use to identify users. It is also used to send you confirmation messages when
|
||||||
|
actions are taken against your account. For example, a password reset request is
|
||||||
|
sent to this email address.
|
||||||
|
<p class="mat-body">
|
||||||
|
We do not use your email address for marketing purposes, unless you used the same
|
||||||
|
email address to sign up for our newsletter or other such mailing list. Your email
|
||||||
|
address is never shared with third parties.
|
||||||
|
</p>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
|
||||||
|
<mat-card fxFlex="70">
|
||||||
|
<mat-card-header>
|
||||||
|
<fa-icon mat-card-avatar [icon]="locationIcon"></fa-icon>
|
||||||
|
<mat-card-title>Geographical Location</mat-card-title>
|
||||||
|
</mat-card-header>
|
||||||
|
<mat-card-content>
|
||||||
|
<p class="mat-body">
|
||||||
|
When you register a device with Mycroft, the Add Device screen asks for the
|
||||||
|
geographical location of yor device. This data is synchronized to your device when
|
||||||
|
it is registered and when it is changed via the Edit Device screen. Your device
|
||||||
|
uses this data for location-specific services such as date, time and weather.
|
||||||
|
</p>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
|
||||||
|
<mat-card fxFlex="70">
|
||||||
|
<mat-card-header>
|
||||||
|
<fa-icon mat-card-avatar [icon]="dataPresentationIcon"></fa-icon>
|
||||||
|
<mat-card-title>Data Presentation</mat-card-title>
|
||||||
|
</mat-card-header>
|
||||||
|
<mat-card-content>
|
||||||
|
<p class="mat-body">
|
||||||
|
When you register your first device, you are asked for your preferred date format,
|
||||||
|
time format, and measurement system. This data is synchronized to each of your
|
||||||
|
devices when they are registered. If the values of these preferences change, the
|
||||||
|
new values are synchronized to all your devices. Your device uses this data for
|
||||||
|
when formatting data for presentation such as date, time and weather.
|
||||||
|
</p>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h1 class="mat-h1" fxLayoutAlign="center">Data Sent to Third Parties</h1>
|
||||||
|
<div class="personal-data-page" fxLayout="row wrap" fxLayoutAlign="center" fxLayout.xs="column" fxLayoutGap="16px">
|
||||||
|
<mat-card fxFlex="70">
|
||||||
|
<mat-card-header>
|
||||||
|
<fa-icon mat-card-avatar [icon]="voiceIcon"></fa-icon>
|
||||||
|
<mat-card-title>Speech Transcription</mat-card-title>
|
||||||
|
</mat-card-header>
|
||||||
|
<mat-card-content>
|
||||||
|
<p class="mat-body">
|
||||||
|
When you issue a command or request to your voice assistant, the audio data is
|
||||||
|
transcribed into text. The transcription can be performed on your device, but
|
||||||
|
on-device transcription software does not provide the best user experience.
|
||||||
|
Transcriptions are more accurate when sent to a third party service provider
|
||||||
|
over the internet.
|
||||||
|
<p class="mat-body">
|
||||||
|
Mycroft has partnered with Assembly AI to provide a privacy focused solution for
|
||||||
|
speech transcription. Your voice request will be sent for transcription, but will
|
||||||
|
not be saved.
|
||||||
|
</p>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
|
||||||
|
<mat-card fxFlex="70">
|
||||||
|
<mat-card-header>
|
||||||
|
<fa-icon mat-card-avatar [icon]="queryIcon"></fa-icon>
|
||||||
|
<mat-card-title>Answering Queries</mat-card-title>
|
||||||
|
</mat-card-header>
|
||||||
|
<mat-card-content>
|
||||||
|
<p class="mat-body">
|
||||||
|
When you ask the Mycroft voice assistant a question that cannot be answered by one
|
||||||
|
of the installed skills, a textual representation of the question is sent to
|
||||||
|
services like Wolfram Alpha, Duck Duck Go and Wikipedia in an attempt to find the
|
||||||
|
answer.
|
||||||
|
</p>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
</div>
|
|
@ -0,0 +1,42 @@
|
||||||
|
@import "@angular/material/theming";
|
||||||
|
@import "mycroft-colors";
|
||||||
|
@import "components/buttons";
|
||||||
|
|
||||||
|
.personal-data-page {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-h1 {
|
||||||
|
color: mat-color($mycroft-accent);
|
||||||
|
font-size: 32px;
|
||||||
|
margin-top: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
mat-card {
|
||||||
|
border-radius: 12px;
|
||||||
|
margin: 16px;
|
||||||
|
max-width: 500px;
|
||||||
|
min-width: 300px;
|
||||||
|
|
||||||
|
mat-card-header {
|
||||||
|
fa-icon {
|
||||||
|
font-size: 32px;
|
||||||
|
color: mat-color($mycroft-primary);
|
||||||
|
padding-left: 16px;
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
mat-card-title {
|
||||||
|
font-weight: bold;
|
||||||
|
padding-top: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mat-card-content {
|
||||||
|
padding: 16px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
|
import { faComments, faEarthAmericas, faEnvelope, faGauge, faQuestionCircle } from '@fortawesome/free-solid-svg-icons';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'account-personal-data',
|
||||||
|
templateUrl: './personal-data.component.html',
|
||||||
|
styleUrls: ['./personal-data.component.scss']
|
||||||
|
})
|
||||||
|
export class PersonalDataComponent implements OnInit {
|
||||||
|
public dataPresentationIcon = faGauge;
|
||||||
|
public emailAddressIcon = faEnvelope;
|
||||||
|
public locationIcon = faEarthAmericas;
|
||||||
|
public queryIcon = faQuestionCircle;
|
||||||
|
public voiceIcon = faComments;
|
||||||
|
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*! *****************************************************************************
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (c) Mycroft AI Inc. All rights reserved.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
||||||
|
this file except in compliance with the License. You may obtain a copy of the
|
||||||
|
License at http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
||||||
|
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
||||||
|
MERCHANTABLITY OR NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
See the Apache Version 2.0 License for specific language governing permissions
|
||||||
|
and limitations under the License.
|
||||||
|
***************************************************************************** */
|
||||||
|
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
|
import { MatCardModule } from '@angular/material/card';
|
||||||
|
|
||||||
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
||||||
|
|
||||||
|
import { PersonalDataComponent } from './personal-data.component';
|
||||||
|
import { PersonalDataRoutingModule } from './personal-data-routing.module';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [
|
||||||
|
PersonalDataComponent
|
||||||
|
],
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
FlexLayoutModule,
|
||||||
|
FontAwesomeModule,
|
||||||
|
MatButtonModule,
|
||||||
|
MatCardModule,
|
||||||
|
PersonalDataRoutingModule
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class PersonalDataModule { }
|
Loading…
Reference in New Issue