TYPO3 Extension Meta-Manifest
Goals
- declare additional information about extension/package
- to be used by machines (the TYPO3 core system)
- (a bit like substititon for
ext_emconf.php
)
- e.g. in content-security-policy
- e.g. for extension-key mapping
- e.g. for caching behavior
- to be used by humans (to spot capabilities/features/behavior)
- e.g. for searching matching extensions in TER
- e.g. for searching extensions "having a backend module" (which is a capability)
- most probably included into
composer.json
Inspiration
Draft, integrated to composer.json
extra section
{
"name": "vendor/extension",
"type": "typo3-cms-extension",
...
"extra": {
"typo3/cms": {
"extension-key": "workspaces",
"extension": {
"key": "workspaces",
"state": "stable",
"category": "be",
"clearCacheOnLoad": true
}
"assets": [
{
"type": "script",
"url": "^https://www.googletagmanager.com/gtm.js"
},
{
"type": "style",
"url": "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css",
"hash": "sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM",
"description": "Required for properly rendering all styles"
},
{
"type": "script",
"file": "^Resources/Public/JavaScript/"
},
{
"type": "font",
"file": "^Resources/Public/Fonts/my-font.woff"
}
],
"fetches": [
{
"method": "GET",
"url": "https://extensions.typo3.org/fileadmin/ter/extensions.xml.gz"
},
{
"methods": ["HEAD", "POST"],
"url": "^https://spy-ware.olly.de/typo-spy/"
}
],
"features": [
{
"scope": "backend",
"type": "module",
"id": "tx-extension-web-mymodule"
},
{
"scope": "backend",
"type": "contextmenu-item",
"id": "tx-extension-clone-command"
},
{
"scope": "backend",
"type": "toolbar-item",
"id": "tx-extension-current-weather"
}
],
"modifications": [
{
"scope": "filesystem",
"type": "directory",
"path": "fileadmin/form_definitions/"
}
]
}
}
}