GDPR & Protecția Datelor
Protecție a datelor implicită (Privacy by Design)
qr3.app este construit de la zero pentru a fi conform cu GDPR:
- Pseudonimizarea IP-urilor — Adresele IP sunt convertite instantaneu în pseudonime HMAC-SHA-256 ale zilei UTC în Edge Worker. IP-ul original nu este niciodată stocat; pseudonimul rămâne o dată cu caracter personal.
- Minimizarea datelor — Sunt colectate doar datele strict necesare pentru funcționare.
API de Confidențialitate (Privacy API)
Rezumatul datelor (Art. 15 GDPR)
GET /v1/account/privacy — Returnează o prezentare generală a tuturor datelor stocate.
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" } ] } }}Exportul de date (Art. 20 GDPR — Portabilitatea datelor)
GET /v1/account/export — Descarcă toate datele sub forma unui fișier JSON.
curl https://qr3.app/v1/account/export \ -H "Authorization: Bearer qr3_sk_..." \ -o meine-daten.jsonExportul conține:
- Toate codurile QR (inclusiv cele șterse)
- Statistici de scanare agregate (fără hash-uri IP brute)
- Marcaje temporale de creare și modificare
Ștergerea contului (Art. 17 GDPR — Dreptul de a fi uitat)
DELETE /v1/account — Ștergerea irevocabilă a tuturor datelor.
curl -X DELETE https://qr3.app/v1/account \ -H "Authorization: Bearer qr3_sk_..."Ce se întâmplă:
- Toate codurile QR sunt șterse logic (soft-deleted / arhivate)
- Toate înregistrările de scanare sunt șterse definitiv (PII)
- Toate cheile API sunt revocate
- Cache-ul KV este invalidat
Gestionarea consimțămintelor
GET /v1/account/privacy/consents — Obținerea consimțămintelor actuale.
POST /v1/account/privacy/consents — Actualizarea consimțămintelor.
# 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 }'Câmpurile de consimțământ:
| Câmp | Implicit | Descriere |
|---|---|---|
marketing_emails | false | Newslettere și e-mailuri promoționale |
analytics | true | Statistici de utilizare agregate |
product_updates | true | Noutăți despre produse și changelog-uri |
Implementarea tehnică a GDPR
Pseudonimizarea IP-urilor (Art. 25 GDPR)
Cerere HTTP → Cloudflare Edge Worker ↓Antet CF-Connecting-IP → HMAC-SHA-256(IP_HASH_SALT, scop, zi UTC, IP) ↓ip_hash (pseudonim zilnic) → bază de date D1 ↓IP-ul original nu este niciodată stocatIP_HASH_SALT este un secret principal cu durată lungă; scopul și ziua UTC derivă automat pseudonime zilnice separate. Pseudonimele din zile UTC diferite nu sunt direct egale, dar deținătorul secretului poate recalcula un candidat IP cunoscut pentru o anumită zi. Nu se folosește sare zilnică în KV și nici rotație manuală zilnică.
Retenția datelor (automatizată)
| Plan | Retenție |
|---|---|
| Toate planurile | 90 de zile |
Acordul de prelucrare a datelor (DPA) cu subcontractanții
Cloudflare, Inc. prelucrează datele în calitate de persoană împuternicită de operator. Acordul DPA este disponibil la cloudflare.com/cloudflare-customer-dpa.
Cloudflare prelucrează datele pe servere din UE (Frankfurt). Clauzele contractuale standard (SCC) conform Art. 46 GDPR sunt în vigoare.
Contact
- Responsabil cu protecția datelor: [email protected]
- Acord de prelucrare a datelor (DPA): [email protected] (la cerere)
- Politică de confidențialitate: qr3.app/de/legal/datenschutz