1. Administrator i kontakt
Lukasz Urbaniak, jednoosobowa działalność gospodarczaKarlstraße 8
27711 Osterholz-Scharmbeck
Niemcy
Pytania dotyczące prywatności: privacy@perfectmode.app
Pomoc ogólna: support@perfectmode.app
2. Podstawowy model przetwarzania
PerfectMode zapisuje dane aplikacji najpierw lokalnie na urządzeniu. Osobiste dane profilu, treningu, odżywiania i postępów są synchronizowane przez Supabase tylko po zalogowaniu się na konto i przy aktywnym dostępie Premium. Ukończone biegi GPS podlegają tej samej kontroli konta/Premium, ale korzystają z osobnej tabeli w chmurze.
Bez konta i aktywnego Premium te obszary pozostają lokalne. Kroki z Health oraz lokalna historia czatu nie należą do Cloud Sync. Zewnętrzna ścieżka Premium AI tworzy jednak dane serwerowe powiązane z kontem, zgodnie z opisem poniżej.
3. Konto i uwierzytelnianie
W przypadku konta Supabase Auth przetwarza adres e-mail, techniczny identyfikator użytkownika (UUID), użytego dostawcę logowania oraz dane sesji, logowania, potwierdzenia, resetowania hasła i PKCE. Sesja jest przechowywana w zabezpieczonej pamięci urządzenia.
Technicznie zintegrowano logowanie e-mailem i hasłem oraz „Zaloguj się przez Apple”. Identyfikator użytkownika służy do przypisania danych w chmurze, uprawnień Premium i użycia funkcji serwerowych do konta. Przy Apple Sign-In krótkotrwały kod autoryzacyjny jest weryfikowany po stronie serwera. Otrzymany Apple Refresh Token jest przechowywany do cofnięcia autoryzacji lub usunięcia konta wyłącznie w tabeli Supabase niedostępnej dla zwykłych klientów; nie jest zapisywany na urządzeniu.
4. Profil, fitness, trening, odżywianie i postępy
Profil i planowanie
Przetwarzane mogą być: język, wiek, wybrana płeć, wzrost, aktualna i docelowa masa ciała, cel, poziom aktywności, ręcznie podana liczba kroków, poziom treningowy, miejsce i dni treningu. Preferencje trenera mogą obejmować cel treningowy, sposób odżywiania, alergie, dobrowolne informacje Health/Safety i preferencje suplementacji.
Trening
Zapisywane są m.in. przypisanie planu i treningu, sesje, ćwiczenia, serie, powtórzenia, ciężary lub czasy, znaczniki czasu, status, metryki postępu i rekordy osobiste.
Odżywianie
Przetwarzane są dziennik, migawki produktów, ilości, posiłki, kalorie, makroskładniki, własne produkty, ulubione i ostatnie produkty, preferowane jednostki, zapisane posiłki, podsumowania dni, jadłospisy, migawki celów i adaptacyjne wartości kalorii.
Postępy sylwetki
Dane postępów mogą zawierać datę, masę ciała, tkankę tłuszczową, zaimportowaną beztłuszczową masę ciała oraz opcjonalnie obwód talii, bioder, klatki piersiowej, ramienia i uda. Pomiary ciała importowane z Health obejmują również czas pomiaru, źródło i identyfikator rekordu źródłowego.
Dane te są przechowywane lokalnie i synchronizowane jako dokumenty powiązane z kontem tylko przy aktywnym Premium.
5. Biegi GPS i dokładna lokalizacja
Po rozpoczęciu biegu GPS PerfectMode przetwarza dokładne punkty lokalizacji: szerokość i długość geograficzną, znacznik czasu, dokładność i opcjonalnie wysokość. Po udzieleniu odpowiedniego zezwolenia rejestrowanie może trwać w tle przy zablokowanym ekranie.
Aktywny szkic biegu i jego punkty są zapisywane lokalnie. Ukończony bieg zawiera pełną skompresowaną trasę, liczbę punktów, dystans, czas rozpoczęcia i zakończenia, czas całkowity i czas w ruchu, tempo, prędkość, kalorie, międzyczasy, znaczniki czasu, opcjonalny opis i ustawienie widoczności.
Przy zalogowanym koncie i aktywnym Premium pełny bieg, łącznie z całą dokładną trasą, jest synchronizowany z tabelą Supabase run_sessions przypisaną do konta. Biegi są domyślnie prywatne i nie są publikowane automatycznie.
Możesz dobrowolnie wyeksportować obraz z danymi biegu, zapisać go na urządzeniu lub udostępnić przez systemowe okno udostępniania. Zapisane lub udostępnione obrazy nie są usuwane przy późniejszym usunięciu konta; samodzielnie zarządzasz tymi kopiami na swoim urządzeniu lub u wybranego odbiorcy.
6. Apple HealthKit i Health Connect
Po udzieleniu przez Ciebie zgody w ustawieniach systemowych PerfectMode odczytuje z Apple Health w iOS kroki, masę ciała, tkankę tłuszczową, beztłuszczową masę ciała i obwód talii. W Androidzie integracja Health Connect po uzyskaniu zgody systemowej odczytuje kroki, masę ciała, tkankę tłuszczową i beztłuszczową masę ciała; obwód talii nie jest tam importowany.
Kroki są wykorzystywane do oceny aktywności i planowania. Pomiary ciała są przejmowane tylko po wyraźnym uruchomieniu importu przez użytkownika. Zaimportowane wartości wraz z czasem pomiaru, źródłem i identyfikatorem rekordu źródłowego stają się lokalnymi danymi postępów PerfectMode. Po zalogowaniu na konto i przy aktywnym Premium dane te mogą być synchronizowane w powiązaniu z kontem przez Supabase Cloud Sync.
PerfectMode nie zmienia oryginalnych danych w Apple Health ani Health Connect i nie zapisuje danych Health z powrotem. Usunięcie zaimportowanych wartości w PerfectMode nie usuwa danych źródłowych w Apple ani Google.
- Dzienne wartości kroków mogą pozostawać do 30 dni w lokalnym, usuwalnym cache.
- Kroki Health nie są synchronizowane przez Cloud Sync.
- Kroki Health nie są przesyłane do OpenAI.
- Odłączenie integracji Health usuwa lokalny cache kroków.
7. Usługi i odbiorcy danych
Supabase
Supabase zapewnia uwierzytelnianie, bazę danych, synchronizację Premium Cloud Sync i Edge Functions. Funkcje brzegowe obsługują m.in. usunięcie konta, zewnętrzną ścieżkę AI, internetowe zapytania o kody kreskowe i webhooki RevenueCat.
RevenueCat i sklepy z aplikacjami
RevenueCat otrzymuje UUID Supabase jako App User ID i przetwarza ofertę, produkt, cenę/walutę, zakup, okres, status odnowienia, entitlement oraz adres zarządzania. Dane o uprawnieniach i zdarzeniach powiązane z kontem trafiają przez webhooki do Supabase. PerfectMode używa RevenueCat do sprawdzania statusu Premium. Po „Przywróć zakupy” Supabase może dodatkowo sprawdzić aktualny dostęp w RevenueCat po stronie serwera (resync) i zaktualizować status uprawnień powiązanych z kontem. Płatności realizuje Apple App Store lub Google Play; PerfectMode nie przechowuje danych kart płatniczych. Dane fitness, żywieniowe, GPS i Health nie są wysyłane do RevenueCat.
Premium AI Coach, Supabase i OpenAI
Jeśli zewnętrzna funkcja Premium AI jest dostępna, a pytanie nie zostanie obsłużone lokalnie, bieżące pytanie tekstowe, maksymalnie cztery istotne fragmenty rozmowy i wybrany kontekst celu, danych ciała, treningu, odżywiania i postępów są wysyłane do Supabase Edge Function, a następnie do OpenAI.
Po udzieleniu osobnej, wyraźnej zgody na AI masa ciała zaimportowana z Health może stanowić część tego wybranego kontekstu trenera jako aktualna masa ciała lub jej trend. Tkanka tłuszczowa i beztłuszczowa masa ciała nie są przesyłane do OpenAI jako ustrukturyzowane dane kontekstowe.
Ustrukturyzowany pakiet dla OpenAI nie zawiera adresu e-mail, identyfikatora Supabase ani kroków z HealthKit/Health Connect. Tekst wpisany przez użytkownika może jednak zawierać dobrowolnie podane dane osobowe. Żądanie OpenAI używa store: false. Supabase zapisuje w powiązaniu z kontem identyfikator żądania, model, tokeny, koszt, status i treść odpowiedzi w celu ochrony przed nadużyciami, kontroli kosztów i idempotencji. Lokalna historia czatu nie jest domeną Cloud Sync.
Aparat, kody kreskowe i Open Food Facts
Aparat otwiera się wyłącznie w skanerze kodów. PerfectMode odczytuje wykryty kod EAN/UPC; nie wykonuje, nie zapisuje ani nie przesyła zdjęć z aparatu. Znane produkty są rozpoznawane lokalnie. Przy koncie i aktywnym Premium nieznany kod może być sprawdzony przez Supabase Edge Function, wspólny cache produktów i Open Food Facts. Open Food Facts otrzymuje kod, ale nie adres e-mail ani identyfikator użytkownika. Supabase przechowuje limity żądań powiązane z kontem.
Pomoc
Jeśli kontaktujesz się z nami e-mailem, przetwarzamy dobrowolnie przekazane dane kontaktowe i treść w celu obsługi zgłoszenia. Nie przesyłaj haseł ani tokenów uwierzytelniających.
8. Cele i podstawy prawne
W zależności od funkcji dane służą zapewnieniu działania aplikacji i konta, personalizacji treningu i odżywiania, analizie postępów i biegów, udostępnieniu Premium, obsłudze zakupów i pomocy, bezpieczeństwu, zapobieganiu nadużyciom oraz realizacji obowiązków prawnych.
W zależności od konkretnego procesu podstawą może być wykonanie umowy lub działania przed jej zawarciem, zgoda na opcjonalne uprawnienia urządzenia i — jeżeli ma zastosowanie — dane szczególnej kategorii, obowiązek prawny albo uzasadniony interes w bezpiecznym i ekonomicznym działaniu usługi. Zgodę można wycofać na przyszłość, a uprawnienia systemowe zmienić w ustawieniach urządzenia.
9. Okres przechowywania i bezpieczeństwo
Dane lokalne co do zasady pozostają na urządzeniu do czasu usunięcia w aplikacji, wyczyszczenia przez przewidziany proces albo usunięcia danych aplikacji. Cache kroków Health jest zaprojektowany na maksymalnie 30 dni. Dane w chmurze co do zasady pozostają do indywidualnego usunięcia lub usunięcia konta, z uwzględnieniem koniecznych okresów technicznych, umownych i prawnych.
Apple, Google, RevenueCat, Supabase i OpenAI mogą stosować własne zasady przechowywania. PerfectMode korzysta z reguł dostępu powiązanych z kontem i użytkownikiem oraz szyfrowanych połączeń oferowanych przez platformy. Żaden system nie gwarantuje bezpieczeństwa absolutnego.
10. Usunięcie konta i pozostałe dane lokalne
Dla kont Apple ścieżka Profil → Konto → Usuń konto najpierw cofa autoryzację Apple Sign-In, a następnie usuwa konto Supabase Auth. Kaskady bazy danych usuwają dokumenty aplikacji powiązane z kontem, biegi i trasy w chmurze, dane użycia i odpowiedzi AI, serwerowe dane entitlementów, webhooków i tokenu Apple (w tym rekordy konta w apple_oauth_tokens) oraz limity zewnętrznych żądań. Następnie usuwana jest lokalna sesja i zwykłe lokalne domeny Cloud Sync.
Aplikacja usuwa także lokalną historię biegów, aktywny bieg GPS i lokalny cache kroków Health. Dane Health zapisane w Apple lub Google nie są usuwane.
Subskrypcja sklepowa nie jest anulowana automatycznie. Subskrypcjami Apple należy zarządzać lub anulować je osobno w ustawieniach subskrypcji konta Apple; analogicznie subskrypcjami Google Play zarządza się na koncie sklepu Google. Historie zakupów i logi dostawców mogą pozostać według ich zasad. Szczegóły: Usunięcie konta.
Lokalne czyszczenie odbywa się po pomyślnym usunięciu konta w chmurze. Jeśli lokalny etap czyszczenia nie powiedzie się, aplikacja zgłasza błąd i umożliwia ponowienie czyszczenia; konto w chmurze jest już wtedy usunięte. Zapisane lub udostępnione obrazy nie są usuwane przy późniejszym usunięciu konta; samodzielnie zarządzasz tymi kopiami na swoim urządzeniu lub u wybranego odbiorcy.
11. Twoje prawa
Na warunkach określonych prawem możesz żądać dostępu, sprostowania, usunięcia, ograniczenia przetwarzania i przenoszenia danych oraz wnieść sprzeciw. Udzieloną zgodę można wycofać ze skutkiem na przyszłość. Możesz także złożyć skargę do właściwego organu ochrony danych.
Napisz na privacy@perfectmode.app. W celu ochrony przed nieuprawnionym ujawnieniem możemy poprosić o rozsądne potwierdzenie tożsamości.