Skip to content

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.

Terminal window
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" }
]
}
}
}

Izvoz podataka (čl. 20. GDPR-a — prenosivost podataka)

GET /v1/account/export — Preuzima sve podatke kao JSON datoteku.

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

Izvoz 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/accountNepovratno brisanje svih podataka.

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

Što se događa:

  1. Svi QR kodovi bit će meko obrisani (arhivirani)
  2. Svi zapisi o skeniranju bit će trajno obrisani (PII)
  3. Svi API ključevi bit će opozvani
  4. 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.

Terminal window
# 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 }'

Polja privole:

PoljeZadanoOpis
marketing_emailsfalseNewsletter i promotivne e-poruke
analyticstrueAgregirana statistika korištenja
product_updatestrueNovosti 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 gespeichert

Salt 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:

PaketZadržavanje
Free7 dana
Pro90 dana
Business / Agency1 godina
EnterprisePrilagođ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