Przejdź do głównej zawartości

RODO i ochrona danych

Privacy by Design

qr3.app został zaprojektowany od podstaw z myślą o zgodności z RODO:

  • Pseudonimizacja IP — adresy IP są natychmiast konwertowane w Edge Worker na pseudonimy HMAC-SHA-256 dnia UTC. Oryginalny adres IP nigdy nie jest przechowywany; pseudonim pozostaje daną osobową.
  • Minimalizacja danych — gromadzone są wyłącznie dane niezbędne do działania usługi.

Privacy-API

Podsumowanie danych (art. 15 RODO)

GET /v1/account/privacy — Zwraca podsumowanie wszystkich przechowywanych danych.

Okno terminala
curl https://qr3.app/v1/account/privacy \
-H "Authorization: Bearer qr3_sk_..."

Response:

{
"data": {
"workspace_id": "ws_xxx",
"stored_data": {
"qr_codes": { "count": 42, "oldest_at": "2026-03-01T..." },
"scan_records": { "count": 15000, "oldest_at": "2026-03-01T..." },
"api_keys": { "count": 2 },
"webhooks": { "count": 1 }
},
"your_rights": {
"access": "GET /v1/account/export",
"erasure": "DELETE /v1/account",
"contact": "[email protected]"
},
"data_processing": {
"legal_basis": "Contract performance (Art. 6(1)(b) GDPR)",
"sub_processors": [
{ "name": "Cloudflare, Inc.", "purpose": "CDN, edge computing, database" }
]
}
}
}

Eksport danych (art. 20 RODO — przenoszenie danych)

GET /v1/account/export — Pobiera wszystkie dane jako plik JSON.

Okno terminala
curl https://qr3.app/v1/account/export \
-H "Authorization: Bearer qr3_sk_..." \
-o meine-daten.json

Eksport zawiera:

  • Wszystkie kody QR (w tym usunięte)
  • Zagregowane statystyki skanowania (brak surowych skrótów IP)
  • Znaczniki czasu utworzenia i modyfikacji

Usuwanie konta (art. 17 RODO — prawo do bycia zapomnianym)

DELETE /v1/accountNieodwracalne usunięcie wszystkich danych.

Okno terminala
curl -X DELETE https://qr3.app/v1/account \
-H "Authorization: Bearer qr3_sk_..."

Co się dzieje:

  1. Wszystkie kody QR są usuwane miękko (archiwizowane)
  2. Wszystkie rekordy skanowania są trwale usuwane (PII)
  3. Wszystkie klucze API są unieważniane
  4. Pamięć podręczna KV jest unieważniana

Zarządzanie zgodami

GET /v1/account/privacy/consents — Pobieranie aktualnych zgód.

POST /v1/account/privacy/consents — Aktualizacja zgód.

Okno terminala
# Aktuelle Einwilligungen abrufen
curl https://qr3.app/v1/account/privacy/consents \
-H "Authorization: Bearer qr3_sk_..."
# Marketing-E-Mails deaktivieren
curl -X POST https://qr3.app/v1/account/privacy/consents \
-H "Authorization: Bearer qr3_sk_..." \
-H "Content-Type: application/json" \
-d '{ "marketing_emails": false, "analytics": true, "product_updates": true }'

Pola zgód:

PoleDomyślnieOpis
marketing_emailsfalseNewsletter i e-maile marketingowe
analyticstrueZagregowane statystyki użytkowania
product_updatestrueNowości produktowe i dzienniki zmian (changelogi)

Techniczna implementacja RODO

Pseudonimizacja IP (art. 25 RODO)

Żądanie HTTP → Cloudflare Edge Worker
Nagłówek CF-Connecting-IP → HMAC-SHA-256(IP_HASH_SALT, cel, dzień UTC, IP)
ip_hash (dzienny pseudonim) → baza danych D1
Oryginalny adres IP nigdy nie jest przechowywany

IP_HASH_SALT jest długotrwałym głównym sekretem; cel i dzień UTC automatycznie wyprowadzają odrębne dzienne pseudonimy. Pseudonimy z różnych dni UTC nie są bezpośrednio takie same, lecz posiadacz sekretu może ponownie obliczyć znanego kandydata IP dla konkretnego dnia. Nie stosuje się dziennej soli w KV ani ręcznej codziennej rotacji.

Retencja danych (automatyczna)

PlanRetencja
Wszystkie plany90 dni

Umowa DPA z podprocesorami

Cloudflare, Inc. przetwarza dane jako podmiot przetwarzający. Umowa DPA jest dostępna pod adresem cloudflare.com/cloudflare-customer-dpa.

Cloudflare przetwarza dane na serwerach w UE (Frankfurt). Obowiązują Standardowe Klauzule Umowne (SCC) zgodnie z art. 46 RODO.


Kontakt