Workspaces

Magnolia stores content in the magnolia repository. The repository is further divided into workspaces.

List of workspaces

Workspaces in the magnolia repository:

information_source: In Magnolia we sometimes refer to a workspace as a

repository for historical reasons. But it really is a workspace.

Workspace What it contains How to view it Created by

category

Categories assigned to content.

Categories app

Categorization module

config

Configuration for Magnolia and all modules.

Config app

Magnolia

contacts

Sample contacts used in the Contacts app.

Contacts app

Contacts module

dam

Digital asset management system storage for images and video.

Assets app

Digital Asset Management module

forum

Page comments and forum posts.

Forums app

Forum module

googleSitemaps

Sitemap data

Google Sitemap app

Google Sitemap module

imaging

Dynamically created images used in teasers.

JCR Browser

Imaging module

keystore

Passwords managed by the Passwords manager module.

JCR browser

Password manager module

marketing-tags

Marketing tags – snippets of code inserted on Web pages.

Marketing Tags app

Marketing Tags module

messages

Messages such as publication request approvals.

Tasks app

AdminCentral module

MgnlSystem

System information for Magnolia internal use.

MgnlVersion

Versioning information for Magnolia internal use.

profiles

Usage metrics acknowledgement status.

JCR Browser

AdminCentral module

resources

CSS files, JavaScript files

Resources app

Resources module

rss

RSS feeds

Feeds app

RSS Aggregator module

scripts

Groovy scripts

Groovy app

Groovy module

stories

Sample blogposts used in the Stories app.

Stories app

Stories app

tags

Content tags – keywords or terms assigned to an item of content.

Tags app

Content Tags module

tasks

Tasks

Tasks app

Task Management module

templates

(typically nothing, legacy workspace for in-place templates)

JCR Browser

In-place Templating module

tours

Tours of the Travel Demo.

Tours app

Tours module

users

System, admin and public users.

Security app

Magnolia

userroles

User roles and ACLs.

Security app

Magnolia

usergroups

User groups.

Security app

Magnolia

visitors

Visitor information for GDPR compliance.

Visitors app

Magnolia

website

Web pages, areas and components.

Pages app

Magnolia

Adding a custom workspace

With Magnolia Content Types

By utilizing the Magnolia Content Types module you can define custom JCR content types and workspaces within light modules.

Defining content types within light modules can be accomplished on a running Magnolia system without redeploying the WAR file of your Magnolia instances and without restarting the instance or a module. This makes it a perfect approach if you have a Magnolia Cloud subscription package.

In just one YAML file you can define a JCR workspace, a node type and namespaces.

Example

Line 2: When the definition item is loaded, and if there is no workspace registered by the given name and the autoCreate property is set to true, the system will register the workspace.

For further details about the ways to define a JCR workspace and node types please refer to:

With a Magnolia Maven module descriptor

To add your own workspace:

  1. Create a module descriptor.

  2. Add a repositories section, a workspaces section, and register your workspace inside it.

  3. Optional: To register custom node types, add a nodeTypeFile section and provide a relative path to the XML file that defines the node types.

Example: The Contacts app module registers a workspace named contacts in the magnolia repository. It also registers a custom node type which is defined in a separate XML file. This is an abbreviated snippet from the complete Contacts app module descriptor.

contacts.xml module descriptor

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module SYSTEM "module.dtd">
<module>
  <name>contacts</name>
  <displayName>Contacts App</displayName>
  <description>Contacts App</description>
  <version>${project.version}</version>

  <dependencies>
    <dependency>
      <name>ui-admincentral</name>
      <version>5.1/*</version>
    </dependency>
  </dependencies>

  <repositories>
    <repository>
      <name>magnolia</name>
      <workspaces>
        <workspace>contacts</workspace>
      </workspaces>
      <nodeTypeFile>/mgnl-nodetypes/magnolia-contacts-nodetypes.xml</nodeTypeFile>
    </repository>
  </repositories>
</module>

naming a workspace

Magnolia uses a defined workspace name also for creating a backend database table, which means that you must follow table naming rules for your database.

In H2, the default JCR persistency layer in Magnolia 5.5+, the name (non-quoted)

  • Must begin with a character from the A-Z range or with an undescore character.

In case of the Derby database, which was the default JCR persistency layer before the release of Magnolia 5.5, the ordinary identifier (i.e. the non-quoted name)

  • Must begin with a letter and, contain only letters, underscore characters (_), and digits.

  • The permitted letters and digits include all Unicode letters and digits, but Derby does not attempt to ensure that the characters in identifiers are valid in the database’s locale.

For more information, see also

Feedback