RODO już na etapie projektu i każde zobowiązanie przetestowane

Adres to dane osobowe. Ta strona wylicza dokładnie, co Addrova rejestruje, przechowuje i czego nigdy nie zachowuje. Każde stwierdzenie ma identyfikator i jest powiązane z testem automatycznym uruchamianym przy każdej zmianie kodu.

Zobacz dokumentację techniczną

Zobowiązania zero log

W tych tabelach „adres” oznacza każde dane wprowadzone przez klienta: tekst swobodny, składniki, żądane współrzędne, pliki wsadowe. Źródłem referencyjnym jest specyfikacja zero log API, po francusku; ta strona tłumaczy ją bez zmiany znaczenia.

Wersja specyfikacji z dnia 2026-10-19

Co jest rejestrowane (lista wyczerpująca)

IdStwierdzenieTest automatyczny
ZL-01Jedna linia na żądanie HTTP, dokładnie z: metodą, szablonem trasy (/v1/geocode, nigdy rzeczywistym adresem URL ani ciągiem zapytania), statusem, czasem trwania, spseudonimizowanym najemcą, losowym identyfikatorem żądania. Bez adresu IP, bez user-agenta, bez klucza API.api/tests/test_zerolog.py::test_access_log_exact_fields
ZL-02Jedyne inne komunikaty emitowane przez kod Addrova to te z poniższego wykazu; ich parametrami są identyfikatory zadań, liczniki, statusy lub nazwy typów wyjątków.api/tests/test_privacy_claims.py::test_log_inventory_matches_code
ZL-03Najemca jest wszędzie spseudonimizowany (logi, ślady): 16 znaków szesnastkowych soloniego SHA-256 jego identyfikatora; identyfikator jawny nigdy się nie pojawia.api/tests/test_observability.py::test_tenant_hash_is_stable_and_opaqueapi/tests/test_zerolog.py::test_access_log_exact_fields

Czego nigdy się nie rejestruje ani nie śledzi

IdStwierdzenieTest automatyczny
ZL-10Żaden adres, żadna żądana współrzędna ani żaden klucz API nie pojawia się w logach, na wszystkich trasach (geokodowanie, odwrotne, autouzupełnianie, naprawa, wsad, zgodność z Google i Nominatim), także w razie błędu (awaria silnika, odrzucone dane, nieprawidłowy parametr, błędny klucz, nieznana trasa).api/tests/test_zerolog.py::test_canary_never_logged
ZL-11Komunikaty bibliotek zewnętrznych są neutralizowane: parametry zamaskowane, ciąg zapytania wymazany, wyjątek sprowadzony do swojego typu (bez komunikatu i śladu stosu).api/tests/test_zerolog.py::test_third_party_logger_args_and_query_redacted
ZL-12Odpowiedzi z błędem nie zwracają ani błędnej wartości, ani wewnętrznego komunikatu silnika.api/tests/test_api.py::test_geocode_invalid_paramsapi/tests/test_api.py::test_engine_errors_do_not_echo_query
ZL-13Ślady OpenTelemetry zawierają tylko atrybuty z listy dozwolonych (metoda, szablon trasy, status, spseudonimizowany najemca, operacja silnika, kraj, liczba wyników, dokładność pierwszego wyniku), bez zdarzeń; bez adresu, współrzędnej, klucza i jawnego identyfikatora najemcy.api/tests/test_observability.py::test_spans_carry_only_allowlisted_attributesapi/tests/test_observability.py::test_span_content
ZL-15Konsola: adres e-mail, tokeny magicznego linku i tokeny sesji nie pojawiają się w żadnym logu.api/tests/test_console.py::test_email_and_tokens_never_logged
ZL-16Publiczne demo strony (/demo/v1): ani wpisany adres, ani adres IP odwiedzającego nie pojawia się w logach; IP nigdy nie jest przechowywane, do liczenia zapytań służy wyłącznie odcisk HMAC z dziennie zmienianym sekretem (bezużyteczny po rotacji).api/tests/test_demo.py::test_demo_never_logs_address_or_ipapi/tests/test_demo.py::test_fingerprint_rotates_daily_and_hides_ipapi/tests/test_demo.py::test_redis_mode_shares_secret_and_counters
ZL-14Metryki Prometheus mają tylko etykiety o ograniczonych wartościach; nieznana ścieżka jest liczona jako <unmatched>.api/tests/test_observability.py::test_metrics_labels_are_boundedapi/tests/test_observability.py::test_spans_carry_only_allowlisted_attributes

Co jest przechowywane i jak długo

IdStwierdzenieTest automatyczny
ZL-20Klucze API są przechowywane wyłącznie jako odcisk SHA-256 (plus 12 znaków prefiksu do wyświetlania).api/tests/test_tenancy_persistent.py::test_keys_are_hashed_and_revocable
ZL-21Baza nie zawiera żadnego żądania ani wyniku: tylko najemców, klucze (odciski) i liczniki użycia (najemca, dzień, punkt końcowy, liczba).api/tests/test_privacy_claims.py::test_schema_has_no_content_columns
ZL-22Wsad: plik wejściowy jest usuwany zaraz po zakończeniu przetwarzania; wynik i metadane zadania są usuwane po upływie okresu przechowywania (domyślnie 1 godzina po zakończeniu, konfigurowalnie) lub natychmiast po DELETE; zadanie, które nigdy nie zostało przetworzone, jest czyszczone po 24 godzinach.api/tests/test_batch.py::test_csv_roundtrip_usage_and_input_purgeapi/tests/test_batch.py::test_isolation_delete_and_expiryapi/tests/test_batch.py::test_result_purged_after_retention
ZL-23Metadane zadania wsadowego nie zawierają żadnego wiersza pliku (liczniki, daty, nazwy kolumn, kraj domyślny).api/tests/test_privacy_claims.py::test_batch_metadata_has_no_row_content
ZL-25Konsola: jedyną przechowywaną daną osobową jest adres e-mail konta (oraz adres trwającego linku logowania, ważnego 15 minut, jednorazowego); tokeny linków i sesji są przechowywane wyłącznie jako odcisk SHA-256.api/tests/test_privacy_claims.py::test_schema_has_no_content_columnsapi/tests/test_console.py::test_link_is_single_use_and_logout
ZL-26Organizacja nie widzi ani kluczy, ani użycia innej; klucz unieważniony lub wygasły (rotacja) jest odrzucany.api/tests/test_console.py::test_org_isolationapi/tests/test_console.py::test_keys_lifecycle_and_plan_limit
ZL-27Webhook końca wsadu: ładunek zawiera wyłącznie identyfikator, status, liczniki i linki zadania, nigdy wiersz pliku ani adres; adres URL i sekret webhooka nigdy nie są logowane.api/tests/test_batch_stream.py::test_webhook_delivery_signed_without_addresses_and_retried
ZL-28Idempotencja (Idempotency-Key): przez 24 godziny przechowywany jest wyłącznie odcisk SHA-256 żądania (a dla wsadu identyfikator zadania), nigdy wysłany adres ani odpowiedź.api/tests/test_idempotency_versioning.py::test_idempotency_never_stores_addressapi/tests/test_idempotency_versioning.py::test_in_progress_conflict_and_stores_keep_no_content
ZL-29Brak niezadeklarowanego ruchu wychodzącego z sieci: w namespace domyślnie wszystko jest blokowane; strona internetowa nie ma ruchu wychodzącego; API łączy się tylko z DNS klastra, swoimi bazami danych (PostgreSQL, Redis), wewnętrznym kolektorem OTel oraz, dla webhooków, przez HTTPS z publicznym Internetem (zakresy prywatne, lokalne i metadanych wykluczone). Żadne zewnętrzne narzędzie analityczne nie może otrzymać żądania.api/tests/test_k8s_hardening.py::test_egress_is_limited_to_declared_flowsapi/tests/test_k8s_hardening.py::test_namespace_is_restricted_and_denies_by_default
ZL-24Zadanie wsadowe jednego klienta jest niewidoczne dla innych klientów.api/tests/test_batch.py::test_isolation_delete_and_expiry

Czego (jeszcze) nie ma

IdStwierdzenieTest automatyczny
ZL-30Asynchroniczne rozwiązanie zastępcze /v1/repair (LLM) jest wyłączone: żadnego wywołania zewnętrznego, żaden adres nie opuszcza usługi.api/tests/test_repair.py::test_repair_unrepairable_and_async_disabled
ZL-32W wersji v0 żaden e-mail nie jest naprawdę wysyłany (skrzynka nadawcza w pamięci) i nie jest podłączony żaden rzeczywisty dostawca rozliczeń (dostawca atrapa).api/tests/test_privacy_claims.py::test_no_external_transport_by_default
ZL-31W wersji v0 nie ma pamięci podręcznej wyników (pamięć HMAC z rotowanym sekretem z ADR 0005 nie jest jeszcze zaimplementowana).api/tests/test_privacy_claims.py::test_no_result_cache_in_v0

Wykaz komunikatów logów

To jedyne komunikaty emitowane przez kod, w dokładnym formacie. Test kończy się niepowodzeniem, jeśli kod i ta lista się rozjeżdżają.

%s %s %d %.1fms tenant=%s rid=%s
job %s queued rows=%d
job %s %s rows=%d matched=%d
job %s failed: %s
engine loaded: %s
addrova_engine not installed, using the fake engine
usage flush failed: %s
index preloaded: %d bytes
webhook job %s attempt %d status %s
engine contract violation: candidate without source
engine failure: %s

Poza zakresem tych testów

Te punkty weryfikuje się inaczej i mówimy o tym wprost:

  • Ingress / proxy: jego log dostępu musi być wyłączony na trasach API (ADR 0004); konfiguracja infrastruktury, do weryfikacji w infra/ i na klastrze.
  • Silnik (addrova_engine): zobowiązuje się nie logować żądań (ADR 0002); jego własne testy to sprawdzają.
  • Eksport śladów: tylko jeśli ustawiono ADDROVA_OTLP_ENDPOINT, do kolektora hostowanego w UE; bez tego ustawienia żaden ślad nie opuszcza procesu.
  • Przechowywanie plików wsadowych: v0 na lokalnym dysku kontenera (uprawnienia 0600); szyfrowane przechowywanie obiektów w UE planowane na produkcję (ADR 0006, ADR 0009).

Skoro nic nie jest przechowywane, nic nie jest wykorzystywane ponownie

Addrova nie używa Twoich zapytań do trenowania modeli, tworzenia zbiorów danych ani wzbogacania swojego indeksu, a kod to urzeczywistnia: zapytania i wyniki nigdy nie są logowane (ZL-10), baza nie zawiera żadnego zapytania ani wyniku (ZL-21), pliki wsadowe są usuwane po przetworzeniu (ZL-22), nie ma pamięci podręcznej wyników (ZL-31), a żaden adres nie jest wysyłany do usługi zewnętrznej (ZL-30).

Jeszcze nie deklarowane

  • Hosting wyłącznie w UE: dostawca hostingu i region nie zostały jeszcze opublikowane. [À VÉRIFIER]
  • Podmioty przetwarzające i umowa powierzenia przetwarzania danych (DPA): zostaną opublikowane, z podpisem online, przed uruchomieniem. [À VÉRIFIER]
  • Certyfikaty: żadne nie jest deklarowane. ISO 27001 planowany jest na późniejszy etap.

Źródła danych i licencje

Opieramy się na oficjalnych danych otwartych na otwartych licencjach (dla Francji Licence Ouverte 2.0). Każda odpowiedź API zawiera listę atrybucji ze wskazaniem źródeł. Dane na licencjach share-alike, takie jak OpenStreetMap, znajdują się w osobnym indeksie i nigdy nie są łączone z indeksem oficjalnym.

Pytania o zgodność

Czy mogę zweryfikować te zobowiązania?

Każde zobowiązanie wskazuje test automatyczny, który je sprawdza. Testy uruchamiają się przy każdej zmianie; jeden z nich kończy się niepowodzeniem, jeśli wskazany test zniknie lub wykaz logów przestanie odpowiadać kodowi. Dostęp do zestawu testów na potrzeby audytu pozostaje do ustalenia. [À VÉRIFIER]

Czy logujecie mój adres IP?

Aplikacja nie: jej log dostępu nie zawiera adresu IP, user-agenta ani klucza API (ZL-01). Również ingress przed nią musi mieć wyłączony log dostępu; to ustawienie infrastruktury, wskazane wyżej jako poza zakresem testów.

Jak długo przechowywane są wyniki wsadu?

Domyślnie godzinę po zakończeniu lub do usunięcia zadania (ZL-22). Plik wejściowy jest usuwany zaraz po zakończeniu przetwarzania.