Gimbal Sandbox Decommissioning

For developers who have been using Sandbox, this document describes how to migrate your existing Sandbox account data to the Production environment.

Overview


Important The Sandbox environment will soon be decommissioned. When the Sandbox environment is decommissioned, any data in the Sandbox environment will become inaccessible.

What is affected?

Data in Sandbox, including:

  • Gimbal application and server API keys
  • Geofences
  • Communications and Instant Communications
  • Triggers
  • Analytics

What is not affected?

  • Production data. Any existing API Keys, Geofences, Communications, Triggers, and Analytics in Production will not be affected.
  • Support tickets you created whether working in Sandbox or Production environments.
  • Proximity data. Proximity API Keys, Hubs, Rules, and Visits will not be affected.

What Should I Do?

You have the following courses of action:

Do Nothing

If you elect to do nothing, your Sandbox data will become inaccessible. This option makes sense if you do not wish to preserve or keep your Sandbox data.

or

Migrate Sandbox data to the Production Environment

You can move your Sandbox Geofences into Production by importing them into an Organization within the Production environment.

Note You will, however, need to re-create any Communications, Instant Communications, and Triggers related to those Geofences. You will not be able to migrate those over.

These are the steps you'll need to take.

  • Create an additional organization in the Production environment, effectively creating a test, or "sandbox", organization.
  • For each existing Sandbox Gimbal application you wish to keep, generate a new Gimbal application under the new organization, using the same bundle ID / package names.
  • Use these new Gimbal API keys in your client applications.
  • Migrate existing Geofences into the new organization.
  • Re-create communications in the new organization.

Note You will not be able to keep any analytics data from the Sandbox environment. You can, however, export the data for your own purposes.

Create an Additional Organization


In lieu of a sandbox environment, Gimbal Manager now allows a developer to create multiple organizations within an account. Each organization in Gimbal Manager is autonomous; each one will have its own application keys, server keys, geofences, communications, proximity elements, and analytics. In this manner, you can effectively create a "sandbox organization" for testing and maintain a production organization for actual deployment, within the same account.

Organizations »

Note Any client API Keys (Gimbal or Proximity) created under a new Organization will be capped to a limited number of users. This limit is lifted by submitting a Production Request and being approved.

Regenerate Client API Keys


For each application in Sandbox that you want to keep, you will need to manually recreate them in Production. After creating a test organization, login into Gimbal Manager using that organization. Then for each Sandbox application, create an application using the same bundle ID (iOS) or package name (Android).

Gimbal Manager »

Migrate Geofences

You will need to export your geofence data from Sandbox using the Gimbal REST API. Then you will use the Gimbal REST API on the Production environment to populate the same data. The process involves these steps:

Export Geofences from Sandbox

From an HTTP client, invoke the following API to retrieve your geofence data in JSON format:

GET https://sandbox.gimbal.com/api/geofences

Note Be sure to use your Sandbox Server API Key for this call. It can be found under Sandbox → Organizations.

AUTHORIZATION: Token token=my_sandbox_server_api_key

REST API »

Sample Response JSON

{
"geofences":
    [{
        "id": 1,
        "name": "Gimbal HQ",
        "addressLineOne": "5775 Morehouse Drive, San Diego CA 92121",
        "geoFenceCircle": {
            "radius": 100,
            "visibility": "ORGANIZATION",
            "location": {
                "latitude": 32.89494374592149,
                "longitude": -117.19603832579497
            }
        },
        "placeAttributes": {
            "key1": "value1",
            "key2": "value2"
        }
    },
    {
        "id": 3291
        "name": "Gimbal R&D",
        "addressLineOne": "5665 Morehouse Drive, San Diego CA 92121",
        "geoFencePolygon": {
            "visibility": "ORGANIZATION",
            "locations": [
                {
                    "latitude": 32.8953153522896,
                    "longitude": -117.19559844351653
                },
                {
                    "latitude": 32.8954009341414,
                    "longitude": -117.19516929007415
                },
                {
                    "latitude": 32.89564867061472,
                    "longitude": -117.1949815354431
                },
                {
                    "latitude": 32.89545949009762,
                    "longitude": -117.19463284827117
                },
                {
                    "latitude": 32.894986537037255,
                    "longitude": -117.19496544218902
                },
                {
                    "latitude": 32.894864920127866,
                    "longitude": -117.19554479933623
                }
            ]
        },
        "placeAttributes": {
            "key1": "value1",
            "key2": "value2"
        }
    }]
}
				

Modify JSON response

  • Remove the outer JSON braces to make it a pure JSON array.
  • Remove "geofences" JSON key.
  • Remove IDs from all Geofences.

Import Geofences into New Organization

From an HTTP client, invoke the following API to POST your geofence data in JSON format

POST https://manager.gimbal.com/api/bulk_geofences

Note Be sure to use your Production Server API Key matching the new Organization you want to migrate the geofences to.

AUTHORIZATION: Token token=my_production_server_api_key_for_new_organization

REST API »

    [{
        "name": "Gimbal HQ",
        "addressLineOne": "5775 Morehouse Drive, San Diego CA 92121",
        "geoFenceCircle": {
            "radius": 100,
            "visibility": "ORGANIZATION",
            "location": {
                "latitude": 32.89494374592149,
                "longitude": -117.19603832579497
            }
        },
        "placeAttributes": {
            "key1": "value1",
            "key2": "value2"
        }
    },
    {
        "name": "Gimbal R&D",
        "addressLineOne": "5665 Morehouse Drive, San Diego CA 92121",
        "geoFencePolygon": {
            "visibility": "ORGANIZATION",
            "locations": [
                {
                    "latitude": 32.8953153522896,
                    "longitude": -117.19559844351653
                },
                {
                    "latitude": 32.8954009341414,
                    "longitude": -117.19516929007415
                },
                {
                    "latitude": 32.89564867061472,
                    "longitude": -117.1949815354431
                },
                {
                    "latitude": 32.89545949009762,
                    "longitude": -117.19463284827117
                },
                {
                    "latitude": 32.894986537037255,
                    "longitude": -117.19496544218902
                },
                {
                    "latitude": 32.894864920127866,
                    "longitude": -117.19554479933623
                }
            ]
        },
        "placeAttributes": {
            "key1": "value1",
            "key2": "value2"
        }
    }]
                

Recreate Communications


You will need to recreate your Communications, Instant Communications, and Triggers using the Gimbal Manager or REST API.

Gimbal Manager »

REST API »

Export Analytics from Sandbox


Use the REST API to export analytics data you wish to archive from Sandbox. You will not be able to migrate it to the Production environment.

REST API »

Migrate Client Applications


Migrate iOS App

Modify the UserContext.plist file accordingly.

Remove SANDBOX_API_KEY.

Remove APPSTORE_BUILD.

Replace PRODUCTION_API_KEY with the new application API key generated from your new test organization.

Migrate Android App

Modify the UserContext.properties file accordingly.

Replace app.key with the new application API key generated from your new test organization.

Remove env as this key is no longer needed.