All Collections
Using the Portal
Manually migrating apps
Manually migrating apps

Migrating apps between brainCloud instances

Paul Winterhalder avatar
Written by Paul Winterhalder
Updated over a week ago

brainCloud supports a deployment feature for automatically pushing (or copying) the configuration of a source app onto a target app within the same brainCloud server cluster. This is commonly used to push apps from Dev -> Test -> QA -> Prod.

The deployment feature cannot copy an app between separate clusters, however. If the licensee has multiple clusters - a more manual procedure must be employed.

This document describes the procedures for creating a copy of an app in a separate cluster.

---

Process Overview

The process is as follows:

  • Step 1 - Create a new target app in the target cluster

  • Step 2 - Export the source app configuration from the source cluster

  • Step 3 - Import the configuration data into the target app

  • Step 4 - Customize any properties that are unique to this app instance

  • Step 5 - Update the game client configuration & rebuild

Once the initial copy of the app has been created, it can be updated again in the future by repeating steps 2 and 3.

---

Step 1 - Create a new app in the target cluster

First, you must create a new app in the target cluster. To do so:

  • Log in to the Design Portal of the target cluster

  • Choose a team

  • Create an app

The configuration of this app will be overwritten by the import.

Note - if the source app has parent/child relationships and/or peer services, these must be configured prior to the import in step 3.

---

Step 2 - Export the source app configuration from the source cluster

We will use the Admin screens to export the configuration:

  • Log in to the source cluster Design Portal.

  • Choose a team, and navigate to the source app

  • Choose Design | Core App Info | Admin Tools

  • Export the app's metadata to a file. Choose Configuration Data, [Export]

Note that the metadata exported above will include Un-owned, migratable Custom Entities.

  • Export the app's legacy files. Choose Custom Files, [Export]

  • If your app uses the new V3 Global Files service, you must create an Export archive from the Design | Custom Config | Global Files screen:

  • If you want to export Global Entities, you must do so via the Monitor | Global Monitoring | Global Entities screen. Export the entities in the Raw JSON Object File format.

---

Step 3 - Import the configuration data into the target app

Likewise, we will use the Admin screens to import the configuration:

  • Log in to the target cluster Design Portal.

  • Choose a team, and navigate to the target app

  • Choose Design | Core App Info | Admin Tools

  • Import the app's metadata. Choose Configuration Data, [Import]

Note - the first time you import the configuration, you probably want to disable all the safeguards - to get all parts of the configuration.

In subsequent imports you would probably left the default settings. This allows the app to have some integration settings that custom to this instance.

  • Import the app's legacy files. Choose Custom Files, [Import]

  • If your app uses the new V3 Global Files service, you must Import the archive via the Design | Custom Config | Global Files screen:

  • If you want to import Global Entities, you must do so via the Monitor | Global Monitoring | Global Entities screen. Import the entities in the Raw JSON Object File format.

---

Step 4 - Customize any properties that are unique to this app instance

There are use cases where it makes sense to customize the properties of individual app configurations - keeping Dev separate from QC, etc.

Data that may need to be customized includes:

  • Integration settings

  • Global Properties

  • etc.

---

Step 5 - Update the game client

Finally, you need to update the game client with the appropriate information for the target app:

  • appId - the App ID field from the Design | Core App Info | Application IDs screen

  • secretKey - the App Secret field from the Design | Core App info | Application IDs screen

  • serverURL - the URL for the cluster's API servers. It is normally found by replacing the "portal" from the portal URL with "api".

Did this answer your question?