Magnolia 5.7 reached extended end of life on May 31, 2022. Support for this branch is limited, see End-of-life policy. Please note that to cover the extra maintenance effort, this EEoL period is a paid extension in the life of the branch. Customers who opt for the extended maintenance will need a new license key to run future versions of Magnolia 5.7. If you have any questions or to subscribe to the extended maintenance, please get in touch with your local contact at Magnolia.
pages
since a Pages app already exists.Referring to a content type
Since the introduction of the Content Types module, you can refer to a content type definition within an app descriptor.
This approach keeps the app descriptor very short. There is no need to specify the below mentioned properties. The content types and content apps frameworks automatically generate and register an app description based on the content type definition.
Example:
!content-type
to reference a content type. (With Magnolia 5.7.2, you must use !with-type
.)You can tailor the app descriptor within the same file by adding additional configuration which will overwrite any configuration with the same name coming from the !content-type
directive. Alternatively create a decoration.
Properties
Here is an example descriptor for a helloworld
app.
appClass: info.magnolia.ui.app.helloworld.HelloWorldApp class: info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor icon: icon-app label: Hello World subApps:
Node name | Value |
---|---|
modules | |
ui-helloworld-app | |
apps | |
helloworld | |
subApps | |
appClass | info.magnolia.ui.app.helloworld.HelloWorldApp |
class | info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor |
icon | icon-app |
label | Hello World |
version | 1.0.0 |
Properties:
subapps | required Node containing subapps. |
appClass | required Fully qualified name of the Java class that contains the app business logic. The class must implement the |
name | optional Name of the app. If a value is not provided, either the file name (without the suffix .yaml) or the JCR node name is used. |
class | optional, default is App descriptor class that reads the configuration. The class must implement the Examples:
|
enabled | optional , default is Enables and disables the app. |
icon | optional CSS class that identifies an icon font used on the app tile. For available names see Icons. |
i18nBasename | optional Message bundle for localized labels. |
label | optional Label displayed on the app icon in the app launcher. |
theme | optional Name of a custom app theme. |
Permissions
The permission to use an app is granted in the permissions
configuration. The subnodes are roles. This allows you to provision the app to certain users in your organization.
In this example the helloworld app is provisioned to travel-demo-editor
and travel-demo-publisher
roles. The role property name (editors
, publishers
) is arbitrary - use any name you like. The value must be a valid role name.
appClass: info.magnolia.ui.app.helloworld.HelloWorldApp class: info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor icon: icon-app label: Hello World permissions: roles: editors: travel-demo-editor publishers: travel-demo-publisher
Node name | Value |
---|---|
modules | |
ui-helloworld-app | |
apps | |
helloworld | |
permissions | |
roles | |
editors | travel-demo-editor |
publishers | travel-demo-publisher |