Skip to main content
Use kind: "extension" and JSON syntax. The registry exposes the kind-specific schema; the SDK’s parsePluginManifest adds semantic checks that JSON Schema cannot express.

Example

This is a contract fixture. The example image and digest are placeholders, not a published or installable plugin. Replace them with an actual immutable artifact before publication.

Required runtime fields

All fields below live at the manifest root alongside name, version and kind. Empty arrays are valid where a plugin declares no corresponding feature. Service names: project, data, db, cache, jobs, events, storage, secrets, http, audit, log. UI slots: project.overview.panel, project.actions, operator.plugin.settings. Paths cannot contain traversal, query strings or external origins.

Capabilities

An action, job or UI slot may request only capabilities declared by its plugin. Read actions cannot request mutation capabilities. Capabilities in a manifest are requests, not grants; host authorization still depends on the installation, actor and customer/project scope.

Data migrations

The v1 contract allows createTable, addNullableColumn, createIndex and addForeignKey. Checksums are SHA-256 hexadecimal values. Migration versions must start at 1 and remain contiguous; tables must agree with declared key columns and foreign-key targets. Arbitrary SQL, executable migration code, destructive schema changes and backfills are outside this contract.

Validation and trust

The registry schema validates structure and preserves the declared extension. The Webdock SDK additionally checks SemVer ranges, dependency uniqueness, readable-schema compatibility, migration ordering, capability relationships, event handlers and key references. Passing the registry validator is necessary but insufficient for host admission. The planned host installer verifies the signed release identity, manifest and descriptor hashes, selected asset size and image digest against operator-established trust. The public signing key is at https://registry.webdock.dev/.well-known/registry-key.json; fetching that key alone does not establish trust. Catalog metadata, publication approval and an MCP login do not activate a runtime. See current implementation status.