Magnolia 4.5 reached end of life on June 30, 2016. This branch is no longer supported, see End-of-life policy.
Magnolia has one repository, magnolia
, which in turn contains several workspaces. There is a workspace for storing website content, another for user accounts, third for configuration and so on. In JCR terms these are all workspaces. In Magnolia terms we sometimes refer to them as repositories for historical reasons. To learn more about repositories and workspaces see Content storage and structure.
You can see the content of the website
, config
, templates
, resources
, data
and dms
workspaces in AdminCentral. Configure a custom JCR browser for the other workspaces.
Workspace | Contents |
---|---|
config | Configuration for Magnolia core and all modules. Go to Configuration menu. Created by Magnolia core. |
data | Data items for Data module. Go to Data > JCR Browser to view. All the rest (types, dialogs, trees, importers, custom commands etc.) are stored in the config workspace. Created by Data module. |
dms | Document management system. The Documents menu displays an abstracted view of the workspace. By configuring a JCR Browser you can see more details. Created by DMS module. |
Expressions | Workflow definitions. Go to Configuration > Workflows to edit. Created by Workflow module. |
forum | Page comments and forum posts. Created by Forum module. |
imaging | Images created by the Imaging module. These are dynamic derivative images the module generates automatically from a user-provided source image. They are used in teasers. Created by Imaging module. |
MgnlSystem | For Magnolia internal use. Created by Magnolia core. |
MgnlVersion | Versioning information for Magnolia internal use. Created by Magnolia core. |
resources | Themes, CSS, JavaScripts and template images. Go to Templating Kit > Resources. Created by Resources module. |
Scripts | Running Groovy scripts in AdminCentral. Created by Groovy module. |
Store | Running workflows. Created by Workflow module. |
templates | Template and paragraph scripts. Go to Templating Kit > Templates. Created by In-place Templating module. |
usergroups | User groups. Created by Magnolia core. |
userroles | User roles and ACLs. Created by Magnolia core. |
users | System, admin and public users. Created by Magnolia core. |
website | Web pages and paragraphs. Go to Tools > JCR Browser (website) to view content. Created by Magnolia core. |
Each workspace contains a single-rooted tree of items. An item is either a node or a property. Each node may have child nodes and child properties. Properties cannot have children; they are the leaves of the tree. All of the actual content in the repository is stored within the values of the properties.
Here's what the object hierarchy in a repository looks like:
In its default configuration Magnolia Community Edition has the following workspaces:
config
. Configuration settings for everything.website
. Websites, pages and paragraphs. This is where most of your site content is stored.users
. System, administrative and public user accounts.usergroups
. Groups of users.userroles
. Roles and access control lists (ACL) for granting permissions to users.dms
. Documents and images, typically binary data.mgnlSystem
. For Magnolia internal use. Created by Magnolia core.mgnlVersion
. Versioning information for Magnolia internal use. Created by Magnolia core.Individual modules such as the Standard Templating Kit can add their own workspaces:
templates
. Page and paragraph templates in the Standard Templating Kit (STK)resources
. JavaScript, CSS stylesheets and image files used by the STK and themes.data
. Custom data types and data items. Created by the Data module.imaging
. Images created by the Imaging module.forum
. Page comments and forum posts. Created by Forum module.packager
. Content stored by the Packager module.Expressions
. Workflow definitions. Created by Workflow moduleStore
. Running workflows. Created by Workflow module.Workspaces are mapped to repositories in WEB-INF/config/default/repositories.xml
.
<RepositoryMapping> <Map name="website" repositoryName="magnolia" workspaceName="website" /> <Map name="config" repositoryName="magnolia" workspaceName="config" /> <Map name="users" repositoryName="magnolia" workspaceName="users" /> </RepositoryMapping>
The ability to map a workspace to a named repository provides interesting possibilities. While Magnolia keeps all workspaces in one repository by default, you don't have to. You could map a workspace to a different repository in order to:
The changes you make to nodes and properties are transient in the workspace. Only when the system performs a workspace save operation are the changes persisted into permanent storage such as a database.