GDPR a vibecodované aplikace: co musíte vyřešit, než tam pustíte data zákazníků
Osobní data v repozitáři, v konverzacích s AI i v zálohách. Kde vibecodovaná aplikace naráží na GDPR a jak si to zkontrolovat, i když nejste vývojář.

Než do vibecodované aplikace pustíte reálná data zákazníků, potřebujete umět odpovědět na tři otázky. Kde všude ta data leží, tedy nejen v databázi, ale i v repozitáři, v uložených konverzacích s AI a v zálohách. Kam tečou, tedy kterým službám je aplikace za provozu posílá. A jestli je umíte na žádost zákazníka smazat. Většina netechnických vibecoderů, se kterými mluvím, nedokáže odpovědět ani na jednu, protože aplikaci psala AI a tyhle věci nikdy nebyly na obrazovce.
Jedno upřesnění hned na začátek: jsem vývojář, ne právník. Tenhle článek není právní rozbor a nenahradí konzultaci s někým, kdo se ochranou osobních údajů živí. Popisuju technickou stránku, tedy kde data reálně jsou a kudy odcházejí. To je přesně ten podklad, který po vás právník bude chtít jako první.
Data zákazníků leží v repozitáři, a tím pádem v zahraničí
Nejčastější nález z mých auditů: reálná jména, e-maily a telefony zákazníků v repozitáři. Dostanou se tam pohodlně, přes importní skript, export z databáze na vyzkoušení nebo testovací soubor. Jakmile repozitář nahrajete na GitHub, leží tato data u amerického poskytovatele. Z pohledu GDPR jste je předali příjemci, o kterém vaši zákazníci nevědí a se kterým nejspíš nemáte nic podepsáno.
Jak to zjistit? Zeptejte se stejného nástroje, ve kterém jste aplikaci psali:
Projdi repozitář včetně historie commitů a najdi soubory s osobními
údaji: jména, e-maily, telefonní čísla, adresy, data narození, čísla
účtů. Zaměř se na exporty z databáze, importní a seed skripty, testovací
data a složky s uloženými konverzacemi s AI. U každého nálezu uveď
soubor a jestli je v aktuální verzi, nebo už jen v historii.Smazat soubor nestačí, git si pamatuje všechno
Tady narazí skoro každý. Soubor s daty smažete, commitnete a máte pocit, že je hotovo. Jenže git je systém na verzování a jeho smyslem je pamatovat si každou změnu. Smazaný soubor zůstává v historii a kdokoli s přístupem k repozitáři si ho vytáhne jedním příkazem.
Řešení je nepříjemnější než smazání: buď přepsat historii repozitáře specializovaným nástrojem, nebo založit repozitář nový a starý odstranit i u poskytovatele. Proto se ptejte i na historii, ne jen na aktuální stav. A stejné pravidlo platí pro hesla a klíče, o kterých píšu v checklistu před spuštěním.
Konverzace s AI jsou taky soubory s daty
Nástroje jako Claude Code nebo Cursor si ukládají historii konverzací, často přímo do složky v projektu. Když jste při vývoji vložili do promptu tabulku se zákazníky, aby AI věděla, s čím pracuje, je ta tabulka teď uložená v textovém souboru. A pokud se složka commituje spolu s kódem, putují ty konverzace do repozitáře se vším ostatním.
Podívejte se do projektu na složky s historií konverzací a rozhodněte, jestli mají být v repozitáři vůbec. Do budoucna platí jednoduché pravidlo: do promptů vkládejte smyšlená data, ne ostrá. AI je pro vývoj potřebuje jen tvarem, ne obsahem.
Kam tečou data za provozu
Pokud aplikace za běhu volá AI služby, třeba na sumarizaci poptávek nebo generování odpovědí, odcházejí data z každého takového požadavku k poskytovateli API. To nemusí být problém, ale musíte o tom vědět a mít to podchycené: velcí poskytovatelé nabízejí zpracovatelské podmínky a u placených API standardně netrénují na vašich datech, u konzumentských verzí a chatovacích aplikací to bývá jinak.
Nechte si vypsat všechny externí služby, které aplikace volá, a u každé si položte dvě otázky. Posílám tam osobní údaje? A mám s touto službou vyřešené podmínky zpracování? Seznam příjemců pak patří do vašich zásad zpracování, kde ho zákazníci mají vidět.
Kdo z firmy vidí co
GDPR chce, aby se k osobním údajům dostali jen lidé, kteří je potřebují k práci. Ve vibecodované aplikaci bývá realita jiná: jeden sdílený administrátorský účet, přístup do databáze pro každého, kdo o něj kdy požádal, a repozitář se všemi daty otevřený celému týmu. Kontrola oprávnění uvnitř aplikace navíc často chybí u části funkcí, což je jeden z nejčastějších nálezů, které popisuju v článku co nacházím při auditech.
Sepište si, kdo má přístup do aplikace, do databáze a do repozitáře, a u každého jména si řekněte, jestli ho k práci potřebuje. Bývá to nejrychlejší náprava z celého seznamu, obvykle jde o pár kliknutí v nastavení.
Umíte data na žádost smazat?
Zákazník má právo požádat o výmaz svých údajů. Otázka zní, jestli to vaše aplikace vůbec umí provést. Vibecodované aplikace často mažou jen naoko, záznam skryjí, ale v databázi zůstává. Jinde mazání chybí úplně, protože o něj při vývoji nikdo nepožádal. A i když záznam smažete, zůstávají kopie v repozitáři, v konverzacích s AI a v zálohách.
Vyzkoušejte to naostro na testovacím záznamu. Vytvořte smyšleného zákazníka, požádejte aplikaci o jeho smazání a pak se podívejte do databáze, jestli opravdu zmizel. Pokud nemáte jak, je to samo o sobě odpověď.
Zálohy, na které se zapomíná
Zálohy jsou správně, bez nich aplikaci provozovat nechcete. Jen si přiznejte, že každá záloha je další kopie osobních údajů, a podle toho s ní zacházejte. Zjistěte, kde zálohy fyzicky leží, kdo se k nim dostane a jak dlouho se drží. Záloha na soukromém notebooku nebo ve sdílené složce, ke které má přístup půlka firmy, je stejný problém jako otevřená databáze. A do odpovědi na žádost o výmaz patří i informace, že údaje zmizí ze záloh po uplynutí jejich retence.
Časté otázky
Porušuju GDPR, když mám kód na GitHubu?
Samotný kód na GitHubu problém není. Problém vzniká, když jsou v repozitáři osobní údaje vašich zákazníků, protože tím je předáváte zahraničnímu poskytovateli, o kterém zákazníci nevědí. Řešením je dostat data z repozitáře včetně historie, ne opustit GitHub.
Stačí osobní data z repozitáře smazat?
Nestačí. Git si uchovává celou historii změn, takže smazaný soubor zůstává dohledatelný v každé kopii repozitáře. Je potřeba přepsat historii specializovaným nástrojem, nebo založit čistý repozitář a starý odstranit i u poskytovatele.
Můžu v aplikaci volat AI služby, když pracuje s osobními údaji?
Můžete, ale potřebujete vědět, co přesně tam posíláte, a mít s poskytovatelem vyřešené podmínky zpracování. Placená API velkých poskytovatelů standardně na vašich datech netrénují a zpracovatelské podmínky nabízejí. Poskytovatele pak uveďte v zásadách zpracování mezi příjemci.
Potřebuju kvůli vibecodované aplikaci právníka?
Pokud aplikace pracuje s daty zákazníků, doporučuju aspoň jednu konzultaci. Právník ale potřebuje podklad: kde data leží, komu odcházejí a jak dlouho se drží. Technickou část si zvládnete připravit podle tohoto článku sami, nebo je součástí auditu.
Kde začít
Projděte si repozitář promptem výše, sepište externí služby a zkuste testovací výmaz. To jsou tři kroky, které zvládnete za odpoledne a které vám řeknou, jak na tom jste. Pokud chcete jistotu, nabízím audit vibecodované aplikace: únik osobních údajů a dopady na GDPR jsou standardní část reportu, spolu s bezpečností a provozem. Do týdne od přístupu k repozitáři dostanete písemný report a 90 minut konzultace, za 12 000 Kč bez DPH.