Przejdź do treści

Podprocesorzy

Heltio korzysta z poniższych podmiotów trzecich w celu świadczenia usługi. Każdy z nich jest związany pisemną umową powierzenia (DPA) lub — w stosownych przypadkach — Standardowymi Klauzulami Umownymi UE z 2021 r. O istotnych zmianach informujemy z 30-dniowym wyprzedzeniem za pośrednictwem banera w aplikacji i wiadomości e-mail — szczegóły w pkt 6 naszej umowy powierzenia.

DostawcaZakres usługiLokalizacjaPowierzane daneUmowa powierzeniaOkres przechowywania
Supabase
Supabase Inc. (Delaware) — dane hostowane we Frankfurcie (Supabase EU)
Baza danych Postgres, Storage (S3), RealtimeFrankfurt (eu-central-1)PII, HEALTHDPADo offboardingu placówki + 30 dni okresu przejściowego
Clerk
Clerk Inc. (Delaware)
Działanie: zablokowanie regionu UE w panelu Clerka — zadanie podrzędne W1.x.
Uwierzytelnianie użytkowników (login, MFA, sesje)Region UE (do potwierdzenia przed launchem)PIIDPAPrzez okres istnienia konta
PowerSync
PowerSync Pty Ltd
Synchronizacja offline (mobile) — podzbiór danych pacjentów / wizytRegion UEPII, HEALTHDPAMirror źródłowej bazy
MailerSend
MailerSend (Stagetimer s.r.o.)
E-mail transakcyjny + marketing po zgodzieRegion UEPIIDPA90 dni metadane / 30 dni treść
SMSAPI
LINK Mobility Poland sp. z o.o.
SMS transakcyjny + marketing po zgodziePolskaPIIDPA30 dni logi dostarczenia
Przelewy24
Przelewy24 sp. z o.o. (PayPro S.A.)
pl. Władysława Andersa 3, 17. piętro, 61-894 Poznań, Polska
Płatności pacjent → klinika (marketplace) + rozliczenia subskrypcji Heltio (SaaS)PolskaPII, FINANCIALDPA7 lat (księgowość + AML)
Better Stack
Better Stack s.r.o.
Monitoring uptime, status page, incident managementRegion UEOPERATIONALDPA30 dni logi
Sentry
Functional Software Inc. — region UE
Onboarding w fali W3.2 — wymaga włączenia regionu UE.
Monitoring błędów (po anonimizacji w `beforeSend`)Region UENONEDPA90 dni
Centrum e-Zdrowia (CeZ) — P1
Centrum e-Zdrowia (administrator publiczny)
CeZ jest odrębnym administratorem — addendum w docs/compliance/p1/.
Zdarzenia Medyczne, IKP, e-receptaPolskaPII, HEALTHZgodnie z ustawą o systemie informacji w ochronie zdrowia
DeepL
DeepL SE (Kolonia)
Tłumaczone są wiadomości między pacjentem a placówką medyczną — tekst swobodny, który z natury opisuje dolegliwości. To dane o zdrowiu w rozumieniu art. 9 RODO, nie samo PII; wpis mówił wcześniej wyłącznie „PII” i to była kategoria zaniżona. Region „EU-DE” wynika z planu u dostawcy, a nie z niczego w naszym kodzie — biblioteka wybiera punkt końcowy z prefiksu klucza. Tryb no-storage jest ustawieniem w panelu DeepL, którego aplikacja nie widzi i nie weryfikuje. Do 2026-08-24 ta droga nie miała ŻADNEGO wyłącznika: nie ma jej w allow-liście dostawców, nie przechodzi przez bramę AI, więc globalny `AI_MASTER_ENABLED` jej nie dotyczył. Ma teraz własny wyłącznik `TRANSLATION_ENABLED=false`. Świadomie NIE podpięto jej pod `AI_MASTER_ENABLED` — tłumaczenia to funkcja wdrożona i używana, a tamten wyłącznik jest domyślnie wyłączony, więc podpięcie wyłączyłoby żywą funkcję przy okazji zmiany zgodnościowej. Treść NIE przechodzi redakcji PHI przed wysłaniem, w odróżnieniu od wywołań tekstowych przez bramę. Szczegóły: `packages/shared/src/constants/ai-residency.ts`.
Tłumaczenia wiadomości pacjent ↔ placówka (PL ↔ EN/UK/DE)NiemcyPII, HEALTHDPABrak (tryb no-storage) — ustawienie po stronie dostawcy

Planowane (brak ruchu)

Kierunek już wybrany, ale żaden z tych podmiotów nie otrzymał dotąd żadnych danych. Wpis stoi tutaj, a nie na liście aktywnych, właśnie dlatego.

DostawcaZakres usługiLokalizacjaPowierzane daneUmowa powierzeniaOkres przechowywania
AWS KMS
AWS Europe (Sàrl)
Do 2026-08-24 ten wpis stał w grupie AKTYWNYCH i to było nieprawdą w stronę dla nas niekorzystną: wymieniał podmiot, któremu rzekomo powierzamy zarządzanie kluczami, a produkt nie używa żadnego KMS. Dowód jest na poziomie zależności, nie komentarza — `apps/api/package.json` zawiera wyłącznie `@aws-sdk/client-s3` i `@aws-sdk/s3-request-presigner`; `@aws-sdk/client-kms` nie istnieje w drzewie. Klucz główny pochodzi ze zmiennej `FIELD_ENCRYPTION_MASTER_KEY` (`services/encryption/master-key-provider.ts`), a `resolveProviderById` obsługuje wyłącznie `providerId === "env"` i rzuca dla wszystkiego innego. Druga ścieżka nazwana „KMS”, czyli P1 (`services/p1/config/kms.ts`), to jawnie opisana atrapa czytająca `P1_KMS_LOCAL_KEY`. Wejście na prawdziwy KMS wymaga rozwiązania ograniczenia z `master-key-provider.ts`: `unwrapDek` jest SYNCHRONICZNY, bo działa w synchronicznym `compute()` rozszerzenia Prismy — czyli potrzebny jest ciepły cache DEK-ów, a nie wywołanie sieciowe na odczyt. To osobny projekt, nie usunięcie rozbieżności.
Zarządzanie kluczem głównym szyfrowania pól (Decision D6)eu-central-1 (Frankfurt)NONEDPANie dotyczy

Wstrzymane / wyłączone

Wkrótce — testy wewnętrzne. Funkcje AI nie są udostępnione gabinetom: globalny wyłącznik jest domyślnie wyłączony, a żadna procedura nie pozwala placówce włączyć AI samodzielnie. Wpisy poniżej opisują podmioty, regiony i kategorie danych, które będą obowiązywać w chwili włączenia — po testach wewnętrznych i po odrębnym powiadomieniu z art. 28 ust. 2 RODO.

DostawcaZakres usługiLokalizacjaPowierzane daneUmowa powierzeniaOkres przechowywania
Anthropic
Anthropic PBC — przy transporcie `vertex`: Google Ireland Ltd (Claude on Vertex AI)
Planowane; przed udostępnieniem gabinetom przewidziane są testy wewnętrzne. Poprzednia wersja wpisu mówiła „Anthropic PBC (USA)” i `dataShared: NONE`, a jednocześnie ujawnienie pokazywane gabinetowi mówiło „Anthropic (Dublin, Irlandia)” — dwa różne opisy tej samej rzeczy, z których kod nie realizuje żadnego. Stan faktyczny: `provider-gateway.ts` kieruje tu wszystko poza OCR, a `ANTHROPIC_TRANSPORT` domyślnie wybiera `direct`, gdzie kontrahentem jest Anthropic PBC i żaden region nie jest przypięty; na `vertex` kontrahentem jest Google, nie Anthropic. Poprzednia nota zapowiadała powrót „wyłącznie przez Bedrock UE” — kod zaimplementował Vertex, nie Bedrock, więc nota wskazywała drogę, która nie istnieje. Kategorie danych podniesione z NONE do PII+HEALTH: to jest to, co ta droga poniesie, gdy zostanie włączona.
Model językowy — domyślny dostawca tekstowy bramy AIZależny od transportu: `direct` nie przypina regionu; `vertex` przypina przez ANTHROPIC_VERTEX_REGION (UE przy `eu`)PII, HEALTHNie dotyczy — brak ruchu
OpenAI
OpenAI LLC
Planowane; testy wewnętrzne przed udostępnieniem gabinetom. Poprzednia nota mówiła „Nigdy nie aktywowane. Dopuszczalne tylko przez Azure OpenAI UE” — kod nie ma adaptera Azure; ma adapter OpenAI z opcjonalnym regionalnym `baseURL`. Sam `OPENAI_BASE_URL` nie wystarcza i sam klucz projektu UE nie wystarcza — wymagane są oba.
Model językowy — alternatywny dostawca tekstowy bramy AIDomyślnie globalny punkt końcowy; rezydencja UE wymaga OPENAI_BASE_URL=https://eu.api.openai.com/v1 ORAZ klucza z projektu UEPII, HEALTHNie dotyczy — brak ruchu
Google Gemini
Google — przy transporcie `vertex`: Google Ireland Ltd (Vertex AI)
Rejestr w ogóle tego dostawcy nie wymieniał, mimo że adapter jest w twardej allow-liście od fali AI. Planowane; testy wewnętrzne przed udostępnieniem gabinetom. `GEMINI_TRANSPORT` domyślnie `direct`.
Model językowy — alternatywny dostawca tekstowy bramy AI`direct` (Gemini Developer API) nie przypina regionu; `vertex` przypina przez GOOGLE_VERTEX_LOCATION (UE przy `eu`)PII, HEALTHNie dotyczy — brak ruchu
Google Cloud Speech-to-Text
Google Ireland Ltd
Rejestr tego dostawcy nie wymieniał. Ta droga niesie SUROWE NAGRANIE WIZYTY i jest jedyną, której ładunku nie da się zredagować przed wysłaniem — nie da się usunąć nazwiska z fali dźwiękowej, zanim się wie, co ta fala mówi. Dlatego kategoria to PII+HEALTH bez zastrzeżeń. Planowane; testy wewnętrzne przed udostępnieniem gabinetom.
Transkrypcja mowy (AI Scribe) — podstawowy dostawca ASRRegion z GOOGLE_STT_LOCATION buduje regionalny punkt końcowy; wartość `global` wybiera domyślnyPII, HEALTHNie dotyczy — brak ruchu
OpenAI (transkrypcja)
OpenAI LLC
Rejestr tego dostawcy nie wymieniał. Jak wyżej: surowe nagranie wizyty, bez możliwości redakcji przed wysłaniem. Planowane; testy wewnętrzne przed udostępnieniem gabinetom.
Transkrypcja mowy (AI Scribe) — zapasowy dostawca ASRTen sam OPENAI_BASE_URL co tor tekstowy; domyślnie globalny punkt końcowyPII, HEALTHNie dotyczy — brak ruchu
Google Cloud Vision
Google Ireland Ltd
Wpis istnieje dla kompletności listy, ale mówi o drodze MARTWEJ: `providers/google-vision.ts` zwraca odrzuconą obietnicę, a `@google-cloud/vision` nie jest zainstalowany. Nic nigdy tędy nie wyszło i dziś wyjść nie może. Ujawnienie pokazywane gabinetowi opisywało tego dostawcę z regionem UE i wersją DPA, co zawyżało zestaw podmiotów, którym powierzamy dane — poprawione 2026-08-24.
OCR dokumentów (fala 2) — ADAPTER NIE JEST ZAIMPLEMENTOWANYNie dotyczy — brak wywołaniaNONENie dotyczy — brak ruchu
Google Calendar
Google Ireland Ltd
Domyślnie wyłączone. Włączane per-klinika przy akceptacji ryzyka transferu USA.
Synchronizacja kalendarzaUSA / EOGPIINie dotyczy

Procedura zmian

O dodaniu lub zmianie podprocesora informujemy administratorów (placówki) z 30-dniowym wyprzedzeniem. Administrator ma prawo zgłosić sprzeciw zgodnie z naszą umową powierzenia i — jeśli nie uda się ustalić rozsądnej alternatywy — wypowiedzieć umowę bez kar.

Podprocesorzy — Heltio | Heltio