diff --git a/backend/src/PRIVACY_POLICY.html b/backend/src/PRIVACY_POLICY.html new file mode 100644 index 0000000..67cb2ed --- /dev/null +++ b/backend/src/PRIVACY_POLICY.html @@ -0,0 +1,756 @@ + + + + + + MyPet – Tietosuojaseloste + + + +
+ + +
+

MyPet – Tietosuojaseloste

+

Privacy Policy / Dataskyddspolicy

+
+ 📅 Voimaantulo: 20.2.2026 + 🔄 Viimeksi päivitetty: 20.2.2026 + 📦 Versio 1.0.0 +
+
+ + + + + +
+

1Rekisterinpitäjä

+

+ MyPet-sovelluksen rekisterinpitäjä on sovelluksen kehittäjä ja ylläpitäjä + (jäljempänä "me", "rekisterinpitäjä"). +

+ + + + + + + + + + + + + +
SovellusMyPet (com.mypet.mobile)
Palvelinhttps://mypet.zroot.it
AlustaAndroid (React Native / Expo)
+
+ Käyttämällä MyPet-sovellusta hyväksyt tässä selosteessa kuvatun henkilötietojen käsittelyn. +
+
+ + +
+

2Kerättävät henkilötiedot

+

Keräämme seuraavat tietoryhmät sovelluksen eri toimintojen toteuttamiseksi.

+ +

2.1 Käyttäjätilitiedot

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TietoTarkoitusPakollinen
NimiKäyttäjän tunnistaminen sovelluksessaKyllä
SähköpostiosoiteAutentikointi, yhteydenottoKyllä
KäyttäjätunnusKirjautuminen, jakamistoiminnotKyllä
Salasana (hajautettu)Tilin suojausKyllä
ProfiilikuvaKäyttäjäprofiilin personointiEi
+ +

2.2 Lemmikkitiedot

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TietoTarkoitusPakollinen
Lemmikin nimi, laji, rotu, sukupuoli, syntymäpäiväLemmikin profiilin hallintaKyllä
PainoPainonseurantaEi
ValokuvaProfiilikuva lemmikilleEi
MuistiinpanotVapaamuotoinen tiedon tallennusEi
+ +

2.3 Terveys- ja hoitotiedot

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TietoryhmäSisältö
LääkityksetLääkkeen nimi, päivämäärä, vanhentumispäivä, muistiinpanot, kustannukset
RokotuksetRokotteen nimi, rokotuspäivä, vanhentumispäivä, muistiinpanot, kustannukset
EläinlääkärikäynnitKäyntipäivä, sijainti, eläinlääkärin nimi, käyntiluokka, muistiinpanot, kustannukset
PainoseurantaPäivämäärä + mitattu paino
KalenteritapahtumatOtsikko, kuvaus, päivämäärä, kellonaika, muistutusaika, tapahtumalaaji
+ +

2.4 Kävelytiedot ja sijaintidata

+ + + + + + + + + + + + + + + + + + + + + + + + + +
TietoTarkoitus
GPS-koordinaatit (leveysaste, pituusaste, korkeus)Kävelyn reittitallenne
Aikaleimat kävelystäKeston laskeminen
Etäisyys, keskinopeus, askelmääräKävelyn tilastot
GPS-tarkkuusReitin laadunvarmistus
+ +

2.5 Jaetut lemmikkitiedot

+

+ Kun käytät lemmikin jakamistoimintoa, tallennamme tiedon siitä, kenen kanssa + lemmikki on jaettu (käyttäjätunnus, sähköposti, nimi) sekä annetun roolin + (omistaja / hoitaja / eläinlääkäri). +

+
+ + +
+

3Tietojen käyttötarkoitus ja oikeusperuste

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KäyttötarkoitusOikeusperuste (GDPR art. 6)
Käyttäjätilin luominen ja autentikointiSopimus (6.1.b)
Lemmikin terveys- ja hoitotietojen hallintaSopimus (6.1.b)
Kävelyreittien tallennus ja tilastointiSuostumus (6.1.a)
Lemmikin jakaminen muille käyttäjilleSuostumus (6.1.a)
Kalenterimuistutusten lähettäminenSopimus (6.1.b)
Palvelun tietoturva ja väärinkäytösten estoOikeutettu etu (6.1.f)
+
+ + +
+

4Sijaintitiedot

+

+ Sovellus pyytää pääsyä laitteesi sijaintiin ainoastaan, kun käytät + kävelynseuranta-toimintoa. Sijainti kerätään kahdella tasolla: +

+ +
+ Sijaintitietoja ei koskaan jaeta kolmansille osapuolille eikä + niitä käytetä mainontaan tai profilointiin. GPS-data siirretään palvelimelle + ainoastaan silloin, kun käyttäjä itse valitsee kävelysynkronoinnin. +
+

+ Voit peruuttaa sijaintiluvan milloin tahansa laitteesi asetuksista. + Tämä poistaa kävelynseurannan sovelluksesta käytöstä. +

+
+ + +
+

5Tietojen säilytys laitteella

+

+ Sovellus tallentaa seuraavat tiedot laitteen paikalliseen tallennustilaan + (AsyncStorage) ilman ulkopuolisten palveluiden käyttöä: +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Tallennettu tietoSyy
Autentikointitoken (JWT)Kirjautumistilan ylläpito (7 vrk voimassaolo)
KäyttäjäprofiilidataOffline-käyttö ja nopea lataus
Kävelyn reittitiedot (paikallinen varmuuskopio)Synkronoimattomat kävelyt ennen palvelimelle lähetystä
KävelyasetuksetKäyttäjän asetusten muistaminen
+

+ Paikallinen data poistetaan automaattisesti, kun kirjaudut ulos tai + poistat tilin. Voit tyhjentää paikallisen datan myös poistamalla + sovelluksen laitteestasi. +

+
+ + +
+

6Tietojen siirto ja kolmannet osapuolet

+ +

6.1 Palvelimelle siirrettävät tiedot

+

+ Kaikki palvelimelle (https://mypet.zroot.it) siirrettävä + liikenne käyttää HTTPS-salattua yhteyttä. + Palvelin sijaitsee EU:n alueella; henkilötietoja ei siirretä EU/ETA-alueen + ulkopuolelle. +

+ +

6.2 Sovelluksen käyttämät kirjastot

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Kirjasto / KehysKäyttötarkoitusKerää henkilötietoja
React Native / ExpoSovelluskehysEi suoraan
AxiosHTTP-pyyntöjen tekeminenEi
expo-locationGPS-sijainnin lukeminenEi tallenna erikseen
AsyncStoragePaikallinen tallennustilaVain laitteella
+ +

6.3 Tietoja ei myydä eikä luovuteta

+

+ Emme myy, vuokraa tai luovuta käyttäjätietoja kolmansille + osapuolille markkinointitarkoituksiin. Tietoja voidaan luovuttaa ainoastaan + lainmukaisten viranomaismääräysten perusteella. +

+
+ + +
+

7Tietojen säilytysajat

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DataSäilytysaika
Käyttäjätili ja siihen liittyvät tiedotTilin aktiivisuusaika + 30 päivää tilin poistamisen jälkeen
Autentikointitoken (laitteella)7 päivää tai kirjautumisesta asti uloskirjautumiseen
Kävely- ja sijaintidataTilin aktiivisuusaika; poistetaan tilin poistamisen yhteydessä
Terveys- ja hoitorekisteritTilin aktiivisuusaika
Lokitiedot palvelimellaEnintään 90 päivää
+
+ + +
+

8Rekisteröidyn oikeudet

+

+ GDPR:n nojalla sinulla on seuraavat oikeudet henkilötietojesi käsittelyn + suhteen: +

+
+
+
🔍
+

Tarkastusoikeus

+

Voit pyytää nähtäväksi sinusta tallennetut tiedot.

+
+
+
✏️
+

Oikaisupyyntö

+

Voit korjata virheelliset tai puutteelliset tiedot.

+
+
+
🗑️
+

Poistopyyntö

+

+ Voit poistaa tilisi sovelluksen asetuksista. + Kaikki henkilötiedot poistetaan 30 päivän kuluessa. +

+
+
+
+

Käsittelyn rajoitus

+

Voit pyytää tietojesi käsittelyn rajoittamista tietyissä tilanteissa.

+
+
+
📤
+

Tietojen siirrettävyys

+

Voit pyytää tietosi koneluettavassa muodossa.

+
+
+
🚫
+

Vastustamisoikeus

+

Voit vastustaa oikeutettuun etuun perustuvaa käsittelyä.

+
+
+
↩️
+

Suostumuksen peruutus

+

+ Voit peruuttaa suostumuksesi (esim. sijaintilupa) milloin tahansa + ilman, että se vaikuttaa menneeseen käsittelyyn. +

+
+
+
🏛️
+

Valitusikeoikeus

+

+ Voit tehdä valituksen valvontaviranomaiselle + (Suomessa: Tietosuojavaltuutettu, + tietosuoja.fi). +

+
+
+ +
+ Tilin voi poistaa suoraan sovelluksesta kohdasta + Asetukset → Poista tili. Muihin pyyntöihin vastataan + 30 päivän kuluessa. +
+
+ + +
+

9Tietoturva

+ +

+ Tietoturvaloukkaustilanteissa ilmoitamme asianomaisille rekisteröidyille ja + toimivaltaiselle valvontaviranomaiselle GDPR:n vaatimassa 72 tunnin määräajassa. +

+
+ + +
+

10Alaikäiset

+

+ MyPet-sovellus on tarkoitettu henkilöille, jotka ovat täyttäneet 13 vuotta. + Alle 13-vuotiaiden ei tule rekisteröityä palveluun ilman vanhemman tai + huoltajan suostumusta. Jos saamme tietää, että olemme keränneet alle + 13-vuotiaan henkilötietoja ilman asianmukaista suostumusta, poistamme + tiedot viipymättä. +

+
+ + +
+

11Muutokset tietosuojaselosteeseen

+

+ Pidätämme oikeuden muuttaa tätä tietosuojaselostetta. Olennaisista muutoksista + ilmoitetaan sovelluksen kautta tai sähköpostitse vähintään 14 päivää + ennen muutoksen voimaantuloa. Ajantasainen seloste on aina + saatavilla sovelluksessa sekä sen virallisilla verkkosivuilla. +

+

+ Jatkamalla sovelluksen käyttöä muutoksen voimaantulon jälkeen hyväksyt + päivitetyn tietosuojaselosteen. +

+
+ + +
+

12Yhteystiedot

+

+ Rekisteröidyn oikeuksiin liittyvät pyynnöt sekä tietosuojaa koskevat + kysymykset ja huomiot voidaan lähettää sovelluksen sisäisen palautekanavan + kautta tai suoraan rekisterinpitäjälle. +

+

+ Valvontaviranomainen Suomessa:
+ Tietosuojavaltuutetun toimisto
+ PL 800, 00531 Helsinki
+ tietosuoja.fi +

+ +
+ Vastaamme kaikkiin tietosuojapyyntöihin 30 päivän kuluessa pyynnön vastaanottamisesta. +
+
+ +
+ + + + diff --git a/backend/src/index.js b/backend/src/index.js index 68ca25b..1e415b5 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -2,6 +2,7 @@ const express = require('express'); const cors = require('cors'); const helmet = require('helmet'); const rateLimit = require('express-rate-limit'); +const path = require('path'); require('dotenv').config(); // Import routes @@ -79,6 +80,11 @@ app.use('/api/weights', authLimiter, weightRoutes); app.use('/api/routes', authLimiter, routeRoutes); app.use('/api/calendar-events', authLimiter, calendarEventRoutes); +// Privacy Policy - public route +app.get('/privacy-policy', (req, res) => { + res.sendFile(path.join(__dirname, 'PRIVACY_POLICY.html')); +}); + // 404 handler app.use((req, res) => { res.status(404).json({