Skip to content

Extension Manifest Reference Since 3.3.0

Every extension requires an extension.json manifest file in its root directory. This file declares the extension’s identity, requirements, and capabilities.

{
"id": "acme/seo-pro",
"name": "SEO Pro",
"description": "Advanced SEO tools for Total CMS",
"version": "1.2.0",
"requires": {
"totalcms": ">=3.3.0",
"php": ">=8.2",
"extensions": {
"acme/analytics": ">=1.0.0"
}
},
"permissions": [
"twig:functions",
"twig:filters",
"cli:commands",
"routes:admin",
"admin:nav",
"events:listen",
"settings:read",
"settings:write"
],
"min_edition": "standard",
"entrypoint": "Extension.php",
"settings_schema": "settings-schema.json",
"author": {
"name": "Acme Corp",
"url": "https://acme.example.com"
},
"license": "proprietary"
}

Unique identifier in vendor/name format. Must use lowercase alphanumeric characters and hyphens only.

"id": "acme/seo-pro"

Human-readable name displayed in the admin UI and marketplace.

"name": "SEO Pro"

Semantic version number (e.g. 1.0.0, 2.1.3).

"version": "1.2.0"

Short description of what the extension does.

"description": "Advanced SEO tools for Total CMS"

Version constraints for Total CMS, PHP, and other extensions.

"requires": {
"totalcms": ">=3.3.0",
"php": ">=8.2",
"extensions": {
"acme/analytics": ">=1.0.0"
}
}

Extensions listed under extensions are loaded before this extension (dependency ordering).

Declares what the extension can do. These are shown to the user before installation. An extension that tries to use a capability not declared in its permissions may be blocked in future versions.

PermissionDescription
twig:functionsRegister custom Twig functions
twig:filtersRegister custom Twig filters
twig:globalsRegister Twig global variables
cli:commandsRegister CLI commands
routes:apiRegister REST API endpoints
routes:adminRegister admin pages
admin:navAdd items to the admin navigation
admin:widgetsAdd dashboard widgets
events:listenSubscribe to content events
fields:registerRegister custom field types
settings:readRead extension settings
settings:writeWrite extension settings
container:definitionsRegister DI container services

Minimum Total CMS edition required. The extension will not load on lower editions.

ValueDescription
liteAvailable to all editions (default)
standardRequires Standard or higher
proRequires Pro or higher
"min_edition": "pro"

Relative path to the PHP file containing the ExtensionInterface implementation. Defaults to Extension.php.

"entrypoint": "Extension.php"

Relative path to a JSON Schema file that defines the extension’s settings. Used to render settings forms in the admin UI.

"settings_schema": "settings-schema.json"

Author information displayed in the admin UI and marketplace.

"author": {
"name": "Acme Corp",
"url": "https://acme.example.com"
}

License identifier (e.g. MIT, proprietary).

"license": "MIT"