Polityka prywatności
Ta strona opisuje aplikację mobilną BikeOtter i witrynę bikeotter.app. Powstała przez czytanie tego, co oprogramowanie naprawdę robi — jakie pola niesie punkt śledzenia na żywo, który mechanizm go usuwa i kiedy, z jakimi hostami nawiązywane są połączenia — a nie na podstawie szablonu. Tam, gdzie limit jest podany liczbą, jest to liczba z kodu.
Wersja 1.1 · ostatnia aktualizacja 9 sierpnia 2026 · dotyczy aplikacji i tej strony
W skrócie
- Nie ma analityki ani raportowania awarii. Żadnego Google Analytics, żadnego Firebase, żadnego Sentry, żadnego SDK reklamowego ani atrybucyjnego — ani w aplikacji, ani na tej stronie. Nic tutaj cię nie zlicza.
- Większość aplikacji w ogóle nie wymaga konta. Planowanie tras, wysyłanie tras, pobieranie przejazdów, reguły i alerty działają bez logowania. Konto istnieje tylko dla śledzenia na żywo, e-maili z powiadomieniami o przejeździe i połączenia ze Strava.
- Twoje trasy, pliki przejazdów i twój głos zostają na telefonie. Rozpoznawanie mowy działa na urządzeniu; celowo nie ma chmurowej warstwy mowy.
- Śledzenie na żywo to jedyna funkcja, która publikuje twoją pozycję — każdemu, kto ma link, na czas przejazdu. Tętno, moc i kadencja są domyślnie wyłączone. Twoje punkty pozycji i rekord sesji są usuwane razem, 7 dni po zakończeniu lub wygaśnięciu przejazdu.
- Jedno aplikacja robi bez pytania: przy uruchomieniu sprawdza, czy jest łatka kodu, przez Shorebird, i tego sprawdzenia nie da się wyłączyć. Nie niesie żadnej tożsamości od nas — ale łączy się z serwerem. §10.1 wyjaśnia dokładnie, co wiemy, a czego nie.
- Nic nie jest sprzedawane, wynajmowane ani udostępniane do celów reklamowych. Nigdy.
1. Kto jest odpowiedzialny
Administratorem opisanego tutaj przetwarzania, w rozumieniu Art. 4(7) GDPR, jest:
OpenBikeControl UG (haftungsbeschränkt)Ulrichstraße 24
71636 Ludwigsburg, Germany
E-mail: support@bikeotter.app
Pełne dane firmy znajdziesz na stronie z impressum. Nie ma ustawowego inspektora ochrony danych; we wszystkich sprawach z tej strony pisz na powyższy adres.
2. Co nigdy nie opuszcza twojego telefonu
Poniższe dane są trzymane we własnej pamięci aplikacji na twoim urządzeniu i BikeOtter nigdzie ich nie wysyła. Opuszczają telefon tylko wtedy, gdy osobiście je wyeksportujesz lub udostępnisz.
- Twoja biblioteka tras. Trasy to pliki na telefonie — geometria plus indeks. Udostępnienie trasy tworzy samowystarczalny link, który niesie trasę w sobie; żadna trasa nie jest wysyłana na serwer po to, żeby ją udostępnić.
- Twoje przejazdy. Przejazdy pobrane z licznika i przejazdy nagrane telefonem są zapisywane jako pliki FIT i GPX na urządzeniu. Opuszczają go tylko wtedy, gdy je udostępnisz lub gdy masz włączone przesyłanie do Strava.
- Sterowanie głosem. Rozpoznawanie mowy jest skonfigurowane tak, żeby działało na urządzeniu, a polecenia są interpretowane najpierw przez gramatykę offline, a potem, w razie potrzeby, przez model na urządzeniu (Apple Foundation Models lub Gemini Nano). Celowo nie ma chmurowej warstwy mowy ani chmurowego modelu językowego — żadne audio ani żadna transkrypcja nie są wysyłane na żaden serwer.
- Twoje ustawienia, reguły, zapisane miejsca i konfiguracja przekazywania powiadomień.
- Powiadomienia przekazywane na licznik (tylko Android). Jeśli przyznasz dostęp do powiadomień, aplikacja odczytuje powiadomienia telefonu po to, żeby wyświetlić je na ELEMNT lub Edge, i przekazuje je bezpośrednio przez Bluetooth. Ich treść nie jest zapisywana przez aplikację i nigdy nie trafia na serwer.
- Wszystko, co aplikacja robi z samym licznikiem — parowanie, wysyłanie tras, pobieranie przejazdów, alerty na ekranie — dzieje się przez bezpośrednie połączenie Bluetooth między twoim telefonem a urządzeniem. Na tej drodze nie stoi żadna chmura producenta ani żaden serwer BikeOtter.
3. Twoje konto
Konto jest wymagane tylko do śledzenia na żywo, e-maili z powiadomieniami o przejeździe i połączenia ze Strava. Cała reszta działa bez logowania.
Możesz zalogować się na jeden z dwóch sposobów: magicznym linkiem wysłanym na twój adres e-mail albo przez logowanie przez Strava. Nie ma hasła i nie ma profilu. Przechowywany jest rekord użytkownika u naszego dostawcy backendu (Supabase), zawierający twój adres e-mail i znaczniki czasu logowań, a przy logowaniu przez Strava — dodatkowo id sportowca Strava i wyświetlaną nazwę.
Twój adres e-mail służy do identyfikacji, a jego część lokalna (fragment przed
@) staje się nazwą rowerzysty pokazywaną obserwującym link na żywo. Jeśli twój
adres to [email protected], obserwujący widzą jane.doe. Miej to na
uwadze, wybierając adres do logowania.
Żeby usunąć konto i wszystko, co jest z nim związane, napisz na support@bikeotter.app z adresu, którym się logujesz. Usunięcie konta działa kaskadowo: sesje śledzenia na żywo i ich punkty pozycji, przejazdy grupowe, wiadomości wysłane ci przez obserwujących, zapisane kontakty i ich grupy, rekordy powiadomień oraz połączenie ze Strava — wszystko znika razem z nim. W aplikacji nie ma jeszcze przycisku samoobsługi — strona usuwania konta podaje kroki, pełną listę tego, co znika, i tego, co pozostaje potem.
4. Śledzenie na żywo
To jedyna funkcja, która publikuje, gdzie jesteś. Jest wyłączona, dopóki jej nie uruchomisz, i kończy się razem z przejazdem.
Czym jest udostępniony link
Rozpoczęcie przejazdu na żywo tworzy sesję z tokenem udostępniania: 20 znaków z kryptograficznego źródła losowości, co daje link postaci bikeotter.app/r/<token>. Każdy, kto ma ten link, może oglądać — bez konta i bez logowania. Link jest poświadczeniem, więc traktuj go jak poświadczenie — przekazuj go osobom, które naprawdę mają cię obserwować. Obserwujący widzą tylko to, co wymieniono niżej; nigdy nie dostają twojego adresu e-mail, id twojego konta ani tokenu żadnej innej sesji.
Przeglądarka obserwującego otrzymuje krótkotrwały token dostępu ograniczony do tej jednej sesji i do najwyżej sześciu godzin. Baza danych wymusza to kolumna po kolumnie: właściciel sesji i jej token udostępniania są dla obserwujących w ogóle nieczytelne.
Aplikacja pokazuje ci na żywo, ile osób ogląda. Nie mówi, kim są — tożsamość obserwujących nie jest zbierana.
Co zawiera punkt na żywo
Punkty są wysyłane podczas jazdy, dławione według czasu i dystansu. Każdy niesie:
| Pole | Wysyłane | Uwagi |
|---|---|---|
| Szerokość i długość geograficzna | Zawsze | Istota tej funkcji. |
| Wysokość, czas trwania, nachylenie, stan przejazdu | Zawsze | Wysokość to twoje położenie nad poziomem morza — trzecia współrzędna pozycji,
którą już udostępniasz, i ten sam odczyt, z którego wyliczane jest nachylenie obok,
więc te dwa nie są wysyłane osobno. Stan przejazdu to active,
paused, auto_paused lub not_started, żeby
strona mogła pokazać PAUZA zamiast kłamliwej plakietki NA ŻYWO.
Cała czwórka jest wysyłana niezależnie od dwóch przełączników poniżej — celowo. |
| Słaba bateria | Tylko gdy słaba — bez przełącznika | Flaga, nie procent — ta strona nigdy nie dowiaduje się, ile baterii ci zostało, tylko że jest jej mało. Jest wysyłana tylko wtedy, gdy bateria twojego telefonu jest słaba i telefon się nie ładuje, żeby osoba, która cię obserwuje, mogła odróżnić umierający telefon od zgubionego sygnału. Dopóki tak jest, aplikacja wysyła też twoją pozycję rzadziej. |
| Prędkość, przebyty dystans, dotychczasowe przewyższenie, pozostały dystans i pozostałe podjazdy, ETA | Tylko przy włączonym „udostępniaj prędkość” — domyślnie włączone | Wyłącz go, a żadna z tych sześciu wartości nie jest w ogóle wysyłana. „Dotychczasowe przewyższenie” to łączna liczba metrów, jakie masz już wspięte w tym przejeździe — inna wartość niż wysokość powyżej: jedno to suma narastająca, drugie to miejsce, w którym jesteś teraz. |
| Tętno, moc, kadencja | Tylko przy włączonym „udostępniaj tętno i moc” — domyślnie wyłączone | Tętno to dane o zdrowiu. Jest wysyłane tylko wtedy, gdy to włączysz, a przełącznik startuje wyłączony. Kadencja — jak szybko pedałujesz, w obrotach na minutę — podlega temu samemu przełącznikowi, choć nie ma jej w jego nazwie: to odczyt czujnika tego samego rodzaju i mówi o twoim wysiłku tyle samo co moc. Przełącznik w aplikacji ma to napisane pod spodem. |
Co zawiera sama sesja
Obok punktów: twoja nazwa rowerzysty (zob. §3), nazwa trasy, zaplanowana linia trasy, jej łączny dystans, współrzędne startu trasy, dwa przełączniki udostępniania powyżej, informacja, czy wiadomości są włączone, status sesji i jej znaczniki czasu, a przy przejeździe grupowym — do której grupy należy.
Kiedy się kończy i kiedy jest usuwana
Sesja wygasa w tym z poniższych momentów, który nadejdzie pierwszy, a wygaśnięcie jest sprawdzane co minutę:
- czas wygaśnięcia ustawiony przy starcie — domyślnie sześć godzin;
- 45 minut po ostatnim punkcie lub sygnale podtrzymania z aplikacji, żeby zapomniany przejazd nie wisiał „na żywo” przez cały wieczór;
- 60 minut po utworzeniu, jeśli nigdy nie dotarła żadna pozycja.
Usuwanie następuje potem automatycznie:
- Rekord sesji jest usuwany 7 dni po jej zakończeniu lub wygaśnięciu, zabierając ze sobą wszystko, co wciąż jest z nią związane.
- Twoje punkty pozycji są usuwane razem z nią — te same 7 dni, ani chwili dłużej. Kiedyś były czyszczone po 24 godzinach, wcześniej niż sesja; teraz są trzymane przez całe życie samej sesji, żeby przejazd, którego nagranie zgubił licznik, dało się jeszcze odbudować w aplikacji ze śladu na żywo. Nic więcej w tym mechanizmie czyszczenia się nie zmieniło, a zewnętrzna granica tego, jak długo przechowywany jest udostępniony przejazd, pozostaje bez zmian: 7 dni.
Przejazdy grupowe działają tak samo, gdy przejazd już trwa: link grupy jest ważny przez 12 godzin od rozpoczęcia, mieści najwyżej 10 rowerzystów, a rekord grupy jest usuwany 7 dni po jej zakończeniu. Przejazd zaplanowany z wyprzedzeniem działa inaczej: link — wraz z imionami wszystkich, którzy już potwierdzili udział — pozostaje otwarty do dołączenia przez maksymalnie 30 dni, zanim ktokolwiek faktycznie wyruszy; 12-godzinny zegar zaczyna biec dopiero, gdy pierwszy rowerzysta przejdzie na żywo. Zakończenie udostępniania z aplikacji natychmiast zatrzymuje wysyłanie; potem mechanizmy czyszczące usuwają zapisane dane według powyższego harmonogramu.
5. Wiadomości od obserwujących
Jeśli włączysz wiadomości, osoba, która trafiła na twój link przez jeden z twoich e-maili z powiadomieniem, może wysyłać ci krótkie wiadomości, które pojawiają się na twoim liczniku. Zwykły obserwujący, który po prostu ma link, nie może — wysyłanie wymaga tokenu przypisanego do kontaktu, a niesie go tylko link z e-maila.
Wiadomość zapisuje swoją treść, wysyłający kontakt i znacznik czasu. Nadawcy są ograniczeni do trzech wiadomości na godzinę. Wiadomości są przypięte do sesji i usuwane razem z nią — czyli w tym samym 7-dniowym oknie co w §4. Wiadomości są przechowywane na serwerze w formie czytelnej; nie są szyfrowane end-to-end.
6. E-maile z powiadomieniami o przejeździe
Możesz zapisać kontakty, żeby rozpoczęcie przejazdu na żywo wysyłało im link e-mailem. Nic nie jest wysyłane, dopóki przy starcie nie wybierzesz grupy; wybór „nikt w tym przejeździe” nie wysyła niczego.
Co jest przechowywane dla każdego kontaktu: adres e-mail (małymi literami), opcjonalna nazwa, token wypisania się, token wiadomości oraz — jeśli dotyczy — kiedy dana osoba się wypisała lub kiedy poczta do niej została trwale odrzucona (hard bounce). Kontakty są widoczne tylko dla ciebie; baza danych całkowicie odmawia do nich anonimowego dostępu.
Co e-mail zawiera i co ujawnia: twoją nazwę rowerzysty, nazwę i dystans trasy, link do
oglądania, czas wygaśnięcia linku oraz link do wypisania się. Jest wysyłany z
[email protected] przez Cloudflare Worker w naszym imieniu, a jego
Reply-To jest ustawione na twój własny adres e-mail, żeby odbiorca mógł
odpowiedzieć ci bezpośrednio — co znaczy, że odbiorcy widzą adres, którym się logujesz.
E-mail o powrocie (opcjonalny i wyłączony, dopóki go nie włączysz): jeśli włączysz dla grupy kontaktów „Daj im znać, gdy wrócisz”, osoby, którym wysłano link do tego przejazdu — tylko one i tylko wtedy, gdy e-mail z linkiem faktycznie do nich dotarł — dostaną krótką wiadomość, gdy przejazd się zakończy: że skończyłeś, dystans i czas w ruchu, które przejazd opublikował, godzinę powrotu oraz ten sam link do oglądania. Na przejeździe z wczytaną trasą możesz też dostać opcjonalne wcześniejsze powiadomienie mniej więcej piętnaście minut przed szacowanym przyjazdem. Dystans pojawia się tylko wtedy, gdy dla tego przejazdu włączone było udostępnianie „Prędkość i dystans”: liczby są odczytywane z tego, co przejazd faktycznie opublikował, i nigdy nie są odtwarzane z zaplanowanej trasy. Sesja, która po prostu wygasa, nie wysyła nic — wygaśnięcie to nie powrót. Żadne z tych powiadomień nie niesie tokenu wiadomości, bo przejazd się skończył.
Limity: jeden e-mail na kontakt na przejazd (kontakt nie może dostać dwóch e-maili dla tej samej sesji), najwyżej 50 członków w grupie i najwyżej 200 e-maili z powiadomieniami na rowerzystę w kroczącym oknie 24 godzin.
Wypisanie się: każdy e-mail ma w stopce link do wypisania się i standardowe nagłówki wypisania jednym kliknięciem, więc działa też własny przycisk „wypisz się” programu pocztowego. Wypisanie się nie wymaga konta i zatrzymuje wszystkie dalsze powiadomienia o przejazdach na ten adres.
Twoja odpowiedzialność: dodając czyjś adres e-mail, prosisz nas o wysłanie wiadomości do osoby, która nie miała z nami styczności. Dodawaj tylko osoby, które spodziewają się wieści od ciebie. Kontakty nie wygasają automatycznie — są przechowywane, dopóki nie usuniesz kontaktu albo konta.
7. Strava
Połączenie ze Strava jest opcjonalne. Autoryzacja odbywa się w przeglądarce systemowej na stronach samej Strava; BikeOtter nigdy nie widzi twojego hasła do Strava.
- Żądane uprawnienia:
read,read_all,activity:read_alliactivity:write— tyle, żeby wylistować i zaimportować twoje trasy i aktywności oraz przesyłać przejazdy. - Gdzie żyją tokeny: twoje tokeny dostępu i odświeżania Strava są przechowywane wyłącznie po stronie serwera, w naszym backendzie, i nie może ich odczytać nic poza funkcją serwerową, która ich używa. Telefon trzyma tylko krótkotrwałą wartość w pamięci na czas uzgadniania logowania, nigdy nie zapisywaną na dysk.
- Co idzie w górę: sam plik przejazdu (skompresowany FIT) plus opcjonalna nazwa i opis, gdy przesyłasz przejazd.
- Co idzie w dół: twoje trasy i aktywności ze Strava, eksporty tras w GPX oraz strumienie pozycji/wysokości/czasu aktywności, gdy importujesz ją jako trasę. Odpowiedzi są buforowane dla twojego konta i usuwane po 48 godzinach.
- Odłączenie unieważnia token po stronie Strava i usuwa zapisane połączenie. Dopóki się nie odłączysz, rekord połączenia trwa — nie wygasa automatycznie.
To, co Strava robi potem z twoimi danymi, reguluje własna polityka prywatności Strava. Strava to firma amerykańska i korzystanie z niej wiąże się z przekazaniem danych do Stanów Zjednoczonych.
8. Pogoda, POI, geokodowanie, wyznaczanie tras i mapy
Kilka funkcji musi zapytać zewnętrzną usługę o miejsce. Jest istotna różnica w tym, jak są pytane:
- Przez nasz backend — prognozy pogody, wyszukiwanie POI wzdłuż trasy, geokodowanie i wszystko związane ze Strava. Twój telefon pyta naszą funkcję serwerową; funkcja serwerowa pyta usługę zewnętrzną. Ta usługa widzi więc współrzędne lub szukane frazy, ale nie twój adres IP.
- Bezpośrednio z twojego telefonu — wyznaczanie trasy (BRouter) i kafelki mapy (serwer kafelków OpenStreetMap). Te usługi otrzymują żądanie z twojego urządzenia, więc widzą twój adres IP razem ze współrzędnymi lub oglądanym obszarem mapy i mogą go logować według własnych zasad.
Odpowiedzi o pogodzie, POI i geokodowaniu są buforowane po naszej stronie, żeby powtórzone zapytania nie pytały ponownie: wyniki POI przez 24 godziny, pogoda przez 2 godziny, geokodowanie przez około tydzień. Bufory są kluczowane miejscem, nie rowerzystą.
Jeden szczegół wart powiedzenia wprost: wyszukiwanie POI używa publicznego Overpass API pod
overpass-api.de, a gdy ten jest niedostępny, przełącza się na publiczne
lustro hostowane pod maps.mail.ru, prowadzone w Rosji. Wysyłany jest tylko
obszar wyszukiwania i szukane kategorie, a żądanie pochodzi z naszego serwera, nie z twojego
telefonu.
9. Dziennik diagnostyczny
Aplikacja prowadzi techniczny dziennik, żeby problemy z Bluetooth i sprawy dla wsparcia dało się zgłosić.
- Jest włączony domyślnie. Rowerzysta, który natrafi na problem, ma dziennik do załączenia bez potrzeby wcześniejszej przezorności, żeby najpierw włączyć nagrywanie. Wyłącz go w każdej chwili w Ustawienia → Diagnostyka.
- Hasła, tokeny i klucze API są usuwane, zanim cokolwiek zostanie zapisane — token bearer, klucz API, token magicznego linku lub kod OAuth pojawiający się gdziekolwiek w dzienniku staje się jednokierunkowym znacznikiem, nie samym poświadczeniem.
- Zostaje na telefonie, dopóki nie załączysz go do zgłoszenia dla wsparcia. Dwa rotowane pliki we własnej pamięci aplikacji; nic nie opuszcza telefonu wcześniej. Nie ma kroku z oknem tworzenia e-maila — zgłoszenie dla wsparcia jest wysyłane z samej aplikacji, jako wiadomość w trwającym wątku wsparcia (zob. następny punkt). Załączenie tam dziennika wysyła go do prywatnego zasobnika przechowywania, a ta wysłana kopia jest usuwana po 180 dniach. Kopię na telefonie możesz wyczyścić, a rejestrowanie wyłączyć, w każdej chwili w Ustawienia → Diagnostyka.
- Zgłoszenie dla wsparcia to wątek, nie jednorazowy e-mail. Cokolwiek napiszesz — z załączonym dziennikiem czy bez — jest przechowywane jako część trwającej rozmowy ze wsparciem, powiązanej z twoim kontem i adresem e-mail, którym się logujesz. Może ją czytać personel BikeOtter odpowiadający na zgłoszenia — i nikt inny. Sama rozmowa jest przechowywana, dopóki nie usuniesz konta, i wtedy jest usuwana razem z nim (zob. stronę usuwania konta); wysłany dziennik ma niezależnie swój własny 180-dniowy zegar, niezwiązany z kontem.
- Co w nim jest: wersja i build aplikacji, model telefonu, wersja systemu operacyjnego, ustawienia regionalne i strefa czasowa, plus techniczny ślad połączeń z urządzeniami i zdarzeń aplikacji. Tokeny udostępniania na żywo są ucinane przed zapisem. Może zawierać współrzędne pozycji — co najmniej jedna funkcja urządzenia loguje szerokość i długość geograficzną rowerzysty — plus współrzędne tras, zapisane miejsca i numery seryjne urządzeń. To nie jest redagowane, więc traktuj dziennik diagnostyczny jak dane o tobie i wysyłaj go tylko komuś, komu ufasz.
10. Podmioty zewnętrzne, z których korzystamy
Pełna lista zewnętrznych usług, z którymi łączą się aplikacja, backend i ta strona. Innych nie ma, a w szczególności nigdzie w produkcie nie ma usługi analityki, atrybucji, reklamy ani raportowania awarii.
| Usługa | Do czego | Co otrzymuje |
|---|---|---|
| Supabase | Baza danych, logowanie, funkcje serwerowe i kanał czasu rzeczywistego stojący za śledzeniem na żywo | Wszystko z §3–§8, co w ogóle jest przechowywane, plus metadane połączenia widoczne dla każdego hosta. Hostowane w UE — projekt działa w regionie Supabase West EU (Ireland), więc te dane są przechowywane wewnątrz EOG. |
| Cloudflare | Hosting bikeotter.app i stron podglądu; Worker, który wysyła e-maile z powiadomieniami o przejeździe | Żądania do tej strony i do punktu wysyłki poczty, łącznie z adresem IP, w ramach ich obsługi i ochrony. Logi żądań Workera są przechowywane według własnych domyślnych zasad Cloudflare. |
| Open-Meteo | Prognozy pogody | Współrzędne i czasy, wysyłane przez nasz serwer, nie twój telefon. |
Overpass API (overpass-api.de, zapasowe lustro pod
maps.mail.ru) | Wyszukiwanie POI wzdłuż trasy | Obszar wyszukiwania i kategorie, wysyłane przez nasz serwer. |
Photon (photon.komoot.io) i Nominatim
(nominatim.openstreetmap.org) | Zamiana nazw miejsc na współrzędne i z powrotem | Szukana fraza lub współrzędne, wysyłane przez nasz serwer. |
BRouter (brouter.de) | Wyznaczanie trasy między twoimi punktami | Współrzędne twoich punktów trasy i wybrany profil — wysyłane bezpośrednio przez twój telefon, więc widzi twój adres IP. |
| Serwer kafelków OpenStreetMap | Obraz mapy w aplikacji i na stronie podglądu | Które kafelki mapy oglądasz — żądane bezpośrednio, więc widzi twój adres IP. |
| Strava | Opcjonalny import tras/aktywności i przesyłanie przejazdów | Zob. §7. Stany Zjednoczone. |
| Shorebird | Zdalne dostarczanie poprawek kodu do zainstalowanej aplikacji | Sprawdzenie aktualizacji przy uruchomieniu. Zob. §10.1 — nie jest opcjonalne. |
Sklepy z aplikacjami to osobna sprawa: jeśli instalujesz BikeOtter z App Store Apple lub z Google Play, między tobą a nimi obowiązują własne zasady tego sklepu dotyczące konta, zakupów i raportowania awarii, na które nie mamy wpływu.
10.1 Shorebird i dlaczego łączy się z serwerem bez pytania
BikeOtter jest wydawany przez Shorebird, który pozwala nam dostarczyć poprawkę kodu Dart aplikacji zdalnie, między wydaniami sklepowymi. To mechanizm stojący za łatką, która przychodzi bez aktualizacji ze sklepu.
Część, którą warto znać: aplikacja sprawdza, czy jest łatka, przy uruchomieniu, automatycznie, i nie ma ustawienia, które to wyłącza. Nasza konfiguracja nie wyłącza automatycznego sprawdzania, a aplikacja nie daje możliwości rezygnacji — jedyny sposób, żeby je zatrzymać, to nie uruchamiać aplikacji. Wolimy powiedzieć to wprost, niż to zakopać.
Nie prowadzimy serwerów Shorebird i nie możemy podejrzeć, co wysyła jego aktualizator, bo aktualizator jest wbudowany w środowisko uruchomieniowe aplikacji, a nie w kod, który piszemy. To, czego takie sprawdzenie z konieczności wymaga, nie jest jednak kwestią opinii: żeby w ogóle dostać odpowiedź, musi wskazać, która aplikacja pyta (nasz id aplikacji Shorebird, który nie jest tajny i jest ten sam w każdej instalacji) oraz która wersja i który poziom łatki są już zainstalowane, a — jak każde żądanie sieciowe — dociera do serwerów Shorebird z twojego adresu IP. Załóż, że Shorebird widzi co najmniej tyle i że może to logować, tak jak każdy host loguje żądania.
Dwóch rzeczy nie udało nam się ustalić i nie będziemy ich zgadywać: dokładnej zawartości tego żądania poza powyższym oraz kraju, w którym stoją jego serwery. Jeśli potrzebujesz którejś z nich przed instalacją, zapytaj nas, a zdobędziemy pisemną odpowiedź samego Shorebird, zamiast tu spekulować.
Co możemy wykluczyć: sprawdzenie nie jest powiązane z twoim kontem, a BikeOtter działa bez logowania, więc żądanie nie niesie żadnej tożsamości, którą byśmy mu nadali. Łatka zmienia kod aplikacji — nigdy twoje dane, twoje przejazdy ani twoje trasy.
11. Uprawnienia telefonu
Aplikacja prosi o tak mało, jak się da, a każde uprawnienie służy dokładnie jednej rzeczy.
| Uprawnienie | Po co |
|---|---|
| Bluetooth | Żeby znaleźć twój licznik i czujniki i się z nimi komunikować. Na Androidzie uprawnienie skanowania jest zadeklarowane jako nigdy nieużywane do ustalania lokalizacji. |
| Lokalizacja | Przybliżona lokalizacja na Androidzie, „podczas używania aplikacji” na iOS: żeby szukać POI w twojej okolicy i zacząć przeliczanie trasy z miejsca, w którym jesteś. Lokalizacja w tle nie jest żądana na żadnej z platform. Podczas przejazdu udostępniana pozycja pochodzi z licznika przez Bluetooth. |
| Mikrofon i rozpoznawanie mowy | Polecenia głosowe. Rozpoznawanie działa na urządzeniu; dźwięk nie jest nigdzie wysyłany. |
| Powiadomienia | Żeby pokazywać trwające powiadomienie przejazdu i alerty. |
| Dostęp do powiadomień (tylko Android) | Opcjonalny. Pozwala aplikacji czytać przychodzące powiadomienia telefonu, żeby wyświetlać je na twoim liczniku. Przyznajesz go samodzielnie w ustawieniach systemu, a treść powiadomień nigdy nie jest zapisywana ani wysyłana. |
| Uruchamianie przy starcie / wyjątek baterii (tylko Android) | Żeby przerwany przejazd mógł wznowić się po restarcie i nie był zabijany w trakcie jazdy. |
Aplikacja nie prosi o zdjęcia, aparat, listę kontaktów telefonu, kalendarz ani żaden identyfikator reklamowy i nie używa uprawnienia śledzenia Apple, bo nie śledzi.
12. Okresy przechowywania w skrócie
| Dane | Przechowywane przez |
|---|---|
| Punkty pozycji na żywo | 7 dni po zakończeniu lub wygaśnięciu przejazdu — usuwane razem z sesją |
| Rekord sesji na żywo | 7 dni po jej zakończeniu lub wygaśnięciu |
| Rekord przejazdu grupowego | 7 dni po jego zakończeniu lub wygaśnięciu |
| Wiadomości od obserwujących | Usuwane razem z sesją — czyli w tym samym oknie 7 dni |
| Bufor pogody | 2 godziny |
| Bufor POI | 24 godziny |
| Bufor geokodowania | 8 dni |
| Bufor odpowiedzi Strava | 48 godzin |
| Kontakty i ich rekordy powiadomień | Dopóki nie usuniesz kontaktu lub konta — bez automatycznego wygasania |
| Połączenie ze Strava | Dopóki się nie odłączysz lub nie usuniesz konta |
| Rekord konta | Dopóki nie poprosisz nas o jego usunięcie — zob. jak usunąć konto |
| Rozmowa ze wsparciem (wątek i wiadomości) | Dopóki nie usuniesz konta — zob. jak usunąć konto |
| Dziennik diagnostyczny | Domyślnie na twoim telefonie, rotowany automatycznie, możesz go usunąć w każdej chwili; po załączeniu do zgłoszenia dla wsparcia wysłana kopia jest przechowywana 180 dni na własnym zegarze, niezależnie od konta |
Logi serwerów i platform prowadzone przez naszych dostawców hostingu (Supabase, Cloudflare) podlegają własnym domyślnym okresom przechowywania tych dostawców i mogą przez krótki czas zawierać adresy IP jako nieuniknioną część obsługi żądania.
13. Podstawy prawne
- Art. 6(1)(b) GDPR — wykonanie tego, o co prosisz. Logowanie cię, prowadzenie uruchomionego przez ciebie udostępniania na żywo, wysyłanie zamówionych przez ciebie e-maili z powiadomieniami, przesyłanie przejazdu na połączone przez ciebie konto Strava, wyznaczenie narysowanej przez ciebie trasy i wysłanie zgłoszenia dla wsparcia z załączonym dziennikiem diagnostycznym.
- Art. 9(2)(a) GDPR — wyraźna zgoda na dane o zdrowiu. Tętno i moc to dane o zdrowiu. Są wysyłane tylko wtedy, gdy włączysz „udostępniaj tętno i moc”; przełącznik jest domyślnie wyłączony, a jego wyłączenie zatrzymuje wysyłanie. Kadencja jest wysyłana pod tym samym przełącznikiem. Nie twierdzimy, że kadencja to dane o zdrowiu w rozumieniu Art. 9 — to odczyt z czujnika na korbie, nie z twojego ciała — ale należy do tej samej rodziny i dostaje tę samą ochronę, a nie słabszą.
- Art. 6(1)(f) GDPR — prawnie uzasadnione interesy w utrzymaniu usługi działającej i wolnej od nadużyć: limity częstotliwości, zabezpieczenia typu jeden e-mail na kontakt na przejazd, obsługa odrzuconej poczty, minimalne logowanie żądań, jakie wykonują nasi dostawcy hostingu, oraz domyślnie włączony dziennik diagnostyczny na urządzeniu, żeby zgłoszenie dla wsparcia mogło go zawierać — możesz go wyłączyć w Ustawienia → Diagnostyka w każdej chwili.
Wycofanie zgody jest zawsze możliwe i działa na przyszłość: zakończ udostępnianie, wyłącz przełącznik tętna i mocy, wyłącz dziennik, odłącz Strava, usuń kontakt.
14. Twoje prawa
Na mocy GDPR masz prawo dostępu do swoich danych (Art. 15), ich sprostowania (Art. 16) lub usunięcia (Art. 17), ograniczenia przetwarzania (Art. 18), otrzymania ich w przenośnej formie (Art. 20) oraz sprzeciwu wobec przetwarzania opartego na prawnie uzasadnionych interesach (Art. 21). Tam, gdzie przetwarzanie opiera się na zgodzie, możesz ją wycofać w każdej chwili.
Napisz na support@bikeotter.app, a my się tym zajmiemy. Wiele z tego możesz też zrobić samodzielnie w aplikacji: zakończyć udostępnianie, usunąć kontakt, odłączyć Strava, wyczyścić dziennik diagnostyczny.
Usunięcie danych (Art. 17) ma własną stronę, bo zasługuje na szczegóły: jak usunąć konto — kroki, co jest z nim usuwane, co pozostaje potem i na jak długo.
Jeśli uważasz, że robimy to źle, możesz złożyć skargę do organu nadzorczego ochrony danych — w UE do organu w miejscu, w którym mieszkasz, w którym pracujesz lub w którym doszło do domniemanego naruszenia (Art. 77 GDPR).
15. Ta strona
bikeotter.app to zestaw statycznych stron hostowanych na Cloudflare. Nie ustawia żadnych ciasteczek, nie prowadzi żadnej analityki i nie zapisuje niczego w pamięci lokalnej twojej przeglądarki. Nie ma tu nic, na co trzeba by wyrażać zgodę — dlatego nikt cię o nią nie pyta.
Każdy zasób, którego potrzebuje tutejsza strona, jest serwowany z tej witryny. Kroje pisma (Geist i Geist Mono) hostujemy sami, zamiast pobierać je z CDN-u fontów — właśnie po to, żeby czytanie strony nie przekazywało twojego adresu IP podmiotowi trzeciemu. Nie ma osadzonego wideo, menedżera tagów, widżetu udostępniania ani usługi fontów webowych. Jedyną stroną, która z konieczności widzi twoje żądanie, jest Cloudflare, który hostuje te strony — nie da się tego uniknąć, bo coś musi je serwować.
Podgląd śledzenia na żywo pod bikeotter.app/r/… i podgląd grupowy pod /g/… dodatkowo ładują dane udostępnionego przejazdu z naszego backendu i kafelki mapy z OpenStreetMap. Otwarcie linku podglądu celowo nie zostawia żadnej sesji w twojej przeglądarce: używany token dostępu jest trzymany w pamięci tylko na czas tej wizyty i nie jest utrwalany. Obserwujący są liczeni, nie identyfikowani.
Linki podglądu są wyłączone z wyszukiwarek przez robots.txt, a każdy niesie
instrukcję noindex, więc udostępniony przejazd nie ma pojawiać się w wynikach
wyszukiwania.
16. Dzieci
BikeOtter nie jest kierowany do dzieci i nie jest przeznaczony do użytku przez osoby poniżej 16 lat. Nie zbieramy świadomie danych od dzieci. Jeśli uważasz, że dziecko korzystało z aplikacji z kontem, napisz do nas, a je usuniemy.
17. Zmiany
Aplikacja jest młoda i wciąż się zmienia. Jeśli zmieni się to, co zbiera, ta strona zmieni się razem z nią, a wersja i data u góry pójdą do przodu. Istotne zmiany zostaną wskazane w aplikacji, a nie przemycone po cichu.
18. Kontakt
Pytania, wnioski lub poprawka do czegoś na tej stronie: support@bikeotter.app.
Zobacz też warunki korzystania i zastrzeżenie dotyczące bezpieczeństwa oraz impressum.