— 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.9
Päivitetty
2.10.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
Yhteystieto (osallistuja itse)oma puhelinnumero — vapaaehtoinen, kysytään oletuksena vain tapahtumissa ja matkoillaArt. 6(1)(b) sopimus. Käyttötarkoitus: osallistujan tavoittaminen tilanteessa jossa hän ei ole jatkuvassa valvonnassa (bussimatka, tapahtuma-alue). Näkyvyys: matkanjohtaja, ryhmänjohtaja, EA-vastaava ja yövartija — ei keittiö- eikä muu tukihenkilöstö. Tapahtumassa ryhmänjohtaja näkee kaikki osallistujat, joten kenttä on hänelle laajempi kuin leirillä; tämä on tietoinen valinta, koska juuri ryhmänjohtaja etsii kadonneen nuoren.
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ö, yövartija, uimavalvoja) 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), AI-toiminnot (Anthropic Claude) ja leirimainoksen taustakuvan generoinnin (OpenAI).
  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ä — AI-toiminnot: osallistujakohtaiset allergia- ja ruokavaliotiedot ilman nimiä (keittiön AI-työkalut, pseudonymisoitu), numeroitu ikä, sukupuoli ja uimataito (joukkuejako), järjestäjän lataamat asiakirjat (voivat sisältää aikuisten vastuuhenkilöiden nimiä ja yhteystietoja), käyttäjän kirjoittamat kysymykset ja hakulausekkeet sekä ilmoittautumissivun esittelyteksti (konekäännös)USA (SCC + tietoja minimoivat suojatoimet)
OpenAI (kuvagenerointi)Käsittelijä — leirimainoksen taustakuva: vain leirin ajankohta, sijaintiteksti ja pääkäyttäjän tyylitoive (enintään 200 merkkiä), ei henkilötietojaUSA
Sentry (virheraportointi)Käsittelijä — vain teknisiä lokejaEU
Cloudflare TurnstileKäsittelijä — bot-suojaEU/USA
Rahastonhoitaja (organisaation nimeämä henkilö)Vastaanottaja — aikarajoitettu token-linkki maksuseurantaan (leiriläisten nimet + odotettavat/maksetut summat, EI terveys-/allergiatietoja). Ei kirjautumista; pääsy peruutettavissa, voimassa ≤12 kk. Pääsy lokitetaan audit_log:iin.EU (Firestore)

3. Tarpeellisuuden ja oikeasuhtaisuuden arviointi

3.1 Käsittelyperuste

Pääperuste on Art. 6(1)(b) sopimus (osallistujan ja järjestäjän välinen sopimus; alaikäisen puolesta sen tekee huoltaja edustajana, laki holhoustoimesta 442/1999 4 §) sekä terveystietojen osalta Art. 9(2)(a) nimenomainen suostumus, joka annetaan ilmoittautumislomakkeessa erillisellä rastilla. Alaikäisen osallistujan puolesta suostumuksen antaa huoltaja; täysi-ikäinen osallistuja antaa sen itse (aikuisille tarkoitetut leirit ja tapahtumat sekä itse ilmoittautuvat täysi-ikäiset — lomake edellyttää itsenäiseltä ilmoittautujalta 18 vuoden ikää). Jos järjestäjä lisää täysi-ikäisen osallistujan tiedot itse, suostumuksen pyytäminen on järjestäjän vastuulla rekisterinpitäjänä. 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älkeenOdottavat allekirjoituspyynnöt, jotka ovat vanhentuneet
26 kkTerveystiedot (allergiat, terveys, särkylääkelupa, uimataito, ruokavaliot, lisätiedot, huoltajan peruutusperustelu) osallistujilta, henkilökunnalta ja ilmoittautumiskopioista; allekirjoituskuvat ja valmiit allekirjoituspyynnöt; valokuvat; hylätyt, jonotetut ja tarjotut ilmoittautumiset sekä jonotustarjoukset; huoltajaportaalin tunnisteet, viestit, kysymykset ja muutoshistoria; Aktiviteetit-syötteen terveys- ja allergiarivit (myös henkilökunnan omat allergiamuutokset); keittiön erityisruokamerkintöjen henkilötiedot (nimi, tunniste ja huomautus myös perutuista merkinnöistä; allergeeni- ja vakavuustieto säilyy ilman henkilöä, kirjaajien nimet poistetaan 12 kk:ssa)
312 kkOsallistujien ja huoltajien perustiedot; henkilökunnan tiedot (myös roolien nimilistat, majoituksen asukkaat, ryhmät, keittiövuorot, henkilökunnan ilmoitukset); kaikki ilmoittautumiset; paikallaolo; jaot ja julkinen ilmoittautumissivun peili; leirin Aktiviteetit-syöte; palautelinkkien sähköpostit. Ilmoittautuminen suljetaan (asetus jää muotoon "suljettu").
42 vLääkitystiedot, lääkkeenantoloki ja kaikki muu jäljellä oleva — leiridokumentti tyhjennetään. Suostumus- ja poistotodisteet säilyvät 36 kk merkinnästä (ks. 5.3).
Lykkäysenintään 12 kk havainnostaPortaat 2–4 odottavat, jos leiriä on käytetty päättymisen jälkeen (ks. 5.3). Lykkäys ei pidennä merkintäkohtaisia enimmäisaikoja (audit_log 24 kk, suostumus- ja poistotodisteet 36 kk).
—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, jolle keittiön AI-työkalut lähettävät pseudonymisoituja osallistujakohtaisia allergia- ja ruokavaliotietoja. Jos tunnistettavaa terveystietoa päätyisi 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 ja täysi-ikäisen osallistujan 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