Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Package format

A .memona-plugin package is a ZIP archive with these root entries:

manifest.json   required
plugin.wasm     required WebAssembly component
README.md       optional UTF-8 text
LICENSE         optional UTF-8 text
icon.png        optional PNG

Version 1 rejects other entries, duplicate paths, directories, symlinks, encrypted archives and paths that could escape the archive root. There are no install hooks or executable frontend assets.

Manifest

{
  "schemaVersion": 1,
  "id": "your-publisher/my-provider",
  "name": "My filesystem",
  "version": "0.1.0",
  "apiVersion": "0.1.0",
  "description": "Connect to my filesystem service.",
  "license": "MIT",
  "entry": "plugin.wasm",
  "networkHosts": ["files.example.com"],
  "providers": [
    {
      "id": "files",
      "name": "My filesystem",
      "schemes": ["myfiles"],
      "configFields": [
        {"key": "endpoint", "label": "Service URL", "kind": "text", "required": true},
        {"key": "token", "label": "Access token", "kind": "password", "required": true}
      ]
    }
  ]
}

Replace the example publisher and host with ones you own. Your verified publisher account must own the publisher portion of the package ID.

FieldMeaning
schemaVersionManifest shape; currently 1.
idImmutable publisher/plugin identifier.
versionCanonical semantic release version.
apiVersionMemona plugin API version; currently 0.1.0.
entryMust be plugin.wasm in this format.
networkHostsDeclared network destinations; connection grants still apply.
providersStable provider identities and declarative configuration fields.

Publisher/plugin/provider slugs use lowercase ASCII letters, digits and hyphens, begin and end with a letter or digit, and have at most 64 characters. Human names can use other languages. Configuration kind is text, password or boolean. Never place a credential in a manifest or a password default.

An empty networkHosts list declares no network access. A provider for arbitrary self-hosted endpoints may declare "*"; users still grant exact destinations per connection. Connection grants never accept a wildcard, and private-network access requires its separate connection setting.

Limits and compatibility

ItemLimit
Compressed package32 MiB
Expanded archive total128 MiB
WASM component64 MiB
Manifest64 KiB
README or license256 KiB each
PNG icon1 MiB

The same validation runs on the store and in Memona. Components must implement the full provider interface, including optional-operation methods that may return unsupported, and import only supported host services.

Each published ID/version permanently identifies one byte sequence and SHA-256 digest. Correct a release by incrementing its version. Withdrawing a release prevents new catalog installations; it does not silently remove installed code.