GDPR i zaštita podataka
Zaštita podataka po dizajnu (Privacy-by-Design)
qr3.app je od samog početka izgrađen u skladu s GDPR-om:
- Anonimizacija IP adresa — IP adrese se u Edge-Workeru odmah pretvaraju u SHA-256 hasheve (s dnevno rotirajućim saltom). Izvorni IP nikada ne dolazi do baze podataka.
- Pravila zadržavanja (Retention-Policies) — Podaci o skeniranju automatski se brišu nakon roka koji ovisi o paketu (Free: 7 dana, Pro: 90 dana, Business: 1 godina).
- Smanjenje količine podataka — Prikupljaju se samo podaci nužni za rad.
Privacy-API
Sažetak podataka (čl. 15. GDPR-a)
GET /v1/account/privacy — Vraća pregled svih pohranjenih podataka.
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", }, "data_processing": { "legal_basis": "Contract performance (Art. 6(1)(b) GDPR)", "sub_processors": [ { "name": "Cloudflare, Inc.", "purpose": "CDN, edge computing, database" } ] } }}Izvoz podataka (čl. 20. GDPR-a — prenosivost podataka)
GET /v1/account/export — Preuzima sve podatke kao JSON datoteku.
curl https://qr3.app/v1/account/export \ -H "Authorization: Bearer qr3_sk_..." \ -o meine-daten.jsonIzvoz sadrži:
- Sve QR kodove (uključujući obrisane)
- Agregiranu statistiku skeniranja (bez sirovih IP hasheva)
- Vremenske oznake stvaranja i izmjene
Brisanje računa (čl. 17. GDPR-a — pravo na zaborav)
DELETE /v1/account — Nepovratno brisanje svih podataka.
curl -X DELETE https://qr3.app/v1/account \ -H "Authorization: Bearer qr3_sk_..."Što se događa:
- Svi QR kodovi bit će meko obrisani (arhivirani)
- Svi zapisi o skeniranju bit će trajno obrisani (PII)
- Svi API ključevi bit će opozvani
- KV-Cache bit će poništen
Upravljanje privolama
GET /v1/account/privacy/consents — Dohvaćanje trenutnih privola.
POST /v1/account/privacy/consents — Ažuriranje privola.
# Aktuelle Einwilligungen abrufencurl https://qr3.app/v1/account/privacy/consents \ -H "Authorization: Bearer qr3_sk_..."
# Marketing-E-Mails deaktivierencurl -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 }'Polja privole:
| Polje | Zadano | Opis |
|---|---|---|
marketing_emails | false | Newsletter i promotivne e-poruke |
analytics | true | Agregirana statistika korištenja |
product_updates | true | Novosti o proizvodima i zapisi o promjenama (Changelogs) |
Tehnička implementacija GDPR-a
Anonimizacija IP adresa (čl. 25. GDPR-a)
HTTP Request → Cloudflare Edge Worker ↓CF-Connecting-IP Header → SHA-256(IP + täglicher Salt) ↓ip_hash (nicht reversibel) → D1 Datenbank ↓Original-IP wird NIEMALS gespeichertSalt se rotira svakodnevno u ponoć UTC. Time čak i uz poznavanje salta nije moguća korelacija IP adresa kroz više dana.
Zadržavanje podataka (automatizirano)
Dnevni Cron posao (purgeOldScans) briše podatke o skeniranju nakon roka koji ovisi o paketu:
| Paket | Zadržavanje |
|---|---|
| Free | 7 dana |
| Pro | 90 dana |
| Business / Agency | 1 godina |
| Enterprise | Prilagođeno (SLA) |
DPA s podizvršiteljima obrade
Cloudflare, Inc. obrađuje podatke kao izvršitelj obrade. DPA je dostupan na cloudflare.com/cloudflare-customer-dpa.
Cloudflare obrađuje podatke na poslužiteljima u EU (Frankfurt). Standardne ugovorne klauzule (SCC) prema čl. 46. GDPR-a su na snazi.
Kontakt
- Službenik za zaštitu podataka: [email protected]
- Ugovor o obradi podataka (DPA): [email protected] (na zahtjev)
- Pravila o privatnosti: qr3.app/de/legal/datenschutz