butler icon indicating copy to clipboard operation
butler copied to clipboard

Clean up structure of Butler config file

Open mountaindude opened this issue 4 months ago • 0 comments

Overview

The config file has become somewhat inconsistent over the years, which is not surprising. All in all it has served well, but a cleanup is motivated when a major Butler release (with breaking features) is planned.

This ticket details the changes that will be done in the config file format.

Changes to config file

Change "Adress" to "Address" everywhere

Use correct spelling of that word throughout the config file.

Specifically:

  • fromAdress --> fromAddress

Change apiListEnbledEndpoints to apiListEnabledEndpoints

The new property path will be: Butler.restServerEndpointsEnable.apiListEnabledEndpoints

Remove Butler.influxDb.instanceTag

That setting can be handled either by the various feature-specific static tag properties Butler.influxDb.instanceTag.reloadTaskFailure.tag.static, Butler.influxDb.instanceTag.reloadTaskSuccess.tag.static etc, or in a new, shared setting Butler.influxDb.tag.static:

Butler:
  influxDb:
    tag:
      static:
        - name: butler_instance
          value: dev

Note that the previously used instanceTag property was assigned to a InfluxDB tag called butler_instance. Thus the suggested format above.

Generalise http header def in Butler.configEngine.headers

Currently looks like this:

Butler:
  configEngine: 
    headers: 
      X-Qlik-User: UserDirectory=Internal;UserId=sa_repository

Make it an array like this, using the name-value model used elsewhere in the config file:

Butler:
  configEngine: 
    headers: 
      static:
        - name: X-Qlik-User                             # Mandatory, this header must be present!
          value: UserDirectory=Internal; UserId=sa_repository

This will allow for using both the mandatory X-Qlik-User header (Butler will verify that this header is defined in the config file!) and other headers, if such are needed.

Generalise http headers for use with the QRS config settings

Currently looks like this:

Butler:
  configQRS: 
    headerKey: 
      headerValue: UserDirectory=Internal; UserId=sa_repository

Change to this:

Butler:
  configQRS:
    headers: 
      static: 
        - name: X-Qlik-User                             # Mandatory, this header must be present!
          value: UserDirectory=Internal; UserId=sa_repository

Butler will verify that the mandatory X-Qlik-User header is present, but other headers can be added too, if needed.

mountaindude avatar Oct 01 '24 07:10 mountaindude