Temel kavramlar
- Action: Plugin’in sağladığı, bir tuşa veya dial’a atanabilen davranım birimi. Manifestte
core.*/integration.*/plugin.<pluginId>.<actionId>biçiminde tanımlanır. - Binding: Bir action’ın belirli bir tuş/dial üzerindeki somut örneği. Kullanıcı bir action’ı bir tuşa atadığında bir binding oluşur.
bindingInstanceId: Tek bir binding örneğinin context kimliği. Görsel/ayar çağrıları bu context ile yapılır ve yalnız o örnek için geçerlidir;action.willDisappearsonrası geçersizleşir.- Context: Bir eventin ait olduğu binding bilgisi;
actionIdvebindingInstanceIdtaşır. - Provider: Bir binding’in hangi kaynaktan geldiğini belirten stabil kimlik (
{kind:'plugin', pluginId, actionId}). Profil kalıcılığında title/path yerine provider authoritative’dir.
Güvenlik ve yetki
- Capability: Bir plugin’in isteyebileceği host-kontrollü yetki (ör.
key.display,network.fetch,secret.manage). Declared ve granted olmayan çağrıCAPABILITY_DENIEDdöner. Bkz. Capability API’leri. - Güven katmanı (trust tier): Plugin’in çalışma ve güven sınırı — T0 (data-only
.evoxpack), T1 (trusted local Node), T2 (default-deny sandbox Worker), T3 (özel review). Bkz. Güven katmanları. - Host: Plugin session’ını kuran, kimlik/capability/limit atayan ve tüm RPC’leri doğrulayan güvenilir taraf.
host.helloile handshake yapar. - Credential referansı: Ham token yerine kullanılan opak referans (
{kind:'secret',name}veya{kind:'oauth',provider}). Host değeri kendi encrypted vault’undan çözer; raw token plugin’e dönmez.
Paket ve veri
.evoxpack: evoX’in canonical yerel/Market paket formatı.action_pack: Yalnız data taşıyan paket türü; executable JS/native/script içermez.- Manifest: Plugin’i tanımlayan (kimlik, runtime, action’lar, capability istekleri)
manifest.json. Bkz. Plugin manifesti. - Settings: Bir binding’e (veya plugin geneline) ait kalıcı ayar verisi.
settings.get/settings.patchile yönetilir; değişimaction.settingsChangedile yayılır. - Storage: Plugin’e özel, bounded kotalı anahtar-değer deposu (
storage.privatecapability).
Uygulama ve cihaz
- Profil: Kullanıcının tuş/sayfa düzenini tutan canonical EvoxProfile manifesti. Assignment gerçek profile persist olur.
- Sayfa (page): Bir profil içindeki tuş düzeni katmanı.
- Cihaz (device): Bağlı fiziksel donanım.
device.connected/device.disconnectedeventleriyle bildirilir. - Tuş / dial (knob): Cihaz üzerindeki basılabilir tuş ve döndürülebilir/basılabilir dial kontrolü;
action.keyDown/keyUpveaction.dialDown/dialUp/dialRotateeventlerini üretir. - Market: Yalnız onaylı evoX-native ürünleri gösteren katalog. Public web yükleme/moderasyon authority taşımaz; API server-authoritative kalır.
