Sandboxes
This is a paid feature and requires involvement of Rossum Sales and/or Rossum Professional Services. Consider contacting the respective teams using the following form: https://rossum.ai/form/contact/
Rossum Sandboxes allow for isolated development of the solution and easy deployments of the tested solution to production.
Using Sandboxes currently requires installation of an external tooling available at: https://github.com/rossumai/deployment-manager
Installation​
First, download the install script for our Sandboxing tool deployment-manager
from its Rossum GitHub repository:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/rossumai/deployment-manager/main/install.sh)"
The script will automatically run and install the Sandboxing tool in the ~/.local/bin
folder making it available globally under the command prd
.
To upgrade to the latest version, run:
prd update
You can find more information here: https://github.com/rossumai/deployment-manager
Available CLI commands​
prd
is a CLI tool and offers the following main commands:
prd init
: Initialize a new project (creates mainlycredentials.json
andprd_config.yaml
files). When called with a project name, it also initialized an empty Git repository.prd pull
: Pulls all objects from bothsource
andtarget
organizations (as per your configuration). It is possible to explicitly specifysource
/target
to pull only that one environment, for example:prd pull source
prd push
: Pushes the latest changes to thesource
organization. This is effectively a counterpart of thepull
command.prd release
: Pushes the latest changes to thetarget
organization. Visit Deployment patterns to learn more about this use-case.prd purge
: Removes all objects in the target organization.prd purge unused_schemas
: Removes old unused schemas.
Complete list of commands and their parameters can be found when running prd --help
.
Available configuration options​
The only necessary configuration is in the credentials.json
and in the prd_config.yaml
files right after running prd init
.
First, we will setup credentials in the credentials.json
file, where we can work with username and password combination (Example 1), or alternatively we can use token
(Example 2).
Example 1​
Authentication using username and password.
{
// Source organization (typically the only one needed).
"source": {
// Username under which `prd` will be calling the API.
"username": "...",
// Password for the user under which `prd` will be calling the API.
"password": "..."
},
// Target organization in case it is necessary to release into a different organization
// from source. The configuration is identical with `source` parameter.
"target": {
"username": "...",
"password": "..."
}
}
Example 2​
Alternatively, you can use API token instead of username and password (if you have it):
{
"source": {
"token": "..." // use API token instead of username/password
},
"target": {
"token": "..."
}
}
Finally, to set up the organization's URL, we need to edit the prd_config.yaml
file, where we specify the source API URL. If the target API URL is different from the source, we can also specify target_api_base
.
If the URLs are identical, you can add the use_same_org_as_target
parameter with the value true
. In this case, you can remove target_api_base
.
# You can specify source and target API URL:
source_api_base: 'https://api.elis.rossum.ai/v1'
target_api_base: 'https://api.elis.rossum.ai/v1'
# Or add this to your YAML file in case the source and target are identical (and omit the target_api_base):
use_same_org_as_target: true
Configuring mapping.yaml
file​
Note that this file is automatically generated by the prd pull
command. It is typically not necessary to configure it manually unless some more advanced use-case is needed.
# The main key describing `source` organization details:
ORGANIZATION:
# ID of the `source` organization:
id: 123456
# Name of the `source` organization:
name: MyOrganization (Sandbox)
targets:
# ID of the `target` organization (if any):
- target_id: 654321
WORKSPACES:
# IDs of the `source` workspaces:
- id: 123456
# Name of the `source` workspace:
name: 'My Test Workspace'
targets:
# ID(s) of the `target` workspace(s) (there can be none or more than one):
- target_id: null
QUEUES:
# IDs of the `source` queues belonging to the `source` workspace above:
- id: 123456
# Name of the `source` queue:
name: Invoices
targets:
# ID(s) of the `target` queue(s) (there can be none or more than one):
- target_id: null
INBOX:
# IDs of the `source` inbox belonging to the `source` queue above:
id: 123456
# Name of the `source` inbox:
name: Invoices
targets:
# ID(s) of the `target` inbox(s) (there can be none or more than one):
- target_id: null
HOOKS:
# IDs of the `source` hooks:
- id: 123456
# Name of the `source` hook:
name: Supplier Data Matching
targets:
# ID(s) of the `target` hook(s) (there can be none or more than one):
- target_id: null
SCHEMAS:
# IDs of the `source` schemas:
- id: 123456
# Name of the `source` schema:
name: Tax invoices (US) schema
targets:
# ID(s) of the `target` schema(s) (there can be none or more than one):
- target_id: null