Overview
Cube can be configured in two ways. The first is through options
in a configuration file, commonly known as the cube.js
file, and secondly,
through environment variables. Values specified in cube.js
will take precedence over environment variables.
When using Docker, ensure that the cube.js
configuration file and your
model/
folder are mounted to /cube/conf
within the
Docker container.
Cube Cloud
You can set environment variables in Settings → Configuration:
Development Mode
Cube can be run in an insecure, development mode by setting the
CUBEJS_DEV_MODE
environment variable to true
. Putting Cube in development
mode does the following:
- Disables authentication checks
- Enables Cube Store in single instance mode
- Enables background refresh for in-memory cache and scheduled pre-aggregations
- Allows another log level to be set (
trace
) - Enables Developer Playground on
http://localhost:4000
- Uses
memory
instead ofcubestore
as the default cache/queue engine - Logs incorrect/invalid configuration for
externalRefresh
/waitForRenew
instead of throwing errors - Allows access to non-public cubes and members through the
/meta
endpoint and for querying through the REST, GraphQL or SQL APIs.
Concurrency and pooling
All Cube database drivers come with presets for concurrency and pooling that work out-of-the-box. The following information is included as a reference.
For increased performance, Cube uses multiple concurrent connections to
configured data sources. The CUBEJS_CONCURRENCY
environment variable controls
concurrency settings for query queues and the refresh scheduler as well as the
maximum concurrent connections. For databases that support connection pooling,
the maximum number of concurrent connections to the database can also be set by
using the CUBEJS_DB_MAX_POOL
environment variable; if changing this from the
default, you must ensure that the new value is greater than the number of
concurrent connections used by Cube's query queues and refresh scheduler.