A Topology Generator for SDL Tridion

SDL Tridion Topology Generator
SDL Tridion Topology Generator

Available at http://topologygenerator.azurewebsites.net/

In preparation for taking my SDL certification(s) I came across a need for something to make setting up the topology in SDL Web 8 easier, as it can currently only be run using powershell scripts, which are prone to error, and prove quite labourous to write.

I started doing something with spreadsheets, which was a definite improvement, but still prone to errors.

When you start digging into the Topology Manager for SDL Web 8 you'll find that even just to setup a very basic topology you'll have to run 5 powershell cmdlets to get up and running.

Add-TtmCdTopologyType -Id TTID -Name NAME -EnvironmentPurposes "PURPOSE"  
Add-TtmCdEnvironment -Id CDEID -EnvironmentPurpose PURPOSE -DiscoveryEndpointUrl http://.../ -AuthenticationType OAuth -ClientId CLIENTID -ClientSecret CLIENTSECRET  
Add-TtmCdTopology -Id TID -Name NAME -CdTopologyTypeId TTID -CdEnvironmentIds  "CDEID"   
Add-TtmWebsite -Id WID -CdEnvironmentId CDID -BaseUrls "http://site.com"  
Add-TtmMapping -Id MID -PublicationID tcm:... -WebApplicationId WID_RootWebApp

When you started to consider multi-site and localization, the number of cmdlets increases dramatically. I am working on a site with only ~25 localized sites and there is in excess of 100 cmdlets to run. This was a nightmare to setup, and ended up with an excel fileto try and map it all, but one typo and all the dependencies would break and then a lot of time would be lost working back through the process using the delete cmdlets.

It was also a good excuse to get up to speed with Angular 2, so a nice 2 for 1 bonus!

What next?

Next I want to make a way you import the JSON produced by Export-TtmCdStructure and remap the text boxes and regenerate the powershell.

I also want to consider the option to update and remove with the generator, but I am not sure if this is really needed.

List of SDL Topology Manager cmdlets

Add-TtmCdEnvironment
Add-TtmCdTopology
Add-TtmCdTopologyType
Add-TtmCmEnvironment
Add-TtmMapping
Add-TtmSiteTypeKey
Add-TtmWebApplication
Add-TtmWebsite
Clear-TtmCdEnvironment
Clear-TtmMapping
Disable-TtmCdEnvironment
Enable-TtmCdEnvironment
Export-TtmCdStructure
Get-TtmCdEnvironment
Get-TtmCdTopology
Get-TtmCdTopologyType
Get-TtmCmEnvironment
Get-TtmMapping
Get-TtmWebApplication
Get-TtmWebsite
Import-TtmCdStructure
Remove-TtmCdEnvironment
Remove-TtmCdTopology
Remove-TtmCdTopologyType
Remove-TtmCmEnvironment
Remove-TtmMapping
Remove-TtmSiteTypeKey
Remove-TtmWebApplication
Remove-TtmWebsite
Set-TtmCdEnvironment
Set-TtmCdTopology
Set-TtmCdTopologyType
Set-TtmCmEnvironment
Set-TtmMapping
Set-TtmWebApplication
Set-TtmWebsite
Sync-TtmCdEnvironment
Andy Blyth
Andy Blyth PgDip BSc(Hons) FdSc

Andy Blyth is a senior C# developer, studies martial arts and is attempting to blog. He currently works as senior developer at the Dept in Manchester, UK.