app definition

App descriptor configuration describes an app. The descriptor assigns the app a name, icon and implementation class. The name of the app content node must be unique as it is used to refer to the app across the system. This means you cannot name your own app pages since a Pages app already exists.

Here is an example descriptor for a helloworld app.

ui-helloworld-app/apps/helloworld.yaml
appClass: info.magnolia.ui.app.helloworld.HelloWorldApp
class: info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor
icon: icon-app
label: Hello World
subApps:
Node nameValue

 
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 

$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") App
 interface.

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 info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor

App descriptor class that reads the configuration. The class must implement the 

$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") AppDescriptor
 interface.

enabled

optional , default is true

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.

Class examples:

  • info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor
  • info.magnolia.ui.contentapp.ConfiguredContentAppDescriptor

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.

ui-helloworld-app/apps/helloworld.yaml
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 nameValue

 
modules

 

 
ui-helloworld-app

 

 
apps

 

 
helloworld

 

 
permissions

 

 
roles

 

 
editors

travel-demo-editor

 
publishers

travel-demo-publisher

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))