Bunu Neden İnşa Ettim?
"Standart web framework'leri genellikle performanstan ödün verir ya da bellek güvenliği (memory safety) tarafında zayıftır. Amacım, tamamen Rust tabanlı, sıfır maliyetli soyutlamalar (zero-cost abstractions) sunan Actix-Web ve SQLx kullanarak aşırı hızlı, bellek sızıntısı olmayan ve katı bir rol tabanlı yetkilendirme (RBAC) sunan güvenli bir backend mimarisi kurmaktı. Özellikle veritabanı işlemlerinin derleme zamanında (compile-time) kontrol edilmesi benim için kritikti."
Mimari & Kararlar
Mimari, Actix-Web'in asenkron çalışma modeline ve SQLx'in compile-time query doğrulama yeteneklerine dayanıyor. Kimlik doğrulama süreci, Argon2 ile şifrelerin hash'lenmesi ve JWT'lerin `HttpOnly` çerezlere gömülmesiyle sağlanıyor. Route güvenliğini ayrı bir middleware yazmak yerine, Actix'in `FromRequest` trait'ini implemente eden `AuthenticatedUser` extractor'ı üzerinden çözdüm; bu sayede yetkisiz istekler controller katmanına ulaşmadan doğrudan bellek seviyesinde reddediliyor. Postgres üzerindeki custom `ENUM` tipleri (`user_role`, `petition_status`) Rust struct'ları ile birebir eşleşmiş durumda ve kritik admin işlemleri ACID standartlarına uygun olarak transaction (`tx`) blokları içerisinde yürütülüyor.
Temel Özellikler
- 01.Actix `FromRequest` trait'i ile yazılmış otonom JWT ve Cookie tabanlı kimlik doğrulama extractor'ı
- 02.PostgreSQL custom tipleriyle birebir eşleşen, hiyerarşik Rol Tabanlı Erişim Kontrolü (RBAC - Mutlak İrade, Yargıç vb.)
- 03.SQLx kullanılarak derleme zamanında (compile-time) doğrulanan, SQL injection riskini sıfıra indiren asenkron veritabanı sorguları
- 04.Admin yetkisiyle yapılan her kritik değişikliği veritabanı transaction'ları ile bütünleşik olarak kaydeden Audit Log altyapısı
- 05.Gelen veri yapılarını (payload) controller seviyesinin hemen sınırında filtreleyen `validator` crate entegrasyonu