Developer docs/Extension reference
addon.json manifest
| Field | Type | Required | Description |
|---|---|---|---|
id | String | yes | |
name | String | yes | |
version | String | yes | |
kind | String | yes | |
engine | String | yes | |
description | String | no | |
author | String | no | |
permissions | Vec<String> | no | |
settings | Vec<SettingSpec> | no | |
migrations | Vec<String> | no | |
files | BTreeMap<String, String> | no | |
provides | Option<String> | no | WASM addons (engine: "wasm"): the engine id this addon provides (stripe, pterodactyl, ...), the WIT ABI and the component path. |
abi | Option<String> | no | |
wasm | Option<String> | no | |
capabilities | Option<Value> | no | Sandbox capabilities approved at install (http allowlist, secrets, kv, events). |
ui | Option<Value> | no | Declarative admin/client pages and widgets (see addon_ext::validate_ui). |
i18n | Option<Value> | no | Strings for ui, served as plugin.<id>.<key>: { "en": {...}, "ro": {...} }. |
limits | Option<Value> | no | Per-addon sandbox limits (memory_mib, timeout_secs, fuel), at most the admin maxima (pelty_wasm::limit_maxima). |
Source: crates/pelty-api/src/addons.rs (Manifest).
#Settings
| Field | Type | Required | Description |
|---|---|---|---|
key | String | yes | |
label | String | no | |
kind | String | no | text | number | bool | select | textarea | secret (sealed at rest, masked on read) |
required | bool | no | |
choices | Vec<String> | no | |
default | Option<Value> | no |
Source: crates/pelty-api/src/addons.rs (SettingSpec).
#capabilities
See Capabilities.
#ui
See UI schema.
#Full example