solutions.yml reference
solutions.yml configures what data cob-cli updateFromServer exports from the server. It is a YAML file at the root of the repository containing a list of solutions. Each solution maps to a directory under others/solutionsData/.
Top-level structure
- name: <solution_name>
domains:
filter:
- <string>
definitions:
- filter: <string>
views: <string>
instances:
- definition: <string>
query: <string>
crop: <boolean>
groups:
- <query>
kibana:
spaces:
- identifier: <string>
name: <string>Each list entry is a solution. All data type keys (domains, definitions, instances, groups, kibana) are optional. Omitting a key skips that data type for that solution.
Solution fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Solution name. Used as the output directory name under others/solutionsData/. |
domains | object | no | Exports RecordM business domains. See domains. |
definitions | list of objects | no | Exports RecordM definitions and optionally their user views. See definitions. |
instances | list of objects | no | Exports data records as Excel files. See instances. |
groups | list of strings | no | UserM search queries. Each string is matched against group names. All groups matching any query are exported, together with all roles assigned to those groups and all permissions assigned to those roles. See groups. |
kibana | object | no | Exports Kibana saved objects. See kibana. |
domains
| Field | Type | Required | Description |
|---|---|---|---|
filter | list of strings | yes | Substrings matched against domain name and description. Domains matching any entry are included. |
Output: domains/<domain_name>.json — domain name and sorted list of its definition names.
definitions
Each entry in definitions selects a set of definitions by matching against their name or description.
| Field | Type | Required | Description |
|---|---|---|---|
filter | string | yes | Substring matched against definition name and description. All matching definitions are included. |
views | string | no | Username whose shared views are exported for matching definitions. When omitted, views are not exported. |
Output:
definitions/<definition_name>.json— tagged changes for each matched definition.definitions/_index— list of exported definition names.views/<definition_name>.jsonl— shared user views (only for definitions withviewsset).
Definitions are exported in dependency order: if definition A references definition B, B appears first.
instances
Each entry in instances exports data records from one definition as an Excel file.
| Field | Type | Required | Description |
|---|---|---|---|
definition | string | yes | Exact name of the definition to export instances from. The definition must have an $instanceLabel field. |
query | string | yes | Search query used to filter which instances are exported. Use * to export all. |
crop | boolean | no | When true, after importing on the destination server, all records not present on the excel file are removed. Requires the definition to have an $importer.last field. |
Output: instances/<definition_name>.xlsx
Output: instances/_index — one line per entry in the format <definition_name>:<crop>.
groups
groups exports the UserM authorization model for the solution. It contains search query strings — each is matched against group names in UserM. The export follows the full authorization hierarchy: every matching group, all roles assigned to those groups, and all permissions assigned to those roles are included.
Permission names that contain numeric RecordM definition IDs (e.g. instances:read:42) are rewritten to use the definition name instead (e.g. instances:read:§§Invoice§§), making the output stable across servers.
Output: permissions.json — a single JSON object with three arrays: groups, roles, and perms.
kibana
| Field | Type | Required | Description |
|---|---|---|---|
spaces | list of objects | yes | Kibana spaces to export. |
Each entry in spaces:
| Field | Type | Required | Description |
|---|---|---|---|
identifier | string | yes | Kibana space identifier (the URL slug, e.g. my-space). |
name | string | yes | Display name, used as the output filename. |
Output: kibana/<name>.ndjson — all saved objects from the space (dashboards, visualizations, lenses, index patterns, etc.). Index pattern titles that reference RecordM definitions are replaced with the definition name wrapped in §§ markers.
Output: kibana/_index — one line per space in the format <identifier>:<name>.
Example
- name: invoicing
domains:
filter:
- Invoicing
definitions:
- filter: Invoice
views: cob-admin
- filter: Supplier
instances:
- definition: Invoice
query: "status:open"
crop: false
- definition: Supplier
query: "*"
crop: true
groups:
- invoicing
- finance
kibana:
spaces:
- identifier: invoicing
name: Invoicing