There are many use cases where it makes sense to clone or move your apps - potentially between brainCloud teams (or even brainCloud instances).

For example:

  • You want to have separate development vs. production versions of your apps <- see recommended development strategy
  • You want to move your app between teams
  • You want to move your app between brainCloud instances (i.e. your company has installed a private instance of brainCloud, and you want to move your apps to it!)

Luckily brainCloud provides built-in support for these sorts of operations:

  • Deploy - you can use the deployment features on the  Design | Core App Info | Admin Tools page to copy configuration data between apps within the same team.
  • Export / Import - you can use the export / import facilities on the Design | Core App Info | Admin Tools page to Export the current configuration of your app, and then Import the configuration into a new app (even if it's on a different team!)
  • Move App Support Request - finally, if you want to move an app wholly from one team to another (on the same brainCloud instance), the support team can do this for you. Note that the requestor needs to have "team administrator" access on both the existing and new teams.

Important notes:

  • Cloning apps does not copy the dynamic, user-related data of the app. Only it's meta-data and global/custom files. System Entities can be copied from one app to another via a separate option (see bottom of this article)
  • Moving an app between teams (via support request) does copy all app data though (including dynamic user data). This is because the app itself isn't really changed - we just alter the data that determines which team owns it.

The sections below provide more details.

---

Cloning via Deployment (within same team)

The steps to cloning an app via deployment are:

  1. Create the new app in brainCloud (via the Team | Manage | Apps page)
  2. Setup app relationships - if you app is using Shared Accounts (i.e. parent and child apps) or Peer Services, you will have to set up those relationships in the new app first before you will be allowed to deploy to it.
  3. Now switch back to your source app, and go to Design | Core App Info | Admin Tools
  4. In the Deployment section, set the Deploy To selection to your new app
  5. For a first deployment, you would normally uncheck all of the safety boxes (i.e. all of the "Do Not overwrite..." fields)
  6. Click [Deploy] to push the configuration (both meta-data and custom files) to the new app

Important: Now that the initial clone of the app has been created, you will want to double-check an instance-specific settings as well as potentially migrate any system entities to the new app. See the sections at the bottom of this page for more info.

Cloning via Export/Import (works across teams/instances)

The steps to cloning an app via deployment are:

  1. Export the Configuration Data for the source app via the Design | Core App Info | Admin Tools page, Configuration Data section. It will be saved as a .bcconfig file on your desktop hard drive.
  2. Export the Custom Files for the source app via the Design | Core App Info | Admin Tools page, Custom Files section. It will be saved as a .bcfiles file on your desktop hard drive.
  3. Create the new app in the appropriate brainCloud team (via the Team | Manage | Apps page)
  4. Setup app relationships - if you app is using Shared Accounts (i.e. parent and child apps) or Peer Services, you will have to set up those relationships in the new app first before you will be allowed to import to it.
  5. Now switch back to your source app, and go to Design | Core App Info | Admin Tools
  6. In the Configuration Data section, click [Import], and choose the saved .bcconfig file to import. Note - for a first deployment, you would normally uncheck all of the safety boxes (i.e. all of the "Do Not overwrite..." fields).
  7. In the Custom Files section, click [Import], and choose the saved .bcfiles file to import. 

Important: Now that the initial clone of the app has been created, you will want to double-check an instance-specific settings as well as potentially migrate any system entities to the new app. See the sections at the bottom of this page for more info.

Move App Support Request

Apps can be easily moved between teams on the same brainCloud instance via a support request. These moves don't actually change the app itself - so all data (meta-data, files, dynamic user data, etc) is preserved. Only the team that owns the app is changed.

To initiate a move request, send a request similar to the following to our support channel:

"Hi - this is <my name>. I would like to move MyApp (<appId>) from OldTeamName (<accountNum>) to NewTeamName (<accountNum>).  As you can see, I am a Team Administrator on both teams. Thank-you!"

You can find your app's appId on the Design | Core App Info | Application IDs page.
You can find the account number for your Team's on the Team | Manage | Team Info page.

---

Settings to check after initial cloning of an app

Many integration settings will vary between development and productions versions of an app. For example, you might use separate Apple appId's or Facebook appIds for the development vs. production versions of your app.

After initially cloning an app, you will want to check the following screens to ensure that the settings are correct:

  • Design | Core App Info | Application IDs - confirm that all the platform settings are correct
  • Design | Cloud Code | My Servers - your hosted server settings will likely vary between development vs. production instances of your app
  • Design | Custom Config | Global Properties - you may have some properties whose settings are specific to your app instance
  • Design | Integrations | Manage Integrations - some of your integration settings may be specific to your app instance
  • Design | Integrations | Peer Services - some peer service settings may be specific to your app instance
  • Design | Marketplace | Products - some IAP and pricing settings may be specific to your app instance (i.e. if the dev vs. prod versions of your app use different apple app ids, your IAP ids will be different too)
  • Design | Multiplayer | Lobbies - the lobby / matchmaking settings of your app may vary between development and production instances of your app
  • Design | Notifications | Settings - you may have different push notification settings / certs between development and production versions of your app

---

Copying System Entities

Global/System Entities are not copied between apps during Deploy or Export/Import operations because they are thought of as dynamic user data - though you could argue that System Entities (which aren't owned by specific users), do not fit this definition.

To copy System Entities between apps, use the Bulk Export / Import features that are available from the Monitoring | Global Monitoring | Global Entities page.

More info here - https://getbraincloud.com/apidocs/api-modules/global-entity-file-formats/



Did this answer your question?