Configuration Verifier Delta Format
The Configuration Verifier (CV) identifies differences between your project configuration model and the current repository state. It outputs these differences as delta definitions in YAML format.
Delta Types
The CV detects and reports the following types of deltas:
add-prop: Property exists only in the configuration model.upd-prop: Property value differs between the configuration model and the repository.del-prop: Property exists only in the repository.add-node: Node exists only in the configuration model.del-node: Node exists only in the repository.ord-node: Node has a different set or order of child nodes.
Delta Definition Structure
Each delta definition follows a consistent YAML structure. The presence of certain sections depends on the delta type.
definitions:
config:
delta type:/path:
repository:
repository definition
configuration:
configuration model definition
definitions:
- config:
module: hcm group name/hcm project name/hcm module name
source: config yaml source file path
definition:
config definition
- config:
...
end-delta type: |2+
delta type:/path:
...
Example: upd-prop Delta
upd-prop:/hippo:configuration/hippo:frontend/settings/locales:
repository:
/hippo:configuration/hippo:frontend/settings:
locales: [en]
configuration:
/hippo:configuration/hippo:frontend/settings:
locales: [en, nl]
definitions:
- config:
module: hippo-cms/hippo-cms/hippo-cms-config
source: cms-settings.yaml
definition:
/hippo:configuration/hippo:frontend/settings:
locales: [en]
- config:
module: hippo-cms/hippo-cms-translations/hippo-cms-l10n-nl
source: add-locale.yaml
definition:
/hippo:configuration/hippo:frontend/settings:
locales:
operation: add
type: string
value: [nl]
end-upd-prop: |2+
In this example, the repository contains the multi-value string property locales: [en] at /hippo:configuration/hippo:frontend/settings. The configuration model defines locales: [en, nl], likely because the project includes the Dutch (nl) localization module for the CMS UI.
This example demonstrates most sections of a delta definition. The following sections explain each part in detail.
Delta Definition Path
upd-prop:/hippo:configuration/hippo:frontend/settings/locales
The delta definition path consists of the delta type (e.g., upd-prop:) followed by the path to the affected node or property.
Each delta definition begins with its unique delta path and ends with a corresponding end-<delta type> property, whose value is a newline. This termination marker helps separate multiple delta definitions in a single file. The YAML serializer (SnakeYaml) does not emit blank lines, so the end-<delta type>: |2+ property is used to serialize a property with only a newline value.
Repository Section
The repository section describes the state of the property or node in the repository. Its contents depend on the delta type:
- For
upd-prop,del-prop, anddel-node: Shows the property or node as it exists in the repository. You can use this definition to add or merge with the project configuration to prevent updating or removing the item. - For
add-propandadd-node: Shows the definition you can add to the project configuration to prevent the addition (usingoperation: deletefor properties or:meta.delete: truefor nodes). - For
ord-node: Includes a synthetic multi-value string property:meta.ordered-childrenlisting the child node names as ordered in the repository.
Configuration Section
The configuration section describes the state of the property or node in the configuration model. Its contents depend on the delta type:
- For
add-prop,upd-prop, andadd-node: Shows the effective definition in the configuration model, based on one or more config definitions. - For
del-propanddel-node: Not applicable; this section is omitted. - For
ord-node: Includes a synthetic multi-value string property:meta.ordered-childrenlisting the effective child node names in the configuration model.
Configuration Definitions Subsection
The definitions subsection under the configuration section lists all contributing config definitions (or fragments) from the project that result in the effective configuration model for the affected property or node.
- Definitions are listed in the order they are merged into the configuration model.
- Each entry includes:
module: The module providing the config definition, identified by group name, project name, and module name, separated by/.source: The YAML source file path, relative to the module'shcm-configfolder.definition: The relevant fragment from the config definition that contributes to the delta.
The path in the config definition is always the root path of the original definition. This uniquely identifies the definition in the source YAML file. If the root path is a parent of the delta path, only the intermediate child paths are shown up to the node or property matching the delta definition path.
Exported Value Resources
The CV exports binary property values and property values defined via resource files to separate files, similar to regular config or content definitions.
Delta definition YAML files may reference resource files for both repository property values and configuration property values from multiple modules. To avoid path conflicts, resource files are exported to separate folders:
- Repository property value resources are exported under the
repositorysubfolder. These files use generated unique paths, as they do not have predefined resource file paths. - Configuration model property resources are stored under the
configurationsubfolder, organized by module group name, project name, and module name.
In the delta definition, the resource path in the repository and configuration sections uses the complete relative resource file path. In the config definitions, the resource path is shown as defined in the original source. To locate the exported resource file for a configuration definition, combine the module's full name with the module-relative resource path.
Example: Resource Export
upd-prop:/hippo:configuration/hippo:modules/scxmlregistry/hippo:moduleconfig/hipposcxml:definitions/documentworkflow/hipposcxml:source:
repository:
/hippo:configuration/hippo:modules/scxmlregistry/hippo:moduleconfig/hipposcxml:definitions/documentworkflow:
hipposcxml:source:
type: string
resource: repository/configuration/modules/scxmlregistry/moduleconfig/definitions/documentworkflow/source.scxml
configuration:
/hippo:configuration/hippo:modules/scxmlregistry/hippo:moduleconfig/hipposcxml:definitions/documentworkflow:
hipposcxml:source:
type: string
resource: configuration/hippo-cms/hippo-repository/hippo-repository-workflow/documentworkflow.scxml
definitions:
- config:
module: hippo-cms/hippo-repository/hippo-repository-workflow
source: scxml-definitions.yaml
definition:
/hippo:configuration/hippo:modules/scxmlregistry/hippo:moduleconfig/hipposcxml:definitions:
/documentworkflow:
hipposcxml:source:
type: string
resource: /documentworkflow.scxml
end-upd-prop: |2+
This delta definition produces the following files in the CV output folder (assuming default path-prefix-source-mapping):
config-delta-modules.yaml
configuration/hippo-cms/hippo-repository/hippo-repository-workflow/source.scxml
configuration/hippo-cms/hippo-repository/hippo-repository-workflow/documentworkflow.scxml