Dear community, We have recently introduced project versioning for SAP Build Apps Web & Mobile projects, allowing you to transport released project versions between subaccounts, isolating development, testing and productive deployment of SAP Build Apps applications to their own landscapes. NOTE! The instructions below only apply to SAP Build Apps Web & Mobile projects at the time of writing this blog. Versioning is not yet supported by SAP Build Apps Backend projects. This article will walk you through the setup of Cloud Transport Management service (CTMS), Content Agent service (CAS) and required BTP Destinations to start transporting SAP Build Apps projects between landscapes. Be mindful that in your organization, parts of the setup such as a central tenant with subscription to CTMS and a development tenant with subscription to SAP Build Apps might already be in place. The following solution diagram describes a transport setup for a three-tier landscape (DEV -> TEST -> PROD). A picture is worth a thousand words, so I suggest that you take a moment to get to know the diagram before moving on to the instructions: 1. Subaccounts There are three types of subaccounts (tenants) involved in the scenario: Source: The subaccount where development takes place. SAP Build Apps projects will be editable in this tenant. Target: The subaccount(s) where content is being transported to, for example testing and production subaccounts. SAP Build Apps projects will be view-only in these tenants. Central: For administering content transport between the Source and Target tenants. The exact number of subaccounts will depend on your organization's landscape needs (DEV -> PROD, DEV -> TEST -> PROD or something else). 2. Subscriptions, Instances and Service keys On your Source (DEV) and Target (TEST/PROD) tenants, you will need to: Enable Cloud Foundry (Documentation) Subscribe to SAP Build Apps (Documentation) and Content Agent (Documentation) Create an instance of Content Agent (Documentation) Create a service key for each instance of Content Agent (Documentation). On the Central tenant, you need to: Subscribe to Cloud Transport Management (Documentation) Create an instance of Cloud Transport Management (Documentation) Create a service key (Documentation) or obtain one from an administrator. If any of the options are not available, please check that your global account has the required entitlements. 3. Role collections in BTP Cockpit You will need to set up role collections in the BTP Cockpit so that you and others can perform required actions. Below you can find links to documentation for the different services so that you can assemble the role collections according to your organization's needs. On the Source and Target tenants, define role collections for: SAP Build Lobby (RegistryAdmin role needed for admin user defining tenant type in the next step.) SAP Build Apps (Documentation) Content Agent Service (Documentation) On the Central tenant, define role collections for: Cloud Transport Management (Documentation) Assign the created role collections to yourself and other users who need access. 4. SAP Build Lobby configuration Once you have admin access (RegistryAdmin role) to SAP Build Lobby on each tenant, give the tenant the correct type (DEV, TEST, or PROD) in the Control Tower. More detailed instructions here: Tenant Configuration (SAP Build) 5. BTP Destinations Now all the required services are set up and you should have access to them. Let's finalize the BTP setup by creating the required destinations to transport content: On the Source (DEV) tenant, configure the TransportManagementService destination. Name TransportManagementService (case sensitive) Type HTTP Description URL uri from CTMS service key details Proxy Type Internet Authentication OAuth2ClientCredentials Client ID uaa → clientid from CTMS service key details Client Secret uaa → clientsecret from CTMS service key details Token Service URL Type Dedicated Token Service URL uaa → url from CTMS service key details + /oauth/token Additional properties sourceSystemId = DEV (this will be the name of Source node in CTMS) sourceSystemId.sap.build = DEV More information here: Create TransportManagementService Destination (Content Agent Service) You can test out the connection by going to Content Agent user interface on the Source (DEV) tenant. If you can see a green "Connected" text in the tile for Cloud Transport Management, it means that the destination has been set up correctly. If there is an error, inspect it to figure out the source of the issue. On the Central tenant, configure Content Agent destinations pointing to each of your Target (TEST, PROD) tenants: Name Pick names that have the tenant role in them, for example BUILD_TEST and BUILD_PROD Type HTTP Description URL url from CAS service key details Proxy Type Internet Authentication OAuth2ClientCredentials Client ID uaa → clientid from CAS service key details Client Secret uaa → clientsecret from CAS service key details Token Service URL Type Dedicated Token Service URL uaa → url from CAS service key details + /oauth/token More information here: Create Target Node Destination (Content Agent Service) 6. Set up the Transport Landscape in CTMS Once your destination setup is finished, you can move on to set up the transport landscape using the Cloud Transport Management user interface. This is straightforward to do with the Transport Landscape Wizard. Remember to give the Source node the same name that you put in as sourceSystemId in the previous step, for example DEV. More detailed instructions here: Using the Transport Landscape Wizard 7. Test it out You should now be able to select "Transport" for a released SAP Build Apps Web & Mobile project version in the SAP Build Lobby and it should appear in the transport queue in CTMS. From there, you can approve it for import into the target Lobby. More detailed instructions for using the transport can be found here: Transport a Project Happy Transporting! 🚚
... View more