SDL Tridion Topology Generator
A Topology Generator for SDL Tridion
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, an Optimizely MVP (OMVP) and Technical Architect at 26 DX with a keen interest in martial arts, occasionally ventures into blogging when memory serves.