RealityServer Configuration

AMQP Directives

RealityServer contains integrations for AMQP message brokers such as RabbitMQ. These may be used by RealityServer features such as the queue manager. Since these integrations can be used by multiple RealityServer features they are defined in their own <user aws> section. Here is an example configuration:

<user amqp>
	<user queue>
		name my_amqp_queue
		host localhost
		port 5672
		queue_name test_queue
		connect_method tls
		sasl_method external
		<user tls>
			ca_cert_path ca_certificate.pem
			cert_path client_certificate.pem
			key_path  client_key.pem
			key_password ITS_A_SECRET
			verify_peer on
			verify_hostname on
			min_tls_version latest
			max_tls_version latest
		</user>
	</user>
</user>

This example defines an AMQP queue to allow submitting jobs and listening for jobs (if defined in the listen_queue directive of the queue manager).

The available configuration directives are defined below. Pay particular attention to the context of each option since many of these configuration directives are nested several levels deep in different user sections. For example, the tls directive in the example above is in the amqp/queue/tls context.

Note: You can define multiple <user queue> sections inside the <user amqp> section. This allows you to have multiple named AMQP queues defined which are then used by name. As described in queue manager directives section, only a single queue may be listened to at a time.

name

Description Name of the queue
Syntax name string
Context user amqp/queue

Defines the name of the AMQP queue used in RealityServer. This is the internal name used by RealityServer commands and other configuration directives to reference the queue and is not related to the name of the queue in the message broker.

host

Description Host name of the AMQP message broker.
Syntax host string
Context user amqp/queue

This can be a hostname or IP address. Both IPv4 and IPv6 are acceptable.

port

Description The port that the AMQP message broker is listening on.
Syntax port number
Context user amqp/queue

The port to connect on. RabbitMQ brokers typically listen on port 5672, and 5671 for SSL/TLS.

virtual_host

Description The virtual host to connect to on the broker.
Syntax virtual_host string
Context user amqp/queue

The virtual host to connect to on the broker. The default on most brokers is "/".

exchange

Description The exchange on the broker to publish to.
Syntax exchange string
Context user amqp/queue

The exchaange used when publishing messages to the broker.

exchange

Description The exchange on the broker to publish to.
Syntax exchange string
Context user amqp/queue

The exchaange used when publishing messages to the broker.

routing_key

Description The routing key used when publishing messages.
Syntax routing_key string
Context user amqp/queue

The routing key used when publishing messages. When using a direct exchange this refers to the name of the queue to publish to.

username

Description Username used to log in to the message broker.
Syntax username string
Context user amqp/queue

The username used to log in when plain authentication is used.

password

Description Password used to log in to the message broker.
Syntax password string
Context user amqp/queue

The password used to log in when plain authentication is used.

sasl_method

Description The SASL method used for authentication.
Syntax sasl_method string (plain|external)
Context user amqp/queue

The SASL method used for authentication. This may be either plain if username and password are specified or external if TLS based authentication is used.

connect_method

Description The method used to connect to the message broker.
Syntax connect_method string (tcp|tls)
Context user amqp/queue

Whether a secure TLS connection or plain TCP connection should be made to the message broker.

ca_cert_path

Description The path to CA certificate.
Syntax ca_cert_path string
Context user amqp/queue/tls

The path to the CA bundle file in PEM format.

cert_path

Description The path to the client certificate.
Syntax cert_path string
Context user amqp/queue/tls

The path to the client certificate file in PEM format.

key_path

Description The path to the client private key file.
Syntax key_path string
Context user amqp/queue/tls

The path to the client private key file in PEM format.

key_password

Description The password used for the client private key file.
Syntax key_password string
Context user amqp/queue/tls

This entry allows you to provide the password for password-proetected private key files.

verify_peer

Description Enable or disable peer verification.
Syntax verify_peer string
Context user amqp/queue/tls

If peer verification is enabled then the common name in the server certificate must match the server name. Peer verification is enabled by default.

verify_hostname

Description Enable or disable hostname verification.
Syntax verify_hostname string
Context user amqp/queue/tls

Hostname verification checks the broker certificate for a CN or SAN that matches the server hostname.

min_tls_version

Description Sets a minimum tls version requirement for the connection.
Syntax min_tls_version string (1.0|1.1|1.2|latest)
Context user amqp/queue/tls

Sets the oldest acceptable TLS version that is acceptable when connecting to the broker.

max_tls_version

Description Sets a maximum tls version requirement for the connection.
Syntax max_tls_version string (1.0|1.1|1.2|latest)
Context user amqp/queue/tls

Sets the newest acceptable TLS version that is acceptable when connecting to the broker.