Sitecore Content Hub Developer Certification Preparation Notes

As far as I see, this blog article is notes for future since most of the aspects covered in the exam are practical  scenarios. So, this blog article will help  me create more articles in future with each of the points here as a topic for detailed analysis! I can then use my analysis in my projects. To  me, the exam as well as this notes is actually an entry-point wherein you get an idea about the area!

The Sitecore Contenthub Developer certification is actually a super-set of Sitecore Contenthub Administration certification exam.

Unfortunately, I don't remember seeing a split-up of questions based on competency in Sitecore elearning. So, I've tried to cover as-much here!

Schema design is the most crucial area that will decide pass or failure in the exam!

___________________________________________________________________________

Documentation: https://docs.stylelabs.com/contenthub

Administration Competencies:

Schema Design 

UI Configuration: Search Component and Mass Edit 

Branding and Theme, Custom Home Pages 

Media Processing 

Digital Rights Management 

Data Import and Export 

Security: Basic and Advanced 

Reporting 

Enterprise Domain Model: Schema and Metadata Management 

UI and Advanced Pages 

Entity Printing 

Create and Configure a New Workflow 

Developer Competencies:

Metadata Processing Scripts 

Develop External Page Components 

Develop Web-enabled Action Scripts 

Develop Triggers, Actions, and Action Scripts to Implement Custom Business Logic in Response to Entity Changes 

Implement User Sign-in Scripts  

Develop LINQ Queries in Combination with Action Scripts that Run In- Process and Out-of-Process 

___________________________________________________________________________

The Sitecore  Contenthub Developer certification has the following split:

Total questions: 60

Duration: 120 mins

Admin competency: 60% (36 questions)

Developer competency: 40% (24 questions)

Pass %: 80

In case of Sitecore  Contenthub Administration certification exam, the details are as follows:

Total questions: 50

Duration: 100 mins

Pass %: 80

Each Exam cost: USD 105 (if you go through Sitecore elearning)

The contenthub admin questions are based on controls and questions get to the level of tab names or toggle features. So, apart from familiarity in a sandbox environment, it is also  necessary to read the help text there beside controls! 

-------------------------------------------------------------------------------------------------------------

Actions are components used to perform specific tasks. They can be manually fired through ui actions or automatically fired through a in-built trigger or an api

Action types:


The Start state machine action allows users to automatically start a State flow via the action.

_________________________________________________________________________

Action scripts are used for internal  integration


They fall  in two categories:

A. Action scripts are executed due to a trigger in multiple phases:

Can be executed in-process as well  as in the background

1. Pre-phase or Pre-commit phase script
2. Security phase script
3. Validation phase script
4. Audit phase script
5. Post-commit or Post-phase script

B. 

User sign-in scripts
User pre-registration scripts
User post-registration scripts
Metadata or Media processing scripts

In-process scripts execute in multiple phases while background scripts execute in one-phase.

Important area for the exam: both internal  integration and external integration. Questions could be inline with pick an in-process script from the list!

------------------------------------------------------------------------------------------------------------

Steps to fire an action script (type A above) using a trigger:

1. Create and Publish the action script
2. Create an Action of type action script and Link it with the script
3. Create a new Trigger and set the trigger's Objective to Entity Creation and Entity Modification
    - In the trigger conditions, add the entity definition asset and add a new condition
    - Add the action under respective (Pre-commit/security/validation/audit/post-commit) action
4. Save and enable the trigger

I remember the above steps using this shorter sentence; "PALTO condition action enabled"

These steps  are important to remember since answer options could jumble these steps and you will be left to pick one!


________________________________________________________________________

Web-Enabled Action Scripts:

Context.Data comes in as JToken

JToken must be convert to JObject to read the properties and relations

Context.Result is assigned the JObject

public interface IMailTemplate : ITypedEntity, IEntity, IResource, IDirtyTracking

For SendConfirmationEmailAsync to work, you need to set EnableConfirmationMail to true in the settings.

Separate code lines for reference, no relation between one line and previous:

using System.Linq;
using Stylelabs.M.Base.Querying;
using Stylelabs.M.Base.Querying.Linq;
 

var query=Query.CreateQuery(entities=> from e in enitites where e.Property("Title").Contains("logo") select e);

long? id=await MClient.Querying().SingleIdAsync(query);

The MClient object is always available and can be used by all Script types.

if (Context.ExternalUserInfo?.Provider == "Google")

Context.User

Context.Asset

var entity = Context.Target as IEntity;

var filename= await entity.GetPropertyValueAsync<string>("FileName")

var relation = await Context.User.GetRelationAsync<IChildToManyParentsRelation>("UserGroupToUser");

await MClient.Entities.SaveAsync(Context.Asset);

Context.User or Context.Asset can be built and saved in case of above line

A very important area for the developer exam, most questions span across; querying, linq, asynchronous calls, context, ExternalUserInfo, MClient. 

In case of the developer exam, I felt that it is easier to score more in the 40% developer code-related questions rather than the 60% admin-related questions. Actually easy to thorough the code-related areas from the documentation.

______________________________________________________________________________

External Component

Used to integrate Contenthub with external libraries like vue or handlebars js

The code tab has javascript code since its dependent on resources field and this field points to external js files

The template field holds html code


At least one question here since it is very important to know what code to write where while using content hub.

______________________________________________________________________________

StateMachine viewer: At least one question about this component

______________________________________________________________________________

-----------------------------------------------------------------------------------------------------------------------

Entity List:

https://docs.stylelabs.com/contenthub/3.4.x/content/user-documentation/manage/data/entities/relation-diagram.html

Member: Field in an entity

Member Group: Group of fields from which users can be secured using user group

Conditional tab is used to set conditions to display an entity, the conditions are set based on taxonomy

Toggle the Secured option in Advanced tab to give access to specific users or user groups

Member groups are mapped to panels in the asset detail page 

Asset detail page is the template page created for asset entity - CH provides the ability to create detail pages from entities

Entity details component is used in detail page to display the members in a customised manner

https://wttech.blog/blog/2020/domain-modelling-in-sitecore-content-hub/

Entities diagram:

Relation Diagram:


Good to familiarise entity names, note that User and UserGroup are not prefixed with M in the above diagram but they still are entities in the system.

**************************************************************************

Theme:

Logo is set in Images tab

Logo
Your logo must be an SVG file (with a valid viewBox attribute)

Notification icon
This icon is used in web push notifications. The extension needs to be JPG, PNG, GIF, WEBP, ICO, CUR or BMP. The recommended dimensions are 192x192 px.

Favicon
Your favicon must be an ICO or PNG file

A few questions in this area about themes

---------------------------------------------------------------------------------------------------------------

AssetTypeToAsset: 

Parent: Asset Type

Child: Asset

Cardinality: OneToMany

Relationships and cardinality are very important for the exam

---------------------------------------------------------------------------------------------------------------

Allow manual sorting toggle:

This toggle  is used to sort a list of search results manually and save the search result. This is possible only with certain settings like specific page type and items present in a list etc.


---------------------------------------------------------------------------------------------------------------

Important to go through all toggles in a relation:


Very important area for the exam and generally while using content hub

---------------------------------------------------------------------------------------------------------------

Convert image task:

Used to convert an image or document to an image

---------------------------------------------------------------------------------------------------------------

Inherits Security vs Secured

Secured toggle: Used to secure the relation so that only a  specific user group can see it

Inherits security: Used to control  if the relation inherits the security from the entity - used for pages

It is important to understand the difference between these toggles, answer options could be close with just these being different between two options

--------------------------------------------------------------------------------------------------------------

User's access to modules (Content, Media, Product, Project, Print etc.) is present in User entity - Users are entities of UserProfile schema

---------------------------------------------------------------------------------------------------------------

Chart Component:

1. Operational Reporting: uses saved searches and is one-dimensional
2. Historical Reporting: two-dimensional reports

Dimension properties used for two-dimensional reports

Principal Dimensions:

Taxonomy filters
Property
Document filters
User
Event

Historical reporting (filter) and Operational Reporting (Dashboard - saved search)

Use Case 1: As a manager, I would like to know the number of assets downloaded per user within a time interval of one day - Historical Reporting

Use Case 2: As a manager, I would like to have an overview of the ongoing project activities - Historical Reporting

Use Case 3: As a manager, I would like to know the average file size per asset type - Operational Reporting

Use Case 4: An administrator wants to create a graph that displays the total amount of project assets in a donut chart, grouped by their geographical area. - Operational Reporting

---------------------------------------------------------------------------------------------------------------


Creation Component - 

Allows creation of new entities

For  uploading entities through excel:

Upload files switch to OnImport Excel switch to On

Asset Media:

- Vectors
- Images
- Archives
- Documents
- Videos


------------------------------------------------------------------------------------------------------------------


Permission:

ViewDataHistory and ReadAudit
ViewFileHistory and ReadAudit


Privilege:

ReadAudit:


At least one question here with regard to Settings in Sitecore Contenthub

----------------------------------------------------------------------------------------------------------------

Export entities in excel:

Selection component has enable export to excel toggle in the Operations tab



------------------------------------------------------------------------------------------------------------------

Excel import:


Username is a required column when you import  users:

Title column is mandatory in case of mass-edit table, so removing title will fail data import



This is key area. Questions can span with regard to how will  you move contract information from one environment to another, what are the mandatory columns in the excel.
------------------------------------------------------------------------------------------------------------------

State Flows:

state is a step in the life cycle of an object where the object flows from one state to the next. 

StateMachine Viewer component:

Provides status of the entity that has a state flow attached to it



At least a couple of questions here with respect to State flows

------------------------------------------------------------------------------------------------------------------

Public Links

Public links allow anyone to download assets but the person who is generating the public link must have user group permissions


-----------------------------------------------------------------------------------------------------------------

DRM/Rights profiles (Any vs All):

Note that a contract is a container for one or more rights profiles!

At least 2 questions on this with respect to contract, rights profiles, asset import from one environment to another

https://navansitecorenotes.blogspot.com/2021/12/drm-rights-profile-in-sitecore-content.html


-----------------------------------------------------------------------------------------------------------------

Search Component:

Many questions regarding this component. Mainly need to understand the features of this component

One such toggle is manual sorting toggle

where is Manual Sorting toggle  useful?

This toggle  allows manually sorting search results and saving it. It can be used only on detail page and list must be enabled. When manual sorting is switched on, paging and sorting are automatically unavailable. It can be used only if fixed filter is set.

____________________________________________________________________________

https://navansitecorenotes.blogspot.com/2021/12/search-component-added-to-blank-page.html

The search results in  a search page can be displayed in multiple ways:

- Grid
- Inline preview a.k.a fly-out view
- Table
- List
- Calendar
- Pivot table
- Chart

-----------------------------------------------------------------------------------------------------------------

Packages are used to move structural  changes from one environment to another. A package is a zip file with json files in separate folders for each item:

At least one question in this area with regard to file format of package and what is contained in the package.

_________________________________________________________________________

Schema Design/Domain Model:

Thorough the concept of relations, conditionals, security to cover many questions in the exam


-----------------------------------------------------------------------------------------------------------------

More Notes:

Page type:
the following page types are available:
Blank page: When adding multiple different components in a page, start with a blank page
Detail page: When you have to just search and add/modify  (CRUD)   entities, go for a detail page linking it to the target entity
From Template: usually used to create another page based on existing template

Note that base is a layout not page type

A state flow is considered complex when it has at least one state that is connected to two different states. A state can be linked to 0 to n states.

Trigger can fire for more  than one entity? Yes, add a definition as part of conditions
Objectives for a trigger - Does it have entity delete?
Yes, here are the entity objectives:
Entity creation
Entity modification
Entity deletion

External Component Events:

Entity Events:
entityUpdated(id)
entityCreated
entitySaved(id)
entityRefreshed(id)
entityChanged(id) / property(propertyName)

entityLoaded
entityUnloaded

Export Profile:
Export profiles allow you to export only the data fields you need. When there are extra columns as part of exported file, export profile  can be edited to remove the extra columns. If system properties like date created must be removed, set "includeSystemProperties": false in the export profile.

https://docs.stylelabs.com/contenthub/4.1.x/content/user-documentation/manage/data/export-profiles/export-profile.html

Entity Operations Component: Defines which operations buttons are available on entity detail page

Download or Delivery link vs Direct or Gateway link: Both accessible from asset detail page but the former is used for rendition downloads while the latter is to quickly access the individual file but is internal and can't be accessed by external users

Disable manual sorting for states in a workflow

asset.SetPropertyValue("FileName", value);

State flows have schemas as target definition

_______________________________________________________________________

User group policies: 


Use cases:


Media processing:


Exiftool is used to extract RAW file metadata like camera info (camera details, picture details etc.)
RAW file generation is automatic depending on the support offered by the camera

Excel Import of Taxonomies / Entities:

Note that while importing taxonomies/entities through excel with separate tabs for each entity, the import is part of one job but within the job based on dependencies, parallel or sequential  processing happens. 


Custom home page:

Used to assign separate home page based on user group

Toggle details as follows:

Homepage: On
Viewable page: On
Visible: On

If this page must be used as template, switch on the Is template toggle


Editing Export Profile:


Creation Component / Excel import / Title Column:

Comments

Popular Posts