# Materialize

<WarningBox>

The driver for Materialize is supported by its vendor. Please report any issues
to their [Slack][materialize-slack].

</WarningBox>

## Prerequisites

- The hostname for the [Materialize][materialize] database server

## Setup

### Manual

Add the following to a `.env` file in your Cube project:

```dotenv
CUBEJS_DB_TYPE=materialize
CUBEJS_DB_HOST=my.materialize.host
CUBEJS_DB_PORT=6875
CUBEJS_DB_NAME=materialize
CUBEJS_DB_USER=materialize
CUBEJS_DB_PASS=materialize
CUBEJS_DB_MATERIALIZE_CLUSTER=quickstart
```

## Environment Variables

| Environment Variable             | Description                                                                         | Possible Values           | Required |
| -------------------------------- | ----------------------------------------------------------------------------------- | ------------------------- | :------: |
| <EnvVar>CUBEJS_DB_HOST</EnvVar>                 | The host URL for a database                                                         | A valid database host URL |    ✅    |
| <EnvVar>CUBEJS_DB_PORT</EnvVar>                 | The port for the database connection                                                | A valid port number       |    ✅    |
| <EnvVar>CUBEJS_DB_NAME</EnvVar>                 | The name of the database to connect to                                              | A valid database name     |    ✅    |
| <EnvVar>CUBEJS_DB_USER</EnvVar>                 | The username used to connect to the database                                        | A valid database username |    ✅    |
| <EnvVar>CUBEJS_DB_PASS</EnvVar>                 | The password used to connect to the database                                        | A valid database password |    ✅    |
| <EnvVar>CUBEJS_DB_MAX_POOL</EnvVar>             | The maximum number of concurrent database connections to pool. Default is `8`       | A valid number            |    ❌    |
| <EnvVar>CUBEJS_DB_MATERIALIZE_CLUSTER</EnvVar>  | The name of the Materialize cluster to connect to                                   | A valid cluster name      |    ❌    |
| <EnvVar>CUBEJS_CONCURRENCY</EnvVar> | The number of [concurrent queries][ref-data-source-concurrency] to the data source | A valid number |    ❌    |

[ref-data-source-concurrency]: /product/configuration/concurrency#data-source-concurrency

## SSL

To enable SSL-encrypted connections between Cube and Materialize, set the
<EnvVar>CUBEJS_DB_SSL</EnvVar> environment variable to `true`. For more information on how to
configure custom certificates, please check out [Enable SSL Connections to the
Database][ref-recipe-enable-ssl].

[materialize]: https://materialize.com/docs/
[materialize-slack]: https://materialize.com/s/chat
[ref-recipe-enable-ssl]:
  /product/configuration/recipes/using-ssl-connections-to-data-source
