Magnolia stores content in the
magnolia repository. The repository is further divided into workspaces.
List of workspaces
Workspaces in the
|Workspace||What it contains||How to view it||Created by|
|Categories assigned to content.||Categories app||Categorization module|
|Configuration for Magnolia and all modules.||Config app||Magnolia|
|Sample contacts used in the Contacts app.||Contacts app||Contacts module|
|Digital asset management system storage for images and video.||Assets app||Digital Asset Management module|
|Page comments and forum posts.||Forums app||Forum module|
|Sitemap data||Google Sitemap app||Google Sitemap module|
|Dynamically created images used in teasers.||JCR Browser||Imaging module|
|Passwords managed by the Passwords manager module.||JCR browser||Password manager module|
|Marketing tags – snippets of code inserted on Web pages.||Marketing Tags app||Marketing Tags module|
|Messages such as publication request approvals.||Tasks app||AdminCentral module|
|System information for Magnolia internal use.|
|Versioning information for Magnolia internal use.|
|Usage metrics acknowledgement status.|
|RSS feeds||Feeds app||RSS Aggregator module|
|Groovy scripts||Groovy app||Groovy module|
|Sample blogposts used in the Stories app.||Stories app||Stories app|
|Content tags – keywords or terms assigned to an item of content.||Tags app||Content Tags module|
|Tasks||Tasks app||Task Management module|
|(typically nothing, legacy workspace for in-place templates)||JCR Browser||In-place Templating module|
|Tours of the travel demo.||Tours app||Tours module|
|System, admin and public users.||Security app||Magnolia|
|User roles and ACLs.||Security app||Magnolia|
|User groups.||Security app||Magnolia|
|Visitor information for GDPR compliance.||Visitors app||Magnolia|
|Web pages, areas and components.||Pages app||Magnolia|
In Magnolia we sometimes refer to a workspace as a "repository" for historical reasons. But it really is a workspace.
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.
ExampleLine 2: When the definition item is loaded, and if there is no workspace registered by the given name and the
autoCreateproperty 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:
- Defining JCR node types and workspaces
- Content type Data source definition
- Part I - My first content type
With a Magnolia Maven module descriptor
To add your own workspace:
- Create a module descriptor.
- Add a
workspacessection, and register your workspace inside it.
Optional: To register custom node types, add a
nodeTypeFilesection 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.
Naming the 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