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:
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. customers.partnersoft.com) that makes sense is to have separate subdirectories, named after the sandbox name, e.g.:
examplemc/
production/update/
training/update/
beta/update/
Etc.
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.:
production,http://customers.partnersoft.com/test/Sandboxen/production
acceptance,http://customers.partnersoft.com/test/Sandboxen/acceptance
beta,http://customers.partnersoft.com/test/Sandboxen/beta
training,http://customers.partnersoft.com/test/Sandboxen/training
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);
else
return portNumber;
}
So, for example, the standard Yonder port is 8004, but if it’s in the “demo” sandbox, the port is 10004 instead.