Skip to content

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

yaml
- 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

FieldTypeRequiredDescription
namestringyesSolution name. Used as the output directory name under others/solutionsData/.
domainsobjectnoExports RecordM business domains. See domains.
definitionslist of objectsnoExports RecordM definitions and optionally their user views. See definitions.
instanceslist of objectsnoExports data records as Excel files. See instances.
groupslist of stringsnoUserM 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.
kibanaobjectnoExports Kibana saved objects. See kibana.

domains

FieldTypeRequiredDescription
filterlist of stringsyesSubstrings 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.

FieldTypeRequiredDescription
filterstringyesSubstring matched against definition name and description. All matching definitions are included.
viewsstringnoUsername 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 with views set).

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.

FieldTypeRequiredDescription
definitionstringyesExact name of the definition to export instances from. The definition must have an $instanceLabel field.
querystringyesSearch query used to filter which instances are exported. Use * to export all.
cropbooleannoWhen 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

FieldTypeRequiredDescription
spaceslist of objectsyesKibana spaces to export.

Each entry in spaces:

FieldTypeRequiredDescription
identifierstringyesKibana space identifier (the URL slug, e.g. my-space).
namestringyesDisplay 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

yaml
- 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