Content Bloom at SDL Tridion DX Summit, India 2018

The fourth version of two day long SDL Tridion summit held in Bangalore on 23rd and 24th March 2018 at Hotel Park Plaza.

Content Bloom has an active participation presenting different topics and sharing the experience with the participants from all over the globe including representatives from big customers and partners as well as technical people from various organizations.

Session 1: Me, Content Bloom and Upgrade Strategies by Pankaj Gaur

I presented the session on Upgrade Strategies and the various learnings Content Bloom has while performing numerous upgrades from older version of SDL Tridion to the latest ones.

I discussed about the 3 main strategies to upgrade viz.

  1. Content Delivery First Approach
  2. Content Manager First Approach &
  3. Parallel Upgrade Approach

Also discussed the advantages, disadvantages and suitability of each of them in specific scenarios.

Session 2: Building CoreService using Powershell by Priyank Gupta

Priyank Gupta, Technical Consultant at Content Bloom, presented a very enlightening and engaging session on utilizing the core service via powershell script.

Priyank talked about the Powershell Core Service module built by Peter Kjaer and the step by step process to use and even adding more functionality to it.

An end to end demo of setting it up and interacting with core service of a specific Tridion instance to perform some nifty work was quite great.

Session 3: Running DXA in a Docker Container by Hem Kant

Hem Kant, Technical Consultant at Content Bloom, presented a lightening talk about Containerization, Docker and setting and running a DXA based application in Docker container.

A step by step demo of creating and executing a Docker File, setting up the DXA application in the Docker and running the DXA based web application from Docker Container was a great learning for the audience.

Session 4: Tridion Sites, Tridion Docs and Content Bloomash (A content mash-up by Content Bloom) by Pankaj Gaur

I presented my second session of this TDS which was demoing Content Bloom’s experience in creating a demo website utilizing the Universal Delivery Platform (UDP) and creating a content mash-up from SDL Web (now Tridion Sites) and SDL Knowledge Center (now Tridion Docs).
The demo shows a website targeted towards banking vertical and generating a content mash-up of structured content like Loan Processing Forms, Account Opening Form etc. (managed in SDL Knowledge Center/Tridion Docs) and Web Content like News, Articles etc. (Managed in SDL Web/Tridion Sites).
The content is fetched in a unified way through a single DXA based application from Knowledge Center (Tridion Docs) and SDL Web (Tridion Sites) by utilizing various Unified Delivery Platform micro-services and displayed on the web pages or sections on a web page.

Advertisements
Tagged with: , , , ,
Posted in SDL Tridion

Highlights Day 2: SDL Tridion DX Summit 2018 at Bangalore, India

After defeating the hang-over as a result of Friday night party and early morning wake-up syndrom on Saturday, we were all ready for the day 2 at TDS India 2018 at Bangalore.

Venu, open the day with introduction to the day and agenda.

Nuno, started the first session on SDL Cloud giving insights about SDL Cloud and various offerings SDL has around SDL cloud for the customers.
Nuno, discussed about the current as well as future platform in SDL Tridion Sites cloud and also about various benefits to be on cloud.

Further, the information about getting various ISO certification including ISO27001 certification to support some of the critical requirement for hosting was good to learn.

The different variation of SDL Cloud offerings like Content Manager as a Service, Content as a Service etc. were illustrated well including the representation cost associated with each option.

Nuno, further explains setting up the Continuous Integration and Continuous Delivery (CI/CD), Standard and Add-on Capabilities of SDL Cloud, access to machines via remote desktop using the Amazon Workspace, and various SLA

Rajesh Kumar from SDL started sharing thoughts on pre-sales demo. Rajesh explains the architecture of pre-sales demo.
Various real world use cases were demoed using the ready pre-sales demo environment.

Kurt started a demo on Tridion Docs explaining the concept of Topics, Publications etc. (I would rather say of DITA).
An explanation about how to construct content in Tridion docs has been explained.

 

Kurt also shown few tools like – Sensation XE, XMetal etc.- for creating or aiding the content authoring and reviewing of the Tridion docs content.

Sayantan from SDL also showcase the connectors that SDL is worked/working upon to connect to a variety of system.
After this, Priyank from our own Content Bloom running a demo of how to use Powershell to connect, query and use Core Service to perform a variety of core service related operation (CRUD operations etc. on CM)

This followed by Raj Kumar from Sapient running through various Tridion caching, their management and invalidation etc.

After the tea break, it was Alvin who took over and presented very insightful information on Personalization and Privacy with special attention on GDPR (which is due to come in effect in late May this year).

The lightening talks are only run by Hem Kant from Content Bloom who speaks briefly about the MVP program and community sharing followed by a very interesting and live demo of how to run DXA in a Docker container.

I, presented my second session of this TDS which was demoing Content Bloom’s experience in creating a demo website utilizing the Universal Delivery Platform (UDP) and creating a content mash-up from SDL Web (now Tridion Sites) and SDL Knowledge Center (now Tridion Docs).
The demo shows a website targeted towards banking vertical and generating a content mash-up of structured content like Loan Processing Forms, Account Opening Form etc. (managed in SDL Knowledge Center/Tridion Docs) and Web Content like News, Articles etc. (Managed in SDL Web/Tridion Sites).
The content is fetched in a unified way through a single DXA based application from Knowledge Center (Tridion Docs) and SDL Web (Tridion Sites) by utilizing various Unified Delivery Platform microservices and displayed on the web pages or sections on a webpage.

Sagar from SDL closes the event with a brief introduction on the Partner program and updates from the Bangalore SDL office.

Looking forward to the event next year….somewhere in India.

Tagged with: , , ,
Posted in SDL Tridion

Highlights Day 1: SDL Tridion DX Summit 2018 at Bangalore, India

The fourth version of two day long SDL Tridion summit started in Bangalore today on 23rd March at Hotel Park Plaza. The Day 1 was quite eventful. Below are few highlights of the day:

5.jpg

Around 60 professionals from the world join the summit. The most important part is the active participation from the SDL Tridion Docs (earlier SDL Knowledge Center or Live Content or TriSoft or InfoShare) community.

 

The first day started with welcome, registration and general introduction before Nuno Linhares started giving introduction on Tridion Sites 9 and road maps

The first two session about Tridion Sites 9 and Tridion Docs by Kurt were focussed to introduce new collaboration and re-branding of SDL’s DX offering in the form of SDL Tridion DX suite which is due to launch in July 2018.

Alvin then presented about various community resources, partner website and support website available and achieved his target of inspiring more people to join community website by 100% after completing the presentation :).

16
Venu, then walk through the audience with UDP and Content Mashups presentation to give an idea about new stuff coming in Tridion Sites and specifically in the UDP area.

I started with my first presentation in the summit about various upgrade strategies from older version of SDL Tridion (R5.3/2009, 2011/2013, Web 8).
The session also talks about various cautions, issues and take aways, Content Bloom learnt as a team during upgrading their valued customers in last few years

183

To keep the momentum alive, there is a lightening talk about a new feature of pre-defined region in Tridion Sites given by Sayantan.

The day ended by some insightful information about recently released DXA 2.0 and Alvin providing a vision of SDL beyond Tridion Sites 9 specifically on the Graphene UI.

Stay Tuned for Day 2 highlights…

Tagged with: , , , ,
Posted in SDL Tridion

Getting Access Rights of all users across Tridion using Powershell

Objective:

This exercise is intended to explore the Tridion Core Service Powershell Module and retrieve various access rights users have on each publication.

The execution of this powershell script can show the access rights in a matrix on screen and also write down to a csv on file system

Getting Ready:

Refer this blog to Setup and Starting with Tridion Core Service powershell module and execute below powershell script:

$publications = Get-TridionPublications -ExpandProperties

$acls = @();

foreach($p in $publications)
 {

$groupNames = foreach ($g in $p.AccessControlList.AccessControlEntries)
 {

$rightsInfo = New-Object psobject

$rightsInfo | Add-Member -MemberType NoteProperty -Name "GroupName" -Value $g.Trustee.Title

$rightsInfo | Add-Member -MemberType NoteProperty -Name "ACL" -Value $g.AllowedRights

$rightsInfo

}

$entry = New-Object psObject

$entry | Add-Member -MemberType NoteProperty -Name "PubName" -Value $p.Title

$entry | Add-Member -MemberType NoteProperty -Name "Groups" -Value $groupNames

Write-Output $entry

$acls += $entry
 }

$acls | Select-Object PubName, Groups -ExpandProperty Groups | Select-Object PubName, GroupName, ACL | ogv

You can get more details about the logic on Peter Kjaer’s GitHub

The below screen capture shows this in action:

GetACLc

 

Tagged with: , ,
Posted in SDL Tridion

The Powershell way of Tridion Core Servicing

In this year’s SDL MVP Retreat Event, I got a chance to work with Peter Kjaer on a custom powershell module for instantiating a Tridion Core Service client and utilizing it further to interact with Tridion CM through the powershell. You can refer this on Peter’s Git Hub: Tridion Powershell Module: Git Hub

Why Should I use it

There may be scenarios where you may need to retrieve data for analysis, debug or reporting purpose from the Tridion CM for a variety of use-cases which can not be seen/create from the Tridion CM Interface directly.

An option could be to write a custom application utilizing the Tridion Core Service and doing the necessary coding logic to perform the task, this however, require you to create and setup a project, code for creating a core service client, and then writing up the logic.

The Tridion Core Service Powershell module is a step in this direction to remove a majority of the effort of creating a custom project and associated maintenance and may even provide ready to use scripts for common use cases. For an example: you can use ready to use script for creating a clean Core Service client without wasting time in coding for the same, you can also use ready to use script for getting a list of all users and their associated groups and their Access Control List per publication – There are many such useful script which keep on growing.

How to Use It

  1. Open Powershell and Install the Tridion Core Service custom powershell module by executing below command:
    iwr "https://raw.githubusercontent.com/pkjaer/tridion-powershell-modules/master/CoreService/Installation/Install.ps1" | iex
  2. Ensure the command get executed without an error
  3. WooHoo!!! you are set to use the Tridion Core Service Powershell Module

Examples:

Once the above module get installed successfully, you may run the below command on powershell to get information about all available commands:
Get-Command -Module Tridion-CoreService
At the time of writing this blog, following commands were available in the module:

commands

To run it against the Core Service or rather Tridion CM of your choice, you may want to use the following command:

Set-TridionCoreServiceSettings

An example could be:
Set-TridionCoreServiceSettings -HostName  -Version -Credential domain\username -Persist
Here:
CMS URL: IP or URL of the CMS instance

SDL Tridion Version: Version of the SDL Tridion (like 2011, 2013, Web-8.5 etc.)

CAUTION: You need to close the powershell window and re-opens it after you update the Tridion Core Service Settings to use the updated details.

Starts with getting a Core Service client as below:
$client = Get-TridionCoreServiceClient

you can then use this core service client to call core service methods. For example:

$client.GetList(tcm uri, filters)

For more example, you can refer the Wiki Page on Peter Kjaer's Git Hub:
Examples - Tridion Core Service Powershell Module

 

 

Tagged with: , ,
Posted in SDL Tridion

SDL Web MVP Retreat in Portugal – Oct 2017

I have been privileged again (in fact 4th time) to be chosen as an SDL Web MVP for the year 2017 by SDL along with 20+ other MVPs.
Every year the MVPs have been invited to Lisbon for the annual retreat where we all will head to a surprise location to discuss, work, eat and drink followed by some fun activities – This year was no different as we have to reach Lisbon maximum by 4th October and participate in this retreat till 8th October.

4th October – Day 1:
This is the arrival day for all the MVPs where in an all expense paid trip by SDL to Lisbon, Portugal we have to reach no later than 4:30 PM. At the airport, we were greeted by the best hosts – Carla Osorio, Paulo and Christelle – and have some drinks outside the airport while waiting for others MVPs to come and join.

Later we headed for the historical city of Ourem – the surprise location of this year. We have been welcomed by the Hotel staff and given our room’s key after normal formalities. This Hotel – Pousada de Ourem is an awesome place to stay, just near the Castle and have amazingly clean, big, premium rooms – I was feeling like a king 🙂

Most of us after our long flights/journey was tired and relax over there while others are having drinks, playing music, swimming in the pool and what not – Our own Mark Saunders broken all records of “Least Sleeping Hours in a day” – as he indeed didn’t sleep at all and having all the fun.

 

5th October – Day 2:
The day starts as early as 9ish in the morning after the breakfast. After the usual internet, projector, connector  related minor issues, finally Nuno Linhares addressed all MVPs followed by a Video Streaming sessions by Onno Ceelen and Likhan Siddiquee from SDL on Roadmap of SDL Web and Unified Extension deployments – Which were a great learnings.

2.jpg

Nuno followed this with an overall review of the year 2017 and the objective of the event – Which eventually turns out to discuss few ideas, divide it in teams and work on them with clear goals and deliverable.

I have been put in a team lead by Peter Kjaer with Chris Morgan, Mark Saunders, Alvin Reyes and Hem Kant and we have to understand the Tridion Powershell Module developed by Peter and work on it to extend with new feature and demo. The objective was to get accustomed with it and share the knowledge among the group through demo to make life of SDL Tridion developer easier – I would be having a separate blog on technical details of it.

The night again starts with drinks, music and fun which last till just before the morning alarms.

6th October – Day 3:
The day started as usual with breakfast and then at 9ish in the morning, Niclas Cedermalm gives an excellent session on Tridion connectors with most of the leading third-party products in the market which was enough to open the sleep-deprived eyes of MVPs.
Learning about the strategy and solution that are on the edge to become popular is really great.

We then again grouped in to the teams and started from where it was left one day before.
Post lunch, each team explains the objective of their tasks and later demoed the implementation and functionalities that each team has achieved

Overall, it was so productive and learning exercise.

In the evening we all gather went to the nearby famous tourist spot – Fatima – where people prayed in the famous Church and did a bit of tourism.

On the way back, we got to this beautifully setup restaurant and have delicious food.

After reaching back to the hotel, despite of fully packed day, the energy level of everyone was high and the night was as usual “Haseen” with drinks, music and all the fun activities.

7th October – Day 4:
This day was planned to be relaxing, socializing and exploring the Portugal. We started the day at 10 in the morning. We got a local guide which took us for a informative tour on a local church, the city tour and the famous Ourem castle tour

 

We then headed for “Nazare”, the famous spot for surfers and having wonderful beaches. The Nazare is famous for its high waves and in fact have the record of highest wave surfed ever in the world. First some brief shopping in the local market followed by Boat Ride to the spot in the Atlantic ocean where the highest wave has been surfed – it was an amazing experience to feel those high waves in the ocean – honestly, it was scary (as I do not know swimming) but adventures.

 

We then came back to the hotel where open air barbecue waited the hungry MVPs. They got Pork and I was saying once you see a pig in India, you would never eat a Pork in your lifetime :P. I on the other hand enjoyed my “Raajma-Chwal” and famous Portuguese soup and then it again started – The drinks, fun and Music

8th October – Day 5:
While few of the MVPs have flight early in the morning and they left early, rest of the MVPs were carefully been dropped to the airport for their respective flights by our humble, high profile drivers – and few of us were happy that the driven thing is a Car and not a Boat 😛 – Anyway, Big thanks to Paulo, Nuno and Raimond for bearing with noisy passengers

And Bigger thanks to Carla, Paulo and Christelle for arranging and managing this well.

Feeling re-charged, re-energized, hope to see you guys again next year!!

Tagged with: , ,
Posted in SDL Tridion

SDL Web Core Service – Changes and Improvements

The introduction of SDL Web 8 and SDL Web 8.5, comes with a complete revamped SDL Tridion package and also brought some significant changes in Core Service and its associated security.

The security model in SDL Web Core Service has been improved a lot keeping in line now with industry standards.

Having said that, this means there are some significant changes the way Core service is being used mostly because of changes in the signatures of few methods.
This further means, though backward compatibility is quite good with old Core Service code written for Tridion 2103 and Tridion 2011, however, there may be instances that this old core service code might not work with SDL Web 8 and SDL Web 8.5.

Few of these examples are as below:

Creating a multimedia component – This is the real scenario when I actually realized these changes in Core Services.
Earlier, we used to write below code to create a multimedia component using core service:

...
var streamUploadClient = new StreamUploadClient(binding, endpoint); //Binding and Endpoint corresponding to the Stream Upload Client
...
...
streamUploadClient.UploadBinaryContent(fileName, fileStream); // Name of the File and File Content as InputStream
...
...

In SDL Web 8/8.5, this has recognized to have a Security vulnerability and to do this in new versions of SDL Web, you need to create a “AccessToken” before you can actually upload the Binary Stream using UploadBinaryContent method. This is illustrated as below:

...
var streamUploadClient = new StreamUploadClient(binding, endpoint); //Binding and Endpoint corresponding to the Stream Upload Client
AccessTokenData accessToken = client.GetCurrentUser(); // client = SessionAwareCoreServiceClient
...
...
streamUploadClient.UploadBinaryContent(accessToken, fileStream); // File Content as InputStream
...
...

 

GetCurrentUser() Method: Another Security measure I noticed with the GetCurrentUser() method (Also not sure if this is any bug as I can’t see any documentation for it). The method GetCurrentUser() is also not backward compatible and it is very hard to catch as there is no change in the signature.

The GetCurrentUser() anticipate the latest available client in use and throws exception at run time if older endpoints are being used. Below snippet illustrate this for a SDL Web 8.5 environment:

// This will work fine with SDL Web 8.5
var endpoint = new EndpointAddress(@"http://devcms/webservices/CoreService201603.svc/wsHttp");
var binding = new WSHttpBinding {...}; // Settings for binding
var client = new SessionAwareCoreServiceClient(binding, endpoint);
...
...
AccessTokenData accessToken = client.GetCurrentUser(); //Successfully return AccessTokenData

 

//None of the below endpoint would work with SDL Web 8.5
//var endpoint = new EndpointAddress(@"http://devcms/webservices/CoreService201601.svc/wsHttp");
//var endpoint = new EndpointAddress(@"http://devcms/webservices/CoreService201501.svc/wsHttp");
//var endpoint = new EndpointAddress(@"http://devcms/webservices/CoreService2013.svc/wsHttp");
//var endpoint = new EndpointAddress(@"http://devcms/webservices/CoreService2011.svc/wsHttp");
var binding = new WSHttpBinding {...}; // Settings for binding
var client = new SessionAwareCoreServiceClient(binding, endpoint);
...
...
AccessTokenData accessToken = client.GetCurrentUser(); //Throws Exception

For any of the old endpoint client, we will get below exception message while trying to call the GetCurrentUser() method:

System.ServiceModel.Security.MessageSecurityException occurred
Message=An unsecured or incorrectly secured fault was received from the 
other party. See the inner FaultException for the fault code and detail.
Inner Exception 1:
FaultException: The message could not be processed because the action 
'http://www.sdltridion.com/ContentManager/CoreService/201603/ICoreService/GetCurrentUser' 
is invalid or unrecognized.

There are few more changes in the Core Service in SDL Web as compared to the SDL Tridion 2013 SP1 and a list of them can be find on SDL Doc here – Core Service API delta

I hope this will help those upgrading to SDL Web as well as those implementing new functionalities as per their exposure to old Core Service.

 

 

 

 

 

 

 

 

 

 

 

 

Tagged with: , , ,
Posted in SDL Tridion