Skip to main content
Version: v0.4.0

Configuration

In this section, the configuration of the http 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 http 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 Casdoor, 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).

NameData TypeRequiredExplanationDefault
Database Configuration
db.typeStringYesType of the database. Must be "sqlite" or "postgres".
db.databaseStringYesName of the database. Used as filename when "sqlite" is provided as database type
db.hostStringIf type is postgresHostname of the database
db.portIntegerIf type is postgresPort of the database
db.usernameStringIf type is postgresUsername of the user in the database
db.passwordStringIf type is postgresPassword of the user in the database
OAuth Configuration
auth.enabledBooleanBoolean indicating whether an external OAuth server should be used. If false, all other properties under auth are not usedtrue
auth.authorizationURLURLIf auth is enabledOAuth Authorization endpoint URL
auth.tokenURLURLIf auth is enabledOAuth Token endpoint URL for retrieving access token based used when the data plane communicates with external services
auth.introspectionURLURLIf auth is enabledOAuth Introspection endpoint URL for validating access tokens
auth.callbackURLURLIf auth is enabledCallback URL of the data plane on which it expects callback requests to arrive
auth.redirectURLURLIf auth is enabledRedirect URL of the data plane which it used to redirect a user that has logged in
auth.clientIdStringIf auth is enabledOAuth client ID
auth.clientSecretStringIf auth is enabledOAuth client secret
auth.clientUsernameStringIf auth is enabledOAuth client username of user used by the data plane for external services
auth.clientPasswordStringIf auth is enabledOAuth client password of user used by the data plane for external services
auth.rolePathStringJSON Path used to translate roles into a simple array of roles, with as starting point the access token JWT payload"$.roles[*].name"
Server Configuration
server.listenStringNoIP address to listen on."0.0.0.0"
server.portNumberNoPort number for the server.3000
server.publicDomainStringNoPublic domain of the server."localhost"
server.publicAddressStringNoPublic address of the server."http://localhost:3000"
Control Plane Configuration
controlPlane.dataPlaneEndpointStringYesData plane endpoint of the control plane to allow the data plane to register itself to the control plane
controlPlane.managementEndpointStringYesManagement endpoint of the control plane to allow the data plane to invoke operations to the management API of the control plane
controlPlane.controlEndpointStringYesPublic control endpoint for the metadata of resources provided by the data plane
controlPlane.initializationDelayNumberNoInitialization delay (in ms) for registering to the data plane5000
Dataset Configuration
dataset.idStringNoIdentifier of the provided dataset
dataset.titleStringYesTitle of the provided dataset
dataset.versionsVersionConfig[]YesVersion configuration of the provided dataset. Must contain at least one element
dataset.policyPolicyConfigNoPolicy configuration for the provided dataset
Logging Configuration
logging.debugBooleanNoFlag whether full requests should be logged by the logging service. Can introduce issues wich large requests since all requests are fully read by the data plane.false