The publishing process
Publishing to Experience Edge starts when you trigger a publishing operation to the Experience Edge publishing target. After you start the publishing operation, Sitecore automatically handles the process, which includes creating a publishing manifest, and publishing it to Edge. The Sitecore publishing pipeline identifies the items to publish, and uses them to create the initial publishing manifest.
The manifest is created automatically, taking into account the publishing restrictions of the items, and can't be changed.
Only items under the following paths are included in the manifest:
-
/sitecore/content
-
/sitecore/media library
-
/sitecore/templates
Logging
Before you publish, you can set up a verbose logging process for troubleshooting, to understand which items got published and why.
To enable logging for every item version that is published, create a patch file that uses the traceToLog
setting in the UpdateStatistics
processor of the publishItem
pipeline:
<publishItem help="Processors should derive from Sitecore.Publishing.Pipelines.PublishItem.PublishItemProcessor">
....
<processor type="Sitecore.Publishing.Pipelines.PublishItem.UpdateStatistics, Sitecore.Kernel" runIfAborted="true">
<traceToLog>false</traceToLog>
</processor>
</publishItem>
When traceToLog
is set to true
, publishing information is logged and available in the log file.
An example log record:
6584 11:19:00 INFO ##Publish Item: Name=A content item, Uri=sitecore://master/{EF687BD4-3C0D-4121-8B63-C7B602DF3213}?lang=fr-FR&ver=1, Operation=Updated, ChildAction=Skip, Explanation=Version 'fr-FR_1' was published.
These are the available log details:
-
Operation
- the publish action taken on a publishing candidate (target item). Possible values areskip
,update
,create
, ordelete
. -
ChildAction
- the publish action taken on child items. Possible values areskip
,allow
, orforce
. -
Explanation
- a description of the publishing status, such as whether an item was published and some details.
Publishing the manifest to Experience Edge
The communication with Experience Edge happens through the delivery RPC endpoint. All calls to the endpoint are secured and authorized using bearer tokens. The module creates and refreshes the tokens automatically, using the authority client credentials you configure in the Edge connection string.
When publishing starts, Sitecore runs the publishing process as follows:
-
The JobStart event is published to Experience Edge.
-
The Sitecore GraphQL Schema is generated and the schema entity is published to Experience Edge.
-
The RPC endpoint is called to compare the items to be published with the ones that already exist in Edge.
-
The manifest is reviewed to calculate all the dependent items that need to published:
-
Rendering data source - if the initial manifest contains an item that is used as a rendering data source by some page, that page is added to the manifest.
-
Template - if the initial manifest contains a template item, all items based on that template (directly or through inheritance) are added to the manifest. The newly added items are also checked for page dependencies.
-
Template field - if the initial manifest contains template fields, the owner template is expanded the same way a template is.
-
Language Fallback - language fallback is reviewed for all manifest items, and if the manifest contains a version for a source language, the versions for fallback language(s) are automatically added to the manifest. This feature is disabled by default.
-
The root item of the content site - if the initial manifest contains the root item of the content site, the site information is automatically included in the manifest and available on Edge as the
SiteInfo
entity.
-
-
All items, templates, and template fields in the manifest are mapped to static format entities specific to Experience Edge and published.
-
If the manifest contains pages (items with layout), the layout data is calculated and published to Experience Edge.
-
Media blobs are uploaded to Experience Edge.
-
Media metadata is mapped to static format entities specific to Experience Edge and published.
-
-
If the initial manifest contains the root item of the content site, the
SiteInfo
entity is published if:-
Publishing any language because it is language-agnostic.
-
There are changes to the
rootPath
item.
NoteIf you previously published the
rootPath
item, but you do not have theSiteInfo
entity on Edge, you must republish therootPath
item. -
-
The JobEnd event is published to Experience Edge.
When you use Experience Edge Connector for the first time, perform a full site republish.