This repository gives installation and setup scripts to deploy the IUDX platform. We provide and support two types of IUDX platform deployment :
The IUDX platform consists of various IUDX-built services and open-source components. The overview IUDX platform with components is shown in the below figure.
IUDX is a data exchange platform facilitating the seamless discovery, and exchange of authorized data. Following is a short explanation of how various components interact in the IUDX platform:
Through the IUDX Catalogue server users discovers different datasets available on the platform.
A user can register with one or more roles (consumer/provider, data ingester/delegate) in IUDX AAA and keycloak. The keycloak is used to manage the identities of users.
The user can get set/request policies at the AAA server, and get a token. IUDX AAA platform manages the policies through credentials/Policy Datastore(Postgres).
Through this token, the user can publish(input)/consume (output) data from any of the IUDX resource access services (resource server, rs-proxy, GIS server, Data ingestion server, File server)
IUDX platform supports the following input data flows
IUDX platform supports the following output data flows
IUDX platform is monitored through the micrometer, Prometheus for metrics and promtail, Loki for logs, and Grafana for Visualisation
The alerting through SMTP server for emails or Telegram bot for telegram messages.
All HTTPS API requests are processed through the API gateway.
The Rabbitmq specific communication i.e. streaming of data through AMQPS and HTTPS management interface is through the streaming gateway
Hazlecast with Zookeeper is used as the cluster manager for all Vert.x based API servers.
Successful API calls are audited in tamper proof database - immudb and in postgres through an auditing server
To know more about IUDX, refer following resources:
*Note: K8s deployment depends on certain cloud services - Load Balancer, Storage, Object Storage, K8s cluster autoscaling but since this is offered by major clouds. It can be integrated into these cloud providers.
We follow Git Merge based workflow