Sandboxes are alternate installations of a customer’s system, designed to separate out versions and data for purposes such as testing or training.

These sandbox types are defined:

Name ID Foreground Color Background Color
Production 0 0x000000 0xffffff
Training 1 0x000000 0xff00ff
Demo 2 0x000000 0x996633
Acceptance 3 0x000000 0xff00ff
Beta 4 0x000000 0xff7f00
Development 5 0x000000 0xff0000
Prototype 6 0xffffff 0x000000
Troubleshooting 7 0x000000 0xffff00

They are intended to be used thusly:

  • Production is for the regular working installation with live, business-critical data.
  • Training is for employee training.
  • Demo is for demos of new products or features.
  • Acceptance is for customer acceptance testing of new software, features, or configuration.
  • Beta is for customer testing of prerelease software.
  • Development is for active development and testing of unstable software.
  • Prototype is for very early experimental proposals of features and applications.
  • Troubleshooting is for testing a copy of production installations and data to investigate and fix specific problems.

Sandboxes currently mostly amount to alternate update sources. The colors are used to color-code all MainWindow windows - e.g. the Workbench, Map Viewer, etc.

A structure (on e.g. that makes sense is to have separate subdirectories, named after the sandbox name, e.g.:



There are two files that control sandbox behavior.

update/info/Sandbox.txt has a single line in it containing the name of the current sandbox, e.g.:: training

If it is missing or blank or has a weird thing in it then it defaults to “production”.

update/info/SandboxSources.txt lists all the available sandboxes and where to update them from, e.g.:


The Workbench has a menu of available sandboxes, selecting one will prompt for an OK then switch and update.

The ID number is used to modify the standard ports used by our software. Here is the formula:

public int transformPortNumber(int portNumber) {
    if (id > 0)
        return 8000 + (id * 1000) + (portNumber % 1000);
        return portNumber;

So, for example, the standard Yonder port is 8004, but if it’s in the “demo” sandbox, the port is 10004 instead.

Previous topic

Setting up a Hosted Hub

Next topic


This Page