The Configuration Manager administers settings for other products. It presents a series of forms to users which are used to create and update product configurations.
The tool itself is made up of one form, one workflow process and a set of End Points. The actual forms and End Points used to manage a given product's settings are provided by that product. These are plugged into the Configuration Manager when a product is installed.
All configuration settings are written to the platform's history service, from where they are retrieved by the products that need to use them.
Installation and Configuration
Configuration Manager itself has a single configuration End Point. This End Point holds a list of the products that have been set up to use Configuration Manager and the location of their own configuration End Points.
For example, on this system, three products have been plugged into Configuration Manager:
function(params, credentials) {
// Config Manager supported products
return {
"Case Management": "goss.CaseManagement.v1.configuration.getCoreConfig",
"Map Providers": "goss.MapProviders.configuration.getCoreConfig",
"Report It": "goss.ReportIt.v1.configuration.getCoreConfig"
};
}
They appear as a list on the first page of the Configuration Manager:
Configuring a Product
Most products have multiple categories of configurations. Case Management has configuration for each case type, Report It (in the screenshot below) has configuration for each type of thing that can be reported.
You can then drill-down into a configuration to update the settings:
Exporting and Importing
Most products support exporting and importing configurations from one installation to another.
Pressing export generates a JSON copy of the relevant configuration:
Copy the export code and paste it into the product's configuration importer:
Take care when importing. The export is an exact copy of the configuration, which may include settings specific to the location that the configuration was exported from. For example, your configuration might include URLs, email "from" addresses, user groups and API keys which will all be different in the environment where you are importing.
History Format
A configuration history has the following format:
{
"result": [{
"labela": "Configuration Manager",
"labelb": "allotmentenquiries",
"labelc": "configs",
"labeld": "Case Management",
"labele": null,
"created": {},
"lastupdated": {},
"sealed": false,
"subject": null,
"events": [{...},{...}]
}]
}
Labela is always "Configuration Manager" and labelc "configs". Labelb is a unique identifier for the thing that is being configured. In the example above,
As settings are updated, new events are added to the configuration history. Each event holds a complete copy of the configuration, with products reading the most recent event when retrieving their settings.