TitanNav — Kişisel Veri Saklama ve İmha Politikası
Bu belge runtime'da
company_infotablosundan render edilir.{{company.xxx}}ifadeleri admin panelden doldurulur.
Yasal Dayanak: 6698 KVKK Madde 7 + Kişisel Verilerin Silinmesi, Yok Edilmesi veya Anonim Hale Getirilmesi Hakkında Yönetmelik (RG 28.10.2017).
Yürürlük Tarihi: [[LANSMAN TARİHİ]]
Versiyon: 1.0
1. AMAÇ
Bu politika, {{company.ticaret_unvani}} ("TitanNav") tarafından işlenen kişisel verilerin saklama süresini belirlemek ve saklama süresi sona eren verilerin mevzuata uygun şekilde silinmesi, yok edilmesi veya anonim hale getirilmesine ilişkin esasları düzenlemektedir.
2. KAPSAM
Bu politika:
- Müşteri/üye verileri
- Filo sürücüsü verileri
- Çalışan verileri (gelecekte)
- Ziyaretçi verileri
- Başvuru yapan ilgili kişi verileri üzerinde uygulanır.
3. TANIMLAR
| Terim | Açıklama |
|---|---|
| Silme | Kişisel verinin ilgili kullanıcılar için hiçbir şekilde erişilemeyecek hale getirilmesi |
| Yok etme | Fiziksel verinin okunamayacak ve geri getirilemeyecek hale getirilmesi (shredding, degaussing) |
| Anonim hale getirme | Kişisel verinin hiçbir şekilde kimlik sahibi kişi ile ilişkilendirilememesi |
| Soft-delete | Veri UI'dan görünmüyor ancak DB'de deleted_at ile işaretli — geri alınabilir |
| Hard-delete | Veri DB'den fiziksel olarak silinir — geri alınamaz |
4. SAKLAMA SÜRELERİ
4.1. Müşteri (Üye) Verileri
| Veri | Süre | Sebep | Silme yöntemi |
|---|---|---|---|
| Ad, soyad, kullanıcı adı | Hesap aktif + 2 yıl | 6502 zamanaşımı | Hard-delete |
| Telefon, e-posta | Hesap aktif + 2 yıl | 6502 zamanaşımı | Hard-delete |
| Rota geçmişi (Solo) | Abonelik aktif + 1 yıl | Sözleşme ifası + destek + ihtilaf | Soft → Hard |
| Yakıt kaydı (Solo) | Abonelik aktif + 1 yıl | Sözleşme ifası + tüketici ihtilaf | Soft → Hard |
| Araç bilgisi (Solo) | Abonelik aktif + 1 yıl | Sözleşme ifası + ihtilaf | Soft → Hard |
| Cihaz ID, IP | Hesap aktif + 1 yıl | Güvenlik | Hard-delete |
| Fatura kayıtları | 10 yıl | VUK 253 | Fiziki + dijital arşiv, süre dolunca hard-delete |
| Ödeme tokenı | Abonelik aktif + 0 gün (PCI) | Güvenlik | iyzico/Stripe tokenı hemen siler |
| Pazarlama onay kaydı | Rıza geri alınana kadar + 2 yıl (ispat) | KVKK ispat | Hard-delete |
| Destek ticket | Kapatılma tarihi + 2 yıl | Meşru menfaat (dava ispatı) | Anonim hale getirme |
| Chat/destek log | Kapatılma tarihi + 2 yıl | Meşru menfaat | Anonim |
| Çerez onay kaydı | 1 yıl | BTK | Hard-delete |
4.2. Filo Sürücüsü ve B2B Verileri
Filo/B2B verisinin saklama süresi, Solo'dan ayrışır; iş hukuki koruma (İş K. 75), vergi mevzuatı (VUK 253 — defter/belge 5 yıl) ve TBK 146 (alacak zamanaşımı 10 yıl — 5 yıl ispat penceresi) gerekçeleriyle uzun tutulur. Veri sorumlusu filo sahibidir; ToffeSoft yalnızca veri işleyendir (LEGAL/19 DPA). Sürücü silme talebi filo sahibine yönlendirilir.
| Veri | Süre | Sebep |
|---|---|---|
| Ad, iletişim | Filo hesabı aktif + 5 yıl | İş ilişkisi + İş K. 75 muhtemel ihtilaf penceresi |
| Sefer/konum (özet) | Filo sözleşmesi süresi + 5 yıl | İş takibi + kaza/ihtilaf ispatı + VUK 253 |
| Olay logları (hız aşımı, sert fren — sayısal/aggregate) | 5 yıl | İş sağlığı-güvenliği (6331) + sözleşmesel ispat |
| Ham konum verisi (raw GPS, saniye bazlı) | Filo sözleşmesi süresi + 5 yıl | İşveren operasyonel takip + kaza/yakıt-hırsızlığı ispatı |
| Şoför çalışma saati kaydı | 5 yıl | İş K. 75 + Karayolu Taşıma Y. |
KVKK orantılılık notu: Filo verisinin 5 yıl saklanması KVKK Madde 4/1-(d) (işlendikleri amaç için gerekli olan süre) ilkesi çerçevesinde meşrudur çünkü (1) İş K. 75 işveren özlük dosyasını 10 yıl tutma yükümlülüğü getirir — 5 yıl operasyonel veri penceresi altında kalır, (2) VUK 253 defter/belge 5 yıl, (3) kaza/hırsızlık/İş Sağlığı uyuşmazlıkları genellikle 5 yıl içinde açılır ya da zamanaşımına uğrar. Filo sahibi (veri sorumlusu) bu süreden daha kısa tutma kararı alabilir; ToffeSoft (veri işleyen) filo sahibinin talimatına uyar. Anonimleştirme 5 yıl sonrası uygulanır.
4.2.1. Trial KYB Belgeleri (Sprint 7 D5 — KYB upload pipeline)
Filo trial başvuru sürecinde toplanan KYB (Know Your Business) belgeleri için saklama matrisi.
| Belge tipi | Saklama süresi | Hukuki sebep | Silme yöntemi |
|---|---|---|---|
| Vergi Levhası, Ticaret Sicil Gazetesi, İmza Sirküleri | Trial onay + 10 yıl | VUK 253 (defter/belge 5 yıl) + TBK 146 (alacak zamanaşımı 10 yıl ispat penceresi) | Soft → 10 yıl sonra Hard |
| Yetki Belgesi / Vekaletname | Trial onay + 10 yıl | TBK 146 + Noterlik K. (vekaletname ispat süresi) | Soft → Hard |
| Sürücü Ehliyeti | Trial onay + 5 yıl | Karayolu Trafik K. (KTK) ehliyet ibraz ispatı + İş K. 75 | Soft → Hard |
| Araç Ruhsatı | Trial onay + 5 yıl | KTK tescil ispatı + sigorta ihtilaf penceresi | Soft → Hard |
| ADR Belgesi | Trial onay + 5 yıl | Tehlikeli Madde Taş. Y. + iş sağlığı-güvenliği (6331) | Soft → Hard |
| Diğer (operasyonel ek belgeler) | Trial onay + 2 yıl | Meşru menfaat — operasyonel destek + ihtilaf | Soft → Hard |
KVKK orantılılık notu: KYB belgelerinin saklanması KVKK Madde 4/1-(d) (işlendikleri amaç için gerekli olan süre) çerçevesinde meşrudur. Trial başvuru reddedilirse veya kullanıcı silme talep ederse, KVKK Madde 11 right-to-erasure prosedürü işler: belge anında soft-delete edilir (
deleted_atdamgalanır, UI'dan görünmez); 30 gün sonra cron job ile fiziksel olarak hem disk'ten hem DB'den silinir (vergi/iş hukuku istisnaları hariç).
Saklama altyapısı:
- Konum: Hetzner Almanya sunucusu (AB içi data localization, KVKK uyumluluk kararı kapsamında)
- Disk yolu:
/home/titannav/storage/trial-documents/<requestId>/<docId>-<sanitized> - Dosya izinleri: 0640 (sadece
titannavuser okuyup yazabilir, world hiçbir şey) - Klasör izinleri: 0750
- Encryption at rest: Sunucu disk şifrelemesi (tech debt — LUKS Sprint 9 öncesi)
- Backup: Nightly Hetzner Cloud snapshot (storage klasörü dahil)
- Off-site backup: Sprint 9+ Hetzner StorageBox değerlendirme (tech debt #21)
Stream erişim güvenliği:
- Belge URL'leri 1 saat ömürlü HMAC-SHA256 imzalı token gerektirir (
/storage?token=<HMAC>) - Token başına 1 belge — token kompromisi sadece o belgeyi etkiler
- Path traversal koruması (storage key absolute resolve + STORAGE_ROOT prefix check)
- MIME whitelist: PDF, JPEG, PNG, HEIC, HEIF (max 10 MB)
Admin inceleme akışı:
- Per-belge approve/reject (admin notu zorunlu reject için)
- Her admin aksiyonu
admin_audit_logtablosuna kaydedilir (actor + before/after + IP + UA) - Belge approve sonrası status değişikliği bildirim mekanizmasıyla kullanıcıya iletilir (Sprint 8 entegrasyon)
4.3. Trafik/Log Verileri
| Veri | Süre | Hukuki sebep |
|---|---|---|
| 5651 trafik logları | 2 yıl | 5651 Madde 6 |
| Uygulama erişim logları | 90 gün | Meşru menfaat |
| Sentry hata logları | 90 gün | Meşru menfaat |
| Admin eylem audit logları | 2 yıl | Meşru menfaat |
data_deletion_log |
2 yıl | İspat |
4.4. Kurumsal/Vergi Kayıtları
| Veri | Süre | Hukuki sebep |
|---|---|---|
| Fatura (e-fatura + fiziki) | 10 yıl | VUK 253 |
| SMMM beyannamesi, muhasebe defteri | 5 yıl | VUK 253 |
| Sözleşmeler (iş, müşteri, tedarikçi) | 10 yıl | TBK 146 |
| İhtar, ihtarname | 10 yıl | TBK |
| Dava/ihtilaf dosyaları | Kesinleşme + 10 yıl | HMK/TBK |
4.5. İK Verileri (gelecekte çalışan alındığında)
| Veri | Süre | Hukuki sebep |
|---|---|---|
| İş akdi | İş akdi bitimi + 10 yıl | İş K. 75 |
| Özlük dosyası | İş akdi bitimi + 10 yıl | İş K. 75 |
| SGK/SSK | İş akdi bitimi + 10 yıl | SGK |
| Bordro | İş akdi bitimi + 10 yıl | VUK + İş K. |
| İş başvurusu (işe alınmayan) | Başvuru + 6 ay | KVKK Madde 7 |
5. İMHA YÖNTEMLERİ
5.1. Dijital veriler
- PostgreSQL:
DELETE FROM ... WHERE deleted_at < NOW() - INTERVAL '7 days'(cron) - Yedek veri: Şifreli yedekte retention dolunca otomatik silme (Hetzner snapshot/Backblaze B2)
- Log dosyaları: Otomatik rotation + retention (logrotate, Cloudflare log retention)
- Redis cache: TTL kullanımı + manuel
FLUSHDB(yalnızca audit sonrası) - Kullanılmayan dosyalar: S3-compatible bucket'ta lifecycle policy
5.2. Fiziksel veriler
- Kağıt belgeler: Office shredder (DIN 66399 seviye P-4 minimum)
- Harddisk/SSD (eski): Demagnetization (degaussing) + fiziksel imha
- USB/CD: Fiziksel parçalama
5.3. Anonim hale getirme
- İsim/telefon/e-posta → hash (SHA-256) + salt (tek yönlü)
- Konum → 1 km grid (mahalle düzeyi) veya sadece şehir
- Aggregate statistik tutulabilir (bireysel kayıt değil)
6. SOFT-DELETE / HARD-DELETE AKIŞI
KULLANICI: Hesap Sil / Abonelik Bitti
│
▼
[T-7] Bildirim: "7 gün içinde silinecek"
│
▼
[T+0] SOFT-DELETE
- routes.deleted_at = NOW()
- fuel_logs.deleted_at = NOW()
- vehicle_details.deleted_at = NOW()
- UI'da görünmez
- API 404 döner (not 403)
│
▼ (7 gün geçti)
│
[T+7] HARD-DELETE (cron job)
- DELETE FROM routes WHERE deleted_at < NOW() - INTERVAL '7 days'
- DELETE FROM fuel_logs ...
- DELETE FROM vehicle_details ...
- data_deletion_log'a kayıt düşer (user_id, silinen_tablolar, timestamp, neden)
│
▼
[KALANLAR — 2 yıl / 10 yıl]
- users (iletişim — 2 yıl)
- invoices (VUK — 10 yıl)
- data_deletion_log (ispat — 2 yıl)
- consent_records (ispat — 2 yıl)
7. İLGİLİ KİŞİ TALEBİ ÜZERİNE SİLME
KVKK Madde 7 ve Madde 11 uyarınca, ilgili kişi talep ederse:
- 30 gün içinde yanıt verilir
- İş bu politikadaki süreler uygulanır (yasal zorunluluk saklı kalmak kaydıyla)
- Silme gerçekleşmezse gerekçe ilgili kişiye bildirilir (örn. VUK 10 yıl zorunluluğu)
- Tam silinemeyen veriler için anonim hale getirme tercih edilebilir
8. PERİYODİK İMHA
Cron job ile otomatik çalışır:
| Süreç | Sıklık | Tablo |
|---|---|---|
| Soft-delete scan | Günlük | Tüm tablolar deleted_at |
| Hard-delete soft-delete + 7 gün | Günlük | Solo user: routes, fuel_logs, vehicles |
| Solo retention: abonelik + 1 yıl | Haftalık | Solo routes/fuel/vehicles — abonelik bitiminden 1 yıl sonra soft-delete tetikler |
| Filo retention: sözleşme + 5 yıl | Aylık | Filo tüm operasyonel veriler (ham GPS dahil) — sözleşme bitiminden 5 yıl sonra soft-delete tetikler |
| 90 gün log rotation | Günlük | trafik log, error log |
| 2 yıl destek anonymize | Haftalık | support_tickets |
| Yıllık policy review | Yıllık | Politika gözden geçirme |
| Yedek retention | Günlük | Hetzner snapshot otomatik |
Tüm periyodik işlemler audit log'a yazılır.
9. SORUMLULUK
| Rol | Sorumluluk |
|---|---|
| KVKK İrtibat Kişisi | Bu politikanın güncelliği + VERBİS kaydı |
| Geliştirici | Soft-delete/hard-delete cron doğru çalışması |
| Sistem yöneticisi | Yedek retention + log rotation |
| Destek ekibi | Kullanıcı silme talebini süresinde yanıtlama |
10. İSTİSNALAR
Aşağıdaki durumlarda yasal süre bitmiş olsa bile veri tutulmaya devam edilir:
- Devam eden dava/soruşturma: Mahkeme kararına kadar
- Vergi incelemesi: Vergi idaresinin yazılı talebi
- KVKK Kurulu talebi: Kurul kararıyla tutma
- Hukuki yükümlülük: Spesifik mevzuat (SGK, İş K., TBK, VUK)
11. GÖZDEN GEÇİRME
Bu politika yılda en az 1 kez gözden geçirilir. Mevzuat değişikliği durumunda 30 gün içinde revize edilir.
Son gözden geçirme: [[TARİH]]
Onay: {{company.yetkili_kisi}}
Tarih: [[TARİH]]