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

List of workspaces

This is a list of workspaces in the magnolia repository.

WorkspaceWhat it containsHow to viewCreated by
configConfiguration for Magnolia core and all modules.Config appMagnolia core
contactsSample contacts used in the Contacts app.Contacts appContacts module
dataData items for Data module.Data appsData module
damDigital asset management system storage for images and video.Assets appDigital Asset Management module
forumPage comments and forum posts. Forum module
imagingDynamically created images used in teasers. Imaging module
MgnlSystemSystem information for Magnolia internal use.  
MgnlVersionVersioning information for Magnolia internal use.  
resourcesThemes, CSS, JavaScripts and template images. Resources module
scriptsRunning Groovy scripts in AdminCentral.Dev > Groovy scriptsGroovy module
templatesTemplate and paragraph scripts.Config appIn-place Templating module
usersSystem, admin and public users.Security appMagnolia core
userrolesUser roles and ACLs. Created by Magnolia core.Security appMagnolia core
usergroupsUser groups. Created by Magnolia core.Security appMagnolia core
websiteWeb pages, areas and components.Pages appMagnolia core

(info) In Magnolia we sometimes refer to a workspace as a "repository" for historical reasons. But it really is a workspace.

Adding a custom workspace

To add your own workspace:

  1. Create a module descriptor.
  2. Add a repositories section and a workspaces section inside it.
  3. Register your workspace.
  4. Optional: If you need to register custom node types, add a nodeTypeFile section and provide a relative path to the XML file that defines the node types.

In the example below, 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">
  <displayName>Contacts App</displayName>
  <description>Contacts App</description>


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