Niniejsza Polityka prywatności opisuje zasady przetwarzania danych osobowych w serwisie lokalsi.link oraz jego subdomenach gminnych (np. czaplinek.lokalsi.link). Dokument jest zgodny z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. (dalej: RODO) oraz ustawą z dnia 10 maja 2018 r. o ochronie danych osobowych (Dz.U. 2018 poz. 1000).
Polityka składa się z sześciu sekcji, dopasowanych do roli osoby, której dane dotyczą:
- Sekcja A — dla odwiedzającego mapę (visitor)
- Sekcja B — dla osoby komentującej (commentator)
- Sekcja C — dla właściciela punktu POI (POI owner)
- Sekcja D — dla mieszkańca z kontem na platformie (resident)
- Sekcja E — dla zgłaszającego problem mieszkańca (incident reporter)
- Sekcja F — procesory danych przeciwko nadużyciom (DNSBL, Turnstile)
Administrator danych i kontakt
Administrator danych osobowych platformowych:
- MAGNET MEDIC Tomasz Fiedoruk (jednoosobowa działalność gospodarcza)
- NIP: 2530148533
- REGON: 331412634
- BDO: 000005014
- Adres siedziby / korespondencji: ul. Dworcowa 19, 78-550 Czaplinek
- Kontakt: formularz online (preferowany — szybciej trafia do obsługi, audit log SLA)
Inspektor Ochrony Danych (DPO): Administrator nie powołał Inspektora Ochrony Danych, ponieważ nie zachodzą przesłanki art. 37 RODO (działalność nie polega na regularnym i systematycznym monitorowaniu osób na dużą skalę ani na przetwarzaniu szczególnych kategorii danych na dużą skalę). We wszystkich sprawach dotyczących danych osobowych należy kontaktować się bezpośrednio z Administratorem na adres formularz kontaktowy.
Słowniczek pojęć
- POI (Point of Interest) — wpis na mapie reprezentujący aktora lokalnego (foodtruck, taxi, usługodawcę, sklepik) zarządzający własnymi danymi za pomocą tokenu.
- Właściciel POI (POI owner) — osoba fizyczna prowadząca działalność gospodarczą lub osoba prawna, która utworzyła POI i jest administratorem danych firmowych w nim publikowanych.
- Komentujący — osoba fizyczna pozostawiająca komentarz pod wpisem POI.
- Odwiedzający (visitor) — osoba przeglądająca mapę bez uwierzytelnienia.
- Gmina — jednostka samorządu terytorialnego, której subdomena prezentuje skin serwisu. Gmina nie jest administratorem ani współadministratorem danych POI.
- Envelope encryption — dwuwarstwowy model szyfrowania: klucz główny (KEK) szyfruje klucze danych (DEK), a DEK szyfruje treść (XChaCha20-Poly1305-IETF AEAD (libsodium)).
- Blind index — skrót kryptograficzny (HMAC) wartości zaszyfrowanej, umożliwiający wyszukiwanie bez deszyfracji.
Sekcja A — Dla odwiedzającego mapę (visitor)
Co zbieramy
Korzystanie z serwisu nie wymaga rejestracji. W trakcie zwykłego przeglądania mapy zbieramy następujące dane techniczne:
| Kategoria danych | Cel | Podstawa prawna | Retencja |
|---|---|---|---|
| Adres IP (logi serwera) | Bezpieczeństwo, diagnostyka błędów | Art. 6 ust. 1 lit. f RODO | 7 dni |
| User-Agent (typ przeglądarki) | Statystyki techniczne, kompatybilność | Art. 6 ust. 1 lit. f RODO | 7 dni |
| Cookie sesyjne (PHPSESSID, preferencje motywu) | Utrzymanie sesji, zapamiętanie wyboru motywu mapy | Cookies funkcjonalne, art. 173 ust. 3 PKE (zwolnienie z obowiązku zgody) | Do zamknięcia przeglądarki |
Czego NIE zbieramy
- Brak Google Analytics, Facebook Pixel, Hotjar ani innych narzędzi profilujących.
- Brak persistent cookies — jedynie sesyjne, niezbędne do działania serwisu.
- Brak fingerprintingu przeglądarki.
- Brak geolokalizacji — chyba że świadomie wyrazisz zgodę na żądanie funkcji „co w okolicy". Współrzędne są używane jednorazowo i nie są zapisywane.
- Brak newslettera, brak listy mailingowej.
Czy musisz akceptować cookies?
Serwis stosuje wyłącznie cookies funkcjonalne (sesyjne), niezbędne do świadczenia usługi (art. 173 ust. 3 pkt 2 ustawy — Prawo komunikacji elektronicznej z 12 lipca 2024 r.). Z tego powodu nie wyświetlamy banera cookies.
Twoje prawa
- Dostępu (art. 15 RODO) — informacja jakie logi zawierają Twój adres IP.
- Usunięcia (art. 17 RODO) — usunięcie logów Twojej sesji, o ile nie zostały usunięte po 7 dniach.
- Sprzeciwu (art. 21 RODO) — wobec przetwarzania na podstawie prawnie uzasadnionego interesu.
- Skargi do organu nadzorczego — Prezes UODO, ul. Stawki 2, 00-193 Warszawa, uodo.gov.pl.
Realizacja praw: formularz /rodo lub email formularz kontaktowy.
Sekcja B — Dla osoby komentującej (commentator)
Co zbieramy w trakcie dodawania komentarza
| Dane | Zabezpieczenie | Cel | Retencja |
|---|---|---|---|
| Adres email (jeśli podany) | Szyfrowanie XChaCha20-Poly1305-IETF AEAD (libsodium) — envelope encryption | Weryfikacja magic-link, realizacja art. 17, opcjonalne powiadomienie | Dopóki POI aktywny lub do żądania usunięcia |
| Treść komentarza | Plain text (publiczny) | Publikacja pod POI | Dopóki POI aktywny lub do żądania usunięcia |
| Skrót adresu IP (SHA-256 + sól) | Hash — brak możliwości odwrócenia | Anti-spam, ochrona przed nadużyciami, rate-limit | 30 dni |
| Skrót User-Agent (bucket) | Hash — mobile/desktop/bot | Wykrywanie botów | 30 dni |
| Token magic-link | Hash sha256, TTL 15 min | Weryfikacja jednorazowa | Po użyciu / wygaśnięciu — usunięcie |
Procedura magic-link (two-step)
Aby zapobiec konsumpcji tokenu przez automatyczne skanery linków (Gmail Safe Browsing, Outlook SafeLinks), procedura jest dwuetapowa:
- Klik w link w emailu otwiera stronę z przyciskiem „Potwierdź" (metoda GET).
- Kliknięcie przycisku konsumuje token (metoda POST). Dopiero teraz komentarz zostaje opublikowany.
Token jest jednorazowy i wygasa po 15 minutach.
Procesory danych (podmioty przetwarzające)
| Procesor | Cel | Lokalizacja | Podstawa transferu |
|---|---|---|---|
| Hetzner Online GmbH | Hosting VPS, baza danych, backupy | Falkenstein / Norymberga, Niemcy (UE) | DPA art. 28 RODO |
| Brevo (Sendinblue SAS) | Wysyłka emaili transakcyjnych (magic-link) | Paryż, Francja (UE) | DPA art. 28 RODO |
| Cloudflare, Inc. | CDN, ochrona DDoS, terminacja TLS | Edge globalne (metadane przez infrastrukturę US) | DPA + Standardowe Klauzule Umowne (SCC) |
Ograniczenie pilota: w fazie pilotażowej Administrator korzysta z bezpłatnego planu Cloudflare bez opcji Data Localization Suite. Metadane techniczne (IP, headers) mogą być przetwarzane przez serwery Cloudflare poza UE. Treść komentarzy oraz dane szyfrowane nie są transferowane — pozostają na serwerze Hetzner w Niemczech. Transfer metadanych objęty jest SCC z dnia 4 czerwca 2021 r. (decyzja KE 2021/914).
Twoje prawa
- Dostęp (art. 15) — kopia komentarzy.
- Sprostowanie (art. 16) — zgłoszenie błędu.
- Usunięcie „prawo do bycia zapomnianym" (art. 17) — usunięcie komentarza + emaila.
- Ograniczenie przetwarzania (art. 18).
- Przeniesienie (art. 20) — export komentarzy w formacie JSON.
- Sprzeciw (art. 21).
- Skarga do UODO.
Realizacja: do 30 dni (art. 12 ust. 3 RODO). Formularz: /rodo.
Sekcja C — Dla właściciela punktu POI (POI owner)
Klauzula kluczowa — podział ról RODO
Jesteś administratorem swoich danych firmowych publikowanych jako POI. MAGNET MEDIC Tomasz Fiedoruk działa jako podmiot przetwarzający (processor) w rozumieniu art. 28 RODO dla danych firmowych (nazwa firmy, adres, telefon, kategoria, godziny otwarcia, zdjęcia).
Równocześnie MAGNET MEDIC Tomasz Fiedoruk działa jako administrator (controller) w rozumieniu art. 24 RODO dla danych platformowych niezbędnych do działania serwisu (email logowania, audit log, sesje, IP hash, tokeny magic-link).
Pełny katalog ról i obowiązków: Regulamin dla właścicieli POI, sekcja „Klauzula art. 28 RODO".
Katalog danych POI
| Dane | Twoja rola | Rola Tomka | Zabezpieczenie | Retencja |
|---|---|---|---|---|
| Nazwa firmy POI | Administrator | Procesor | Plain text (publiczne) | Dopóki POI aktywny |
| Adres punktu | Administrator | Procesor | Plain text + POINT SRID 4326 | Dopóki POI aktywny |
| Telefon publiczny | Administrator | Procesor | Plain text (opcjonalny) | Dopóki POI aktywny |
| Email logowania | — | Administrator | Envelope encryption XChaCha20-Poly1305-IETF AEAD (libsodium), blind index HMAC-SHA256 | Dopóki konto aktywne + 12 mies. grace |
| Imię, nazwisko, NIP (opcjonalnie) | Administrator | Procesor | Envelope encryption | Dopóki POI aktywny |
| Zdjęcia POI | Administrator (Ty wgrywasz) | Procesor (Tomek hostuje) | Plik na serwerze + URL | Dopóki POI aktywny |
| Audit log | — | Administrator | Envelope encryption | Dopóki POI aktywny + 12 mies. (art. 5 ust. 2 RODO) |
| Token magic-link | — | Administrator | Hash sha256, TTL 15 min | Po użyciu / wygaśnięciu |
| Sesja (24h) | — | Administrator | HttpOnly, Secure, SameSite=Strict | Max 24h |
| Hash IP/UA logowania | — | Administrator | SHA-256 + sól | 30 dni |
Procesory POI (sub-processors)
Lista procesorów jest identyczna jak dla Komentującego (Hetzner, Brevo, Cloudflare — patrz sekcja B). Zgodnie z art. 28 ust. 2 RODO, Administrator zobowiązuje się informować właściciela POI o każdej planowanej zmianie sub-procesora z 30-dniowym wyprzedzeniem. Właściciel POI ma prawo wnieść sprzeciw.
Twoje prawa jako administratora danych POI
- Wgląd w przetwarzanie — dostęp do audit log w panelu
/p/{slug}/edit. - Export danych POI w formacie JSON (art. 20 RODO) — przycisk w panelu.
- Usunięcie POI w każdej chwili (art. 17 RODO). Komentarze są również usuwane.
- Audyt przetwarzania — możliwość żądania raportu (art. 28 ust. 3 lit. h RODO).
Sekcja D — Dla mieszkańca z kontem na platformie (resident)
Zawarcie umowy o świadczenie usługi drogą elektroniczną (UŚUDE art. 18)
Moment zawarcia umowy: z chwilą kliknięcia w magic-link otrzymanego po wpisaniu emaila w /u/login i akceptacji niniejszej polityki + Regulaminu (acceptance gate w formularzu logowania) — mieszkaniec zawiera z Operatorem umowę o świadczenie usługi platformy LOKALSI drogą elektroniczną zgodnie z art. 18 ust. 1 ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną (Dz.U. 2002 Nr 144 poz. 1204).
Zakres umowy: Operator zobowiązuje się świadczyć usługę platformy (logowanie magic-link, profil /u/profile, oceny POI, checkin spatial proof, zgłaszanie incydentów). Mieszkaniec zobowiązuje się do korzystania z usługi zgodnie z Regulaminem. Umowa jest bezpłatna, ale spełnia kryteria umowy w rozumieniu RODO art. 6 ust. 1 lit. b — wzajemne zobowiązania stron + możliwość rozwiązania przez każdą ze stron (mieszkaniec — przez usunięcie konta; Operator — przez wypowiedzenie zgodne z Regulaminem).
Co zbieramy gdy zakładasz konto
| Dana | Cel | Podstawa prawna | Retencja |
|---|---|---|---|
| Email (zaszyfrowany at-rest AEAD XChaCha20-Poly1305-IETF) | Magic-link logowania (15 min ważności), powiadomienia o statusie incydentów (gdy mieszkaniec jest zgłaszającym) | art. 6 ust. 1 lit. b RODO — niezbędne do wykonania umowy o świadczenie usługi drogą elektroniczną (UŚUDE art. 18). Bez emaila niemożliwe magic-link logowanie = niemożliwe świadczenie usługi. | Do usunięcia konta przez mieszkańca lub po 24 miesiącach bezczynności (cryptographic erasure) |
| Pseudonim (random_nick) formatu np. „Anonimowy_Drozd_3F2A" | Tożsamość mieszkańca w komentarzach, ocenach, zgłoszeniach (zamiast imienia/nazwiska) | art. 6 ust. 1 lit. b RODO (j.w.) — niezbędny element profilu w umowie świadczenia usługi | Do usunięcia konta + dodatkowe 30 dni cache CDN (potem CF purge) |
| Avatar seed (32 hex znaki, deterministyczny generator SVG Initials self-hosted) | Wizualna identyfikacja mieszkańca na komentarzach + profilu | art. 6 ust. 1 lit. b RODO (j.w.) | j.w. |
| Reputation_score (integer, slow-growth +1/dzień max) | Trusted threshold dla zgłoszeń incydentów (≥20 punktów + 7 dni + 0 dismissed → auto-przyjęcie do w trakcie) | art. 6 ust. 1 lit. f RODO (uzasadniony interes — anti-Sybil) | Do usunięcia konta |
| IP_hash (HMAC-SHA256 + sól blind_key, pseudonimizacja per RODO art. 4 pkt 5) | Anti-abuse rate limit, anti-double-vote przy reakcji „+1" | art. 6 ust. 1 lit. f RODO (uzasadniony interes — anti-spam) | 12 miesięcy |
| UA_hash (HMAC nagłówka User-Agent) | Anti-bot detection | art. 6 ust. 1 lit. f RODO | 12 miesięcy |
| Lokalizacja GPS (przy checkin spatial proof „byłem tu") | Weryfikacja czy mieszkaniec faktycznie jest w pobliżu POI (haversine ≤200m), anti-checkin-spam | art. 6 ust. 1 lit. f RODO + art. 6 ust. 1 lit. a (zgoda dobrowolna — checkin wymaga przycisku „Zarejestruj wizytę") | 30 dni od checkin (potem agregacja anonimowa do reputation_score) |
Procedura magic-link (two-step verify)
- Mieszkaniec wpisuje email w
/u/login→ otrzymuje magic-link emailem (Brevo transactional); - Klik linka → GET potwierdza tożsamość ale NIE konsumuje tokenu (anty-prefetch Gmail/Outlook) → wyświetla przycisk „Zaloguj się";
- Klik przycisk → POST konsumuje token + lazy account creation (jeśli pierwsza wizyta) + sesja 30 dni (cookie HttpOnly + Secure + SameSite=Strict);
- Token magic-link ważny 15 minut, jednorazowy.
Twoje prawa jako mieszkańca
- Dostęp do swoich danych (art. 15) — panel
/u/profilepokazuje wszystkie Twoje dane (nick, awatar, reputation, statystyki checkin, lista incydentów); - Sprostowanie (art. 16) — możesz w każdej chwili zmienić email (przez wylogowanie + nowy magic-link na inny adres);
- Usunięcie (RODO art. 17 — prawo do bycia zapomnianym) — przycisk „Usuń konto" w panelu
/u/profile. Po kliknięciu wykonujemy cryptographic erasure: email zerujemy, blind index zastępujemy sentinel'em, nick zmieniamy nadeleted#{id}, awatar usuwamy z cache + CF purge. Wszystkie aktywne sesje rewokujemy. Incydenty zgłoszone przez Ciebie są detached (reporter_resident_id → NULL) dla rozwiązanych/odrzuconych zgłoszeń — Urząd zachowuje treść (interes publiczny) ale powiązanie z Tobą jest zerwane; - Ograniczenie przetwarzania (art. 18) — skontaktuj się przez [email protected];
- Przeniesienie danych (art. 20) — eksport JSON twoich danych (nick, reputation, checkin history) na żądanie email;
- Sprzeciw (art. 21) — możesz sprzeciwić się przetwarzaniu reputation_score / IP_hash (które są na podstawie art. 6 ust. 1 lit. f). Skontaktuj się przez [email protected];
- Skarga do organu nadzorczego — Prezes UODO (RODO art. 77).
Sekcja E — Dla zgłaszającego problem (incident reporter)
Podział ról RODO — Operator vs Urząd Gminy
Operator (MAGNET MEDIC) jest administratorem warstwy technicznej: szyfrowanie at-rest danych, transport email (Brevo), storage zdjęć, retencja, audyt dekrypcji. Urząd Gminy jest odrębnym administratorem decyzji moderacyjnych: status incydentu, uzasadnienie, treść komunikacji z reporterem. To NIE jest joint-controllership (zob. Regulamin Gmin §moduł zgłoszeń + Załącznik 1).
Podstawa prawna po stronie Urzędu Gminy: Urząd jako odrębny administrator rozpatruje zgłoszenia na własnej podstawie prawnej — art. 6 ust. 1 lit. e RODO (zadanie publiczne gminy realizowane na podstawie art. 7 ustawy z dnia 8 marca 1990 r. o samorządzie gminnym) lub art. 6 ust. 1 lit. c RODO (obowiązek prawny — np. w sprawach dot. ustawy o utrzymaniu czystości i porządku w gminach). Operator NIE wskazuje podstawy prawnej za Urząd — zgłaszający powinien zapoznać się z klauzulą informacyjną Urzędu Gminy na stronie BIP konkretnej gminy.
Test uzasadnionego interesu (RODO art. 6 ust. 1 lit. f) — balance test
Operator dokumentuje trzystopniowy test uzasadnionego interesu zgodnie z wytycznymi EROD 06/2021:
- Interes: umożliwienie mieszkańcom zgłaszania problemów w przestrzeni publicznej gminy — cel publiczny powiązany z realizacją zadań samorządowych (art. 7 ustawy o samorządzie gminnym).
- Niezbędność: email zgłaszającego jest jedynym sposobem dostarczenia statement of reasons (DSA art. 17 ust. 1) oraz counter-claim (DSA art. 20). Alternatywa pełnej anonimowości naruszałaby obowiązki DSA. IP_hash i pseudonimizacja są minimalizacją — Operator nie przetwarza surowych IP.
- Balance test: interes zgłaszającego w prywatności (zwłaszcza w małej gminie, gdzie identyfikacja pośrednia jest możliwa) jest chroniony przez: (a) szyfrowanie at-rest AEAD, (b) brak upublicznienia emaila — UM widzi placeholder „[zaszyfrowany]" do momentu kliknięcia „Wyślij wiadomość" (z audytem), (c) audyt dekrypcji w
point_audit_log, (d) prawo do sprzeciwu (art. 21), (e) short retencja (12 mc od rozstrzygnięcia + cryptographic erasure). Wyjątkowe ryzyko tożsamości w małej gminie jest mitigowane przez (a)-(e) — interes publiczny zgłaszania problemów PRZEWAŻA nad ryzykiem residualnym.
Co zbieramy w trakcie zgłoszenia
| Dana | Cel | Podstawa prawna | Retencja |
|---|---|---|---|
Email zgłaszającego (zaszyfrowany AEAD z context incident:reporter:email) | Mail-back z decyzją Urzędu (DSA art. 17 ust. 1 statement of reasons); komunikacja UM → reporter (formularz „Wyślij wiadomość" w panelu moderacyjnym) | art. 6 ust. 1 lit. f RODO (uzasadniony interes — umożliwienie mieszkańcom zgłaszania problemów w przestrzeni publicznej; NIE art. 6 ust. 1 lit. b umowa — anonim NIE jest stroną umowy) | 12 miesięcy od rozstrzygnięcia (potem cryptographic erasure — wpis audit log gdpr17_erasure) |
| Reporter_email_blind_index (HMAC-SHA256 znormalizowanego emaila — Gmail aliases canonicalized) | Anti-Sybil (jeden zgłaszający nie może zalewać systemu wieloma „+suffix" gmail aliasami) | art. 6 ust. 1 lit. f RODO | j.w. |
| Reporter_ip_hash (HMAC client IP) | Anti-abuse rate limit (3 zgłoszenia/IP/godz), wykrywanie wzorców spamu | art. 6 ust. 1 lit. f RODO | 12 miesięcy |
| Lokalizacja GPS (lat/lng zgłoszenia) | Wyświetlenie incydentu na mapie gminy + weryfikacja czy incydent jest w granicach gminy (bounds_json check) | art. 6 ust. 1 lit. f RODO (cel publiczny — interwencja Urzędu) | Tożsama z retencją zgłoszenia |
| Zdjęcie (JPEG/PNG/WebP, max 10MB, automatyczny strip EXIF, content-addressable sha256 filename, storage outside web-root) | Dowód wizualny dla Urzędu (kontekst zgłoszenia: dziura w drodze, śmieci, etc.) | art. 6 ust. 1 lit. f RODO | 30 dni dla śmieci, 180 dni dla nielegalny_event, 90 dni dla pozostałych (cron expire-points co 10 min usuwa starsze pliki) |
| Opis tekstowy (max 1000 znaków) | Kontekst zgłoszenia dla moderatora | art. 6 ust. 1 lit. f RODO | Tożsama z retencją zgłoszenia (12 mc od rozstrzygnięcia) |
Ostrzeżenie — ochrona wizerunku osób na zdjęciach (art. 81 PrAut + art. 9 RODO)
Formularz zgłoszenia wyświetla wyraźne ostrzeżenie w kroku 2 (foto + opis): „Nie fotografuj rozpoznawalnych osób bez ich zgody". Powód:
- Art. 81 ust. 1 ustawy o prawie autorskim i prawach pokrewnych (PrAut) wymaga zgody osoby przedstawionej na rozpowszechnianie jej wizerunku;
- Art. 9 ust. 1 RODO klasyfikuje wizerunek jako szczególną kategorię danych osobowych — wymagane podstawy z ust. 2 (np. wyraźna zgoda osoby);
- Operator nie posiada automatycznego mechanizmu rozpoznawania twarzy w fazie pilotażu — moderator Urzędu Gminy ocenia każde zdjęcie przed upublicznieniem. W razie wątpliwości moderator może odrzucić zgłoszenie z uzasadnieniem lub poprosić zgłaszającego o usunięcie zdjęcia rozpoznawalnej osoby.
Twoje prawa jako zgłaszającego
- Dostęp do swoich danych (art. 15) — możesz w każdej chwili poprosić Operator (przez [email protected]) o kopię swoich zgłoszeń z deszyfrowanym emailem (audyt dekrypcji loguje to żądanie);
- Sprostowanie (art. 16) — wymaga kontaktu z Operatorem (treść zgłoszenia nie może być edytowana po wysłaniu — audit trail);
- Usunięcie (RODO art. 17) — możesz żądać usunięcia swojego zgłoszenia. Operator wykonuje cryptographic erasure swojej warstwy (email_enc → NULL, blind index → sentinel, foto unlink z storage). Urząd Gminy jako odrębny administrator może zachować treść decyzji moderacyjnej jeśli ma podstawę z interesu publicznego (zgłoszenie dot. ogólnej sprawy publicznej, np. dziura w drodze — interes informacyjny mieszkańców gminy). W takim przypadku otrzymasz odpowiedź uzasadniającą;
- Sprzeciw wobec przetwarzania (art. 21) — szczególnie istotne ponieważ podstawa to art. 6 ust. 1 lit. f (uzasadniony interes). Możesz sprzeciwić się przetwarzaniu wskazując, że Twoje konkretne okoliczności (np. obawa przed represją) przeważają nad interesem publicznym. Skontaktuj się przez [email protected];
- Counter-claim DSA art. 20 — w przypadku decyzji odrzucone lub spam możesz odpowiedzieć na mail-back (Reply-To
[email protected]). Operator forwarduje odpowiedź do Urzędu Gminy, który rozpatruje odwołanie w 7 dni roboczych. W razie braku odpowiedzi Urzędu Operator może eskalować do osoby decyzyjnej w Urzędzie; - Skarga do PUODO — Prezes Urzędu Ochrony Danych Osobowych (RODO art. 77);
- Skarga do organu nadzoru ds. usług cyfrowych (DSC) — planowany w Polsce na 2026/2027 (zob. Ministerstwo Cyfryzacji). Status: do ustalenia.
Sekcja F — Procesory danych przeciwko nadużyciom (anti-abuse)
Cloudflare (CDN + Turnstile)
| Procesor | Cloudflare, Inc. |
|---|---|
| Siedziba | San Francisco, USA |
| Lokalizacja przetwarzania | Edge serwery globalnie + EU region dla EU klientów |
| Zakres danych | Metadane: IP, nagłówki HTTP, geolokalizacja przybliżona; NIE treść (Operator szyfruje at-rest) |
| Podstawa transferu poza EOG | SCC (Standard Contractual Clauses) Komisji Europejskiej decyzja wykonawcza 2021/914 z 4 czerwca 2021 |
| DPA | Cloudflare DPA — w trakcie akceptacji (planowane przed publicznym launchem pilotu Czaplinek) |
| Status Turnstile | OFF by default w fazie pilotażu — włączany manualnie pod atakiem (DDoS, bot flood). Sitekey + secret w /etc/vps-ai/lokalsi/turnstile.key |
Spamhaus DNSBL (DNS-based blacklist)
| Procesor | The Spamhaus Project Ltd |
|---|---|
| Siedziba | Genewa (CH) — projekt; główne serwery w UK/CH/AT |
| Zakres danych | Reversed IPv4 client w postaci DNS query (np. 4.3.2.1.zen.spamhaus.org) → DNS lookup zwraca status listed/clean. Operator NIE przesyła treści zgłoszenia, nicku ani emaila. |
| Podstawa transferu poza EOG | UK: decyzja adekwatności KE wygasła czerwiec 2025 (wymaga ponownej decyzji). Obecnie Operator wyłączył DNSBL w pilotażu (config flag dnsbl_enabled = false) jako mitygacja braku ważnego mechanizmu z art. 44 RODO. Włączenie wymagałoby (a) ponownej decyzji adekwatności UK przez KE, ALBO (b) zawarcia UK SCC, ALBO (c) zastosowania alternatywnego DNSBL z UE. |
| Status DNSBL | OFF by default w fazie pilotażu. Włączenie wymaga uprzedniej aktualizacji niniejszej polityki + analizy UK adequacy alternative path. |
Brevo (transport email)
Brevo (dawniej Sendinblue) — francuski dostawca usług emailowych, używany do wszystkich transactional emaili (magic-link logowania, mail-back statusów zgłoszeń, wiadomości UM → reporter). Brevo jest processorem Operatora w rozumieniu RODO art. 28. DPA Brevo zaakceptowana. Lokalizacja: Paryż (Francja), brak transferu poza EOG.
Frontend CDN — unpkg + Google Fonts (libraries map + typografia)
| Procesor | Cel | Lokalizacja | Dane przesyłane | Podstawa transferu poza EOG |
|---|---|---|---|---|
| unpkg.com (Cloudflare-backed) | CDN dla bibliotek MapLibre GL JS, PMTiles, Protomaps Basemaps (renderowanie mapy) | Globalna sieć Cloudflare (USA + EU edge) | IP klienta + nagłówek User-Agent przy żądaniu pliku JS/CSS | SCC Cloudflare (procesor pośredni) |
| Google Fonts (fonts.googleapis.com + fonts.gstatic.com) | CDN dla fontów DM Sans + JetBrains Mono (typografia platformy) | Globalna sieć Google (USA + EU edge) | IP klienta + UA przy żądaniu pliku WOFF2 | SCC Google + Google DPA standard |
Status: Frontend CDN są aktywne w pilotażu. Operator rozważa migrację do self-hosting (eliminacja transferu IP do USA) w F-DOCS v2 — defer post-MVP.
Mitigation MVP: przy każdym renderowaniu strony użytkownika IP jest przekazany do Cloudflare (proxy front) — nie ma dodatkowego transferu poza tym co już udostępnia Cloudflare jako CDN platformy. unpkg jest hostowany na Cloudflare — efektywnie ten sam procesor. Google Fonts jest dodatkowym transferem, planowany self-host w F-DOCS v2.
Pseudonimizacja ip_hash i ua_hash
Operator stosuje pseudonimizację adresów IP i nagłówków User-Agent przez HMAC-SHA256 z kluczem blind.key (per RODO art. 4 pkt 5). To nie jest anonimizacja w rozumieniu Motywu 26 RODO — przy posiadaniu klucza HMAC + pełnej listy IP/UA możliwa jest re-identyfikacja. Stosujemy ją jako technikę bezpieczeństwa minimalizującą zakres danych, nie jako podstawę zwolnienia z obowiązków RODO. Wszystkie obowiązki informacyjne (art. 13, 15-21) zachowane.
Decyzje zautomatyzowane (RODO art. 22)
Operator stosuje następujące mechanizmy decyzji zautomatyzowanych w module zgłoszeń:
- Trusted threshold — auto-przyjęcie zgłoszenia do statusu w trakcie dla mieszkańców z reputacją ≥ 20 + ≥ 7 dni od rejestracji + 0 odrzuconych. To NIE jest decyzja o istotnym wpływie (skutkuje jedynie skróceniem oczekiwania w kolejce moderacji — Urząd nadal podejmuje finalną decyzję);
- Spamhaus DNSBL block (gdy włączony) — odmowa przyjęcia zgłoszenia od IP wpisanego na DNSBL. Ma istotny wpływ — zgłaszający traci możliwość kontaktu z Urzędem. W takim przypadku Operator zapewnia prawo do interwencji ludzkiej (RODO art. 22 ust. 3): kontakt na [email protected] → Operator manualnie weryfikuje decyzję i może whitelistować IP;
- Cloudflare Turnstile fail (gdy włączony) — odmowa przyjęcia zgłoszenia z niezweryfikowanym tokenem CAPTCHA. Ma istotny wpływ w tej samej skali co DNSBL. Prawo do interwencji ludzkiej: [email protected].
Bezpieczeństwo danych — zastosowane środki
Zgodnie z art. 32 RODO Administrator stosuje następujące środki techniczne i organizacyjne:
Środki techniczne
- Envelope encryption (XChaCha20-Poly1305-IETF AEAD libsodium, KEK→DEK) dla wszystkich PII (email, imię, NIP, audit log).
- Blind index (HMAC-SHA-256) do wyszukiwania bez deszyfracji.
- Prepared statements PDO — ochrona przed SQL injection.
- htmlspecialchars / textContent na wyjściu — ochrona przed XSS.
- Content Security Policy (CSP) — ograniczone źródła skryptów.
- HTTPS wymuszony (HSTS, Cloudflare Full SSL).
- HttpOnly + Secure + SameSite=Strict cookies (admin + resident sessions; defense-in-depth przeciw CSRF top-level navigation).
- Magic-link auth — brak haseł, brak persistent JWT.
- Two-step magic-link verification (ochrona przed prefetchem Gmail/Outlook).
- Klucze kryptograficzne w
/etc/vps-ai/lokalsi/z uprawnieniamiroot:www-data 640. - Rate limiting per IP / per email (APCu).
- .htaccess blokuje dostęp do plików
config,.env, dotfiles, kataloguinstall/.
Środki organizacyjne
- Rejestr czynności przetwarzania (art. 30 RODO).
- DPIA (Data Protection Impact Assessment, art. 35 RODO).
- Procedura incident response — powiadomienie UODO w ciągu 72 godzin (art. 33 RODO).
- Backup szyfrowany z retencją 30 dni rolling.
- Audit log wszystkich zmian POI i żądań art. 17.
- Zasada minimalizacji danych (art. 5 ust. 1 lit. c RODO).
Transfery danych poza EOG
Wszystkie dane przechowywane są na terenie UE (Hetzner DE, Brevo FR). Wyjątek stanowią metadane techniczne (IP, nagłówki HTTP) przekazywane przez Cloudflare, która jako podmiot z siedzibą w USA może przetwarzać metadane na serwerach edge globalnie. Transfer ten jest objęty Standardowymi Klauzulami Umownymi (SCC) Komisji Europejskiej z dnia 4 czerwca 2021 r. (decyzja wykonawcza 2021/914).
Treść danych użytkowników (komentarze, dane POI, emaile szyfrowane) nie jest transferowana przez Cloudflare — pozostaje na serwerze Hetzner w Niemczech.
Profilowanie i decyzje zautomatyzowane
Administrator nie stosuje profilowania ani zautomatyzowanego podejmowania decyzji wywołujących skutki prawne (art. 22 RODO). Automatyczne filtry komentarzy (wykrywanie wzorców PESEL, telefon, IBAN) służą wyłącznie ochronie przed nadużyciami i nie wywołują skutków prawnych.
Zmiana polityki
Administrator zastrzega prawo do zmiany niniejszej Polityki prywatności. O istotnych zmianach POI właściciele oraz Komentujący zostaną poinformowani drogą emailową z 30-dniowym wyprzedzeniem.
Kontakt i realizacja praw
- Email: formularz kontaktowy
- Formularz online: /rodo
- Notice-and-takedown (DSA): /zglos
- Skarga do organu nadzorczego: Prezes UODO, ul. Stawki 2, 00-193 Warszawa
Wersja: 1.1 · Data: 2026-05-25 · Kontakt: formularz kontaktowy