Podmioty przetwarzające

Tokin: podmioty przetwarzające dane (zamknięta beta)

Wersja 2026-10-18 (18 października 2026 r.). Poprzednia: 2026-10-13 (umowy powierzenia, DPA, zaakceptowane przez Nertiego tego dnia). Sprawy, które potwierdzamy przed otwartą betą, są w sekcji „Do potwierdzenia przed otwartą betą”. Audyt: AUDYT-PRAWNY-2026-10-18.md.

Lista firm, które dostają dane użytkowników Tokina. Zrobiona z kodu, nie z pamięci:

  • models/registry.json (który model do czego),
  • supabase/functions/* (dokąd serwer wysyła dane),
  • apps/desktop/src-tauri/src/live.rs (Soniox łączy się prosto z komputera),
  • apps/desktop/src-tauri/src/server.rs (aplikacja wymusza region funkcji: nagłówek x-region: eu-central-1, Frankfurt),
  • publiczna lista tras ZDR OpenRouter (node models/check-zdr.mjs, sprawdzone 2026-10-01).

Jedno źródło dla aplikacji. Lista w aplikacji to PROCESSORS w apps/desktop/src/content/betaTerms.ts. Test apps/desktop/src/content/processors.test.ts pilnuje trzech rzeczy:

  1. Nazwy w tabeli niżej (pogrubione) i w aplikacji są te same.
  2. Każdy model z models/registry.json, z każdego zadania (także candidate, bo serwer kieruje do nich w produkcji), ma tu swoją firmę. Model, którego firmy nie ma na liście, nie może być w main ani w fallback: czeka w pending_approval, a drugi test każe go włączyć i usunąć wpis, gdy firma trafi na listę (tak było z Jevem i TypeSafe, włączone 2026-10-09).
  3. Polityka prywatności wymienia każdą z tych firm.

Zmieniasz dostawcę → zmieniasz rejestr, tę tabelę, PROCESSORS i politykę w jednym commicie. Inaczej test jest czerwony.

ZDR (zero data retention) znaczy: dostawca modelu nie zapisuje treści zapytania i nie trenuje na niej.

Tabela główna

Aplikacja Tokin (Windows i macOS). Strona tokin.pl ma osobną tabelę niżej.

Firma Po co Co dostaje Skąd wysyłamy Gdzie przetwarza Przechowywanie, trening Umowa powierzenia (DPA)
Supabase konto i logowanie, liczniki, urządzenia, raporty błędów, zgłoszenia, słownik, akceptacje zasad, paczki słów, udostępnione rozmowy (zaszyfrowane), lista oczekujących; serwer funkcji, przez który idzie nagranie dyktowania i tekst do modeli e-mail, id konta, nazwa urządzenia, liczniki słów i minut Rozmów, wiersze tabel bug_reports, app_events, beta_terms_acceptances oraz dictionary_corrections (tylko po włączeniu przełącznika w Ustawieniach → Prywatność, domyślnie wyłączony; po wyłączeniu aplikacja kasuje z serwera wszystko, co to konto wysłało); udostępniona rozmowa jako szyfrogram (klucz zostaje w adresie linku po # i nie trafia na serwer); w funkcjach w locie: nagranie, tekst, zaznaczenie; adres IP w logach aplikacja i strona → Supabase Frankfurt (Niemcy, UE): baza i funkcje (aplikacja wymusza region eu-central-1). Firma: Supabase Inc., USA baza: według naszej retencji (polityka, p. 2). Treści dyktowań nie zapisujemy. Logi API i bazy: 1 dzień na planie Free, 7 dni na planie Pro (cennik Supabase, 2026-10-18) zaakceptowana 2026-10-13 (Nerti)
ElevenLabs dyktowanie: mowa → tekst (Scribe v2, główny); po rozmowie poprawa transkryptu (opcja, post_call_stt) nagranie dyktowania (Opus), kod języka (1–3 języki użytkownika), słowa ze Słownika (keyterms); (opcjonalnie) dźwięk Rozmów po rozmowie serwer Tokina (dictate) USA (rezydencja danych w UE tylko w planie Enterprise) według zasad ElevenLabs może przechowywać historię; trenowanie wyłączamy w ustawieniach konta (lista kliknięć niżej). Tryb zerowej retencji tylko Enterprise zaakceptowana 2026-10-13 (Nerti)
Soniox podgląd dyktowania na żywo (stt-rt-v5); Rozmowy: transkrypcja na żywo, 2 kanały; zapas po rozmowie (stt-async-v5) dźwięk z mikrofonu; w Rozmowach także dźwięk rozmówcy (dźwięk systemu); kod języka; słowa ze Słownika jako kontekst prosto z komputera (klucz tymczasowy 60 s, jedno połączenie, sesja dyktowania do 180 s) USA (region UE na wniosek) na żywo: nie zapisuje; po rozmowie (async): do 30 dni. Nie trenuje na treści klientów (polityka Soniox z 29.06.2026, audyt 2026-10-12, P2) zaakceptowana 2026-10-13 (Nerti; samoobsługowa w konsoli)
OpenRouter brama do modeli AI: porządkowanie tekstu, komendy „Tokin, …”, zapasowe rozpoznawanie mowy, asystent Rozmów, pytania autora do udostępnionej rozmowy tekst dyktowania po zamianie e-maili, telefonów, numerów kont i kart, PESEL i NIP na znaczniki (masking.rs) i do 30 słów ze Słownika (pisownia przy porządkowaniu, format); w komendach „Tokin, …” zaznaczony albo podyktowany tekst po tej samej zamianie, i polecenie; w zapasie STT nagranie i słowa ze Słownika (lista fraz); w Rozmowach: transkrypt, punkty, materiał (oferta, opis stanowiska), pamięć osoby, czat, po tej samej zamianie (assist.rs Masking, ten sam znacznik dla tej samej wartości przez całą rozmowę) serwer Tokina USA (routing w UE tylko w planach Business/Enterprise) każde zapytanie z provider.zdr: true, więc tylko trasy ZDR. Sam OpenRouter zapisuje metadane (tokeny, koszt, czas); zapisywanie promptów jest na koncie wyłączone (lista kliknięć niżej) zaakceptowana 2026-10-13 (Nerti)
Microsoft Azure przez OpenRouter: openai/gpt-6-luna (porządkowanie, komendy, zapasowy wyzwalacz w Rozmowach, streszczenie kroczące i styl rozmówcy), openai/gpt-6.1-sol (zapas asystenta Rozmów), microsoft/mai-transcribe-2 (zapasowe STT) tekst jak OpenRouter; przy zapasowym STT nagranie OpenRouter USA albo UE, zależnie od trasy wybranej przez OpenRouter ZDR: tak (lista OpenRouter 2026-10-01) przez umowę z OpenRouter
Google Cloud przez OpenRouter (Vertex AI): anthropic/claude-haiku-4.5 (zapas porządkowania i komend), Claude Sonnet 5.5 (asystent Rozmów) tekst jak OpenRouter OpenRouter USA albo UE, zależnie od trasy ZDR: tak przez umowę z OpenRouter
Amazon Web Services przez OpenRouter (Bedrock): te same modele Claude co Google Cloud. Karty podpowiedzi w Rozmowach (call_cards, Sonnet 5.5) są przypięte do Amazon Bedrock (only + allow_fallbacks: false, jeden dostawca, jeden cache promptu, żaden inny host z listy ZDR nie dostaje tych danych); przy pozostałych zadaniach Claude OpenRouter wybiera jedną z dwóch tras tekst jak OpenRouter OpenRouter USA albo UE, zależnie od trasy ZDR: tak przez umowę z OpenRouter
Groq przez OpenRouter: openai/gpt-oss-120b, szybkie porządkowanie w tonie neutralnym i swobodnym tekst dyktowania (po maskowaniu) OpenRouter USA ZDR: tak. Żądanie jest przypięte do Groq (only, allow_fallbacks: false), więc nie trafia do innych firm z listy ZDR. Gdy Groq nie odpowie, odpowiada model zapasowy z rejestru (Luna na Azure). Naprawione 2026-10-02 przez umowę z OpenRouter
TypeSafe przez OpenRouter: typesafe/jev-1.13 (Jev, Decisions API), pierwszy wyzwalacz w Rozmowach: decyzja „czy to moment na podpowiedź” i które punkty listy są omówione ostatnie 12 wypowiedzi transkryptu Rozmowy, nazwy otwartych punktów listy z podpowiedziami, tekst niedawnych kart (mogą zawierać fakty z materiału użytkownika albo pamięci o osobie) i streszczenie dotychczasowej rozmowy (jevState w call-assist/prompts.ts); bez nagrania dźwięku i bez całego materiału, notatek i profilu osoby OpenRouter poza UE (przez OpenRouter) ZDR: tak (jedyna trasa Jeva na liście OpenRouter, node models/check-zdr.mjs). Zapytanie ma provider.zdr: true i jest przypięte do TypeSafe (only + allow_fallbacks: false, test w jev.test.ts). Dopisany 2026-10-09 na wyraźne „tak” Nertiego (twardy stop 5) przez umowę z OpenRouter
Resend e-mail do nas ze zgłoszeniem z „Zgłoś problem”; kod logowania (SMTP Supabase Auth), potwierdzenie zaakceptowanych zasad, potwierdzenie zapisu na listę oczekujących, zaproszenie z kodem, powiadomienie o udostępnionej rozmowie e-mail i id konta, wersja aplikacji, system, opis, wynik diagnostyki (zgłoszenia); adres e-mail odbiorcy i treść wiadomości (pozostałe). Bez ostatniego dyktowania serwer Tokina (feedback, Supabase Auth, funkcje strony) USA, wysyłka z regionu Irlandia (UE). Firma: Resend, Inc., USA według zasad Resend; kampanie marketingowe tylko do osób z osobną zgodą (polityka §12) zaakceptowana 2026-10-13 (Nerti)

Modele Claude to modele firmy Anthropic. Anthropic nie dostaje danych bezpośrednio: trasy ZDR dla tych modeli prowadzą przez Google Cloud i Amazon Web Services.

Strona tokin.pl

Dane osób, które odwiedzają stronę (także tych, którzy nie mają konta). Aplikacja tych firm nie używa.

Firma Po co Co dostaje Gdzie Stan
Cloudflare hosting strony (Workers), ochrona przed atakami i botami, Turnstile (sprawdzenie, że formularz wypełnia człowiek) adres IP, nagłówki przeglądarki, adres strony, czas; przy Turnstile sygnały przeglądarki do oceny, czy to człowiek sieć Cloudflare na świecie, najbliżej odwiedzającego. Firma: Cloudflare, Inc., USA (DPF) nowy podmiot (twardy stop 5): wchodzi razem z przeniesieniem strony na Cloudflare, na „tak” Nertiego. Umowa powierzenia: Cloudflare Data Processing Addendum, część warunków samoobsługowych (Nerti potwierdza w panelu)
Google (Google Analytics 4, Google Ads) statystyki odwiedzin, pomiar reklam identyfikator w cookie, adres IP (skracany), odwiedzone strony, zdarzenia USA i UE wyłączone. Włącza się tylko po wpisaniu identyfikatora w website/src/content/analytics.ts, na „tak” Nertiego, i tylko po zgodzie odwiedzającego
Meta (Facebook, Instagram) pomiar reklam (Meta Pixel) identyfikator w cookie, adres IP, odwiedzone strony, zdarzenia USA i UE wyłączone, jak wyżej. Przy włączeniu: współadministrowanie (art. 26 RODO) i dodatek Meta „Controller Addendum”
Microsoft (Clarity, Microsoft Advertising) mapy kliknięć, pomiar reklam w Bing identyfikator w cookie, adres IP, ruch myszy i kliknięcia (Clarity, bez wpisywanego tekstu) USA i UE wyłączone, jak wyżej

Nie są podmiotami przetwarzającymi

Kto Dlaczego nie ma go w tabeli
Google, Microsoft jako logowanie (OAuth) użytkownik loguje się swoim kontem; te firmy działają na własny rachunek. Polityka, p. 2
Discord (Połącz Discord) użytkownik łączy swoje konto Discord; Discord działa na własny rachunek. Nasz serwer (discord-token) przekazuje Discordowi tylko jednorazowy kod z Twojego Discorda i dane naszej aplikacji, a Discord odsyła token. Aplikacja łączy się z Discordem na Twoim komputerze i pobiera zdjęcia profilowe z CDN Discorda. Imiona i zdjęcia zostają zaszyfrowane na Twoim komputerze. Polityka, p. 2 i 6
Microsoft Teams, Zoom, Slack (odczyt okien) Tokin czyta imiona z okna programu na Twoim komputerze (UI Automation na Windows, Dostępność na macOS). Nic nie idzie do tych firm ani do nas
Rozszerzenie przeglądarki Tokin przekazuje imiona uczestników tylko do aplikacji na tym samym komputerze (native messaging). Nic nie wysyła na serwery. /rozszerzenie/prywatnosc
Gemini 3.5 Flash (sędzia w evalach) dostaje tylko symulowane rozmowy, nigdy dane użytkowników
Codex, Claude Code (symulacje do treningu) tylko dane syntetyczne
Rozszerzenie Tokin w przeglądarce (Chrome, Edge, Opera, Brave, Firefox; od 2026-10-17) czyta na kartach Google Meet, Zooma, Teams i Discorda (tylko kanał głosowy, w którym jest użytkownik) imiona uczestników, kto mówi i zdjęcia profilowe i przekazuje je tylko aplikacji Tokin na tym samym komputerze (native messaging → lokalny potok \.\pipe\tokin-bridge-<użytkownik>, macOS: gniazdo w ~/Library/Application Support/Tokin). Żaden serwer, także nasz, tego nie dostaje; brak analityki. Zdjęcia rozszerzenie pobiera z tych samych adresów Google / Zoom / CDN Discorda, z których pokazuje je strona spotkania. Nowego podmiotu nie ma (twardy stop 5 nie ruszony). Kod: extension/, crates/tokin-core/src/calls/speakers/browser.rs
Google, Microsoft, Opera, Mozilla jako sklepy z rozszerzeniami rozpowszechniają rozszerzenie na własnych zasadach (statystyki instalacji); nie dostają danych ze spotkań

Zamknięte sprawy

# Co Stan
1 Groq bez zapasu u nieznanych firm zrobione 2026-10-02: provider: { zdr: true, only: [route], allow_fallbacks: false } (openrouter-chat.test.ts)
3 Czy kod logowania idzie przez Resend tak: SMTP Supabase Auth → Resend (SIGNIN_PRIVACY_NOTE w aplikacji)
6 Wersje modeli w call_cards i call_notes obie wersje mają trasy ZDR na tych samych firmach, tabela się nie zmienia
7 Maskowanie w dyktowaniu, komendach i Rozmowach zrobione 2026-10-12 (e-mail, telefon, konto, karta, PESEL, NIP); imion i adresów nie rozpoznaje (pytanie 9 do prawnika)
8 Wykonanie retencji pg_cron od 2026-10-02 (migracja 20261002110000_beta_retention)
9 Słownik tylko za zgodą, wyłączenie kasuje zrobione 2026-10-05 (delete_my_dictionary_corrections)
11 Przycisk „Usuń moje konto i dane” w aplikacji (Ustawienia → Konto)
12 Region funkcji Supabase Frankfurt: aplikacja wysyła x-region: eu-central-1 z każdym zapytaniem (server.rs, test w betaTerms.test.ts)

Do potwierdzenia przed otwartą betą

# Co Kto
2 Dostawca skrzynki kontakt@tokin.pl (tam trafiają zgłoszenia i maile testerów): nazwa firmy i jej umowa powierzenia Nerti
4 Skąd aplikacja pobiera aktualizacje (GitHub Releases czy Cloudflare R2). Ta firma widzi adres IP strumień D
5 Status EU-US Data Privacy Framework w rejestrze dataprivacyframework.gov (ElevenLabs jako „Eleven Labs Inc.”, Microsoft, Google, Amazon, Cloudflare) i regiony tras OpenRouter Nerti + prawnik
10 Akceptacja zasad egzekwowana na serwerze (płatne funkcje odmawiają bez akceptacji aktualnej wersji) strumień D
13 Warunki TypeSafe: trening i retencja poza ZDR, własna DPA Nerti
14 Kopie zapasowe Supabase: jak długo usunięte wiersze zostają w kopiach Nerti + prawnik

Ustawienia w panelach dostawców (robi Nerti, ze swojego konta)

  • Zrobione: DPA zaakceptowane 2026-10-13: Supabase, ElevenLabs, Soniox, OpenRouter, Resend.
  • Do zrobienia: ElevenLabs: wyłączyć używanie danych do trenowania (Settings → Terms and Privacy → Data use); wyłączyć auto-doładowanie.
  • Do zrobienia: OpenRouter: Settings → Privacy: wyłączyć trasy, które mogą trenować na danych, i publikowanie promptów; Input & Output Logging wyłączone.
  • Zrobione: Soniox: bez miesięcznego limitu w becie (Nerti 2026-10-13: doładowuje ręcznie).
  • Do zrobienia: Resend: sprawdzić region wysyłki domeny tokin.pl (Domains → tokin.pl → Region).
  • Do zrobienia: Cloudflare: przy deployu strony sprawdzić, że konto ma Data Processing Addendum (cloudflare.com/cloudflare-customer-dpa; w samoobsługowych planach jest częścią warunków).