Configuration Reference

Configuration variables can be set for Hail Query by:

  1. passing them as keyword arguments to init(),

  2. running a command of the form hailctl config set <VARIABLE_NAME> <VARIABLE_VALUE> from the command line, or

  3. setting them as shell environment variables by running a command of the form export <VARIABLE_NAME>=<VARIABLE_VALUE> in a terminal, which will set the variable for the current terminal session.

Each method for setting configuration variables listed above overrides variables set by any and all methods below it. For example, setting a configuration variable by passing it to init() will override any values set for the variable using either hailctl or shell environment variables.


Some environment variables are shared between Hail Query and Hail Batch. Setting one of these variables via init(), hailctl, or environment variables will affect both Query and Batch. However, when instantiating a class specific to one of the two, passing configuration to that class will not affect the other. For example, if one value for gcs_bucket_allow_list is passed to init(), a different value may be passed to the constructor for Batch’s ServiceBackend, which will only affect that instance of the class (which can only be used within Batch), and won’t affect Query.

Supported Configuration Variables

GCS Bucket Allowlist

Keyword Argument Name


Keyword Argument Format

["bucket1", "bucket2"]

hailctl Variable Name


Environment Variable Name


hailctl and Environment Variable Format



Prevents Hail Query from erroring if the default storage policy for any of the given locations is to use cold storage.

Shared between Query and Batch