arrow-down
    1. Overview
    2. Core concepts
    3. Using docs
    4. Intro Videos
    5. Tutorials
    1. Intro
    2. GraphQL API
    3. Media API
    4. Extending the API
    5. Component API
    1. Content Studio
      1. Branches
    2. Layers
      1. Lifecycle
      2. Media
      3. Attachments
      4. X-data
        1. Page templates
        2. Fragments
      5. Variants
      6. Permissions
      7. Versions
    3. Sites
      1. Visual editor
    4. Publishing
    1. Introduction
      1. Controllers
      2. Globals
      3. Events
      4. HTTP Request
      5. HTTP Response
      6. Error handler
      7. Filters
      8. Templating
      9. Localization
      10. Websocket
      11. Tasks
      12. Main controller
      13. Java bridge
      1. Admin Lib
      2. Application Lib
      3. Auditlog Lib
      4. Authentication Lib
      5. Cluster Lib
      6. Common Lib
      7. Content Lib
      8. Context Lib
      9. Event Lib
      10. Export Lib
      11. Grid Lib
      12. I18N Lib
      13. IO Lib
      14. Mail Lib
      15. Node Lib
      16. Portal Lib
      17. Project Lib
      18. Repo Lib
      19. Scheduler Lib
      20. Schema Lib
      21. Tasks Lib
      22. Value Lib
      23. VHost Lib
      24. Websocket Lib
    2. Other Libraries
      1. CLI
      2. Sandboxes
      3. Code
      4. Building
      5. Configuration
      6. TypeScript
    3. Building APIs
      1. Mappings
      2. Components
      3. Processors
      4. Contributions
    4. Building Webapps
      1. ID providers
      2. Admin Apps
      3. Admin Widgets
    1. Architecture
      1. TODO
      1. Navigating
      2. Users
      3. Applications
      4. Data management
      5. System info
      6. Audit Logs
      7. Task management
      1. Portal
      2. IDprovider
      3. Management
      4. Statistics
      1. Nodes and repos
      2. Properties
      3. Indexing
      4. Branches
      5. Editors
      1. DSL Queries
      2. NoQL Queries
      3. Filters
      4. Aggregations
      5. Highlighting
      1. ID providers
      2. System ID provider
      3. Users and groups
      4. Roles
      1. Strategies
      2. Distributions
      3. Docker
      4. Kubernetes
      5. Systemd
      6. Vhosts
      7. Configuration
      8. Backup & restore
      9. Clustering
      10. Observability
      1. Notes
      2. Upgrade
      3. Upgrading Apps
        1. Asset service
        2. HTTP service
        3. Image service
    1. Best practice
        1. AttachmentUploader
        2. Checkbox
        3. Combobox
        4. ContentSelector
        5. ContentTypeFilter
        6. CustomSelector
        7. Date
        8. DateTime
        9. Double
        10. GeoPoint
        11. HtmlArea
        12. ImageSelector
        13. Long
        14. MediaSelector
        15. Radiobutton
        16. Tag
        17. TextArea
        18. TextLine
        19. Time
        1. Field set
        2. Item set
        3. Option set
      1. Mixins
      2. Localization
      3. Styles
    2. Content Types
    3. X-data
    4. Macros
      1. Pages
      2. Regions
      3. Part component
      4. Layout component
      5. Text component
      6. Component Filtering
      7. Component Indexing
    1. Marketplace
    2. Market guidelines

Content projects

Contents

Create independent content repositories for your different teams and projects.

Introduction

Content projects represent the starting point of XP’s CMS. In order to create sites and content, you first need to create a project. Project defines default permissions and other useful settings for your content and editors.

Project settings

Basics

  • Display name - a human readable name

  • Identifier - a unique id within the installation. Cannot be changed when first created

  • Default language - Specifies the default language for content created in the project

Access mode

Project access mode defines default read permissions for it’s content. The available values are:

  • Public (Everyone can read the content)

  • Private (only users with project roles can read the content)

  • Custom (a specific list of principals can be granted access to read the content, i.e. Employees)

To handle private and custom mode, a special "viewer" role is created and given read access to the content items.

Roles

To provide access to a project or manage it, users can be granted special roles. The following roles are available per project:

  • Contributor - Access to project and issues (must be given specific permissions to create or manage any content)

  • Author - Same as contributor, but can additionally create and update content anywhere in the structure

  • Editor - Same as Author, but with full permissions and access to rich-text editor source mode

  • Owner - Same as Editor, but can also manage the project settings

For each project, dedicated principal roles are created. The roles are named as follows: com.enonic.cms.project.<id>.<roletype>

An example might be com.enonic.cms.myproject.author.

Applications

XP 7.12.0

Applications can be assigned directly to a content project. Most functionality, schemas (content types, mixins, x-data) as well as controller mappings be available within the scope of the project, until a site item appears.

Unlike sites, content at project level does not support pages, fragments and page page templates, so content preview and rendring must be done directly via Mappings.

It is also worth noting that configurations of applications assigned to a project will be published instantly - unlike changes to a site.

Sites override project applications. If a site should use an application already assigned to its project, you must assign the application directly to the site.

Layered projects inherit application settings from parent layers, just like .

Sites inside the project are isolated and have no access to project’s or each other’s apps.

Storage

Another important purpose of projecs is to strictly isolate the content from other projects. As such, each project gets a dedicated repository.

This means, that editors of a particular project will not be able to see, use or link to content within other projects.

Site engine

Site engine provides access to content in a specific branch of a specific project at /site/{projectId}/{branch}, where {projectId} is a unique project identifier. For example, draft items of a project with identifier ´myproject´ can be accessed via internal path /site/myproject/draft.

API

To programmatically manage projects, use the project API


Contents

Contents

AI-powered search

Juke AI