Katmanlı Uygulama Mimarisi
Prime Vault, kullanıcı arayüzü ile hassas veritabanı ve güvenlik işlemlerini ayrı süreçlerde yöneterek erişim yüzeyini sınırlar.
Süreç İzolasyonu
Electron mimarisinde arayüz süreci (renderer) doğrudan veritabanına veya işletim sistemi kaynaklarına erişemez. Tüm veri işlemleri güvenli IPC (Inter-Process Communication) kanalları üzerinden yürütülür. Bu izolasyon, zararlı kod enjeksiyonuna karşı ek bir koruma katmanı sağlar.
Veri akışı aşağıdaki sırayı izler:
- Kullanıcı Arayüzü (Renderer): React ile oluşturulmuş arayüz, sadece izin verilen API yüzeylerine erişebilir.
- Güvenlik Köprüsü (Preload / Context Bridge): Renderer'ın erişebileceği fonksiyonlar burada kısıtlanır ve filtrelenir.
- Ana süreç yönlendiricisi: İzin verilen istekleri işler; kritik girdiler şema ve iş kurallarıyla doğrulanır.
- İş Mantığı & Veritabanı: Doğrulanmış istekler finans motoru, kriptografi modülü veya veritabanına yönlendirilir.
Modül Yapısı
Uygulama, sorumlulukları net olarak ayrılmış modüllerden oluşur:
- Veritabanı modülü: SQLite veritabanı sürücüsünü, şema geçişlerini ve SQLCipher uyumlu şifreleme katmanını yönetir.
- Güvenlik Modülü: PBKDF2 anahtar türetimi, AES-256-GCM zarf şifrelemesi ve RAM bellek sıfırlama işlemlerini gerçekleştirir.
- Defter Motoru: Çift taraflı muhasebe kuralları, bakiye mutabakatı ve borç/alacak hesaplama mantığını içerir.
- Döviz modülü: Kur önbelleğini, yüksek hassasiyetli dönüşümleri ve gerçekleşen kur farkı hesaplamalarını yönetir.
- Arayüz Katmanı: React, TypeScript ve Recharts ile oluşturulmuş kullanıcı deneyimi.
Veritabanı Altyapısı
Yerel veri deposu, şifreli SQLite (SQLCipher) ile yönetilir. Performans ve veri bütünlüğü için WAL (Write-Ahead Logging) modu aktiftir. Bu sayede okuma ve yazma işlemleri birbirini bloke etmeden eş zamanlı çalışabilir.
Mükerrer işlem koruması: Desteklenen işlem akışlarında benzersiz istek anahtarları ve veritabanı kısıtları kullanılarak yinelenen kayıt riski azaltılır.
Neden Electron? Yerel SQLite veritabanı, dosya sistemi erişimi ve masaüstü entegrasyonları için Electron tercih edilmiştir. Süreç ayrımı ve izin verilen iletişim kanalları, tarayıcı arayüzü ile sistem kaynakları arasında kontrollü bir sınır kurulmasına yardımcı olur.