The Query Engine has a lot of configurable parameters, many of which can be ignored by most users. There is only one parameter that must be configured for the query engine to start: the list of acceptable JWT issuers.

The full set of parameters is defined by the Parameters class, which can be found on GitHub.

The Query Engine uses the params4j library. This means that parameters can be configured in a few different ways (in increasing order of priority):

The Query Engine will look for any files matching /etc/query-engine/*.yaml and merge them into the parameters. Files will be sorted so if there are multiple files they will be processed in name order.

A file named /etc/query-engine/persistence/dataSource/user/password will be loaded as the password for accessing the persistence data source. Any terminal value in the parameters hierarchy can be set in this way.

The rules of environment variables in Linux shells can cause problems in some situations, to work around this the Query Engine parameters can be specified either in all upper case with underscore delimiters, or in the correct case with period delimiters. In order to avoid conflict with other variables, only variables with the prefix "query-engine" (or "QUERY_ENGINE") will be considered. Thus either of these environment variables can be used for setting the password for accessing the persistence data source:

Parameters can be set from system properties, in order to avoid conflict with other variables, only variables with the prefix "query-engine" will be considered. Thus the system property "query-engine.persistence.dataSource.user.password" can be used for setting the password for accessing the persistence data source:

Individual parameters can be set on the command line prefixed with "--". Thus the argument "--persistence.dataSource.user.password" can be used for setting the password for accessing the persistence data source:

Getting Started

Authentication