Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Add-on

Configuration Variables

Configuration is passed to the Sundeck Private Broker via environment variables. The following environment variables are required to run the Sundeck Private Broker. The Private Broker is a stateless service, so it is safe to restart the service at any time to apply new configuration.

Note these variables can be set in a variety of ways, including directly in the Docker run command, in a Kubernetes deployment manifest, or in a Docker Compose file. The method of setting these variables will depend on the deployment method chosen.

In addition, the Private Broker can be configured to use a Hashicorp Vault instance to store sensitive information such as Snowflake service account credentials. If you choose to use Vault, many of the environment variables below will not be required, as the Private Broker will fetch the necessary configuration from Vault at runtime.

There are a number of environment variables listed in the table below which pertain to the Sundeck Service Account user in Snowflake. The Sundeck Private Broker makes use of this Snowflake Service Account login to periodically fetch the contents of Pinned Tables, which are cached in broker memory for fast access during broker rules processing.

Note that user queries are not executed using this Service Account user; queries are always executed as the user connecting to the broker.

Env variable nameVault KeySample valueDescription
SUNDECK_BROKER_REST_API_PATHn/ahttps://api.sundeck.io/us-west-2/v1The base url for control plane REST APIs - private broker uses this to fetch broker configuration

Note that you should provide the URL which corresponds to your Sundeck region.

Valid values are:
https://api.sundeck.io/us-east-1/v1
https://api.sundeck.io/us-east-2/v1
https://api.sundeck.io/us-west-2/v1
SUNDECK_BROKER_PORTn/a8080The TCP port on which the Sundeck Broker HTTP service listens.

Note that SQL clients should not connect to this port directly; connections from clients should be via HTTPS, terminated on a load balancer which then routes to this port over HTTP
SUNDECK_BROKER_TOKENBrokerTokensndk_gp6xxxThis token is used by the private broker to authenticate with the Sundeck SaaS Control Plane.

Broker tokens can be generated via the SaaS UI, or by running Sundeck DDL through a connection to the Broker: CREATE OR REPLACE SUNDECK TOKEN MY_BROKER_TOKEN PURPOSE = BROKER;
SUNDECK_SF_USERNAMESnowflakeUsernamexx@abc.comSnowflake username for the Sundeck Service Account user.

This user will need to have SELECT rights on any tables in Snowflake which are to be used as Pinned Tables
SUNDECK_SF_PASSWORDSnowflakePasswordyyyyyySnowflake password for the Sundeck Service Account user
SUNDECK_SF_WAREHOUSESnowflakeWarehouseCOMPUTE_WHSnowflake Warehouse to be used by the Sundeck Service Account user (for reading Pinned Tables)
SUNDECK_SF_ROLESnowflakeRolePUBLICSnowflake Role to be assumed by the Sundeck Service Account user
SUNDECK_SF_PRIVATEKEYSnowflakePrivateKeyMIIFHDBOBgkq…RSA private key (can be encrypted or unencrypted), for use if the Sundeck Service Account user is configured for keypair authentication. Please see https://docs.snowflake.com/en/user-guide/key-pair-auth
SUNDECK_SF_PRIVATEKEY_PASSPHRASESnowflakePrivateKeyPassphrase<passphrase>Only required IF keypair encryption is being used, and the RSA key passed to SUNDECK_SF_PRIVATEKEY has been encrypted with a passphrase.
SUNDECK_BROKER_SSL_CERTSSLCertificate-----BEGIN CERTIFICATE-----
MIIDlDCCAxug...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIGHAgEAMB...
-----END PRIVATE KEY-----
If this config is set, private broker will host HTTPS/SSL endpoint instead of HTTP endpoint.

This string value should be the PEM-formatted Certificate concatenated with the PEM-formatted private key (i.e. with the -----BEGIN xxxx----- and -----END xxxx----- lines included.)
SUNDECK_BROKER_SSL_CERT_PASSPHRASESSLCertificatePassphrase<passphrase>Only to be given if SUNDECK_BROKER_SSL_CERT has an encrypted private key.

Integrations

Hashicorp Vault can be used to store sensitive information such as Snowflake service account credentials. All keys are expected to be in the secret named secret/sundeck/broker. The Private Broker is also capable of automatically extracting data from Vault if the following Vault configuration information is provided.

Integration typeEnv variable nameSample valueDescription
hashicorp/vaultVAULT_ADDRhttp://192.168.64.1:8200URL of the vault location (hashicorp)
hashicorp/vaultVAULT_TOKENmyrootToken to access vault (hashicorp)

Administrators may choose to provide secrets from Vault to the Private Broker directly using orchestration tools like Kubernetes rather than configure the PrivateBroker to access Vault directly.

Advanced Options

Env variable nameDefault valueDescription
SUNDECK_LOG_LEVELINFOThis value will be used as the log level.

Set to DEBUG for debugging
SUNDECK_BROKER_FLOW_CACHE_TTL_SECONDS120The polling interval at which the Private Broker will attempt to fetch configuration information from the Sundeck SaaS Control Plane.