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, and del-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-prop and add-node: Shows the definition you can add to the project configuration to prevent the addition (using operation: delete for properties or :meta.delete: true for nodes).
  • For ord-node: Includes a synthetic multi-value string property :meta.ordered-children listing 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, and add-node: Shows the effective definition in the configuration model, based on one or more config definitions.
  • For del-prop and del-node: Not applicable; this section is omitted.
  • For ord-node: Includes a synthetic multi-value string property :meta.ordered-children listing 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's hcm-config folder.
    • 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 repository subfolder. These files use generated unique paths, as they do not have predefined resource file paths.
  • Configuration model property resources are stored under the configuration subfolder, 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

Share Feedback
Page: /build/enterprise-plugins/configuration-management/configuration-verifier-delta-format
Section: Build
Category *