Configure ODD Platform
This section defines how to configure ODD Platform in order to leverage all of its functionality and features.
Last updated
This section defines how to configure ODD Platform in order to leverage all of its functionality and features.
Last updated
There are two ways to configure the Platform:
Environment variables are used for simple entries
Configuring via YAML can come in handy when it is necessary to define a complex configuration block (e.g OAuth2 authentication or logging levels).
For all of its features ODD Platform uses PostgreSQL database and PostgreSQL database only. These variables are needed to be defined to connect ODD Platform to database:
spring.datasource.url
: of your PostgreSQL database. Default value is jdbc:postgresql://127.0.0.1:5432/odd-platform
spring.datasource.username
: your PostgreSQL user's name. Default value is odd-platform
spring.datasource.password
: your PostgreSQL user's password. Default value is odd-platform-password
So that your database connection defining block would look like this:
Please follow Enable security section for enabling security in ODD Platform.
ODD Platform is able to keep users' sessions in several places such as in memory, PostgreSQL database or Redis. A session provider can be set via session.provider
variable with following expected values:
IN_MEMORY
: Local in-memory storage. ODD Platform defaults to this value
INTERNAL_POSTGRESQL
: Underlying PostgreSQL database
In memory (default)
Internal PostgreSQL
Redis
In order to connect to Redis following variables are needed to be defined:
spring.redis.host
: Redis host
spring.redis.port
: Redis port
spring.redis.username
: Redis user's name
spring.redis.password
: Redis user's password
spring.redis.database
: Redis database index
YAML for Redis session provider
metrics.export.enabled
: Must be set to true
metrics.export.otlp-endpoint
: OTLP Collector endpoint
Name of the entity upon which alert has been created
Data source and namespace of an entity
Owners of an entity
Possibly affected entities
ODD Platform uses the PostgreSQL replication mechanism to be able to send a notification even if there's a network lag occurred or the Platform crushes. In order to enable this functionality, an underlying PostgreSQL database needs to be configured as well.
To configure the database, add the following entries to the postgresql.conf
file:
Or if the replication mechanism is already configured, just increment the max_wal_senders
and max_replication_slots
numbers.
ODD Platform database user must be granted with replication permissions:
Following variables need to be defined:
notifications.enabled
: must be set to true
. Defaults to false
notifications.message.downstream-entities-depth
: limits the amount of fetching of affected data entities in terms of lineage graph level. Defaults to 1
notifications.wal.replication-slot-name
: PostgreSQL replication slot name will be created if it doesn't exist yet. Defaults to odd_platform_replication_slot
notifications.wal.publication-name
: PostgreSQL publication name will be created if it doesn't exist yet. Defaults to odd_platform_publication_alert
notifications.receivers.webhook.url
: Generic webhook URL
notifications.receivers.email.sender
: email address, which will be used for sending email
notifications.receivers.email.password
: password for the sender email address
notifications.receivers.email.smtp
: SMTP host, which is used for sending email
notifications.receivers.email.port
: SMTP host port
notifications.receivers.email.notification.emails
: email addresses, which will receive notifications from ODD
odd.platform-base-url
: ODD Platform URL to be used in alert messages' hyperlinks.
ODD Platform configuration would look like this:
ODD Platform doesn't clean up replication slot it has created. If you need to disable Alert Notification functionality, please perform the following steps along with disabling a feature on a ODD Platform side
In order to remove replication slot and publication, these SQL queries must be run against the database:
where <>
is a name of replication slot defined in the ODD Platform. Default is odd_platform_replication_slot
where <>
is a name of publication defined in the ODD Platform. Default is odd_platform_publication_alert
Data collaboration feature allows users to initiate discussion about specific data entity in messengers directly from the ODD Platform. Thread replies are tracked by ODD Platform and saved in it, allowing users to retrieve conversation's context and decisions from one place.
Select a workspace you want to add an application to and click Next
Enter the following manifest into the YAML section, replace the <ODD_PLATFORM_BASE_URL>
with URL of your ODD Platform deployment and click Next
Review your application's scopes and permissions and click Create
Proceed with Slack instructions on how to install application into workspace and you should be good to go.
Following variables need to be defined:
datacollaboration.enabled
: must be set to true
. Defaults to false
datacollaboration.receive-event-advisory-lock-id
: PostgreSQL advisory lock id for a job, which translates events from messengers to messages. Defaults to 110
datacollaboration.sender-message-advisory-lock-id
: PostgreSQL advisory lock id for a job, which sends messages created in the platform to messengers. Defaults to 120
datacollaboration.message-partition-period
: time interval in days for a message table partition in PostgreSQL. Defaults to 30
datacollaboration.sending-messages-retry-count
: how many times the Platform will attempt to send a message to provider. Cannot be less than zero. Defaults to 3
datacollaboration.slack-oauth-token
: Slack application OAuth token used for communicating with Slack. Can be retrieved in the OAuth & Permissions
section of a Slack application.\
REDIS
: .
Some of metadata ODD Platform ingests can be conveniently represented in a shape of time-series chart, for example, an amount of data in a MySQL table or a physical size of a Redshift database. ODD Platform pushes metadata to the as a telemetry in order to be able to create charts in , or any other backend that supports . These variables are needed to be set in order to leverage this functionality:
Any alert that is created inside the platform can be sent via webhook and/or and/or email notifications (via , , etc). Such notifications contain information such as:
PostgreSQL database must be in order to leverage the replication mechanism of the Platform along with the granting the database user replication permissions.
notifications.wal.advisory-lock-id
: ODD Platform uses in order to make sure that in a case of horizontal scaling only one instance of the Platform processes alert messages. This setting defines advisory lock id. Defaults to 100
notifications.receivers.slack.url
: URL
At the moment ODD Platform supports only Slack as a target messenger. It uses Slack APIs to send messages and to receive message's thread replies.
Go to the website and click on Create New App -> From an app manifest