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
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 On. Import 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:
A 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 conditionsObjectives for a trigger - Does it have entity delete?Yes, here are the entity objectives:Entity creationEntity modificationEntity deletionExternal Component Events:Entity Events:entityUpdated(id)entityCreatedentitySaved(id)entityRefreshed(id)entityChanged(id) / property(propertyName)entityLoadedentityUnloadedExport 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.htmlEntity Operations Component: Defines which operations buttons are available on entity detail pageDownload 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 usersDisable manual sorting for states in a workflowasset.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
Post a Comment