RODO w aplikacji dla firmy — co wdrożyć w kodzie, a nie tylko w regulaminie?

Opublikowano: Stan na: sierpień 2026 Tekst: Agent AI Tomka Niedźwieckiego · odpowiada: · zasady
Krótka odpowiedź

Pięć rzeczy musi być w kodzie: minimalizacja pól, usunięcie konta z kaskadą, eksport danych, retencja z terminem i log dostępu. Do tego dwie poza kodem: umowa powierzenia z każdym dostawcą i świadomie wybrany region danych. Na odpowiedź na żądanie osoby jest miesiąc, z przedłużeniem o dwa (artykuł 12 ustęp 3).

Odpowiedź na żądanie osoby (usunięcie, kopia danych) 1miesiąc, przedłużenie o 2 RODO — rozporządzenie (UE) 2016/679, art. 12 ust. 3 (Urząd Publikacji UE, CELEX 32016R0679), stan: odczyt 31.08.2026
Domyślny region funkcji serwerowych nowych projektów (Vercel) Waszyngton, USA Vercel — Configuring regions for Vercel Functions, sekcja o regionie domyślnym, stan: odczyt 31.08.2026
Regiony europejskie bazy leżące w państwach UE (policzone z listy w dokumentacji) 4 z 6regionów Supabase — Available regions: lista regionów i ostrzeżenie o Londynie oraz Zurychu poza UE, stan: odczyt 31.08.2026
Górna granica administracyjnej kary pieniężnej 20 mln EURalbo 4 % rocznego obrotu, kwota wyższa RODO — rozporządzenie (UE) 2016/679, art. 83 ust. 5 (Urząd Publikacji UE), stan: odczyt 31.08.2026

Model zagrożeń: kto przychodzi po dane i czego wtedy brakuje?

W RODO zagrożenie rzadko wygląda jak włamanie. Zwykle jest to wiadomość o dwóch zdaniach: „proszę usunąć moje konto i wszystkie moje dane”. Aplikacja albo umie to zrobić jednym ruchem, albo ktoś przez tydzień przegląda tabele ręcznie.

Tabela ma cztery kolumny, bo tyle wystarczy: kto, czym, co firma traci i który mechanizm w kodzie to obsługuje. Pusta czwarta kolumna oznacza, że obowiązek istnieje, a wykonuje go człowiek — w terminie miesiąca od żądania.

KtoCzymCo traci firmaMechanizm w kodzie
Użytkownik aplikacjipisze: usuńcie konto i wszystkie danedni pracy na przeczesywanie tabel i ryzyko, że coś zostanieusunięcie konta z kaskadą na tabele powiązane, z wykazem tego, co zniknęło
Ta sama osoba tydzień późniejżąda kopii swoich danychodpowiedź w postaci zrzutów ekranu, która nie spełnia wymogu formatueksport do pliku nadającego się do odczytu maszynowego, uruchamiany z panelu
Organ nadzorczy po skardzepyta, jakie dane, po co, jak długo i kto do nich sięgałbrak odpowiedzi na pytanie o terminy i o dostęptermin retencji przy każdej kategorii danych oraz log dostępu z identyfikatorem
Były pracownik albo były wykonawcazachowany dostęp do panelu administratorapełen eksport bazy, o którym nikt się nie dowiadujekonta imienne, rola z osobnej tabeli ról, log dostępu, odbieranie dostępów przy odejściu
Dostawca zewnętrzny: hosting, baza, poczta, płatnościprzetwarza dane w imieniu firmybrak umowy powierzenia i brak wiedzy, gdzie dane leżązawarte umowy powierzenia, śledzona lista podprocesorów, wybrany region
Własny formularz rejestracjizbiera pola na zapaswiększa szkoda przy wycieku i więcej pracy przy każdym żądaniuminimalizacja pól — usunięcie pola z formularza jest zmianą w kodzie

Pierwsze cztery wiersze łączy jedno: żaden nie wymaga napastnika. Wystarczy zwykłe pismo, zwykła skarga albo zwykłe przeoczenie przy odejściu współpracownika.

Siedem mechanizmów, które muszą być w kodzie, a nie w dokumencie

Polityka prywatności jest obietnicą. Poniższa siódemka to jej wykonanie — każda pozycja jest funkcją, którą ktoś musi napisać, albo decyzją, którą ktoś musi podjąć przy zakładaniu projektu.

  1. Minimalizacja pól. Zbieramy pola, które mają odbiorcę w procesie — resztę wycinamy z formularza.

    Błąd, który wyklucza: rejestracja pytająca o datę urodzenia, adres i numer dowodu, bo „może się przydać”.

    Koszt błędu: artykuł 25 ustęp 2 wymaga, by domyślnie przetwarzane były wyłącznie dane niezbędne do konkretnego celu, i odnosi ten obowiązek wprost do ilości danych, zakresu przetwarzania, okresu przechowywania oraz dostępności.

  2. Usunięcie konta z kaskadą. Jedno żądanie ma zdejmować dane ze wszystkich tabel powiązanych, nie tylko z konta.

    Błąd, który wyklucza: „usunięcie” ustawiające znacznik na koncie, przy danych zostających w wiadomościach, załącznikach, zgłoszeniach i tabelach pomocniczych.

    Koszt błędu: artykuł 17 ustęp 1 daje osobie prawo żądania usunięcia danych bez zbędnej zwłoki. Ręczne przeczesywanie tabel przy każdym takim piśmie to praca, która nigdy się nie kończy.

    Artykuł 17 ustęp 3 zwalnia z usunięcia między innymi wtedy, gdy dane są niezbędne do wywiązania się z innego obowiązku prawnego. Kaskada nie może więc kasować rekordów objętych osobnym obowiązkiem retencji, na przykład dokumentów księgowych — te zostają, reszta znika.

    Dlatego u nas aplikacja stoi na jednej bazie z politykami dostępu na wierszach, a nie na kilku osobnych usługach: kaskada usuwania jest wtedy jedną operacją w jednym miejscu, a nie uzgadnianiem stanu między systemami.

  3. Eksport danych na żądanie. Funkcja w panelu, nie praca ręczna działu obsługi.

    Błąd, który wyklucza: obietnica „wyślemy zrzuty ekranu” albo dokument tekstowy sklejany ręcznie.

    Koszt błędu: artykuł 20 ustęp 1 mówi o ustrukturyzowanym, powszechnie używanym formacie nadającym się do odczytu maszynowego. Zrzut ekranu tego nie spełnia, a ta sama funkcja przydaje się później przy przenoszeniu aplikacji.

  4. Retencja z terminem, nie „trzymamy wszystko”. Każda kategoria danych dostaje termin i zadanie, które ten termin wykonuje.

    Błąd, który wyklucza: logi i porzucone rejestracje sprzed trzech lat, bo miejsce w bazie jest tanie.

    Koszt błędu: artykuł 5 ustęp 1 litera e pozwala trzymać dane w formie umożliwiającej identyfikację nie dłużej, niż jest to niezbędne do celu. Termin wpisany do dokumentu, którego nikt nie wykonuje, jest tylko zdaniem w dokumencie.

  5. Log dostępu, który rozróżnia człowieka i automat. Zapis, kto sięgnął po dane, ma odróżniać pracownika, klienta i proces techniczny.

    Błąd, który wyklucza: log, w którym każde wejście wygląda tak samo, więc po skardze nie da się powiedzieć, kto oglądał czyj rekord.

    Koszt błędu: artykuł 5 ustęp 2 nakłada obowiązek wykazania przestrzegania zasad. Bez rozróżnienia w logu wykazanie sprowadza się do zapewnień.

    W naszej praktyce mamy z tym osobną lekcję: własne pobrania narzędziami AI wyglądają w logach jak ruch użytkowników i psują pomiar — odejmujemy je. Ta sama zasada rozróżniania dotyczy logu dostępu: po skardze ma pokazać człowieka, a nie agenta.

  6. Umowa powierzenia z każdym dostawcą, który dotyka danych. Hosting, baza, poczta transakcyjna, operator płatności.

    Błąd, który wyklucza: podpięcie usługi bez sprawdzenia, czy w ogóle ma dokument powierzenia i od kiedy obowiązuje.

    Koszt błędu: artykuł 28 ustęp 3 wymaga umowy albo innego instrumentu prawnego, a ustęp 9 — formy pisemnej, w tym elektronicznej. Bez tego korzystanie z dostawcy nie ma podstawy.

    Stan dokumentów, które sprawdziliśmy 31 sierpnia 2026: Supabase — dokument w wersji 1 z 1 sierpnia 2026, wiążący od dnia wejścia w życie umowy; Resend — aktualizacja z 27 sierpnia 2026, wiąże z chwilą przyjęcia regulaminu.

    Dalej: Stripe — dokument z 18 listopada 2025 stanowi część umowy, a dla konta spoza obu Ameryk stroną jest Stripe Payments Europe; Vercel — dokument obowiązujący od 31 marca 2026 dotyczy klientów na planach Pro i Enterprise.

  7. Region danych wybrany, nie odziedziczony. Osobno baza, osobno funkcje serwerowe — to dwie różne decyzje.

    Błąd, który wyklucza: przyjęcie ustawień domyślnych i założenie, że skoro firma jest w Polsce, dane są w Europie.

    Koszt błędu: dokumentacja Vercel mówi wprost, że funkcje nowych projektów wykonują się domyślnie w Waszyngtonie, a liczba regionów zależy od planu: darmowy jeden, Pro pięć (odczyt 31.08.2026).

    Dokumentacja Supabase ostrzega z drugiej strony, że ogólny region „Europa” obejmuje Londyn i Zurych, które nie są państwami członkowskimi Unii, i że wybór regionu jest kontrolą lokalizacji danych, a nie dowodem zgodności.

    Z sześciu regionów europejskich na liście dostawcy bazy w Unii leżą cztery: Irlandia, Paryż, Frankfurt i Sztokholm. Sam dokument powierzenia dopowiada resztę: wskazanie regionu oznacza przechowywanie i przede wszystkim przetwarzanie w tym regionie (odczyt 31.08.2026).

Jak to sprawdzić samemu w 5 minut?

Pięć testów bez programisty i bez dostępu do kodu. Każdy da się wykonać na własnej aplikacji przed startem albo na aplikacji, która już działa.

  1. Załóż konto testowe, użyj aplikacji i usuń je (90 sekund). Potem sprawdź w panelu administratora listy wiadomości, plików i zgłoszeń. Jeśli rekordy tam zostały, usunięcie było znacznikiem, a nie usunięciem.
  2. Poproś o kopię swoich danych (30 sekund). Dobra odpowiedź to plik, który otwiera arkusz albo inny program. Odpowiedź w postaci zrzutów ekranu oznacza, że eksportu nie ma.
  3. Zapytaj o dwa regiony, nie o jeden (60 sekund). Pytanie brzmi: w którym regionie stoi baza i w którym wykonują się funkcje serwerowe. Dwie różne odpowiedzi są normalne, brak jednej z nich nie.
  4. Otwórz strony powierzenia czterech dostawców (90 sekund). Szukasz daty aktualizacji i zdania o tym, kogo dokument obejmuje. Plan darmowy bywa poza zakresem.
  5. Policz pola w formularzu rejestracji (30 sekund). Przy każdym zadaj jedno pytanie: co się zepsuje, jeśli tego pola nie będzie. Pola bez odpowiedzi wypadają.

Wynik negatywny to lista zadań, nie powód do awantury. Pierwsze trzy punkty poprawia się w godzinach, dopóki aplikacja nie ma tysięcy kont i lat historii.

Co mówi prawo: artykuły 5, 12, 17, 20, 25, 28 i 30?

Poniżej brzmienie przepisów rozporządzenia 2016/679, opublikowanego w Dzienniku Urzędowym Unii Europejskiej L 119 z 4 maja 2016 — nie ich interpretacja. Ocena konkretnego przypadku należy do administratora danych i jego prawnika.

Artykuł 5 ustęp 1 litera c: dane mają być adekwatne, stosowne oraz ograniczone do tego, co niezbędne do celów przetwarzania (minimalizacja danych). Litera e: przechowywane w formie umożliwiającej identyfikację nie dłużej, niż jest to niezbędne. Ustęp 2: administrator musi być w stanie wykazać przestrzeganie tych zasad.

Artykuł 12 ustęp 3 wyznacza zegar. Administrator udziela informacji o działaniach podjętych w związku z żądaniem bez zbędnej zwłoki, w każdym razie w terminie miesiąca od jego otrzymania. Termin można przedłużyć o kolejne dwa miesiące z uwagi na skomplikowany charakter żądania lub ich liczbę, informując o tym w ciągu pierwszego miesiąca.

Artykuł 17 ustęp 1: osoba ma prawo żądać niezwłocznego usunięcia danych, a administrator ma obowiązek usunąć je bez zbędnej zwłoki, gdy zachodzi jedna z sześciu wymienionych okoliczności — między innymi gdy dane nie są już niezbędne do celu albo gdy cofnięto zgodę i nie ma innej podstawy.

Artykuł 20 ustęp 1: osoba ma prawo otrzymać dostarczone przez siebie dane w ustrukturyzowanym, powszechnie używanym formacie nadającym się do odczytu maszynowego i przesłać je innemu administratorowi.

Artykuł 25 ustęp 2: domyślnie przetwarzane mają być wyłącznie dane niezbędne dla każdego konkretnego celu, a środki mają zapewnić, by dane nie były domyślnie udostępniane nieokreślonej liczbie osób bez interwencji osoby, której dotyczą.

Artykuł 28 ustęp 1 pozwala korzystać wyłącznie z podmiotów dających wystarczające gwarancje. Ustęp 3 wymienia, co ma zawierać umowa powierzenia — w tym usunięcie albo zwrot danych po zakończeniu usług oraz udostępnienie informacji potrzebnych do wykazania zgodności. Ustęp 2: podmiot przetwarzający nie dobiera dalszych podwykonawców bez zgody administratora.

Artykuł 30 ustęp 5: obowiązek prowadzenia rejestru czynności nie dotyczy podmiotu zatrudniającego mniej niż 250 osób — chyba że przetwarzanie może powodować ryzyko naruszenia praw, nie ma charakteru sporadycznego albo obejmuje szczególne kategorie danych.

Artykuł 83 ustęp 5 przewiduje za naruszenie podstawowych zasad przetwarzania i praw osób administracyjną karę pieniężną do 20 000 000 EUR, a w przypadku przedsiębiorstwa do 4 % całkowitego rocznego światowego obrotu, przy czym stosuje się kwotę wyższą.

Co z tym zrobić, zanim ruszy budowa?

Siedem pozycji z listy wyżej wpisuje się do dokumentu zakresu jako wymagania, bo każde z nich da się sprawdzić po odbiorze. Jak taki dokument wygląda, opisuje tekst o zakresie pierwszej wersji aplikacji.

Techniczna strona ochrony danych — sekrety, polityki dostępu, kopie sprawdzane odtworzeniem — oraz obowiązki z artykułów 32 i 33, w tym zgłoszenie naruszenia w 72 godziny, są w tekście o zasadach bezpieczeństwa od pierwszego dnia. Gdzie fizycznie leżą dane, pokazuje opis warstw aplikacji dla firmy.

Jeśli aplikacja ma w środku model językowy, dochodzi osobny kalendarz obowiązków — zebrany w tekście o terminach AI Act dla aplikacji z AI. Lista z tej strony obowiązuje niezależnie od tego, co siedzi pod spodem.

Czego w tym tekście nie ma: potwierdzenia, że darmowy plan hostingu jest objęty powierzeniem. Dokument Vercel mówi, że dotyczy klientów na planach Pro i Enterprise; dla planu darmowego nie znaleźliśmy takiej informacji w dokumentacji na dzień 31 sierpnia 2026.

Wniosek jest prosty i nie wymaga prawnika: aplikacja z danymi klientów nie stoi na planie, o którym nie wiadomo, czy powierzenie go obejmuje.

Autopromocja

Jak zrobić aplikację prowadzi zespół tomekniedzwiecki.pl. Jeśli chcesz sprawdzić własny pomysł na aplikację: pierwszy krok jest bezpłatny — rozmowa z agentem AI, po której masz kartę projektu, pierwsze ekrany, badanie rynku i wstępny plan przychodu; bez karty płatniczej i bez zobowiązań.

Budowę wyceniamy zawsze indywidualnie (cena zamknięta, płatna przy zawarciu umowy), a po starcie rozliczamy się 10% od przychodu netto aplikacji — zamiast udziałów w firmie, tylko za miesiące z przychodem, do wykupu. Sprawdź swój pomysł za darmo: tomekniedzwiecki.pl.

Najczęstsze pytania

Mam politykę prywatności napisaną przez prawnika. Czy to wystarczy?

Polityka opisuje, co dzieje się z danymi. Artykuł 25 ustęp 1 i 2 mówi o środkach technicznych i organizacyjnych wdrożonych w samo przetwarzanie: domyślnie tylko dane niezbędne, przez okres niezbędny, w zakresie niezbędnym. Dokument opisujący usunięcie konta w aplikacji, która usunięcia nie potrafi, opisuje stan nieistniejący. Ocena konkretnego przypadku należy do administratora danych i jego prawnika.

Czy usunięcie konta w aplikacji usuwa też dane u operatora płatności?

Nie w całości. Dokumentacja Stripe wskazuje, że część przetwarzania operator prowadzi jako osobny administrator — przeciwdziałanie oszustwom, obowiązki wobec instytucji finansowych, przepisy o przeciwdziałaniu praniu pieniędzy i poznaniu klienta. Żądań osób operator nie realizuje samodzielnie: kieruje je do właściciela konta i pomaga mu odpowiedzieć (odczyt 31.08.2026). Kasowanie w aplikacji nie znosi obowiązków ciążących na operatorze.

Gdzie sprawdzić, kto jeszcze dotyka danych oprócz mojego dostawcy?

Na liście podprocesorów. Supabase i Resend publikują ją pod stałym adresem, a Resend zobowiązuje się uprzedzać o zmianie składu na 14 dni, dając czas na sprzeciw (odczyt 31.08.2026). Podstawa jest w artykule 28 ustęp 2: podmiot przetwarzający nie korzysta z usług innego podmiotu bez zgody administratora, a przy zgodzie ogólnej informuje o zamierzonych zmianach.

Firma zatrudnia trzy osoby. Czy rejestr czynności przetwarzania jest potrzebny?

Artykuł 30 ustęp 5 zwalnia podmioty zatrudniające mniej niż 250 osób, ale wyłącza to zwolnienie w trzech sytuacjach: gdy przetwarzanie może powodować ryzyko naruszenia praw, gdy nie ma charakteru sporadycznego albo gdy obejmuje szczególne kategorie danych. Aplikacja prowadząca konta klientów przetwarza dane stale. Kwalifikację własnego przypadku przeprowadza administrator danych, nie ten tekst.

Co z kopiami zapasowymi po żądaniu usunięcia danych?

Rozporządzenie nie wyznacza osobnego terminu dla kopii; artykuł 17 ustęp 1 mówi o usunięciu bez zbędnej zwłoki. Własne terminy podają dostawcy: Supabase daje 30 dni od wygaśnięcia umowy na pobranie danych i po tym okresie usuwa wszystkie kopie, Resend usuwa dane użytkowników klienta w ciągu 90 dni od zamknięcia konta (odczyt 31.08.2026). Kopie i tak sprawdza się odtworzeniem.

Źródła

  1. RODO — rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679, art. 5, 12, 17, 20, 25, 28, 30 i 83 (Dz.U. L 119 z 4.5.2016, wersja polska, CELEX 32016R0679) — https://publications.europa.eu/resource/celex/32016R0679 (odczyt 31.08.2026 (tekst pobrany z serwera Urzędu Publikacji UE))
  2. Supabase — Available regions: lista regionów, sekcja Data residency (region ogólny „Europa” obejmuje Londyn i Zurych, poza UE) — https://supabase.com/docs/guides/platform/regions (odczyt 31.08.2026)
  3. Supabase — Data Processing Addendum, wersja 1 z 1 sierpnia 2026: klauzula 6.1 (region), 7 (żądania osób), 11.2 (30 dni na kopię, potem usunięcie), 12.1 (standardowe klauzule umowne) — https://supabase.com/legal/dpa (odczyt 31.08.2026)
  4. Supabase — lista podprocesorów (Subprocessor List) — https://supabase.com/legal/customer-resources/subprocessor-list (odczyt 31.08.2026)
  5. Vercel — Configuring regions for Vercel Functions: domyślny region nowych projektów (Waszyngton) i liczba regionów w planach (Hobby 1, Pro 5) — https://vercel.com/docs/functions/configuring-functions/region (odczyt 31.08.2026)
  6. Vercel — Data Processing Addendum (aktualizacja 17 marca 2026, obowiązuje od 31 marca 2026; dotyczy planów Pro i Enterprise) — https://vercel.com/legal/dpa (odczyt 31.08.2026)
  7. Stripe — Data Processing Agreement (aktualizacja 18 listopada 2025): rola administratora przy przeciwdziałaniu oszustwom i obowiązkach AML, obsługa żądań osób — https://stripe.com/legal/dpa (odczyt 31.08.2026)
  8. Resend — Data Processing Addendum (aktualizacja 27 sierpnia 2026): 14 dni uprzedzenia o zmianie podprocesorów, usunięcie danych w 90 dni od zamknięcia konta — https://resend.com/legal/dpa (odczyt 31.08.2026)
  9. Resend — lista podprocesorów — https://resend.com/legal/subprocessors (odczyt 31.08.2026)
  10. RODO w aplikacji — praktyka zespołu — https://jakzrobicaplikacje.pl/o-serwisie/#skad (2026-08-31)
Kto to napisał

Tekst przygotował Agent AI Tomka Niedźwieckiego — treść wygenerowana przez sztuczną inteligencję na podstawie własnych wdrożeń zespołu, dokumentacji dostawców i źródeł podanych wyżej, sprawdzona w osobnym przebiegu weryfikacji faktów i zredagowana. Za fakty odpowiada . Ostatnia weryfikacja: 10 września 2026.