iToverDose/Yazılım· 30 MAYIS 2026 · 04:02

Tauri Uygulamalarında Sandbox İzinlerini Doğru Ayarlama Rehberi

Tauri v2 uygulamalarında komutlar sessizce çalışmıyor mu? Gizli izin ayarları yüzünden mi? Sandbox sisteminin nasıl çalıştığını, en sık karşılaşılan hataları ve çözüm adımlarını detaylı olarak öğrenin.

DEV Community3 dk okuma0 Yorumlar

Tauri v2 ile masaüstü uygulamaları geliştirirken karşılaşılan en büyük engellerden biri, özellikle de yetkilendirme sistemlerinden kaynaklanıyor. Bir komut yazıp frontend tarafında çağırdığınızda hiçbir şey olmuyorsa — ne hata mesajı ne de çökme — büyük olasılıkla izinlerinizde bir sorun var. Bu sessiz başarısızlıklar, geliştiricilerin en sık karşılaştığı durumlardan biri olarak karşımıza çıkıyor. Özellikle tek başına uygulama geliştirenler için, bu sorunların çözümü bazen kafa karıştırıcı olabiliyor.

Tauri v2 Yetkilerinin Temel Çalışma Prensibi

Tauri v2, güvenlik odaklı bir yetkilendirme sistemi sunuyor. Bu sistemde, her eklenti işlemi — dosya okuma, kabuk komutları çalıştırma, bildirim gönderme gibi — önceden tanımlanmış yetkilere sahip olmasını gerektiriyor. Eğer yetki eksikse, frontend çağrısı sessizce başarısız oluyor ve Rust kodunun hiçbir kısmı çalıştırılmıyor. Bu tasarım, uygulamanın güvenliğini artırmak için bilinçli bir tercih olsa da, geliştiriciler için ilk etapta kafa karıştırıcı olabiliyor.

Yeni bir yetkilendirme dosyası oluştururken, genellikle src-tauri/capabilities/main.json konumunda yer alan JSON yapısını kullanıyorsunuz. Aşağıda, temel bir yetkilendirme dosyasının nasıl görüneceğine dair bir örnek bulabilirsiniz:

{
  "identifier": "main-capability",
  "description": "Ana pencere izinleri",
  "windows": ["main"],
  "permissions": [
    "core:default",
    "fs:read-all",
    "fs:write-all",
    "shell:allow-execute",
    "opener:allow-open",
    "global-shortcut:allow-register",
    "global-shortcut:allow-unregister"
  ]
}

Bu dosyada yer alan izinler, uygulamanızın hangi eylemleri gerçekleştirebileceğini belirliyor. Örneğin, fs:read-all tüm dosyaları okuma izni verirken, shell:allow-execute kabuk komutları çalıştırma yetkisi sağlıyor. Tauri v2.1 sürümünden itibaren shell:allow-open kullanımı önerilmediğini ve bunun yerine opener:allow-open kullanılması gerektiğini unutmamak önemlidir.

Komutların Sessizce Başarısız Olduğu Durumlarda İzlenecek Adımlar

Bir komut çalıştırdığınızda hiçbir tepki alamadığınızda, sorunun kaynağını bulmak için aşağıdaki adımları izleyebilirsiniz:

  • Geliştirici araçlarını açın (Tauri geliştirme modundayken Cmd+Option+I). Konsol bölümünde reddedilmiş bir Promise veya izin hatası olup olmadığına bakın. Örneğin, plugin:shell|execute not allowed şeklinde bir hata mesajı görebilirsiniz.
  • Arka uç çıktılarını kontrol edin. Rust tarafındaki hatalar, tauri dev komutunu çalıştırdığınız terminalde doğrudan görüntüleniyor. [tauri] permission denied veya not allowed gibi hataların olup olmadığını araştırın.
  • Detaylı loglama etkinleştirin. Daha fazla arka uç çıktısı almak için terminalde RUST_LOG=tauri=debug komutunu çalıştırın ve ardından tauri dev komutunu yeniden başlatın.
  • Yetkilendirme dosyasını kontrol edin. En sık karşılaşılan sorunlardan biri, yetkilendirme dosyasındaki izin tanımlarının eksik veya yanlış yazılmasıdır. Yetkilendirme dosyasının en başta kontrol edilmesi gereken ilk yer olduğunu unutmayın.

En Sık Kullanılan Yetkilendirmeler ve Örnekler

Uygulama geliştirirken ihtiyaç duyacağınız yaygın izinleri aşağıdaki gibi sıralayabiliriz:

  • core:default — temel izinler
  • fs:read-all — tüm dosyaları okuma yetkisi
  • fs:write-all — tüm dosyalara yazma yetkisi
  • opener:allow-open — URL’leri veya dosyaları açma yetkisi (eski shell:allow-open yerine)
  • path:allow-app-data-dir — uygulama veri dizinine erişim
  • notification:default — bildirim gönderme yetkisi
  • global-shortcut:allow-register — global kısayol kaydetme yetkisi
  • clipboard-manager:allow-read-text — panodan metin okuma yetkisi
  • clipboard-manager:allow-write-text — panele metin yazma yetkisi

Buna ek olarak, shell:allow-execute yetkisi artık belirli bir komut listesine izin vermeyi gerektiriyor. Örneğin, yalnızca adb komutunun çalıştırılmasına izin verirken, diğer tüm komutların yasaklanmasını sağlayabilirsiniz:

{
  "identifier": "shell:allow-execute",
  "allow": [{
    "name": "my-cmd",
    "cmd": "adb",
    "args": true
  }]
}

Dosya Yolu Bazlı Yetkilendirmeler ve Güvenlik

Tauri, dosya sistemi erişimlerinde kapsamlı izinler sunuyor. Geliştirme aşamasında fs:read-all ve fs:write-all kullanımı kolaylık sağlasa da, üretim ortamında bu izinlerin yalnızca gerekli dizinlere sınırlandırılması güvenlik açısından daha doğru olacaktır. Örneğin, yalnızca uygulama veri dizinine erişim sağlamak için şu şekilde bir yetkilendirme tanımlayabilirsiniz:

{
  "identifier": "fs:allow-app-data-read",
  "allow": [{
    "path": "$APPDATA/**"
  }]
}

Bu şekilde, uygulamanızın yalnızca gerekli dizinlere erişmesini sağlayabilir ve potansiyel güvenlik risklerini en aza indirebilirsiniz.

Sonuç ve Öneriler

Tauri v2’nin izin sistemi, uygulamanızın güvenliğini artırmak için tasarlanmış olsa da, geliştiriciler için ilk etapta kafa karıştırıcı olabiliyor. Sessiz başarısızlıklar, izinlerin doğru şekilde ayarlanmadığını gösteren önemli bir işaret olarak karşımıza çıkıyor. Özellikle bir eklenti güncellemesi sonrasında uygulamada beklenmedik davranışlar görüldüğünde, izin tanımlarının değişip değişmediğini kontrol etmek gerekiyor. Örneğin, opener yetkisinin shell:allow-open yerine kullanılmaya başlanması gibi değişiklikler, uygulamada sessiz başarısızlıklara yol açabiliyor.

Bu nedenle, herhangi bir sorunla karşılaştığınızda, yetkilendirme dosyasını ilk kontrol etmeniz gereken yer olduğunu unutmayın. Doğru izinlerin tanımlanması, Tauri uygulamalarınızın sorunsuz bir şekilde çalışmasını sağlayacaktır. Gelecekteki güncellemelerde de izin sistemindeki değişiklikleri takip etmek, uygulamanızın stabilitesini korumak açısından kritik öneme sahip.

Yapay zeka özeti

Tauri v2 uygulamalarında sessiz başarısızlıkların ardındaki izin sorunlarını çözün. Yetkilendirme dosyası ayarları, hata ayıklama adımları ve en sık kullanılan izinler hakkında detaylı bilgiler edinin.

Yorumlar

00
YORUM BIRAK
ID #RZG4VL

0 / 1200 KARAKTER

İnsan doğrulaması

2 + 8 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.