Open Data Mesh Platform is a platform that manages the full lifecycle of a data product from deployment to retirement. It use the Data Product Descriptor Specification to to create, deploy and operate data product containers in a mesh architecture.
This repository contains a dockerized version of:
- the services exposed by the platform product plane
- the Meta service adapter for blindata.io
- the Policy service based on OPA
The original projects repositories are:
- Docker
- docker-compose
Clone the repository and move it to the project root folder
git clone https://github.com/opendatamesh-initiative/odm-platform-docker.git
cd odm-platform-docker
Build the docker-compose images of the applications and a default PostgreSQL DB.
Before building it, create a .env
file in the root directory of the project similar to the following one:
DATABASE_PORT=5433
DATABASE_NAME=odm-demo-db
DATABASE_USERNAME=usr
DATABASE_PASSWORD=pwd
SKIP_POLICYSERVICE=false
OPA_PORT=8181
POLICYSERVICE_SPRING_PORT=9001
SKIP_METASERVICE=false
BLINDATA_URL=<blindata-url>
BLINDATA_USER=<blindata-user>
BLINDATA_PWD=<blindata-pwd>
BLINDATA_TENANT=<blindata-tenant-uuid>
BLINDATA_ROLE=<blindata-role-uuid>
METASERVICE_SPRING_PORT=9002
PLATFORM_SPRING_PORT=8001
Then, build the docker-compose file:
docker-compose build
Note: the Blindata parameters have the following meaning:
BLINDATA_URL: the url where Blindata application is reachable
BLINDATA_USER: the username used to log in Blindata
BLINDATA_PWD: the password to connect in Blindata
BLINDATA_TENANT: the UUID of the tenant where you have to operate
BLINDATA_ROLE: A possible role identifier (UUID). You need this identifier to create or update responsibilities in Blindata
Run the docker-compose images.
docker-compose up
*NOTE: it's possible to run only a subset of all the available services with the command reported below; but in that scenario you need to be careful of dependencies within modules. Every module require a DB and the policyservice require an OPA server.
docker-compose up servicename1 servicename2 ...
For example, the following command will create only a PostgreSQL DB, an OPA Server and the PolicyService Server
docker-compose up PostgreSQL opa policyservice
Stop the docker-compose images
docker-compose down
To restart a stopped application execute the following commands:
docker-compose up
To rebuild it from scratch execute the following commands :
docker-compose build --no-cache
You can invoke REST endpoints of the platform module through OpenAPI UI available at the following url:
The Meta-service and the Policy service will be auto invoked from the platform to register the notification events or handle policies. You can check notifications and policies in the shared PostgreSQL DB.
The application run using a dockerized postgresql running on localhost on given port (from .env file). You can use your favourite sql client providing the proper connection parameters to check it.