EMZETT.
Giriş yap

GDPR veri dışa aktarımı (m. 15/20)

Kısaca: Bir şirketin hakkında sakladığı tüm kişisel verilerin yapılandırılmış biçimde sana verilmesi hakkı — erişim hakkı (m. 15 GDPR) ve veri taşınabilirliği hakkı (m. 20 GDPR).

Biraz daha ayrıntılı: Uygulamada genellikle kendi hesabında bir “verileri dışa aktar” düğmesi olarak uygulanır; sunucuda oturum açmış kullanıcıya bağlı tüm kayıtları toplar ve örneğin bir JSON dosyası olarak indirmeye sunar. Önemli olan, dışa aktarmaya NELERİN ait olduğuna bilinçli karar vermektir: salt teknik/güvenlikle ilgili alanlar (parola özeti, push aboneliği) ve ÜÇÜNCÜ kişilerin kişisel verileri (örneğin ortak bir destek biletinde başka kimlerin yer aldığı) buna ait değildir.

Bizim bağlamımız: Emzett’te app/utils/gdprExport.ts (exportUserData), oturum açmış kullanıcı için hesap verilerini, siparişleri, puan geçmişini, destek biletlerini, sohbet mesajlarını vb. toplar — bilinçli olarak passwordHash ve pushSubscription OLMADAN. Tam bir veri dışa aktarımı nispeten pahalı bir işlem olduğundan genel oran sınırı denetiminden geçer.

Ayrıntılı

GDPR m. 15 (erişim hakkı) ve m. 20 (veri taşınabilirliği hakkı) uygulamada çoğu zaman birlikte bir “veri dışa aktarımı” olarak uygulanır, ancak hukuken kapsamları farklıdır: m. 15, verilerin nasıl toplandığına bakmaksızın, işleme amaçları, alıcılar ve saklama süresi dahil işlenen tüm kişisel veriler hakkında bilgi vermeni gerektirir. m. 20 daha dardır: yalnızca ilgili kişinin şirkete kendisinin sağladığı (örneğin profil verileri, yüklenen içerik) ve işlenmesi onaya veya sözleşmeye dayanan veriler için geçerlidir — şirketin kendisinin türettiği veya hesapladığı verilere (örneğin dahili olarak hesaplanan bir müşteri değeri skoru) değil.

Yaygın bir yasal gereklilik yanıt süresidir: bir erişim talebi “gereksiz gecikme olmadan ve her durumda bir ay içinde” yanıtlanmalıdır (GDPR m. 12(3)); karmaşık talepler için bunu iki ay daha uzatma imkânı vardır. Hesap alanındaki otomatik bir self-servis dışa aktarım bu süreyi baştan alt eder, çünkü kullanıcılar manuel bir talep gönderip işlenmesini beklemek yerine verileri hemen kendileri alabilir — bu da aynı zamanda şirket tarafında destek yükünü önemli ölçüde azaltır.

Teknik olarak diğer kişileri de ilgilendiren bağlantılı verilerin ele alınması özellikle zordur. Bir sohbet geçmişi veya ortak bir destek bileti genellikle birkaç katılımcının mesajlarını içerir — “kullanıcı kimliğimi içeren tüm kayıtların” saf bir dışa aktarımı istemeden üçüncü kişilerin kişisel verilerini de ifşa eder; bu başlı başına bir GDPR ihlali olabilir. Yaygın yaklaşımlar ya bir konuşmada yalnızca kendi mesajlarını dışa aktarmak, başkalarının katkılarını anonimleştirmek (örneğin gerçek ad yerine “Diğer kullanıcı”) ya da tam konuşmaları yalnızca talep eden kişi tek veya esas sorumlu katılımcıysa dahil etmektir.

// GDPR veri dışa aktarımı için basitleştirilmiş desen
async function exportUserData(userId: string) {
  const [account, orders, tickets] = await Promise.all([
    db.query.users.findFirst({ where: eq(users.id, userId) }),
    db.query.orders.findMany({ where: eq(orders.userId, userId) }),
    db.query.tickets.findMany({ where: eq(tickets.userId, userId) }),
  ]);
  // Güvenlikle ilgili alanları bilinçli olarak hariç tut
  const { passwordHash, pushSubscription, ...safeAccount } = account;
  return { account: safeAccount, orders, tickets };
}

Ayrıca bak: Küçük işletme kuralı (§ 19 UStG), Dijital içerikte cayma hakkı (§ 356(5) BGB), İtiraz süreli hesap silme (yumuşak silme + anonimleştirme), GDPR, Denetim günlüğü