Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

Dev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Sync from CMS 12

Sync content and content types with the Optimizely Content Delivery API when using the Optimizely GraphQL API querying service.

Sync content types and data on your Optimizely Content Management System (CMS) site to the service. You can maintain synchronization through event triggers and as a scheduled job. In general, you want to choose event-driven sync.

The sync job serializes content and content types before sending them to the service using the Content Delivery API. If you have customized the Optimizely Content Delivery API, the Optimizely Graph service reflects those changes.

The sync job also syncs the site definition information. It creates a new content type named SiteDefinition that stores information about the start page of the site and the languages that exist on the site.

SiteDefinition content type contains information such as Start Page, languages, host of the site, the global assets root, and the assets root used by this site.

🚧

Important

The SiteDefintion cannot have multiple content types with the same name. The content type's name must follow the grammatical form as explained by the GraphQL specification. Names in Graph QL

  • Are case-sensitive.
  • Can only start with a letter and may start with a single underscore.
  • Can only consist of Latin letters, Latin numbers, and underscores, which are significant.

Restricted content with Optimizely Graph

Restricted content refers to content that is not visible to users. To designate content as restricted, you need to remove the Read permission for the Everyone group.

Index and access restricted content

Restricted content is indexed into Optimizely Graph. However, it is not accessible when you query data from Optimizely Graph using single-key authentication. To access restricted content, you must utilize Basic or HMAC authentication.

Restricted content in content areas

When a content area is indexed, any referenced content is "inlined" into the area. This lets you query the content area as if the referenced content is part of it. Optimizely Graph does not evaluate user permissions at query time to verify access to content within a content area. Instead it is determined during indexing.

Criteria for content appearance in content areas

For content to be included in a content area, it must meet at least one of the following criteria:

  • The content is public (that is, it has Read permission for the Everyone group).
  • The content is located in the For this Page folder.
  • The content shares read permissions with its parent, and for nested content, permissions are checked against the top-level content.

Example of restricted content for nested content

A page has read access for the groups WebAdmins, Editors A, and Editors B. Inside that page, a block is placed in a content area. The block has read access only for the groups Editors A, Editors B, and Editors C.

When Optimizely Graph delivers content, it enforces access control based on each item's permissions. Because the block does not grant read access to WebAdmins, it is excluded from the Optimizely Graph response, even though the page is available to that group.

As a result, the block is not inlined into the content area and is not available to any user or integration that does not have explicit read access to the block.