Eklentiler
Eklentiler, süre ve bellek sınırlı bir WebAssembly (QuickJS) sandbox’ında çalışır. Bir eklenti yalnızca manifestinde beyan ettiğini (yeteneklerini) yapabilir ve admin bu yetenekleri düz bir dille onaylar. Yüklenemeyen veya kurallarını çiğneyen eklenti kapatılır; site çalışmaya devam eder.
Yetenekler
Bölüm başlığı “Yetenekler”Onaylanırsa bir eklenti:
- içerik ve medya olaylarına tepki verebilir,
- içerik yazabilir (
content.write), - e-posta gönderebilir (
email, dakikada 10), WUPPY_PLUGIN_<ID>_<AD>ortam değişkenlerinden gizli değer okuyabilir,- izinli internet adreslerini çağırabilir (her çağrı kaydedilir),
/api/plugins/<id>/*altında uç sunabilir ve panele sayfa ekleyebilir.
Bir güncelleme daha fazlasını isterse eklenti yeniden onaylanana kadar kapalı kalır.
Kurulum
Bölüm başlığı “Kurulum”- Registry’den: Plugins tanımlı registry’lerde arar, kurar ve mevcut güncellemeleri gösterir. Paketler imzalıdır (Ed25519) ve sağlama toplamıyla sabitlenir; her registry’nin kendi güvenilir anahtarları vardır. Bozuk bir registry diğerlerini etkilemez.
- Klasörden: onay hash’iyle birlikte
wuppy.configdosyasına ekleyin:
pnpm wuppy plugin hash plugins/searchplugins: [{ dir: "plugins/search", approve: "<hash>" }],Plugins her eklentinin durumunu, sürümünü, kaynağını, yeteneklerini, son hatasını, günlüklerini, çağrı ve hata sayılarını ve ayarlarını gösterir. Eklentiler açılıp kapatılabilir, ayarlanabilir ve (registry’den kurulduysa) kaldırılabilir.
Eklenti yazma
Bölüm başlığı “Eklenti yazma”wuppy-plugin komutu eklentileri oluşturur, derler ve imzalar:
wuppy-plugin init my-plugin # manifest.json + plugin.jswuppy-plugin validate my-plugin # manifesti doğrulawuppy-plugin build my-plugin # kod beyan edilmemiş bir yetenek kullanırsa başarısız olurwuppy-plugin keygen # yeni bir Ed25519 anahtar çiftiwuppy-plugin pack my-plugin <key> # imzalı registry paketi ve indeks kaydı