— TIETOSUOJAVAIKUTUSTEN ARVIOINTI

Campflow — Tietosuojavaikutusten arviointi (DPIA)

GDPR-asetuksen (EU 2016/679) Art. 35 mukainen arviointi. Koskee Campflow-leirinhallintapalvelun käyttämiä käsittelytoimia, joissa käsitellään alaikäisten henkilötietoja sekä erityisiä henkilötietoryhmiä (terveys, allergiat, lääkitys).

Dokumentin versio
1.6
Päivitetty
14.5.2026
Seuraava tarkistus
2.5.2027 (vuosittain) tai aiemmin merkittävien muutosten yhteydessä
Laatija
Campflow / Esa Mäkinen (palveluntarjoaja)
Hyväksyjä
Kukin rekisterinpitäjäorganisaatio (seurakunta, lippukunta, urheiluseura, yhdistys) omalta osaltaan

1. Tarvittiinko DPIA?

Kyllä. GDPR Art. 35(3) listaa tilanteet, joissa DPIA on pakollinen. Campflow täyttää useita kriteerejä:

Tietosuojavaltuutetun toimiston julkaisema lista käsittelytoimista, joista DPIA on tehtävä (TSV 2018), tukee tätä arviointia.

2. Käsittelytoimien systemaattinen kuvaus

2.1 Käsittelyn kuvaus

Campflow on selainpohjainen leirinhallintapalvelu (SaaS), jonka avulla seurakunnat, lippukunnat, urheiluseurat ja yhdistykset hallinnoivat lasten ja nuorten leirejä. Huoltaja ilmoittaa lapsensa leirille, järjestäjä ottaa vastaan ilmoittautumiset, kerää tarvittavat lupatiedot, suunnittelee ohjelman ja viestii huoltajille leirin aikana.

2.2 Käsittelyn tarkoitukset

2.3 Käsiteltävät tiedot

TietoryhmäEsimerkkikentätKäsittelyperuste
Perustiedot (lapsi)nimi, syntymäaika, sukupuoli, osoite, kotikuntaArt. 6(1)(b) sopimus + Art. 8 huoltajan suostumus
Yhteystiedot (huoltaja)nimi, puhelin, sähköpostiArt. 6(1)(b) sopimus
Terveystiedotallergiat, sairaudet, lääkitys, uimataito, kipulääkelupaArt. 9(2)(a) nimenomainen suostumus
Erityisruokavaliotkasvis, vegaani, gluteeniton, laktoositon, jne.Art. 9(2)(a) nimenomainen suostumus
Kuvauslupa + valokuvatphotoOk-arvo, EXIF-stripatut valokuvatArt. 6(1)(a) suostumus, Art. 9(2)(a) jos henkilökohtaisia piirteitä
Henkilökuntanimi, puhelin, sähköposti, rooliArt. 6(1)(f) oikeutettu etu (työsopimuksen täytäntöönpano)
Lääkkeenantolokiannettu lääke, annos, aika, antajaArt. 6(1)(c) lakisääteinen velvoite (potilasvahinkokäytäntö)
Paluuperhe-muistutus (vapaaehtoinen opt-in)huoltajan nimi + sähköposti, lapsen etunimi, syntymävuosi, leirityyppi, peruutus-token — EI terveys-/allergiatietojaArt. 6(1)(a) suostumus; rekisterinpitäjä = organisaatio; säilytys 24 kk inaktiivisuudesta tai heti peruttaessa

2.4 Tietovirta

  1. Huoltaja täyttää julkisen ilmoittautumislomakkeen (ilmo.html) → tiedot kirjoitetaan Firestoreen.
  2. Järjestäjä kirjautuu sovellukseen (app.html), näkee ilmoittautumiset, hyväksyy/hylkää, jakaa ryhmiin.
  3. Henkilökunta (leiripomo, ohjaaja, EA-vastaava, keittiö) saa rajatun pääsyn rooli-perusteisesti.
  4. Huoltajaportaali (huoltaja.html) — huoltaja saa parentToken-linkin sähköpostiin ja näkee leirin aikana lapsensa tilanteen.
  5. Cloud Functions hoitavat sähköpostit (Resend), valokuvankäsittelyn (Sharp + EXIF-strippaus) ja AI-toiminnot (Anthropic Claude).
  6. Säilytysaikojen päätyttyä tiedot poistetaan automaattisesti porras-mallin mukaisesti (cleanupExpiredData).

2.5 Vastaanottajat ja tietojenkäsittelijät

VastaanottajaRooliSijainti
Google Firebase (Firestore, Storage, Cloud Functions, Auth)KäsittelijäEU (europe-west1)
Resend (sähköpostipalvelu)KäsittelijäEU/USA (Standard Contractual Clauses)
Anthropic (Claude API)Käsittelijä — vain anonymisoidut syötteetUSA (SCC + tietoja minimoivat suojatoimet)
Sentry (virheraportointi)Käsittelijä — vain teknisiä lokejaEU
Cloudflare TurnstileKäsittelijä — bot-suojaEU/USA

3. Tarpeellisuuden ja oikeasuhtaisuuden arviointi

3.1 Käsittelyperuste

Pääperuste on Art. 6(1)(b) sopimus (huoltajan ja järjestäjän välinen leirisopimus) sekä terveystietojen osalta Art. 9(2)(a) nimenomainen suostumus, jonka huoltaja antaa ilmoittautumislomakkeessa erillisellä rastilla. Lääkkeenantoloki perustuu Art. 6(1)(c) lakisääteiseen velvoitteeseen (potilasvahinkokäytäntö).

3.2 Tietojen minimointi

3.3 Säilytysajat (porras-malli)

PorrasAika leirin päättymisestäMitä poistetaan
130 vrk sig-expiryn jälkeenVanhentuneet allekirjoituspyynnöt
26 kkTerveystiedot, allergiat, lääkityslupa, uimataito, valokuvat, allekirjoituskuvat, hylätyt ilmoittautumiset, huoltajaportaalin tiedot
312 kkOsallistujien perustiedot, henkilökunnan tiedot, paikallaolot, hyväksytyt ilmoittautumiset
42 vLääkitykset, lääkkeenantoloki, kaikki jäänteet — leiri tyhjennetään täysin
24 kk käyttämättömyydestä TAI heti huoltajan peruessaPaluuperhe-muistutus (opt-in). Erillinen logiikka — ei sidottu leirin päättymiseen; sisältää vain minimitiedon (ei Art. 9)

4. Riskien arviointi

Riskit on arvioitu rekisteröityjen näkökulmasta käyttäen kolmiportaista asteikkoa (alhainen / kohtalainen / korkea), arvioiden todennäköisyys × vakavuus.

R1: Tietomurto — terveystietojen vuoto

Korkea ennen suojausta

Allergia-, lääkitys- ja sairaustiedot voisivat joutua vääriin käsiin tietomurron seurauksena. Vahinko alaikäisen yksityisyydelle olisi merkittävä ja pitkäkestoinen.

R2: parentToken-vuoto sähköpostista

Korkea ennen suojausta

Jos huoltajan sähköposti vuotaa (phishing tms), kolmas osapuoli voi käyttää parentToken-linkkiä ja nähdä lapsen tiedot.

R3: Henkilökunnan väärinkäyttö

Kohtalainen

Ryhmänjohtaja, joka ei tarvitse kaikkien lasten tietoja, voi kuitenkin nähdä niitä jos ryhmäjako on tekemättä.

R4: AI-palvelun tietovuoto

Kohtalainen

Anthropic Claude on USA-pohjainen palvelu. Jos terveystietoja vuotaisi sinne, riski olisi korkea.

R5: Säilytysaikojen ylitys

Kohtalainen

Jos automaattinen puhdistus epäonnistuu, tiedot säilyvät tarpeettomasti.

R6: Huoltajan käyttöoikeuksien hallinta

Alhainen

Huoltaja ei pysty käyttämään GDPR-oikeuksiaan (Art. 15/17/20) helposti.

5. Riskinhallintatoimenpiteet

5.1 Tekniset suojat (R1, R2, R4)

5.2 Organisatoriset suojat (R3)

5.3 Säilytysaikojen valvonta (R5)

5.4 Huoltajan oikeudet (R6) — itsepalvelu

5.5 Erityiset toimenpiteet alaikäisille

5.6 Roolikohtaiset Art. 9 -kenttärajaukset

Allowlist on kovakoodattu sovelluskoodissa ja Firestore Rulesissa, ei voi ohittaa custom-perms:lla:

6. Konsultaatio rekisteröityjen kanssa

Huoltajat saavat ilmoittautumisen yhteydessä:

6.1 Viivakoodiskannaus

Pääkokille tarjotaan tukku-tilanteissa viivakoodiskanneri (BarcodeDetector + Open Food Facts -tietokanta), joka näyttää tuotteen allergeenit + ravintotiedot ja vertaa niitä leirin osallistujien strukturoituihin allergeenitietoihin.

Tietovirta

Riskinarviointi

R7 — Pääkokin tunnistetiedot OFF-palvelimella: Cloud Run lähettää OFF:lle User-Agent: Campflow - https://campflow.fi - info@campflow.fi + Cloud Run egress-IP:n. Tämä ei ole loppukäyttäjän henkilötieto, vaan Campflow-organisaation palvelinmerkintä. Lievä, ei vaadi DPA:ta.

R8 — OFF-data on vapaaehtoisten ylläpitämä: väärä tai vanhentunut allergeenitieto voi johtaa virheellisiin päätöksiin. Lievennys: UI-disclaimer "Tarkista aina pakkaus" + neutraali "ei osu listaan" -muotoilu joka ei anna positiivista turva-väitettä (EU 1169/2011 + vahingonkorvauslaki 412/1974).

R9 — Cache 30 päivää: jos OFF:ssa allergeeni lisätään tuotteelle, Campflow näyttää vanhaa tietoa max kuukauden. Lievennys: aina näkyvä disclaimer + Avaa OFF:ssa -linkki.

Lainmukainen peruste

Käsittely (audit-loki) perustuu GDPR Art. 6(1)(f) — oikeutettu intressi (rekisterinpitäjän intressi varmistaa elintarviketurvallisuus + jäljitettävyys, joka ylittää staff-henkilön intressin olla nimettömänä työajan kirjauksissa). Henkilötiedot rajattu staff-rooliin, ei leiriläisten tietoja audit-lokissa.

6.2 Keittiö-briefing

Pääkokin pysyvä muistio keittiön staffille (kitchen / campLeader / admin / medic). Sisältää: vapaamuotoisen otsikon ja viestin (max 2000 merkkiä), automaattisesti koostetun "vakavat allergiat"-listan (lapsen NIMI + EU14-allergeenit + vapaa lisäteksti), runOut/leftover-palautteen 3 päivän ajalta. Vaihtoehtoinen sähköpostilähetys ulkopuolisille vapaehtoisille.

Tietovirta

Riskinarviointi

R10 — Vapaateksti houkuttelee Art. 9 -tietoja: käyttäjä voi kirjoittaa "Liisa allerginen pähkinöille, EpiPen autossa" body-kenttään. Lievennys: oranssi varoitus modaalin alussa (4 kieltä), placeholder "esim. Tiistain ruokalistalle lisättiin gluteeniton vaihtoehto. Tarkista pakkaukset.", auto-osio (yläosassa) hoitaa vakavat allergiat strukturoidusti.

R11 — Recipient-osoitteet sähköpostilähetyksessä: CF tallentaa lähetysstatuksen audit-lokiin system_log-kokoelmaan, mutta ei sähköpostiosoitteita kirkkaasti — vain määrät (recipientCount, sentCount). Tämä rajaa Art. 5(1)(c) datan minimointi-vaatimusta.

R12 — Phishing-vektori: aiemmin client lähetti title+body POSTissa, mikä mahdollisti spämmin Campflow-brändillä. Korjaus: CF lukee briefingin Firestoresta briefingId:llä — ei luota client-bodyyn.

Lainmukainen peruste

Sisäinen käsittely: GDPR Art. 6(1)(f) — oikeutettu intressi (elintarviketurvallisuus + henkilökunnan tiedonkulku). Sähköpostilähetys ulkopuoliselle: Art. 6(1)(a) — käyttäjän nimenomainen suostumus opt-in-checkbox:lla. Vakavasti allergisten lasten nimet auto-osiossa: Art. 9(2)(a) — huoltajan suostumus "terveystietojen jakamiseen leirin staffin kesken".

6.3 Datalaatu-mittari

Reseptin pisteytys 0-100 % perustuu: perusresepti (+30), ainesosien allergeenitiedot (+25), Fineli-linkitys (+25), määrät (+10), reseptin allergensInRecipe-lista (+10). Alle 60 % näytetään päivänäkymässä punainen varoitus jos leirillä on vakavasti allerginen henkilö (heuristiikka: p.allergiesNotes sisältää "vakava"/"anafylak"/"epipen").

Tietovirta

Riskinarviointi

R13 — Päivänäkymän varoitus paljastaa että "leirillä on vakavasti allerginen henkilö": tämä on Art. 9 -tieto (terveys), vaikka nimeä ei näytetä. Sama keittiön rooli-rajoitus kuin briefing-paneelissa (kitchen/campLeader/admin/medic). Leader-rooli näkee päivänäkymän mutta ei tätä varoitusta erikseen — kuitenkin ateriakortti on samalla sivulla ja staff voi päättää itse mitä tarvitsee.

R14 — Heuristinen severity-tunnistus: regex matchaa "vakava|anafylak|epipen|severe|anaphyl" allergiesNotes-kentästä. False negativeja ja false positiveja mahdollisia. Tämä ei ole automaattinen päätöksenteko Art. 22 mielessä — pelkkä UI-vihje, päätös on aina kokin.

Lainmukainen peruste

Art. 6(1)(f) oikeutettu intressi: lapsen turvallisuus + elintarviketurvallisuuden jäljitettävyys. Datalaatu-laskenta on pelkästään client-puolella, ei tallennu Firestoreen — joten ei uusia tallennuskategorioita. Läpinäkyvyys (Art. 5(1)(a)): UI-tekstit ovat selkeitä ja käyttäjä näkee mitä lasketaan.

7. Päätelmä

Tunnistetut korkean tason riskit (R1, R2) on lievennetty kohtalaiselle tasolle teknisten suojien yhdistelmällä (pääsynvalvonta + rooliperustaisuus + token-vanheneminen + EXIF-strippaus + audit-loki). Kohtalaiset riskit (R3-R5) on lievennetty alhaiselle tasolle organisatoristen ja teknisten toimenpiteiden yhdistelmällä. Viivakoodiskannauksen riskit (R7-R9) ovat lieviä.

Jäännösriski on hyväksyttävällä tasolla. Erityistä konsultaatiota tietosuojavaltuutetun toimiston kanssa (Art. 36) ei katsota tarpeelliseksi, mutta tämä DPIA toimitetaan TSV:lle pyynnöstä.

DPIA tarkistetaan vuosittain tai aiemmin, jos käsittelytoimissa tapahtuu merkittäviä muutoksia (uusi tietoryhmä, uusi käsittelijä, uusi käsittelyperuste).

8. Yhteystiedot

Tämän DPIA:n laatija:

Esa Mäkinen · Campflow palveluntarjoaja · info@campflow.fi

Rekisterinpitäjien (organisaatioiden) yhteystiedot löytyvät kunkin organisaation omasta tietosuojaselosteesta.

Tietosuojavaltuutetun toimisto (valvontaviranomainen Suomessa): tietosuoja.fi