• Type: Sub-task
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 7.8.0
    • Component/s: JLib
    • Labels:


      The configuration files work as follows:

      The new configuration files use json or yaml and have the following format:

        "extends": <filename-of-base-configuration>,
        "version": "1.0",
        <component-specific-tag>: {
          "name": "value",
          "Children": {
             "Child": {
                "name": <unique-name>,

      The configuration file is read.  If "extends" is specified then this file is applied as a delta to the base-configuration.  If not specified then it is applied as a delta to the default configuration defined by the component.
      When merging configuration, lower case keys are treated as attributes (and only have a single value).  Upper case keys are treated as as elements.  If they have a name tag then they are matched by name, otherwise there is assumed to be only one instance.

      Environment variables can be used to overwrite settings.  If they have the form HPCC_CONFIG_<COMPONENT>_X=Y it is equivalent to specifying --X=Y on the command line.

      All options start with – e,g, --x=y override values in the configuration (equivalent to "x": "y")

      Old configuration files are supported.  If provided they are internally translated to the new configuration format.

      The rules for processing configuration files are:


      Load default configuration from string embedded in the component
      If –config specified (use last one if specified more than once):
        we check it is present and read it and merge in
      else if <old-configuration-filename.xml is present:
        we read it and translate it and merge in
      merge all env vars matching pattern into property tree
      merge all args starting "--" into property tree


      There is also standard processing for the following options:


      --init (which outputs the defaultsYaml text to stdout with every line commented out)
      --help (which outputs something derived from defaultYaml file)
      --outputconfig   trace the final configuration to stdout






            • Assignee:
              ghalliday Gavin Halliday
              ghalliday Gavin Halliday
            • Votes:
              0 Vote for this issue
              1 Start watching this issue


              • Created: