---
redirect_from:
  - /reference/environment-variables
---

# Environment variables

<InfoBox>

To see a complete list of environment variables for a specific data source,
please check the relevant page on [Connecting to Data Sources][ref-config-db].

</InfoBox>

## `CUBEJS_API_SECRET`

The secret key used to sign and verify JWTs. Generated on project scaffold with
`npx cubejs-cli create`.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid string  | N/A                    | N/A                   |

See also the [`check_auth` configuration
option](/reference/configuration/config#check_auth).

## `CUBEJS_APP`

An application ID used to uniquely identify the Cube deployment. Can be
different for multitenant setups.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid string  | `cubejs`               | `cubejs`              |

## `CUBEJS_AWS_KEY`

The AWS Access Key ID to use for database connections.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid AWS Access Key ID | N/A                    | N/A                   |

## `CUBEJS_AWS_SECRET`

The AWS Secret Access Key to use for database connections.

| Possible Values               | Default in Development | Default in Production |
| ----------------------------- | ---------------------- | --------------------- |
| A valid AWS Secret Access Key | N/A                    | N/A                   |

## `CUBEJS_AWS_REGION`

The AWS region to use for database connections.

| Possible Values                        | Default in Development | Default in Production |
| -------------------------------------- | ---------------------- | --------------------- |
| [A valid AWS region][aws-docs-regions] | N/A                    | N/A                   |

## `CUBEJS_AWS_S3_OUTPUT_LOCATION`

The S3 path to store [AWS Athena][aws-athena] query results made by Cube.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid S3 path | N/A                    | N/A                   |

## `CUBEJS_AWS_ATHENA_WORKGROUP`

The name of the [AWS Athena workgroup][aws-athena-workgroup] in which the query
is being started.

| Possible Values                                  | Default in Development | Default in Production |
| ------------------------------------------------ | ---------------------- | --------------------- |
| [A valid Athena Workgroup][aws-athena-workgroup] | N/A                    | N/A                   |

## `CUBEJS_AWS_ATHENA_CATALOG`

The name of the AWS Athena catalog to use for queries.

| Possible Values                                   | Default in Development | Default in Production |
| ------------------------------------------------- | ---------------------- | --------------------- |
| [A valid Athena Catalog name][aws-athena-catalog] | N/A                    | N/A                   |

## `CUBEJS_DB_SCHEMA`

The name of the schema to use as `information_schema` filter. Reduces count of
tables loaded during data model generation.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid schema name | N/A                    | N/A                   |

## `CUBEJS_CACHE_AND_QUEUE_DRIVER`

The cache and queue driver to use for the Cube deployment.

| Possible Values       | Default in Development | Default in Production |
| --------------------- | ---------------------- | --------------------- |
| `cubestore`, `memory` | `memory`               | `cubestore`           |

It can be also set using the [`cache_and_queue_driver` configuration
option](/reference/configuration/config#cache_and_queue_driver).

## `CUBEJS_CONCURRENCY`

The number of concurrent connections each query queue has to the database.

| Possible Values | Default in Development                      | Default in Production                       |
| --------------- | ------------------------------------------- | ------------------------------------------- |
| A valid number  | [See database-specific page][ref-config-db] | [See database-specific page][ref-config-db] |

It can be also set as `concurrency` in the [`orchestrator_options` configuration
option](/reference/configuration/config#orchestrator_options).

If you'd like to adjust the concurrency for the refresh worker, use
`CUBEJS_REFRESH_WORKER_CONCURRENCY`.

## `CUBEJS_REFRESH_WORKER_CONCURRENCY`

The number of concurrent connections each query queue of the refresh worker
has to the database.

| Possible Values | Default in Development       | Default in Production        |
| --------------- | ---------------------------- | ---------------------------- |
| A valid number  | Same as `CUBEJS_CONCURRENCY` | Same as `CUBEJS_CONCURRENCY` |

## `CUBEJS_SCHEDULED_REFRESH_QUERIES_PER_APP_ID`

How many pre-aggregations the refresh worker will build in parallel for each
application id as determined by the [`context_to_app_id`](#context_to_app_id)
configuration option.

Note that this parameter doesn't override the overall refresh worker concurrency,
configured via the `CUBEJS_REFRESH_WORKER_CONCURRENCY` environment variable, and
it should be adjusted accordingly.

| Possible Values                      | Default in Development | Default in Production |
| ------------------------------------ | ---------------------- | --------------------- |
| A valid number of concurrent queries | 10                     | 10                    |

<InfoBox>

Previously, this environment variable was named `CUBEJS_SCHEDULED_REFRESH_CONCURRENCY`.

</InfoBox>

## `CUBEJS_CUBESTORE_HOST`

The hostname of the Cube Store deployment

| Possible Values  | Default in Development | Default in Production |
| ---------------- | ---------------------- | --------------------- |
| A valid hostname | `localhost`            | N/A                   |

## `CUBEJS_CUBESTORE_PORT`

The port of the Cube Store deployment.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | `3030`                 | `3030`                |

## `CUBEJS_DATASOURCES`

A comma-separated list of data source names. Data sources defined here can be
used to [decorate `CUBEJS_DB_*`][ref-config-multiple-ds-decorating-env]
environment variables.

| Possible Values                   | Default in Development | Default in Production |
| --------------------------------- | ---------------------- | --------------------- |
| A comma-separated list of strings | N/A                    | N/A                   |

```dotenv
CUBEJS_DATASOURCES=default,datasource1
```

## `CUBEJS_DB_BQ_CREDENTIALS`

A Base64 encoded JSON key file for connecting to Google BigQuery.

| Possible Values                                                  | Default in Development | Default in Production |
| ---------------------------------------------------------------- | ---------------------- | --------------------- |
| A valid Google BigQuery JSON key file encoded as a Base64 string | N/A                    | N/A                   |

## `CUBEJS_DB_BQ_KEY_FILE`

The path to a JSON key file for connecting to Google BigQuery.

| Possible Values                       | Default in Development | Default in Production |
| ------------------------------------- | ---------------------- | --------------------- |
| A valid Google BigQuery JSON key file | N/A                    | N/A                   |

## `CUBEJS_DB_BQ_LOCATION`

The Google BigQuery dataset location to connect to. Required if used with
pre-aggregations outside of US. If not set then BQ driver will fail with
`Dataset was not found in location US` error.

| Possible Values                                                         | Default in Development | Default in Production |
| ----------------------------------------------------------------------- | ---------------------- | --------------------- |
| [A valid Google BigQuery regional location][bq-docs-regional-locations] | N/A                    | N/A                   |

## `CUBEJS_DB_BQ_PROJECT_ID`

The Google BigQuery project ID to connect to.

| Possible Values                    | Default in Development | Default in Production |
| ---------------------------------- | ---------------------- | --------------------- |
| A valid Google BigQuery Project ID | N/A                    | N/A                   |

## `CUBEJS_DB_CLICKHOUSE_READONLY`

Whether the ClickHouse user has read-only access or not.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | N/A                    | N/A                   |

## `CUBEJS_DB_CLICKHOUSE_COMPRESSION`

Whether the ClickHouse client has compression enabled or not.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

## `CUBEJS_DB_DATABRICKS_ACCEPT_POLICY`

To accept the license terms for the Databricks JDBC driver, this must be set to
`true`.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | N/A                    | N/A                   |

## `CUBEJS_DB_DATABRICKS_CATALOG`

The name of the [Databricks catalog][databricks-catalog] to connect to.

| Possible Values                 | Default in Development | Default in Production |
| ------------------------------- | ---------------------- | --------------------- |
| A valid Databricks catalog name | N/A                    | N/A                   |

[databricks-catalog]: (https://docs.databricks.com/en/data-governance/unity-catalog/create-catalogs.html)

## `CUBEJS_DB_DATABRICKS_TOKEN`

The [personal access token][databricks-docs-pat] used to authenticate the
Databricks connection.

| Possible Values                 | Default in Development | Default in Production |
| ------------------------------- | ---------------------- | --------------------- |
| A valid Databricks access token | N/A                    | N/A                   |

## `CUBEJS_DB_DATABRICKS_URL`

The URL for a JDBC connection.

| Possible Values  | Default in Development | Default in Production |
| ---------------- | ---------------------- | --------------------- |
| A valid JDBC URL | N/A                    | N/A                   |

## `CUBEJS_DB_DOMAIN`

A domain name within an MS SQL database to connect to.

| Possible Values                              | Default in Development | Default in Production |
| -------------------------------------------- | ---------------------- | --------------------- |
| A valid domain name within a MS SQL database | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_MEMORY_LIMIT`

The [maximum memory limit][duckdb-docs-config] for DuckDB. Equivalent to
`SET memory_limit=<MEMORY_LIMIT>`.

| Possible Values                  | Default in Development | Default in Production |
| -------------------------------- | ---------------------- | --------------------- |
| A valid MotherDuck service token | 75% of available RAM   | 75% of available RAM  |

[duckdb-docs-config]: https://duckdb.org/docs/sql/configuration.html

## `CUBEJS_DB_DUCKDB_SCHEMA`

The [default search schema][duckdb-docs-config] for DuckDB.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid schema name | `main`                 | `main`                |

## `CUBEJS_DB_DUCKDB_MOTHERDUCK_TOKEN`

The [service token][motherduck-docs-svc-token] to use for connections to
MotherDuck.

| Possible Values                  | Default in Development | Default in Production |
| -------------------------------- | ---------------------- | --------------------- |
| A valid MotherDuck service token | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_DATABASE_PATH`

The database filepath to use for connection to a local database.

| Possible Values                   | Default in Development | Default in Production |
| --------------------------------- | ---------------------- | --------------------- |
| A valid duckdb database file path | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_S3_ACCESS_KEY_ID`

The AWS Access Key ID to use for S3 connections.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid AWS Access Key ID | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_S3_SECRET_ACCESS_KEY`

The AWS Secret Access Key to use for S3 connections.

| Possible Values               | Default in Development | Default in Production |
| ----------------------------- | ---------------------- | --------------------- |
| A valid AWS Secret Access Key | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_S3_ENDPOINT`

The AWS endpoint to use for S3 connections.

| Possible Values                                   | Default in Development | Default in Production |
| ------------------------------------------------- | ---------------------- | --------------------- |
| [A valid AWS S3 endpoint][aws-docs-vpc-endpoints] | N/A                    | N/A                   |

[aws-docs-vpc-endpoints]:
  https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html

## `CUBEJS_DB_DUCKDB_S3_REGION`

The AWS region to use for S3 connections.

| Possible Values                        | Default in Development | Default in Production |
| -------------------------------------- | ---------------------- | --------------------- |
| [A valid AWS region][aws-docs-regions] | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_S3_USE_SSL`

Use SSL when connecting to S3.

| Possible Values                        | Default in Development | Default in Production |
| -------------------------------------- | ---------------------- | --------------------- |
| True or false                          | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_S3_URL_STYLE`

The URL style to be used by S3.

| Possible Values                        | Default in Development | Default in Production |
| -------------------------------------- | ---------------------- | --------------------- |
| [vhost/path]                           | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_S3_SESSION_TOKEN`

The S3 session token.

| Possible Values                        | Default in Development | Default in Production |
| -------------------------------------- | ---------------------- | --------------------- |
| A valid S3 session token               | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_EXTENSIONS`

A comma-separated list of DuckDB extensions	to install and load.

| Possible Values                             | Default in Development | Default in Production |
| ------------------------------------------- | ---------------------- | --------------------- |
| A comma-separated list of DuckDB extensions | N/A                    | N/A                   |

## `CUBEJS_DB_DUCKDB_COMMUNITY_EXTENSIONS`

A comma-separated list of DuckDB community extensions	to install and load.

| Possible Values                                       | Default in Development | Default in Production |
| ----------------------------------------------------- | ---------------------- | --------------------- |
| A comma-separated list of DuckDB community extensions | N/A                    | N/A                   |

## `CUBEJS_DB_ELASTIC_APIKEY_ID`

The [ID of the API key from elastic.co][elastic-docs-api-keys]. Required when
using Elastic Cloud.

| Possible Values               | Default in Development | Default in Production |
| ----------------------------- | ---------------------- | --------------------- |
| A valid Elastic.co API key ID | N/A                    | N/A                   |

## `CUBEJS_DB_ELASTIC_APIKEY_KEY`

The [API key from elastic.co][elastic-docs-api-keys]. Required when using
Elastic Cloud.

| Possible Values            | Default in Development | Default in Production |
| -------------------------- | ---------------------- | --------------------- |
| A valid Elastic.co API key | N/A                    | N/A                   |

## `CUBEJS_DB_ELASTIC_OPENDISTRO`

If `true`, then use the Open Distro for Elasticsearch.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | N/A                    | N/A                   |

## `CUBEJS_DB_ELASTIC_QUERY_FORMAT`

By default, queries return data in JDBC format, but you can also return data in
standard Elasticsearch JDBC, JSON, CSV, YAML or raw formats (only JSON and JDBC
are currently supported).

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `json`, `jdbc`  | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET`

The name of a bucket in cloud storage to store the database export snapshots.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values                                | Default in Development | Default in Production |
| ---------------------------------------------- | ---------------------- | --------------------- |
| A valid bucket in the configured cloud storage | N/A                    | N/A                   |

```dotenv
CUBEJS_DB_EXPORT_BUCKET=exports-20210505

# Decorated with a data source named `datasource1`
CUBEJS_DS_DATASOURCE1_DB_EXPORT_BUCKET=exports-20210505
```

## `CUBEJS_DB_EXPORT_BUCKET_TYPE`

The cloud provider where the bucket is hosted.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `gcp`, `s3`     | N/A                    | N/A                   |

```dotenv
CUBEJS_DB_EXPORT_BUCKET_TYPE=gcp

# Decorated with a data source named `datasource1`
CUBEJS_DS_DATASOURCE1_DB_EXPORT_BUCKET_TYPE=gcp
```

## `CUBEJS_DB_EXPORT_BUCKET_AWS_KEY`

The AWS Access Key ID to use for the export bucket.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid AWS Access Key ID | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET_AWS_SECRET`

The AWS Secret Access Key to use for the export bucket.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values               | Default in Development | Default in Production |
| ----------------------------- | ---------------------- | --------------------- |
| A valid AWS Secret Access Key | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET_AWS_REGION`

The AWS region of the export bucket.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values                        | Default in Development | Default in Production |
| -------------------------------------- | ---------------------- | --------------------- |
| [A valid AWS region][aws-docs-regions] | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET_AZURE_KEY`

The Azure Access Key to use for the export bucket.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values          | Default in Development | Default in Production |
| ------------------------ | ---------------------- | --------------------- |
| A valid Azure Access Key | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET_AZURE_TENANT_ID`

The Azure tenant ID to use for the export bucket.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values         | Default in Development | Default in Production |
| ----------------------- | ---------------------- | --------------------- |
| A valid Azure Tenant ID | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET_AZURE_CLIENT_ID`

The Azure client ID to use for the export bucket.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values         | Default in Development | Default in Production |
| ----------------------- | ---------------------- | --------------------- |
| A valid Azure Client ID | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET_AZURE_CLIENT_SECRET`

The Azure client secret to use for the export bucket.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values             | Default in Development | Default in Production |
| --------------------------- | ---------------------- | --------------------- |
| A valid Azure Client Secret | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET_MOUNT_DIR`

The mount path to use for a [Databricks DBFS mount][databricks-docs-dbfs].

| Possible Values    | Default in Development | Default in Production |
| ------------------ | ---------------------- | --------------------- |
| A valid mount path | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_BUCKET_REDSHIFT_ARN`

An ARN of an AWS IAM role with permission to write to the configured bucket (see
[`CUBEJS_DB_EXPORT_BUCKET`](#cubejs-db-export-bucket)).

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values                                                            | Default in Development | Default in Production |
| -------------------------------------------------------------------------- | ---------------------- | --------------------- |
| A valid ARN to an IAM Role associated with the target Redshift data source | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_GCS_CREDENTIALS`

A Base64 encoded JSON key file for connecting to Google Cloud.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values                                               | Default in Development | Default in Production |
| ------------------------------------------------------------- | ---------------------- | --------------------- |
| A valid Google Cloud JSON key file encoded as a Base64 string | N/A                    | N/A                   |

## `CUBEJS_DB_EXPORT_INTEGRATION`

The name of the integration used in the database. Only required when using
Snowflake and Google Cloud Storage.

<InfoBox>

When using multiple data sources, this environment variable can be [decorated
with a data source][ref-config-multiple-ds-decorating-env].

</InfoBox>

| Possible Values                                                  | Default in Development | Default in Production |
| ---------------------------------------------------------------- | ---------------------- | --------------------- |
| A valid string matching the name of the integration in Snowflake | N/A                    | N/A                   |

## `CUBEJS_DB_HOST`

The host URL for a database.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid database host URL | N/A                    | N/A                   |

## `CUBEJS_DB_SOCKET_PATH`

The path to a Unix socket that is used to connect to a data source, e.g.,
[MySQL](/product/configuration/data-sources/mysql#connecting-via-a-unix-socket).

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid path to a socket  | N/A                    | N/A                   |

## `CUBEJS_DB_MAX_POOL`

The maximum number of concurrent database connections to pool.

| Possible Values | Default in Development                      | Default in Production                       |
| --------------- | ------------------------------------------- | ------------------------------------------- |
| A valid number  | [See database-specific page][ref-config-db] | [See database-specific page][ref-config-db] |

## `CUBEJS_DB_NAME`

The name of the database to connect to.

| Possible Values       | Default in Development | Default in Production |
| --------------------- | ---------------------- | --------------------- |
| A valid database name | N/A                    | N/A                   |

## `CUBEJS_DB_PASS`

The password used to connect to the database.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid database password | N/A                    | N/A                   |

## `CUBEJS_DB_PORT`

The port for the database connection.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | N/A                    | N/A                   |

## `CUBEJS_DB_PRESTO_CATALOG`

The catalog within Presto/Trino to connect to.

| Possible Values                                     | Default in Development | Default in Production |
| --------------------------------------------------- | ---------------------- | --------------------- |
| A valid catalog name within a Presto/Trino database | N/A                    | N/A                   |

## `CUBEJS_DB_QUERY_TIMEOUT`

The timeout value for any queries made to the database by Cube.

| Possible Values                          | Default in Development | Default in Production |
| ---------------------------------------- | ---------------------- | --------------------- |
| A number in seconds or a duration string | `10m`                  | `10m`                 |

<InfoBox>

There's a hard limit of 20 minutes for queries that ingest data into Cube Store
when pre-aggregations are built. If you bump into this limit, consider using
an export bucket and splitting pre-aggregations into partitions.

</InfoBox>

## `CUBEJS_DB_FETCH_COLUMNS_BY_ORDINAL_POSITION`

Force fetching of columns by ordinal positions. Certain data-providers (e.g., Redshift) do not guarantee columns in the
same order on each request (e.g., `SELECT * FROM foo`). This flag ensures that columns will be fetched in proper order
for pre-aggregation generation.

| Possible Values                                    | Default in Development | Default in Production |
| -------------------------------------------------- | ---------------------- | --------------------- |
| Whether to force fetch columns in ordinal position | `true`                 | `true`               |

## `CUBEJS_DB_MATERIALIZE_CLUSTER`

The cluster name to use when connecting to [Materialize](/product/configuration/data-sources/materialize).

| Possible Values                                           | Default in Development | Default in Production |
| --------------------------------------------------------- | ---------------------- | --------------------- |
| A valid Materialize cluster name                          | N/A                    | N/A                   |

## `CUBEJS_DB_MYSQL_USE_NAMED_TIMEZONES`

This flag controls how time zones conversion is done in the generated SQL for MySQL:
- If it is set to `true`, time zone names are used. In this case, your MySQL server needs
to be [configured][mysql-server-tz-support] properly.
- If it is set to `false`, numeric offsets are used instead.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

## `CUBEJS_DB_SNOWFLAKE_ACCOUNT`

The Snowflake account identifier to use when connecting to the database.

| Possible Values                                           | Default in Development | Default in Production |
| --------------------------------------------------------- | ---------------------- | --------------------- |
| [A valid Snowflake account ID][snowflake-docs-account-id] | N/A                    | N/A                   |

## `CUBEJS_DB_SNOWFLAKE_AUTHENTICATOR`

The type of authenticator to use with Snowflake. Use `SNOWFLAKE` with
username/password, or `SNOWFLAKE_JWT` with key pairs.

| Possible Values              | Default in Development | Default in Production |
| ---------------------------- | ---------------------- | --------------------- |
| `SNOWFLAKE`, `SNOWFLAKE_JWT` | `SNOWFLAKE`            | `SNOWFLAKE`           |

## `CUBEJS_DB_SNOWFLAKE_CLIENT_SESSION_KEEP_ALIVE`

If `true`, [keep the Snowflake connection alive
indefinitely][snowflake-docs-connection-options].

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                 | `true`                |

## `CUBEJS_DB_SNOWFLAKE_PRIVATE_KEY`

The content of the private RSA key (encrypted or not).

| Possible Values                | Default in Development | Default in Production |
| ------------------------------ | ---------------------- | --------------------- |
| Content of the private RSA key | N/A                    | N/A                   |

## `CUBEJS_DB_SNOWFLAKE_PRIVATE_KEY_PASS`

The password for the private RSA key. Only required for encrypted keys.

| Possible Values                                    | Default in Development | Default in Production |
| -------------------------------------------------- | ---------------------- | --------------------- |
| A valid password for the encrypted private RSA key | N/A                    | N/A                   |

## `CUBEJS_DB_SNOWFLAKE_PRIVATE_KEY_PATH`

The path to the private RSA key folder.

| Possible Values                     | Default in Development | Default in Production |
| ----------------------------------- | ---------------------- | --------------------- |
| A valid path to the private RSA key | N/A                    | N/A                   |

## `CUBEJS_DB_SNOWFLAKE_REGION`

The Snowflake region to use when connecting to the database.

| Possible Values                                    | Default in Development | Default in Production |
| -------------------------------------------------- | ---------------------- | --------------------- |
| [A valid Snowflake region][snowflake-docs-regions] | N/A                    | N/A                   |

## `CUBEJS_DB_SNOWFLAKE_ROLE`

The Snowflake role to use when connecting to the database.

| Possible Values                                               | Default in Development | Default in Production |
| ------------------------------------------------------------- | ---------------------- | --------------------- |
| [A valid Snowflake role][snowflake-docs-roles] in the account | N/A                    | N/A                   |

## `CUBEJS_DB_SNOWFLAKE_WAREHOUSE`

The Snowflake warehouse to use when connecting to the database.

| Possible Values                                                        | Default in Development | Default in Production |
| ---------------------------------------------------------------------- | ---------------------- | --------------------- |
| [A valid Snowflake warehouse][snowflake-docs-warehouse] in the account | N/A                    | N/A                   |

## `CUBEJS_DB_PINOT_NULL_HANDLING`

The Startree/Pinot null value support. If `true`, enables null handling.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` |	`false`                | `false`               |

## `CUBEJS_DB_PINOT_AUTH_TOKEN`

The authentication token for StarTree to be passed as HTTP headers.

| Possible Values                     | Default in Development | Default in Production |
| ----------------------------------- | ---------------------- | --------------------- |
| A valid string containing the token |	N/A                    | N/A                   |

## `CUBEJS_DB_SSL`

If `true`, enables SSL encryption for database connections from Cube.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | N/A                    | N/A                   |

## `CUBEJS_DB_TYPE`

A database from the list of [supported databases][ref-config-db].

| Possible Values                                       | Default in Development | Default in Production |
| ----------------------------------------------------- | ---------------------- | --------------------- |
| [Any valid database supported by Cube][ref-config-db] | N/A                    | N/A                   |

## `CUBEJS_DB_URL`

The URL for a database.

| Possible Values      | Default in Development | Default in Production |
| -------------------- | ---------------------- | --------------------- |
| A valid database URL | N/A                    | N/A                   |

## `CUBEJS_DB_USER`

The username used to connect to the database.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid database username | N/A                    | N/A                   |

## `CUBEJS_DB_QUERY_DEFAULT_LIMIT`

The default [row limit][ref-row-limit] in the result set if it's not explicitly
specified in an API query.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A positive integer number | `10000`                | `10000`               |

## `CUBEJS_DB_QUERY_LIMIT`

The maximum [row limit][ref-row-limit] in the result set.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A positive integer number | `50000`                | `50000`               |

<WarningBox>

Increasing the maximum row limit may cause out-of-memory (OOM) crashes and make
Cube susceptible to denial-of-service (DoS) attacks if it's exposed to
untrusted environments.

</WarningBox>

## `CUBEJS_DEFAULT_API_SCOPES`

[API scopes][ref-rest-scopes] used to allow or disallow access to REST API
endpoints.

| Possible Values                                                                | Default in Development | Default in Production |
| ------------------------------------------------------------------------------ | ---------------------- | --------------------- |
| A comma-delimited string with any combination of [API scopes][ref-rest-scopes] | `meta,data,graphql,sql`| `meta,data,graphql,sql`|

See also the [`context_to_api_scopes` configuration
option](/reference/configuration/config#context_to_api_scopes).

## `CUBEJS_DEV_MODE`

If `true`, enables [development mode](/product/configuration#development-mode).

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                 | `false`               |

## `CUBEJS_DROP_PRE_AGG_WITHOUT_TOUCH`

If `true`, it enables dropping pre-aggregations that Refresh Worker doesn't
touch within [`CUBEJS_TOUCH_PRE_AGG_TIMEOUT`](#cubejs-touch-pre-agg-timeout).
Pre-aggregations are touched whenever they are rebuilt or a Refresh Worker
checks its freshness. The first drop will be initiated when the Refresh Worker
is able to check freshness for every `scheduledRefresh: true` pre-aggregation.
If you have multiple Refresh Workers with different data model versions sharing
the same Cube Store cluster, then touches from both refresh workers are
respected.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                 | `true`                |

## `CUBEJS_FIREBOLT_ACCOUNT`

The [Firebolt account name][firebolt-docs-account-name].

| Possible Values                                             | Default in Development | Default in Production |
| ----------------------------------------------------------- | ---------------------- | --------------------- |
| A valid [Firebolt account name][firebolt-docs-account-name] | N/A                    | N/A                   |

## `CUBEJS_FIREBOLT_API_ENDPOINT`

The Firebolt API endpoint. Used for authentication.

| Possible Values                                                         | Default in Development | Default in Production |
| ----------------------------------------------------------------------- | ---------------------- | --------------------- |
| `api.dev.firebolt.io`, `api.staging.firebolt.io`, `api.app.firebolt.io` | N/A                    | N/A                   |

## `CUBEJS_FIREBOLT_ENGINE_NAME`

The [name of the Firebolt engine][firebolt-docs-engine-name] to connect to.

| Possible Values                                           | Default in Development | Default in Production |
| --------------------------------------------------------- | ---------------------- | --------------------- |
| A valid [Firebolt engine name][firebolt-docs-engine-name] | N/A                    | N/A                   |

## `CUBEJS_GH_API_TOKEN`

A [GitHub Personal Access Token][gh-docs-pat] to avoid API rate limiting when
downloading Cube Store.

| Possible Values    | Default in Development | Default in Production |
| ------------------ | ---------------------- | --------------------- |
| A valid GitHub PAT | `false`                | `false`               |

## `CUBEJS_JWK_URL`

Enables [JSON Web Key (JWK)][ietf-jwk-ref]-based authentication in Cube.

| Possible Values                   | Default in Development | Default in Production |
| --------------------------------- | ---------------------- | --------------------- |
| A valid URL to a JSON Web Key Set | N/A                    | N/A                   |

It can be also set as `jwkUrl` in the [`jwt` configuration
option](/reference/configuration/config#jwt).

## `CUBEJS_JWT_ALGS`

[Any supported algorithm for decoding JWTs][gh-jsonwebtoken-algs].

| Possible Values  | Default in Development | Default in Production |
| ---------------- | ---------------------- | --------------------- |
| `HS256`, `RS256` | N/A                    | N/A                   |

It can be also set as `algorithms` in the [`jwt` configuration
option](/reference/configuration/config#jwt).

## `CUBEJS_JWT_AUDIENCE`

An audience value which will be used to enforce the [`aud` claim from inbound
JWTs][ietf-jwt-ref-aud].

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid `aud` claim | N/A                    | N/A                   |

It can be also set as `audience` in the [`jwt` configuration
option](/reference/configuration/config#jwt).

## `CUBEJS_JWT_CLAIMS_NAMESPACE`

A namespace within the decoded JWT under which any custom claims can be found.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid string  | N/A                    | N/A                   |

It can be also set as `claimsNamespace` in the [`jwt` configuration
option](/reference/configuration/config#jwt).

## `CUBEJS_JWT_ISSUER`

An issuer value which will be used to enforce the [`iss` claim from inbound
JWTs][ietf-jwt-ref-iss].

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid `iss` claim | N/A                    | N/A                   |

It can be also set as `issuer` in the [`jwt` configuration
option](/reference/configuration/config#jwt).

## `CUBEJS_JWT_KEY`

The secret key used to sign and verify JWTs. Similar to
[`CUBEJS_API_SECRET`](#cubejs-api-secret).

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid string  | N/A                    | N/A                   |

It can be also set as `key` in the [`jwt` configuration
option](/reference/configuration/config#jwt).

## `CUBEJS_JWT_SUBJECT`

A subject value which will be used to enforce the [`sub` claim from inbound
JWTs][ietf-jwt-ref-sub].

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid `sub` claim | N/A                    | N/A                   |

It can be also set as `subject` in the [`jwt` configuration
option](/reference/configuration/config#jwt).

## `CUBEJS_LOG_LEVEL`

The logging level for Cube.

| Possible Values                  | Default in Development | Default in Production |
| -------------------------------- | ---------------------- | --------------------- |
| `error`, `info`, `trace`, `warn` | `warn`                 | `warn`                |

See also `CUBESTORE_LOG_LEVEL`.
See also the [`logger` configuration option](/reference/configuration/config#logger).

## `CUBEJS_MAX_PARTITIONS_PER_CUBE`

The maximum number of partitions each pre-aggregation in a cube can use.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | `10000`                | `10000`               |

## `CUBEJS_PG_SQL_PORT`

The port used by the [SQL API][ref-sql-api] to listen to Postgres-compatible
connections on.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | N/A                    | N/A                   |

## `CUBEJS_PRE_AGGREGATIONS_BUILDER`

If `true`, this instance of Cube will build pre-aggregations, even if it is an
API instance.

| Possible Values | Default in Development | Default in Production                                           |
| --------------- | ---------------------- | --------------------------------------------------------------- |
| `true`, `false` | `true`                 | `false` <sup>[\*](#cubejs-pre-aggregations-builder-notes)</sup> |

### Notes

If Cube is configured to act as a refresh worker instance using
[`CUBEJS_REFRESH_WORKER`](#cubejs-refresh-worker), then
`CUBEJS_PRE_AGGREGATIONS_BUILDER` will be `true`.

## `CUBEJS_PRE_AGGREGATIONS_SCHEMA`

The [database schema name](/reference/configuration/config#pre_aggregations_schema)
to use for storing pre-aggregations.

| Possible Values | Default in Development | Default in Production   |
| --------------- | ---------------------- | ----------------------- |
| A valid string  | `dev_pre_aggregations` | `prod_pre_aggregations` |

It can be also set using the [`pre_aggregations_schema` configuration
option](/reference/configuration/config#pre_aggregations_schema).

## `CUBEJS_PRE_AGGREGATIONS_ALLOW_NON_STRICT_DATE_RANGE_MATCH`

If `true`, allows non-strict date range matching for pre-aggregations by default.
This can be overridden for individual pre-aggregations using the
[`allow_non_strict_date_range_match`][ref-schema-ref-preagg-allownonstrict] parameter.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                | `true`                |

## `CUBEJS_REFRESH_WORKER`

If `true`, this instance of Cube will **only** refresh pre-aggregations.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

## `CUBEJS_ROLLUP_ONLY`

If `true`, the API instance of Cube will **only** fulfill queries from
pre-aggregations. See [rollup-only
mode](/product/caching/using-pre-aggregations#rollup-only-mode) for details.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

It can be also set using the [`orchestrator_options.rollupOnlyMode` configuration
option](/reference/configuration/config#orchestrator_options).

## `CUBEJS_SCHEDULED_REFRESH_TIMEZONES`

A comma-separated [list of timezones to schedule refreshes
for][ref-config-sched-refresh-timer].

| Possible Values                                           | Default in Development | Default in Production |
| --------------------------------------------------------- | ---------------------- | --------------------- |
| [A valid timezone from the tz database][wiki-tz-database] | N/A                    | N/A                   |

It can be also set using the [`scheduled_refresh_time_zones` configuration
option](/reference/configuration/config#scheduled_refresh_time_zones).

## `CUBEJS_SCHEMA_PATH`

The path where Cube loads data models from.

| Possible Values                          | Default in Development | Default in Production |
| ---------------------------------------- | ---------------------- | --------------------- |
| A valid path containing Cube data models | `model`                | `model`               |

<InfoBox>

Until v0.35, the default value was `schema`.

</InfoBox>

It can be also set using the [`schema_path` configuration
option](/reference/configuration/config#schema_path).

## `CUBEJS_SQL_USER`

A username required to access the [SQL API][ref-sql-api].

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid string  | N/A                    | N/A                   |

See also the [`check_sql_auth` configuration
option](/reference/configuration/config#check_sql_auth).

## `CUBEJS_SQL_PASSWORD`

A password required to access the [SQL API][ref-sql-api].

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid string  | N/A                    | N/A                   |

See also the [`check_sql_auth` configuration
option](/reference/configuration/config#check_sql_auth).

## `CUBEJS_SQL_SUPER_USER`

A name of specific user who will be allowed to change the user during the SQL API
session.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid string  | N/A                    | N/A                   |

See also the [`can_switch_sql_user` configuration
option](/reference/configuration/config#can_switch_sql_user).

## `CUBEJS_ALLOW_UNGROUPED_WITHOUT_PRIMARY_KEY`

If `true`, disables the primary key inclusion check for
[ungrouped queries](/product/apis-integrations/queries#ungrouped-query).

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

It can be also set using the [`allow_ungrouped_without_primary_key` configuration
option](/reference/configuration/config#allow_ungrouped_without_primary_key).

<InfoBox>

When query push-own in the SQL API is enabled via the `CUBESQL_SQL_PUSH_DOWN`
environment variable, this option is enabled as well for the best user experience.

</InfoBox>

## `CUBESQL_SQL_PUSH_DOWN`

If `true`, enables query pushdown in the [SQL API][ref-sql-api].

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                | `true`               |

<InfoBox>

Query pushdown in the SQL API is available in public preview.
[Read more](https://cube.dev/blog/query-push-down-in-cubes-semantic-layer) in the blog.

</InfoBox>

## `CUBESQL_STREAM_MODE`

If `true`, enables the [streaming mode][ref-sql-api-streaming] in the [SQL API][ref-sql-api].

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

## `CUBESQL_SQL_NO_IMPLICIT_ORDER`

If `true`, prevents adding implicit [default `ORDER BY`
clause](/product/apis-integrations/queries#order) for [SQL API][ref-sql-api] queries.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                 | `true`                |

## `CUBEJS_MAX_SESSIONS`

Specifies the maximum number of concurrent sessions (connections) to the
[SQL API][ref-sql-api] and safeguards your Cube deployment from out-of-memory
crashes when too many connections are attempted to be established.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | 1024                   | 1024                  |

## `CUBESQL_REWRITE_MAX_NODES`

Specifies the maximum number of e-graph nodes that are allocated during
the creation of a query plan in the [SQL API][ref-sql-api].

Should be increased if you get the following error:
`Error during rewrite: Can't find rewrite due to 10002 AST node limit reached.`

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | 10000                  | 10000                 |

## `CUBESQL_REWRITE_MAX_ITERATIONS`

Specifies the maximum number of e-graph term rewriting iterations that are performed
during the creation of a query plan in the [SQL API][ref-sql-api].

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | 300                    | 300                   |

## `CUBESQL_REWRITE_TIMEOUT`

Specifies the maximum time, in seconds, that is allocated for
the creation of a query plan in the [SQL API][ref-sql-api].

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | 30                     | 30                    |

## `CUBESQL_AUTH_EXPIRE_SECS`

Number of seconds before session's SQL API security context will be invalidated.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid integer number | `300`                 | `300`                |

## `CUBEJS_DAX_CREATE_DATE_HIERARCHIES`

If `true`, the DAX API will expose time dimensions as calendar hierarchies.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true` | `true` |

## `CUBEJS_TELEMETRY`

If `true`, then send telemetry to Cube.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                 | `true`                |

## `CUBESTORE_METRICS_FORMAT`

Define which metrics collector format.

| Possible Values       | Default in Development | Default in Production |
| --------------------- | ---------------------- | --------------------- |
| `statsd`, `dogstatsd` | `statsd`               | `statsd`              |

## `CUBESTORE_METRICS_ADDRESS`

Required IP address to send metrics.

| Possible Values    | Default in Development | Default in Production |
| ------------------ | ---------------------- | --------------------- |
| A valid IP address | `127.0.0.1`            | `127.0.0.1`           |

## `CUBESTORE_METRICS_PORT`

Required port to send where collector server accept UDP connections.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | `8125`                 | `8125`                |

## `CUBEJS_TOUCH_PRE_AGG_TIMEOUT`

The number of seconds without a touch before pre-aggregation is considered
orphaned and marked for removal. Please see
[`CUBEJS_DROP_PRE_AGG_WITHOUT_TOUCH`](#cubejs-drop-pre-agg-without-touch) to
learn more.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | 86400                  | 86400                 |

## `CUBEJS_TRANSPILATION_WORKER_THREADS`

If `true`, optimizes data model compilation by running critical parts of the
code in worker threads.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

<ReferenceBox>

See [this issue](https://github.com/cube-js/cube/issues/9285) for details.

</ReferenceBox>

## `CUBEJS_WEB_SOCKETS`

If `true`, then use WebSocket for data fetching.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                 | `true`                |

## `CUBEJS_TESSERACT_ORCHESTRATOR`

If `true`, enables performance optimizations in the query orchestrator,
such as deserializing Cube Store result sets in native Rust code.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                 | `true`                |

## `CUBEJS_TESSERACT_SQL_PLANNER`

If `true`, enables Tesseract, the [next-generation data modeling engine][link-tesseract].
Tesseract powers [multi-stage calculations][ref-multi-stage-calculations].

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                 | `false`                |

<WarningBox>

Tesseract is currently in preview.

</WarningBox>

## `CUBESTORE_AWS_ACCESS_KEY_ID`

The Access Key ID for AWS. Required when using AWS S3.

| Possible Values                             | Default in Development | Default in Production |
| ------------------------------------------- | ---------------------- | --------------------- |
| [A valid AWS Access Key ID][aws-docs-creds] | N/A                    | N/A                   |

## `CUBESTORE_AWS_SECRET_ACCESS_KEY`

The Secret Access Key for AWS. Required when using AWS S3.

| Possible Values                                 | Default in Development | Default in Production |
| ----------------------------------------------- | ---------------------- | --------------------- |
| [A valid AWS Secret Access Key][aws-docs-creds] | N/A                    | N/A                   |

## `CUBESTORE_AWS_CREDS_REFRESH_EVERY_MINS`

The number of minutes after which Cube Store should refresh AWS credentials.
Required when using an AWS instance role.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid number in minutes | `180`                  | `180`                 |

## `CUBESTORE_BIND_ADDR`

The address/port pair for Cube Store's MySQL-compatible interface.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid address/port pair | `0.0.0.0:3306`         | `0.0.0.0:3306`        |

## `CUBESTORE_DATA_DIR`

A path on the local filesystem to store a local replica of the data. Must be
unique on each node and different from `CUBESTORE_REMOTE_DIR`.

| Possible Values                                             | Default in Development | Default in Production |
| ----------------------------------------------------------- | ---------------------- | --------------------- |
| A valid path on the local filesystem with read/write access | `.cubestore/data`      | `.cubestore/data`     |

## `CUBESTORE_GCP_CREDENTIALS`

A Base64-encoded JSON key for connecting to Google Cloud. Required when
using Google Cloud Storage

| Possible Values                                                                 | Default in Development | Default in Production |
| ------------------------------------------------------------------------------- | ---------------------- | --------------------- |
| [A valid Google Cloud JSON key encoded as a Base64 string][gcp-docs-creds-json] | N/A                    | N/A                   |

## `CUBESTORE_GCP_KEY_FILE`

The path to a JSON key file for connecting to Google Cloud. Required when using
Google Cloud Storage.

| Possible Values                                           | Default in Development | Default in Production |
| --------------------------------------------------------- | ---------------------- | --------------------- |
| [A valid Google Cloud JSON key file][gcp-docs-creds-json] | N/A                    | N/A                   |

## `CUBESTORE_GCS_BUCKET`

The name of a bucket in GCS. Required when using GCS

| Possible Values                                 | Default in Development | Default in Production |
| ----------------------------------------------- | ---------------------- | --------------------- |
| A valid bucket name in the Google Cloud account | N/A                    | N/A                   |

## `CUBESTORE_GCS_SUB_PATH`

The path in a GCS bucket to store pre-aggregations. Optional

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid path prefix | N/A                    | N/A                   |

## `CUBESTORE_HTTP_BIND_ADDR`

The address/port pair for Cube Store's HTTP interface.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid address/port pair | `0.0.0.0:3030`         | `0.0.0.0:3030`        |

## `CUBESTORE_HTTP_PORT`

The port for Cube Store to listen to HTTP connections on. Ignored when
[`CUBESTORE_HTTP_BIND_ADDR`](#cubestore-http-bind-addr) is set.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | `3030`                 | `3030`                |

## `CUBESTORE_JOB_RUNNERS`

The number of parallel tasks that process non-interactive jobs like data
insertion, compaction etc.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | `4`                    | `4`                   |

## `CUBESTORE_LOG_LEVEL`

The logging level for Cube Store.

| Possible Values                           | Default in Development | Default in Production |
| ----------------------------------------- | ---------------------- | --------------------- |
| `error`, `warn`, `info`, `debug`, `trace` | `error`                | `error`               |

See also `CUBEJS_LOG_LEVEL`.

## `CUBESTORE_META_ADDR`

The address/port pair for the Cube Store **router** node in the cluster.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid address/port pair | N/A                    | N/A                   |

## `CUBESTORE_META_PORT`

The port for the Cube Store **router** node to listen for connections on.
Ignored when `CUBESTORE_META_ADDR` is set.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | N/A                    | N/A                   |

## `CUBESTORE_MINIO_ACCESS_KEY_ID`

The Access Key ID for MinIO. Required when using MinIO.

| Possible Values             | Default in Development | Default in Production |
| --------------------------- | ---------------------- | --------------------- |
| A valid MinIO Access Key ID | N/A                    | N/A                   |

## `CUBESTORE_MINIO_BUCKET`

The name of the bucket that you want to use MinIO. Required when using MinIO.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid bucket name | N/A                    | N/A                   |

## `CUBESTORE_MINIO_SUB_PATH`

The name of sub path (folder) inside the bucket that you want to use. Required when using MinIO.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid sub path (folder) name | N/A                    | N/A                   |

## `CUBESTORE_MINIO_CREDS_REFRESH_EVERY_MINS`

The number of minutes after which Cube Store should refresh MinIO credentials.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid number in minutes | `180`                  | `180`                 |

## `CUBESTORE_MINIO_REGION`

The region of a bucket in AWS. Optional when using MinIO.

| Possible Values                                        | Default in Development | Default in Production |
| ------------------------------------------------------ | ---------------------- | --------------------- |
| A valid S3 region name, an empty string if not present | N/A                    | N/A                   |

## `CUBESTORE_MINIO_SECRET_ACCESS_KEY`

The Secret Access Key for MinIO. Required when using MinIO.

| Possible Values                 | Default in Development | Default in Production |
| ------------------------------- | ---------------------- | --------------------- |
| A valid MinIO Secret Access Key | N/A                    | N/A                   |

## `CUBESTORE_MINIO_SERVER_ENDPOINT`

The MinIO server endpoint. Required when using MinIO.

| Possible Values        | Default in Development | Default in Production |
| ---------------------- | ---------------------- | --------------------- |
| A valid MinIO endpoint | N/A                    | N/A                   |

```dotenv
CUBESTORE_MINIO_SERVER_ENDPOINT=http://localhost:9000
```

## `CUBESTORE_NO_UPLOAD`

If `true`, prevents uploading serialized pre-aggregations to cloud storage.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

## `CUBESTORE_PORT`

The port for Cube Store to listen to connections on. Ignored when
`CUBESTORE_BIND_ADDR` is set.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | `3306`                 | `3306`                |

## `CUBESTORE_QUERY_TIMEOUT`

The timeout for SQL queries in seconds.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A number in seconds | `120`                  | `120`                 |

## `CUBESTORE_REMOTE_DIR`

A path on the local filesystem to store metadata and datasets from all nodes as
if it were remote storage. Not required if using GCS/S3. Not recommended for
production usage

| Possible Values                                             | Default in Development | Default in Production |
| ----------------------------------------------------------- | ---------------------- | --------------------- |
| A valid path on the local filesystem with read/write access | N/A                    | N/A                   |

## `CUBESTORE_S3_BUCKET`

The name of a bucket in AWS S3. Required when using AWS S3.

| Possible Values                        | Default in Development | Default in Production |
| -------------------------------------- | ---------------------- | --------------------- |
| A valid bucket name in the AWS account | N/A                    | N/A                   |

## `CUBESTORE_S3_REGION`

| The region of a bucket in AWS S3. Required when using AWS S3.

| Possible Values                        | Default in Development | Default in Production |
| -------------------------------------- | ---------------------- | --------------------- |
| [A valid AWS region][aws-docs-regions] | N/A                    | N/A                   |

## `CUBESTORE_S3_SUB_PATH`

The path in a AWS S3 bucket to store pre-aggregations. Optional.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid path prefix | N/A                    | N/A                   |

## `CUBESTORE_SELECT_WORKERS`

The number of Cube Store sub-processes that handle `SELECT` queries.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | `4`                    | `4`                   |

## `CUBESTORE_SERVER_NAME`

The full name and port number of the Cube Store node (either the router
or a worker). Must be unique for each instance in the Cube Store cluster.

Should be passed to the Cube Store router and to each Cube Store worker.

| Possible Values           | Default in Development | Default in Production |
| ------------------------- | ---------------------- | --------------------- |
| A valid address/port pair | `localhost`            | `localhost`           |

## `CUBESTORE_TELEMETRY`

If `true`, then sends telemetry to Cube.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `true`                 | `true`                |

## `CUBESTORE_WAL_SPLIT_THRESHOLD`

The maximum number of rows to keep in a single chunk of data right after
insertion.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| A valid number  | `262144`               | `262144`              |

## `CUBESTORE_WORKER_PORT`

The port for Cube Store workers to listen to connections on. When set, the node
will start as a Cube Store **worker** in the cluster

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | N/A                    | N/A                   |

## `CUBESTORE_WORKERS`

A comma-separated list of address/port pairs of Cube Store workers.

Should be passed to the Cube Store router and to each Cube Store worker.

| Possible Values                              | Default in Development | Default in Production |
| -------------------------------------------- | ---------------------- | --------------------- |
| A comma-separated list of address/port pairs | N/A                    | N/A                   |

```dotenv
CUBESTORE_WORKERS=worker-1:3123,localhost:3124,123.124.125.128:3123
```

Used to implement stateless addressing within a Cube Store cluster.
By analyzing `CUBESTORE_WORKERS` and `CUBESTORE_SERVER_NAME`, each node
is able to determine its position within a Cube Store cluster.
This allows each worker to know which pre-aggregation partitions it owns
and how the load is distributed across all workers.

## `DEBUG_LOG`

If `true`, enables debug logging.

| Possible Values | Default in Development | Default in Production |
| --------------- | ---------------------- | --------------------- |
| `true`, `false` | `false`                | `false`               |

## `PORT`

The port for a Cube deployment to listen to API connections on.

| Possible Values     | Default in Development | Default in Production |
| ------------------- | ---------------------- | --------------------- |
| A valid port number | `4000`                 | `4000`                |

[aws-athena]: https://aws.amazon.com/athena
[aws-athena-workgroup]:
  https://docs.aws.amazon.com/athena/latest/ug/workgroups-benefits.html
[aws-athena-catalog]:
  https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html
[aws-docs-creds]:
  https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys
[aws-docs-regions]:
  https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions
[aws-docs-vpc-endpoints]:
  https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html
[bq-docs-regional-locations]:
  https://cloud.google.com/bigquery/docs/locations#regional-locations
[databricks-docs-dbfs]:
  https://docs.databricks.com/data/databricks-file-system.html#mount-object-storage-to-dbfs
[databricks-docs-pat]:
  https://docs.databricks.com/dev-tools/api/latest/authentication.html#token-management
[elastic-docs-api-keys]:
  https://www.elastic.co/guide/en/kibana/master/api-keys.html#create-api-key
[firebolt-docs-account-name]:
  https://docs.firebolt.io/managing-your-account/concepts-and-terminology.html#firebolt-account
[firebolt-docs-engine-name]:
  https://docs.firebolt.io/working-with-engines/understanding-engine-fundamentals.html#engine-name
[gcp-docs-creds-json]:
  https://cloud.google.com/iam/docs/creating-managing-service-account-keys
[gh-docs-pat]:
  https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
[gh-jsonwebtoken-algs]:
  https://github.com/auth0/node-jsonwebtoken#algorithms-supported
[ietf-jwk-ref]: https://tools.ietf.org/html/rfc7517#section-4
[ietf-jwt-ref-iss]: https://tools.ietf.org/html/rfc7519#section-4.1.1
[ietf-jwt-ref-sub]: https://tools.ietf.org/html/rfc7519#section-4.1.2
[ietf-jwt-ref-aud]: https://tools.ietf.org/html/rfc7519#section-4.1.3
[motherduck-docs-svc-token]:
  https://motherduck.com/docs/authenticating-to-motherduck/#authentication-using-a-service-token
[ref-config]: /reference/configuration/config
[ref-config-conf-ctx-to-appid]: /reference/configuration/config#context_to_app_id
[ref-config-db]: /product/configuration/data-sources
[ref-config-multiple-ds-decorating-env]:
  /product/configuration/advanced/multiple-data-sources#configuring-data-sources-with-environment-variables-decorated-environment-variables
[ref-config-sched-refresh-timer]:
  /reference/configuration/config#scheduled_refresh_timer
[ref-rest-scopes]: /product/apis-integrations/rest-api#configuration-api-scopes
[snowflake-docs-account-id]:
  https://docs.snowflake.com/en/user-guide/admin-account-identifier.html
[snowflake-docs-connection-options]:
  https://docs.snowflake.com/en/user-guide/nodejs-driver-use.html#additional-connection-options
[snowflake-docs-regions]:
  https://docs.snowflake.com/en/user-guide/intro-regions.html
[snowflake-docs-roles]:
  https://docs.snowflake.com/en/user-guide/security-access-control-overview.html#roles
[snowflake-docs-warehouse]:
  https://docs.snowflake.com/en/user-guide/warehouses.html
[wiki-tz-database]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
[ref-sql-api]: /product/apis-integrations/sql-api
[ref-sql-api-streaming]: /product/apis-integrations/sql-api#streaming
[ref-row-limit]: /product/apis-integrations/queries#row-limit
[mysql-server-tz-support]: https://dev.mysql.com/doc/refman/8.4/en/time-zone-support.html
[ref-schema-ref-preagg-allownonstrict]: /reference/data-model/pre-aggregations#allow_non_strict_date_range_match
[link-tesseract]: https://cube.dev/blog/introducing-next-generation-data-modeling-engine
[ref-multi-stage-calculations]: /product/data-modeling/concepts/multi-stage-calculations