SenseCMS.
← All documentation

The extension package contract

Sense CMS package types, manifests, signatures and compatibility rules.

Four package types

Modules provide application features. Plugins integrate with services or events. Addons provide optional administrative tools. Themes own public presentation. The administration workspace belongs to Core, not to a public theme.

Explicit compatibility

Each package declares its type, slug, version, publisher, PHP and Core version bounds, and dependencies in sense-package.json. Version ranges have an inclusive minimum and an exclusive maximum.

Signed inventories

An archive contains a manifest, an Ed25519 signature and a payload with SHA-256 file hashes. Verification requires a publisher key trusted independently of the downloaded archive. PHP extensions execute trusted code; signatures do not create a sandbox.

Controlled paths and size

The verifier rejects traversal, symlinks, hidden runtime files, unlisted payloads and case-colliding paths. Archives are limited to 25 MiB, with at most 100 MiB expanded data and 2,000 payload files.

Current implementation

Archive creation, signature verification and dependency planning are implemented. Signed themes also support operator-CLI installation and rollback. The general module lifecycle, package-owned migrations and package-management interface are still being developed. No public extension catalog is available yet.