Skip to content

Editor Plugin

Cavanshirpro edited this page Sep 19, 2026 · 1 revision

Editör Plugin API v2 ve katalog

English · Türkçe · Languages / Diller

Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe

Native plugin; palette bileşeni, graph node tipi, action ve dock ekleyebilir. Plugin API sürümü 2, interface IID'si dev.jsonapiforge.EditorPlugin/2.0 olur. Bunlar proje JSON hook'undan ve Python SDK adaptöründen ayrı sistemlerdir.

Paket yapısı ve manifest

Manifest NAME.forgeplugin.json, native library ile aynı dizinde bulunur. ZIP kökünde veya bütün dosyaları kapsayan tek taşınabilir üst klasörde tutulabilir. Aşağıdaki hash yalnız yer tutucudur; gerçek final binary SHA-256 ile değiştirilmelidir:

{
  "id": "vendor.plugin-name", "name": "Plugin Name", "version": "1.0.0",
  "apiVersion": 2, "library": "PluginName.so",
  "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
  "permissions": ["workspace.read", "graph.nodes.register"]
}

Windows .dll, macOS .dylib kullanır. Hash lowercase olmalıdır. Library manifest dizini içinde kalmalı; symlink olmamalıdır. ID/permission adları lowercase dotted tanımlayıcılardır ve permission listesi en fazla 32 öğedir.

Import ve etkinleştirme

  1. Publisher, kaynak ve paketin platform/ABI uyumunu inceleyin.
  2. Plugins → Import plugin from ZIP… seçin.
  3. Import sonunda plugin etkinleşmez.
  4. Plugins → Manage plugins… ile ID, version, hash ve permissions'ı inceleyip ayrı etkinleştirin.
  5. Gerekirse Reload approved plugins kullanın.

ZIP importer en fazla 256 entry, 64 MiB arşiv, 64 MiB tek dosya, 128 MiB açılmış veri kabul eder; compression ratio, CRC, path, duplicate/case collision, manifest ve library digest/API kontrolleri uygular. Traversal, absolute path ve symlink reddedilir.

Native geliştirme sözleşmesi

ForgeEditor::IEditorPlugin şu metotları ister: pluginId, displayName, apiVersion, initialize(EditorHost*, QString*), shutdown. QObject plugin'inizde Qt metadata/interface bildirimi gerçek IID ile eşleşmelidir. Host sunumu:

host->addPaletteComponent("Queue", "Resources", queueFragment);
host->addGraphNodeType("Queue Publish", "vendor.queue.publish", defaultProperties);
host->addToolAction(action);
host->addDockWidget(Qt::RightDockWidgetArea, dock);
host->showStatusMessage("Queue tools ready");

Bu API kullanım kesitidir; tam plugin projesi değildir. Aynı Qt sürümü, compiler ABI, platform, CPU ve API ile derleyin. API numarası aynı diye Windows MinGW/MSVC veya Linux/macOS binary'leri birbirine uyumlu olmaz.

Native plugin, desktop kullanıcısının yetkileriyle çalışır. Manifest permissions bir OS sandbox oluşturmaz. SHA-256 içerik bütünlüğünü gösterir; publisher kimliğini kanıtlamaz. Güvenilir imzalı kanal ve insan incelemesi gerekir.

Forge-backed katalog

Katalog normal GET /api/<project>/v1/<resource>?limit=100&offset=0 kaynağıdır. Kayıt alanları plugin_id, name, version, publisher, HTTPS download_url, sha256, permissions, enabled olur. UI en fazla 100 kayıt/2 MiB okur, URL/digest/identity alanlarını doğrular.

Katalog seçimi URL'yi kopyalar; native kodu otomatik download/install/enable etmez. Paket ayrıca açık ZIP import akışından geçer. EditorPluginRegistry örnek uygulaması bu metadata backend'ini gösterir; binary hosting ve publisher imzası ayrı konudur.

Custom graph node'ları tuvalde korunabilir, fakat otomatik compiler yetkisi kazanmaz. Mevcut compiler bunları design-only olarak reddeder. Reviewed export action normal Forge fragment üretip standart doğrulama akışına sokabilir.

Kendi plugin lisansınızın yanında korunan Editor kodunu/markayı dağıtma hakkınız olup olmadığını ayrıca kontrol edin. Projenin üçüncü taraf lisansları kendi koşullarını korur.

Kaynak ve doğrulama

Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.


Wiki ana sayfa · Tüm sayfalar · Sürüm ve bakım

Clone this wiki locally