Skip to content

Eklentiler

Pumpkin, yetenek tabanlı (capability-based) güvenliğe sahip bir WebAssembly (WASM) eklenti çalışma zamanı sunar. Eklenti davranışı, imza doğrulaması ve izinler pumpkin.toml dosyasındaki [plugins] altında yapılandırılır.

Yapılandırma

toml
[plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true

# Optional per-plugin overrides
[plugins.overrides.my_plugin]
enabled = true
allow_unsigned = true
max_memory_mb = 128
allowed_permissions = ["fs:read:data"]
blocked_permissions = ["network:outbound"]
loopback_only = true

[plugins.overrides.my_plugin.environment]
API_KEY = "example_secret"

Genel Eklenti Ayarları

  • enabled: Eklenti çalışma zamanını etkinleştiren veya devre dışı bırakan ana anahtar (varsayılan: true).
  • hot_reload: plugins/ dizinini izler ve çalışma zamanında değiştirilen eklentileri otomatik olarak yeniden yükler (varsayılan: false).
  • ask_permission_confirmation: Bir eklenti onaylanmamış yetenekler/izinler istediğinde sunucu konsolunda onay istemi görüntüler (varsayılan: true).
  • allow_unsigned: İmzasız WASM eklentilerinin yüklenmesine izin verir (varsayılan: true).
  • allowed_permissions: Etkileşimli konsol istemlerini atlayarak tüm eklentiler için genel olarak önceden onaylanmış izinlerin listesi (varsayılan: []).
  • blocked_permissions: Tüm eklentiler için genel olarak engellenen izinlerin listesi (varsayılan: []).
  • inherit_env: Ana makine ortam değişkenlerinin varsayılan olarak eklenti WASI yalıtım alanlarına (sandbox) aktarılıp aktarılmayacağı (varsayılan: false).
  • loopback_only: Eklentilerden giden ağ bağlantılarının yalnızca 127.0.0.1 / localhost ile sınırlandırılıp sınırlandırılmayacağı (varsayılan: false).
  • max_memory_mb: (İsteğe bağlı) Eklenti örneği başına megabayt (MB) cinsinden genel maksimum bellek sınırı.
  • verify_signatures: Pumpkin'ın yüklemeden önce WASM eklentilerindeki şifreleme imzalarını doğrulayıp doğrulamayacağı (varsayılan: true).

Eklenti Başına Geçersiz Kılmalar

[plugins.overrides.<eklenti_adı>] altında belirli eklentiler için izinleri ve ortam değişkenlerini ayrıntılı olarak yapılandırın:

  • enabled: Bu eklentiyi etkinleştirir veya devre dışı bırakır (varsayılan: true).
  • allow_unsigned: Bu eklentinin imzasız çalışıp çalışamayacağını geçersiz kılar (true/false).
  • max_memory_mb: Özellikle bu eklenti için ayrılan MB cinsinden maksimum bellek sınırı.
  • allowed_permissions: Bu eklenti için önceden onaylanmış izinler.
  • blocked_permissions: Bu eklenti için açıkça engellenmiş izinler.
  • loopback_only: Bu eklenti için geri döngü (loopback) ağ kısıtlamasını geçersiz kılar.
  • environment: Doğrudan eklentinin WASI ortamına aktarılan özel ortam değişkenleri tablosu.

MIT Lisansı altında yayınlandı.