Skip to main content
Version: Next

Configuration

In this section, the configuration of the analytics data plane is explained. Configuration is used based on a config.yaml file which should be placed in the apps/backend folder. This config.yaml file is loaded when booting the application. The values get type checked, and it gives a clear error message if there is a configuration field missing or provided incorrectly. Next to the config.yaml file, you can also set environment variables. These override the values that are listed in the config.yaml file.

Databases

By default, the development database is sqlite. We use postgres databases for production type instances of the analytics data planes.

Authentication

Authentication for frontend services can be done via OAuth. This helps users who need to login to several components to authenticate themselves faster. The data plane is tested against the SSO Bridge, with an Helm chart provided alongside the Helm chart of the data plane, but other OAuth services should be usable (e.g. Keycloak, or hosted OAuth services).

The Kubernetes Persistent Volume Claim (PVC) used for file uploads can be linked with Jobs that are started by the Analytics Data Plane. To use this behavior the files.pvcName must be set to the same PVC name as is used for the /uploads folder. Since PVCs can have different access modes, having a incompatible access mode will result in Jobs not being able to start. Please make sure the PVC has the access mode ReadWriteMany (RWX) or ReadOnlyMany (ROX) if you want to use the PVC with Jobs. The default access mode for most volume providers is ReadWriteOnce (RWO), which is not compatible with Jobs.

Configuration parameters

KeyRequiredTypeDescriptionDefault
DatabaseConfig
dbYesDatabaseConfigDatabase configuration
db.typeYes"sqlite" | "postgres"Type of database
db.databaseYesStringName of the database
db.synchronizeBooleanSynchronize database schema
db{type=sqlite}YesSQLiteConfigDatabase configuration
db{type=sqlite}.type"sqlite" | "postgres"Type of database"sqlite"
db{type=sqlite}.databaseYesStringName of the database
db{type=sqlite}.synchronizeBooleanSynchronize database schema
db{type=postgres}YesPostgresConfigDatabase configuration
db{type=postgres}.hostYesStringHost of the database
db{type=postgres}.portYesNumberPort of the database
db{type=postgres}.usernameYesStringUsername of the database
db{type=postgres}.passwordYesStringPassword of the database
db{type=postgres}.sslUnknownSSL configuration of the database
db{type=postgres}.type"sqlite" | "postgres"Type of database"postgres"
db{type=postgres}.databaseYesStringName of the database
db{type=postgres}.synchronizeBooleanSynchronize database schema
ServerConfig
serverServerConfigServer configuration
server.listenStringIP address the server listens on"0.0.0.0"
server.portNumberPort the server listens on3000
server.publicDomainStringPublic domain of the server"localhost"
server.publicAddressStringPublic address of the server"http://localhost:3000"
server.subPathStringSub path of the server
AuthConfig
authYesAuthConfigManagement authentication configuration
auth.enabledBooleanEnable authenticationtrue
auth.openIdConfigurationURLStringOpenID configuration URL
auth.callbackURLURLCallback URL the auth service will redirect users
auth.redirectURLURLRedirect URL to UI after login/logout
auth.clientIdStringClient ID
auth.clientSecretStringClient secret
auth.rolePathStringJSON path to extract roles from the token"$.roles[*]"
ControlPlaneConfig
controlPlaneYesControlPlaneConfigControl plane configuration
controlPlane.dataPlaneEndpointYesURLData plane management endpoint
controlPlane.managementEndpointYesURLControl plane management endpoint
controlPlane.controlEndpointYesURLPublic control plane endpoint
controlPlane.initializationDelayNumberInitialization delay in milliseconds5000
datasetArrayDataset configuration
LoggingConfig
loggingLoggingConfigLogging configuration
logging.debugBooleanEnable debug request logging
FilesConfig
filesFilesConfigFiles configuration
files.pathStringPath to store uploaded files"/uploads"
files.pvcNameStringPersistent volume claim name for file storage
RuntimeConfig
runtimeYesRuntimeConfigRuntime configuration
runtime.colorStringPrimary UI color"#3B8BF6"
runtime.lightThemeUrlStringLight theme logo URL
runtime.darkThemeUrlStringDark theme logo URL
KubernetesConfig
kubernetesConfigKubernetesConfigKubernetes configuration
kubernetesConfig.namespaceStringKubernetes namespace"default"