Skip to main content
Core terms used in the evoX SDK documentation. These concepts are used consistently in both the app and the plugin protocol.

Core concepts

  • Action: A unit of behavior provided by a plugin that can be assigned to a key or dial. Defined in the manifest in the form core.* / integration.* / plugin.<pluginId>.<actionId>.
  • Binding: The concrete instance of an action on a specific key/dial. When the user assigns an action to a key, a binding is created.
  • bindingInstanceId: The context identity of a single binding instance. Image/settings calls are made with this context and are valid only for that instance; it becomes invalid after action.willDisappear.
  • Context: The binding information an event belongs to; carries actionId and bindingInstanceId.
  • Provider: A stable identity stating which source a binding comes from ({kind:'plugin', pluginId, actionId}). In profile persistence the provider is authoritative instead of the title/path.

Security and authorization

  • Capability: A host-controlled permission a plugin can request (e.g. key.display, network.fetch, secret.manage). A call that is not declared and granted returns CAPABILITY_DENIED. See Capability APIs.
  • Trust tier: The runtime and trust boundary of a plugin — T0 (data-only .evoxpack), T1 (trusted local Node), T2 (default-deny sandbox Worker), T3 (special review). See Trust tiers.
  • Host: The trusted party that establishes the plugin session, assigns identity/capabilities/limits and validates all RPCs. It performs the handshake with host.hello.
  • Credential reference: An opaque reference used instead of a raw token ({kind:'secret',name} or {kind:'oauth',provider}). The host decrypts the value from its own encrypted vault; the raw token never returns to the plugin.

Packages and data

  • .evoxpack: evoX’s canonical local/Market package format.
  • action_pack: A package type that carries only data; it contains no executable JS/native/script.
  • Manifest: The manifest.json that defines a plugin (identity, runtime, actions, capability requests). See Plugin manifest.
  • Settings: Persistent setting data belonging to a binding (or plugin-wide). Managed with settings.get/settings.patch; when the user changes a setting in the interface it is reported with action.settingsChanged, and the plugin’s own write is not echoed back to it.
  • Storage: A plugin-private key-value store with a bounded quota (storage.private capability).

App and device

  • Profile: The canonical EvoxProfile manifest that holds the user’s key/page layout. Assignments persist to the real profile.
  • Page: A key layout layer inside a profile.
  • Device: The connected physical hardware. Reported with device.connected/device.disconnected events.
  • Key / dial (knob): The pressable key and rotatable/pressable dial control on the device; they produce the action.keyDown/keyUp and action.dialDown/dialUp/dialRotate events.
  • Market: The catalog that shows only approved evoX-native products. Public web upload/moderation carries no authority; the API remains server-authoritative.