Magnolia stores all content in a content repository. The repository implementation we have chosen, Apache Jackrabbit, adheres to the Java Content Repository standard (JCR). A content repository is a high-level information management system that is a superset of traditional data repositories. It implements content services such as:
- Granular content access and access control
- Hierarchical, structured and unstructured content
- Node types, property types (text, number, date, binary)
- Queries (XPath, SQL)
- Import and export.
Repository and workspaces
Here's what the object hierarchy in a repository looks like:
- Repository contains workspaces
- Workspace contains nodes
- Each workspace has a single root node.
- Node contains properties
- Properties store values (data)
Magnolia has one repository,
magnolia, which in turn contains several workspaces:
website. Websites, pages and paragraphs.
config. Configuration settings for everything.
data. Custom data types and data items.
dms. Documents and images, typically binary data.
templates. Page and paragraph templates in the Standard Templating Kit (STK)
userroles. Roles and access control lists (ACL) for granting permissions to users.
usergroups. Groups of users.
users. System, administrative and public user accounts.
Hierarchical content store
A content repository is designed to store, search and retrieve hierarchical data. Data consists of a tree of nodes with associated properties. Data is stored in the properties. They may store simple values such as numbers and strings or binary data (images, documents) of arbitrary length.
JCR standard API for content repositories
Java Content Repository (JCR) is a standard interface for accessing content repositories. The standard decouples the responsibilities of content storage from content management and provides a common API that enables content reuse across the enterprise and between applications.