html2wp / Dane
Co html2wp robi z twoimi danymi
Prosty opis tego, co opuszcza twój komputer, po co i jak długo to przechowujemy. README wspomina o tym samym tylko przy okazji. To jest wersja, którą możesz pokazać klientowi.
Sama konwersja
Żeby przekonwertować stronę, usługa musi ją otrzymać. Kiedy uruchamiasz etap 3, skill wysyła jedno archiwum na api.html2wp.dev:
conversion-manifest.json, czyli decyzje, które podejmujesz o stronieastro-report.json, spis części wspólnych dla stron (tzw. chrome) z etapu 1astro-project/, razem zdist/, czyli zbudowaną stronąchrome-at-rest/,chrome-groups.jsonistyle-specimens/, jeśli istnieją
To jest strona twojego klienta: jej znaczniki, style, skrypty i obrazy. Nie da się przekonwertować strony bez jej wysłania i każde sformułowanie sugerujące coś innego byłoby fałszywe. SKILL.md wymienia dokładne pliki w części What goes up. Jeśli wolisz to sprawdzić, niż wierzyć nam na słowo, convert-remote.sh to czytelny skrypt powłoki.
Czego w tym archiwum nie ma
Nie ma w nim twojego katalogu wejściowego, bo wysyłany jest tylko zbudowany wynik. Brakuje też node_modules. Nie trafia tam również nic, co wygląda na dane dostępowe: .env i .env.*, *.pem, *.key, id_rsa, credentials.json, .npmrc, .netrc, .ssh/, .aws/, a także żadnego pliku, którego zawartość ma blok klucza prywatnego albo oczywiste przypisanie sekretu. Filtr wypisuje z nazwy wszystko, co odrzuca, w astro-report.json, więc widzisz, co nie zostało wysłane.
Pracą na twoim komputerze (pomiary, porównanie z oryginałem i poprawki) steruje AI z twojego własnego konta ChatGPT. OpenAI przetwarza to, nad czym pracuje AI, na warunkach twojego konta, tak samo jak przy każdym innym użyciu ChatGPT.
Jak długo to przechowujemy: miejsce robocze usuwamy 48 godzin po jego ostatniej zmianie. Zostaje skrót (hash). Dzięki niemu ponowne uruchomienie tej samej strony liczy się jako ponowne uruchomienie, a nie druga konwersja.
Wyniki bramek
Po lokalnej weryfikacji konwersji skill zgłasza wynik. Jest to wymagane: następna konwersja zostaje odrzucona, dopóki poprzednia nie zgłosi wyniku. Zgłoszenie jest też małe i działa na zasadzie białej listy, a nie filtra.
- Wysyłane: nazwy bramek, wynik (zaliczona, niezaliczona albo nieuruchomiona), liczby stron, najgorszy procent wierności i klucze stron, które nie przeszły. Klucze to krótkie nazwy, które wybierasz, np.
aboutalbopricing. - Niewysyłane: żaden URL, domena, znaczniki, teksty, zrzuty ekranu, ścieżki plików, klucz licencyjny ani nazwa strony.
Polecenie send-verdicts.sh <workspace> --dry-run wypisuje dokładną zawartość i niczego nie wysyła.
Dlaczego to jest wymagane: bramki działają na twoim komputerze, na WordPressie, którego usługa nigdy nie widzi. Bez nich usługa wie, że konwersja się nie wysypała, ale nic więcej o tym, czy była poprawna. Wyniki przechowujemy 365 dni.
Rekord konwersji
Jeden wiersz na konwersję: ile stron, ile wariantów chrome, czy był blog albo sklep, czy było to ponowne uruchomienie, który etap odmówił, jeśli któryś odmówił, i własne ostrzeżenia generatora o sobie samym. Ostrzeżenia są zanonimizowane: nazwy plików stron i adresy URL zostają zastąpione przed zapisaniem wiersza. Rekord przechowujemy 365 dni. Nie zawiera treści, adresów ani identyfikatorów strony.
Zgłoszenia błędów
Jeśli wyślesz zgłoszenie przez POST /v1/report, zapisujemy jego tekst dokładnie tak, jak go piszesz, i wysyłamy go przez Resend do osoby, która go czyta. Przechowujemy je 90 dni. Nie wklejaj do niego niczego, czego nie chcesz u nas trzymać przez ten czas.
Jak cię rozpoznajemy
- Bez klucza: konwersje liczymy na adres IP, tak jak widzi go Cloudflare. Zapisujemy go jako skrócony hash, nigdy jako sam adres.
- Kraj, z którego pochodzi ten hash, jako dwie litery, z nagłówka dodawanego przez Cloudflare. Leży obok powyższego licznika i nigdzie indziej. W szczególności nie ma go w rekordzie konwersji, który nie zawiera niczego, co cię lokalizuje. Kraj mówi nam, w jakich krajach używa się html2wp, ale nie, która konwersja była twoja. Nieznany kraj i Tor przychodzą jako
XXiT1i tak je zostawiamy, zamiast zgadywać. - Z licencją: po kluczu licencyjnym, też zapisanym jako hash. Sprawdzamy go w UpdatePulse (
updates.designready.studio), który widzi klucz. - Sprawdzenie klucza albo pobranie Visual Edit Pro: strona pobierania i narzędzie
npx html2wp-licensewysyłają wpisany klucz, i nic poza nim, do tego samego serwera licencji, żeby odczytać jego status. Odpowiedź nie zawiera danych osobowych, a ani strona, ani narzędzie nie zapisują klucza.
Zakup licencji
Plany sprzedajemy przez Paddle. Paddle.com Market Limited jest Merchant of Record, czyli sprzedawcą w tej transakcji. W zakresie płatności jest niezależnym administratorem, a nie podmiotem przetwarzającym dane w naszym imieniu. Przy płatności Paddle zbiera twoje imię i nazwisko, adres e-mail, kraj i kod pocztowy, dane płatnicze oraz, jeśli go podasz, numer VAT. Przetwarza je zgodnie z własną informacją o prywatności.
- Co Paddle przekazuje nam: twój adres e-mail, imię i nazwisko i kraj, identyfikatory transakcji i subskrypcji oraz to, jaki produkt kupujesz. Tyle trzeba, żeby wydać klucz właściwej osobie i odnaleźć zamówienie, kiedy do nas piszesz.
- Co przechowujemy: w UpdatePulse, naszym serwerze licencji na
updates.designready.studio: klucz licencyjny, twój adres e-mail i imię i nazwisko, identyfikator transakcji, daty zakupu i wygaśnięcia oraz status licencji. - E-mail z kluczem wychodzi przez Resend, który go tylko doręcza i nic więcej z nim nie robi.
- Dane firmy do faktury (nazwa firmy lub działalności, adres, opcjonalnie numer VAT i e-mail) idą z twojej przeglądarki prosto do kasy Paddle, jeśli przed płatnością wybierzesz Dla firmy lub freelancera. Paddle drukuje je potem na fakturze. Ta strona nie wysyła ich na nasze serwery i ich nie przechowuje.
- Dane karty nigdy do nas nie docierają. Idą z twojej przeglądarki do Paddle i nie moglibyśmy ich zobaczyć, nawet gdybyśmy chcieli.
- Skrypt Paddle, Paddle.js, ładuje się tylko na stronie z cennikiem, z
cdn.paddle.com, bo tam otwiera się kasa. Żadna inna strona w tym serwisie go nie ładuje.
Okres przechowywania: przez cały czas trwania licencji, a potem tak długo, jak prawo rachunkowe wymaga przechowywania dokumentacji zakupów.
Zarządzanie subskrypcją
Subskrypcją zarządzasz w portalu klienta Paddle, na stronie samego Paddle. Rezygnacja, zmiana karty i pobieranie faktur to sprawy między tobą a Paddle, a my widzimy tylko wynik. Żeby przełączyć Pro z miesięcznego na roczny, strona zarządzania subskrypcją wysyła wpisany adres e-mail do Paddle, żeby znaleźć twoją subskrypcję. Jeśli taka istnieje, link idzie e-mailem przez Resend na adres, który ma Paddle. Wpisanego adresu nie przechowujemy.
Formularz kontaktowy
Formularz, którym do nas piszesz, to drugie miejsce w tym serwisie, gdzie wpisujesz coś o sobie. Prosi o adres e-mail, który jest wymagany, o stronę albo organizację, co jest opcjonalne, i o twoją wiadomość. Formularz ma też ukryte pole o nazwie company, którego ludzie nigdy nie widzą. Jest po to, żeby boty, które wypełniają każde pole, same się zdradziły.
Zanim wiadomość zostanie wysłana, Cloudflare Turnstile sprawdza, czy wysyła ją człowiek, a nie skrypt. Działa tylko na stronach z formularzem, który z niego korzysta: na stronie kontaktowej i na stronie subskrypcji. Ładuje się z challenges.cloudflare.com. Do decyzji Cloudflare bierze twój adres IP, User-Agent przeglądarki i jej odcisk TLS. Według Cloudflare są one niezbędne do odróżnienia ludzi od botów. Nie czyta tego, co wpisujesz w formularz. Dostajemy wynik zaliczony albo niezaliczony i nic więcej. Szczegóły są w aneksie Cloudflare o prywatności Turnstile.
Twoja wiadomość trafia do człowieka e-mailem, przez Resend. Nie trafia do CRM ani na listę mailingową. Przechowujemy ją tak długo, jak wymaga tego rozmowa, i usuwamy w ciągu 24 miesięcy. Poproś wcześniej, a zniknie.
Dane użytkownika Google
html2wp używa jednego API Google, Google Ads API, i tylko do własnych badań słów kluczowych: jakich fraz ludzie szukają, jak często i jak duża jest konkurencja. To narzędzie wewnętrzne. Nikt spoza naszego zespołu nie loguje się nigdzie w html2wp przez Google, a konwerter nigdy cię o to nie prosi.
- O co prosimy: o zakres
https://www.googleapis.com/auth/adwords, nadany przez członka naszego zespołu dla kont Google Ads, które należą do nas. Służy do odczytu danych z Keyword Planner: pomysłów na słowa kluczowe, historycznej liczby wyszukiwań, konkurencji i zakresów stawek. - Czego nie dotykamy: kampanii, reklam, odbiorców, rozliczeń ani żadnego konta Google poza naszym. Nic nie jest zapisywane z powrotem w Google Ads.
- Gdzie to jest przechowywane: token logowania zostaje w pęku kluczy systemu operacyjnego komputera, na którym go nadano. Wyniki dotyczące słów kluczowych trafiają do naszego planowania treści, jako liczby o frazach, a nie o ludziach.
- Kto jeszcze to widzi: nikt. Nie sprzedajemy tego, nie udostępniamy i nie używamy do reklam ani do trenowania modeli AI.
- Usunięcie: dostęp cofasz na myaccount.google.com/permissions. Wszystko, co z niego wynika, usuwamy na prośbę wysłaną na hello@html2wp.dev.
Wykorzystanie przez html2wp informacji otrzymanych z interfejsów API Google i ich przekazywanie do innych aplikacji będzie zgodne z Google API Services User Data Policy, w tym z wymaganiami Limited Use (ograniczonego użycia).
Kto jeszcze uczestniczy
- Cloudflare (Stany Zjednoczone) hostuje ten serwis i uruchamia jego małe funkcje po stronie serwera (formularz kontaktowy, pobieranie Visual Edit Pro i webhook płatności). Stoi też przed API konwersji. Kończy połączenie TLS, więc widzi każde żądanie i adres, z którego przyszło. Na stronach kontaktu i subskrypcji uruchamia też Turnstile, opisane wyżej sprawdzenie botów. Przy tym sprawdzeniu Cloudflare jest naszym podmiotem przetwarzającym. Administratorem jest tylko wtedy, gdy używa tych samych sygnałów do ulepszania wykrywania botów.
- UpdatePulse na naszym własnym serwerze, do sprawdzania licencji. Ponieważ licencje są sprzedawane, przechowuje też obok klucza adres e-mail i imię i nazwisko klienta.
- Paddle (Paddle.com Market Limited, Wielka Brytania) jest Merchant of Record przy każdym zakupie i niezależnym administratorem danych płatniczych, które zbiera.
- Resend (Stany Zjednoczone) doręcza cztery rodzaje e-maili: klucze licencyjne po zakupie, linki do zarządzania subskrypcją, wiadomości z formularza kontaktowego i zgłoszenia błędów konwertera.
- Coolify na naszym własnym serwerze, do hostowania usługi konwersji i serwera licencji.
- agentmods.dev serwuje małą plakietkę z pomiarem wtyczki w stopce każdej strony. Załadowanie tego obrazka wysyła mu twój adres IP i dane przeglądarki, jak każdy obrazek z innej strony. Nic więcej nie jest mu udostępniane.
- Umami, narzędzie analityczne open source, działa pod adresem umami.agentmods.dev i jest używane tylko w tym serwisie. Liczy wyświetlenia stron i kilka kliknięć: który przycisk został naciśnięty, a nie kto go nacisnął. Bez ciasteczek, bez identyfikatora między stronami, bez zapisywania czegokolwiek na twoim urządzeniu. Dlatego ten serwis nie ma banera cookies do odklikania.
Bez reklam, bez śledzenia między stronami, bez sprzedaży danych
Jedynym narzędziem analitycznym jest wymienione wyżej narzędzie bez ciasteczek i działa ono w tym serwisie. Twój motyw nigdy nie łączy się z naszymi serwerami w czasie działania. To twierdzenie dotyczy dostarczonej strony i jest dokładne. Nic nie jest sprzedawane i nic nie jest udostępniane reklamodawcom.
Przekazywanie poza UE
Nasze serwery są w UE. Cloudflare i Resend to firmy amerykańskie. Ruch do tego serwisu i do API przechodzi przez infrastrukturę Cloudflare, tak samo jak sprawdzenie Turnstile w formularzach. E-maile z kluczami, linki do zarządzania subskrypcją, wiadomości z formularza kontaktowego i zgłoszenia błędów przechodzą przez infrastrukturę Resend. W obu przypadkach może dojść do przekazania danych poza UE. Takie przekazania opierają się na standardowych klauzulach umownych Komisji Europejskiej. Paddle ma siedzibę w Wielkiej Brytanii, którą Komisja Europejska uznaje za kraj zapewniający odpowiednią ochronę, i obsługuje dane płatnicze zgodnie z własną informacją o prywatności. Plakietka w stopce i skrypt analityczny pochodzą z agentmods.dev, serwisu obsługiwanego przez globalną sieć Cloudflare. Nie mamy więc wpływu na to, gdzie te żądania są obsługiwane. Nic innego z tej listy nie opuszcza UE.
Podstawa prawna
Zgodnie z RODO (GDPR) każde z tych przetwarzań potrzebuje podstawy prawnej. Oto która dotyczy czego:
Usługa konwersji
- Odbiór i konwersja twojej strony: wykonanie umowy (art. 6 ust. 1 lit. b RODO). Prosisz o konwersję, a ta nie może się odbyć bez wysłania strony.
- Liczenie konwersji na adres IP: prawnie uzasadniony interes (art. 6 ust. 1 lit. f RODO). Darmową wersję, której nie da się policzyć, ktoś w końcu wyczerpie, a skrócony hash to najmniej, czym możemy ją rozpoznać.
- Zapis kraju, z którego pochodził ten adres: prawnie uzasadniony interes (art. 6 ust. 1 lit. f RODO). To, gdzie produkt jest używany, decyduje o tym, co obsługuje. Dwie litery obok już pseudonimizowanego licznika to najogólniejsza forma, która odpowiada na to pytanie. Nie dodaje niczego do tego, co dałoby się rozpoznać po samym hashu.
- Sprawdzanie klucza licencyjnego: wykonanie umowy (art. 6 ust. 1 lit. b RODO).
- Werdykty bramek i rekord konwersji: prawnie uzasadniony interes (art. 6 ust. 1 lit. f RODO). Wiedza o tym, który etap zawodzi przy jakim typie strony, to jedyny sposób na ulepszanie konwertera. Przed zapisem usuwamy z nich wszystko, co identyfikuje stronę.
- Zgłoszenie błędu, które wysyłasz: prawnie uzasadniony interes (art. 6 ust. 1 lit. f RODO). To ty decydujesz, czy w ogóle je wysłać.
Zakup licencji
- Wydanie i obsługa kupionej licencji: wykonanie umowy (art. 6 ust. 1 lit. b RODO).
- Przechowywanie dokumentacji zakupów: obowiązek prawny (art. 6 ust. 1 lit. c RODO). Jak długo, określa prawo rachunkowe.
Ten serwis
- Formularz kontaktowy: działania podejmowane na twoje żądanie przed zawarciem umowy albo prawnie uzasadniony interes w odpowiedzi osobie, która do nas napisała (art. 6 ust. 1 lit. b lub f RODO).
- Sprawdzenie botów w formularzach kontaktu i subskrypcji: prawnie uzasadniony interes (art. 6 ust. 1 lit. f RODO). Chodzi o to, żeby automatyczny spam nie trafiał do formularza, który czyta człowiek. Używa tylko sygnałów, których Cloudflare do tego potrzebuje, i niczego więcej.
- Liczenie wyświetleń stron w tym serwisie: prawnie uzasadniony interes (art. 6 ust. 1 lit. f RODO). Da się to obronić właśnie dlatego, że narzędzie niczego nie zapisuje na twoim urządzeniu i nie może śledzić cię poza tym serwisem.
Zautomatyzowane decyzje
Usługa automatycznie odmawia konwersji, gdy przydział konwersji jest wyczerpany albo strona jest za duża. To tylko arytmetyka na liczniku i nie wywołuje wobec nikogo skutków prawnych. Jeśli napiszesz do nas w tej sprawie, odpowie człowiek. Nie prowadzimy profilowania.
Twoje prawa
Zgodnie z RODO możesz nas poprosić o każdą z poniższych rzeczy i wystarczy jeden e-mail na hello@html2wp.dev.
- Dostęp: dostajesz kopię tego, co o tobie przechowujemy (art. 15).
- Sprostowanie: jeśli dane są błędne, poprawiamy je (art. 16).
- Usunięcie: usuwamy dane (art. 17).
- Ograniczenie przetwarzania: zatrzymujemy dane, ale przestajemy ich używać, dopóki sprawa jest sporna (art. 18).
- Przenoszenie: dostajesz to, co nam przekazujesz, w formie czytelnej maszynowo (art. 20).
- Sprzeciw: możesz się sprzeciwić wszystkiemu, co robimy na podstawie prawnie uzasadnionego interesu, także analityce (art. 21). Przestajemy, chyba że wykażemy podstawy ważniejsze od twoich.
Odpowiadamy w ciągu miesiąca. Nie pobieramy opłat. Nie prosimy o potwierdzenie tożsamości ponad to, co jest potrzebne, żeby mieć pewność, że nie przekazujemy twoich danych komuś innemu.
Jedno ograniczenie: większość tego, co przechowuje usługa, jest zahashowana albo zagregowana i nie da się tego powiązać z osobą, nawet nam. Dla tych wierszy nie ma więc czego wydać, poprawić ani usunąć. Wysłana strona znika sama po 48 godzinach.
Jeśli popełnimy błąd
Możesz złożyć skargę do słowackiego organu nadzorczego: Úrad na ochranu osobných údajov Slovenskej republiky, Hraničná 12, 820 07 Bratislava, dataprotection.gov.sk. Jeśli mieszkasz w innym kraju UE, możesz zamiast tego zwrócić się do własnego organu. Napisanie najpierw do nas jest szybsze, ale nie jest warunkiem.
Zgłoszenia podatności wysyłaj na adres podany na stronie o bezpieczeństwie, a nie w publicznym zgłoszeniu (issue).
Kto odpowiada
Administratorem danych jest BELNEM s.r.o., Beckovská 5, Bratislava, Słowacja, IČO 53713486. E-mail: hello@html2wp.dev. Nie jesteśmy na tyle duzi, żeby mieć obowiązek powołania inspektora ochrony danych, i go nie powołaliśmy. Powyższy adres trafia do osób, które o tych sprawach decydują.
Podanie nam danych nigdy nie jest wymogiem ustawowym. Po prostu konwersja potrzebuje strony, a licencja potrzebuje adresu, na który można wysłać klucz.