Chapter 11. File-based configuration


Red Hat build of Rhea can read the configuration options used to establish connections from a local file named connect.json. This enables you to configure connections in your application at the time of deployment.

The library attempts to read the file when the application calls the container connect method without supplying any connection options.

11.1. File locations

If set, Red Hat build of Rhea uses the value of the MESSAGING_CONNECT_FILE environment variable to locate the configuration file.

If MESSAGING_CONNECT_FILE is not set, Red Hat build of Rhea searches for a file named connect.json at the following locations and in the order shown. It stops at the first match it encounters.

On Linux:

  1. $PWD/connect.json, where $PWD is the current working directory of the client process
  2. $HOME/.config/messaging/connect.json, where $HOME is the current user home directory
  3. /etc/messaging/connect.json

On Windows:

  1. %cd%/connect.json, where %cd% is the current working directory of the client process

If no connect.json file is found, the library uses default values for all options.

11.2. The file format

The connect.json file contains JSON data, with additional support for JavaScript comments.

All of the configuration attributes are optional or have default values, so a simple example need only provide a few details:

Example: A simple connect.json file

{
    "host": "example.com",
    "user": "alice",
    "password": "secret"
}

SASL and SSL/TLS options are nested under "sasl" and "tls" namespaces:

Example: A connect.json file with SASL and SSL/TLS options

{
    "host": "example.com",
    "user": "ortega",
    "password": "secret",
    "sasl": {
        "mechanisms": ["SCRAM-SHA-1", "SCRAM-SHA-256"]
    },
    "tls": {
        "cert": "/home/ortega/cert.pem",
        "key": "/home/ortega/key.pem"
    }
}

11.3. Configuration options

The option keys containing a dot (.) represent attributes nested inside a namespace.

Table 11.1. Configuration options in connect.json
KeyValue typeDefault valueDescription

scheme

string

"amqps"

"amqp" for cleartext or "amqps" for SSL/TLS

host

string

"localhost"

The hostname or IP address of the remote host

port

string or number

"amqps"

A port number or port literal

user

string

None

The user name for authentication

password

string

None

The password for authentication

sasl.mechanisms

list or string

None (system defaults)

A JSON list of enabled SASL mechanisms. A bare string represents one mechanism. If none are specified, the client uses the default mechanisms provided by the system.

sasl.allow_insecure

boolean

false

Enable mechanisms that send cleartext passwords

tls.cert

string

None

The filename or database ID of the client certificate

tls.key

string

None

The filename or database ID of the private key for the client certificate

tls.ca

string

None

The filename, directory, or database ID of the CA certificate

tls.verify

boolean

true

Require a valid server certificate with a matching hostname

Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.