Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mmmytics.com/llms.txt

Use this file to discover all available pages before exploring further.

Güvenlik & KVKK Uyumluluğu

MMMytics tamamen KVKK (6698 sayılı Kanun) uyumlu olarak tasarlanmıştır.

Veri Lokasyonu

Tüm Türk müşteri verileri AB bölgesinde (Frankfurt, eu-central-1) tutulur. ABD bölgesi transferi YASAK’tır.
ServisRegion
Frontend (Vercel)Global Edge + Frankfurt origin
Backend API (Cloud Run)europe-west1 (Frankfurt)
Engine (ML, GPU)europe-west1 (Frankfurt)
Database (Supabase)eu-central-1 (Frankfurt)
Storage (Supabase)eu-central-1 (Frankfurt)
Sentry (error tracking)US (KVKK riskli — enterprise için EU SaaS planlanıyor)

Encryption

At Rest

  • Supabase Postgres: AES-256 native encryption
  • Supabase Storage: AES-256
  • Vercel env vars: Encrypted, Sensitive flag aktif (dashboard reveal kapalı)

In Transit

  • HTTPS/TLS 1.3 zorunlu (HTTP yönlendirme + HSTS)
  • API to backend: TLS 1.3
  • Database connections: TLS 1.3

Audit Log (KVKK Madde 12)

Tüm kritik aksiyonlar otomatik kayıt altına alınır:
Aksiyon TipiÖrnek
Veri girişiupload (CSV upload)
Veri silmedelete dataset, account deletion
Veri güncellemeedit week, edit blueprint
Model runmodel_run_started, model_run_completed
Org yönetimiorganisation_created, user_invited
Veri exportdata_export_requested

Audit Log Schema

audit_logs (
  id UUID,
  action TEXT,             -- "model_run_started"
  entity_type TEXT,        -- "model_run"
  entity_id UUID,          -- run UUID
  actor_id UUID,           -- user UUID
  org_id UUID,             -- isolation
  ip_address INET,         -- IPv4 last-octet masked
  user_agent TEXT,
  metadata JSONB,
  created_at TIMESTAMPTZ
)
Retention: 90 gün (KVKK + güvenlik meşru menfaat). 90 gün sonra hard delete. IP masking: Last octet masked (192.168.1.X192.168.1.XXX) — KVKK Madde 5/2-f minimization principle.

Role-Based Access Control (RBAC)

4 rol mevcut:
RolYetki
CEOView only (dashboard + reports) — silme/edit yok
CMOTam erişim — tüm L1-L7 + budget optimizer + senaryo
AnalyticsTam erişim (CMO ile aynı)
AgencyBrand-scoped — sadece atandığı brand’ler, cross-brand isolation zorunlu

Cross-Brand Isolation (Critical)

Agency rolündeki kullanıcılar diğer müşterilerin verisine erişemez. App-level RLS (Row Level Security):
def assert_brand_access(brand_id, current_user):
    if current_user.role == "agency":
        if brand_id not in current_user.assigned_brands:
            raise HTTPException(403, "Forbidden")
12+ critical IDOR kapatıldı (Sprint R1). Multi-tenant battle test (Faz E3-7) 4 RBAC senaryo + RLS isolation valid.

KVKK Hakları

Müşteri olarak şu haklarınız var (KVKK Madde 11):

1. Bilgi Talebi

  • Hangi verileriniz işleniyor?
  • Hangi amaçla işleniyor?
  • Hangi 3rd party’lere paylaşılıyor?
destek@mmmytics.com — 30 gün içinde cevap (KVKK Madde 13).

2. Düzeltme Talebi

  • Verileriniz yanlış mı? Düzeltme talebi.
  • Self-service: L1 Data Hub → veri yönetimi
  • Veya destek@mmmytics.com

3. Silme Talebi (Right to Erasure / GDPR Article 17)

  • Self-service: Settings → “Tehlikeli Bölge” → “Hesabımı Sil”
  • 48 saatlik onay penceresi + 8-char confirmation code
  • Onaylandıktan sonra 48 saat içinde tüm copy’ler silinir
  • Audit log bırakılır (KVKK Madde 12)

4. Veri Taşınabilirliği (GDPR Article 20)

  • Self-service: Settings → “Veri Export”
  • 3 format: CSV / XLSX / JSON
  • 1 saat içinde signed URL email’inize
  • 8 tablo brand-scoped (organizasyon + brand + dataset + audit log dahil)

Güvenlik Audit & Compliance

Mevcut Kontroller

  • ✅ KVKK Madde 12 audit log otomatik
  • ✅ Multi-tenant battle test (1k brand simülasyon, RLS isolation)
  • ✅ Audit log AST guard test (her mutating endpoint’te log_action( zorunlu)
  • ✅ PII detection (CSV upload pre-process)
  • ✅ Rate limiting (slowapi — 100 req/min per IP)
  • ✅ JWT validation (Clerk JWKS)
  • ✅ HTTPS/TLS 1.3 zorunlu
  • ✅ Sentry runtime error tracking (Sentry.setUser correlation)
  • ✅ Cookie banner KVKK aydınlatma + Consent Mode V2

Henüz Yok (Planlı)

  • ⚠️ Pentest raporu — enterprise müşteri talebinde post-launch (B2B yıllık sözleşme context’i)
  • ⚠️ SOC 2 Type II — Faz E5+ (büyük enterprise müşteri için)
  • ⚠️ ISO 27001 — Faz E5+

Veri İşleyici (DPA — Data Processing Agreement)

Sözleşme imzasında DPA ek olarak verilir (docs/legal/03-veri-isleyici-sozlesmesi.md):
  • Veri kategorileri (medya agregat, bağlam değişkenleri)
  • İşleme amaçları (MMM modelleme, reporting)
  • Saklama süresi (sözleşme + 1 yıl)
  • 3rd party sub-processors (Supabase, Vercel, Google Cloud, Sentry)
  • Müşteri hakları (KVKK Madde 11)

Sub-Processors

3rd party servisler ve KVKK uyum durumu:
VendorHizmetRegionKVKK
VercelFrontend hostingGlobal edge + Frankfurt origin✅ DPA imzalı
SupabaseDB + storage + autheu-central-1 (Frankfurt)✅ DPA imzalı
Google CloudBackend + ML engineeurope-west1 (Frankfurt)✅ DPA imzalı
ClerkAuthenticationUS (encrypted at rest)⚠️ KVKK riskli — enterprise için EU IDP planlanıyor
SentryError trackingUS⚠️ KVKK riskli — enterprise için EU SaaS planlanıyor
ResendTransactional emailEU✅ DPA imzalı
Not: Clerk + Sentry US-based. Sub-processor değişikliği için 30 gün önce email bildirimi yapılır (KVKK Madde 8/2).

Veri İhlali Bildirimi

KVKK Madde 12 + GDPR Article 33: 72 saat içinde KVKK Kurum’una bildirim + müşteriye notification. MMMytics tarafından:
  • Sentry alert + audit log review
  • Etkilenen müşteri tespit
  • 72 saat içinde Resend email bildirim
  • KVKK Kurum’a yazılı bildirim
  • Status page incident publish (etkilenen kullanıcılar görür)

Bilgi & İletişim

  • 🇹🇷 KVKK sorumlu: CTO Serkan Arı (destek@mmmytics.com)
  • 📜 KVKK belge seti: kontratınızın Ek-1 (Aydınlatma) + Ek-3 (Açık Rıza) + Ek-4 (Saklama-İmha) + Ek-5 (DPA)
  • 🇪🇺 GDPR Data Protection Officer (DPO): yok (KVKK kapsamında DPO zorunlu değil; CTO sorumlu)
  • 📞 KEP adresi: kontrat’ta belirtilmiştir

Yasal: Bu sayfa bilgilendirme amaçlıdır. Bağlayıcı olan kontratınızla birlikte imzalanan KVKK dokümanlarıdır.