I am in the process of setting up w Web 8.5 Content Delivery environment for a standard DXA-based website. I followed the documentation and executed these four commands:

Add-TtmCdTopologyType   -Id DevStagingAndLive -Name "Staging & Live" -EnvironmentPurposes "Staging,Live"
Add-TtmCdEnvironment    -Id DevContentDelivery -EnvironmentPurpose Staging -DiscoveryEndpointUrl http://localhost:8082/discovery.svc -AuthenticationType OAuth -ClientId cmuser -ClientSecret CMUserP@ssw0rd
Add-TtmCdTopology       -Id WebTopology -Name "Web Topology" -CdTopologyTypeId DevStagingAndLive -CdEnvironmentIds  DevContentDelivery
Add-TtmWebsite          -Id "dev.stg.mysite.com" -CdEnvironmentId DevContentDelivery -BaseUrls "http://localhost:83/,http://dev.stg.mysite.com/"

All goes good on commands 1 and 2, but when I execute the third command (Add-TtmCdTopology), I get the following error:

Add-TtmCdTopology : Invalid value for property 'CdEnvironmentIds'. CdTopologyType purposes should match CdEnvironments purposes. CdTopologyType purposes: Staging,Live, CdEnvironments purposes: Staging. At line:1 char:1 + Add-TtmCdTopology -Id WebTopology -Name "Web Topology" -CdTopologyTyp ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (Tridion.Topolog...TopologyCommand:AddCdTopologyCommand) [Add-TtmCdTopolog y], DataServiceException + FullyQualifiedErrorId : Tridion.TopologyManager.Automation.AddCdTopologyCommand

The error is pretty obvious, my environment is configured for Staging Purpose only, and the command is trying to add the topology "Web Topology" for that environment with the "Staging & Live" topology type, which is configured for 2 purposes. Again, looking at the documentation and the diagram, it seemed that I could create only one cd environemnt (DevContentDelivery) and associate a topology type with "two purposes" (formerly what I called 'targets'). The problem is that the cd environment is tied to a given discovery service, and I've also read that is better (kinda mandatory) to have one discovery service for Staging and another one for Live. Here comes the question:

Does that mean that I need to create two CD environments (one pointing to each discovery service) and two topology types (one for each)? and then associate my "Topology" to both environments?

As I said, my goal is to setup a traditional Staging and Live publishing scenario within the same server. But I am confused "as f%$)k!

Thanks in advance.


After reading (for the 5th time) this page: Topology Manager Concepts

I figured that this statement explains what Rick confirmed below:


A Topology defines a complete publishing environment: it consists of a set of Content Delivery environments, each with a distinct Purpose. A Topology is a concrete instance of a Topology Type. For example, given a Topology Type that defines two Purposes "Live" and "Staging", a Topology defines what the words "Live" and "Staging" actually stand for. The Topology must specify one Content Delivery environment for each of the Purposes defined in its Topology Type.


Yes. If you want to have a “Staging & Live” Topology Type, you want a Topology consisting of two CD Environments: one with purpose “Staging” and one with purpose “Live”.

Indeed, each CD Environment needs its own DBs and set of microservices (incl. Discovery Service).

  • Thanks Rick, I kinda figured, but just needed confirmation I wasn't setting it up wrong. – Jaime Santos Alcón Jul 28 '18 at 15:00
  • One more thing... should I create also dedicated topology types? I am still tyring to figure out the purpose (omg) of the two. – Jaime Santos Alcón Jul 28 '18 at 15:03
  • 1
    “Staging & Live” is a single Topology Type which requires 2 CD Environments. – Rick Pannekoek Jul 28 '18 at 15:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.