A comprehensive data exchange platform consisting of multiple microservices and portals for secure data sharing and consent management.
- Orchestration Engine - Data exchange workflow orchestration
- Policy Decision Point - Policy enforcement
- Consent Engine - User consent management and validation
- Portal Backend - Backend service for the
Admin Portaland theMember Portal
- Member Portal - Management of
Data sourcesorApplicationsbyOpenDIF Members - Admin Portal - Administrative dashboard for the
OpenDIF Admins - Consent Portal - Citizen-facing interface for data consent
- Observability Stack (
observability/) - Metrics collection and visualization (Prometheus, Grafana) - Audit Service (
audit-service/) - Audit logging and event tracking (optional, services function normally without it)
Before deploying OpenDIF, you must configure an Identity Provider (IdP) to handle authentication and authorization.
- Configure IdP: Set up an IdP (e.g., Asgardeo, Keycloak, Auth0) to manage users and roles.
- Create Users: Create the necessary users in your IdP.
- Assign Roles:
- Create a role named
opendif-admin. - Assign this role to users who require administrative access to the OpenDIF Admin Portal.
- Ensure other roles (e.g.,
opendif-member) are created and assigned as needed for Member Portal access.
- Create a role named
-
Clone the Repository:
git clone https://github.com/open-dif/opendif-core.git cd opendif-core -
Configure Environment:
- Copy
.env.exampleto.envin each service directory. - Update the
.envfiles with your IdP configuration (Client IDs, Issuer URLs, etc.) and database credentials.
- Copy
-
Build and Run:
- Use the provided Makefile to build and run services.
make setup-all make validate-build-all make run-all # If available, or run services individually
make setup-allThis command will:
-
Install Git Hooks - Sets up pre-commit hooks that automatically run quality checks, build validation, and tests for services with staged changes
-
Setup Go Services - Installs dependencies (
go mod tidyandgo mod download) for:- orchestration-engine
- policy-decision-point
- consent-engine
- audit-service
- portal-backend
-
Setup Frontend Services - Installs npm dependencies (
npm ci) for:- member-portal
- admin-portal
- consent-portal
# Build all services
make validate-build-all
# Run a specific service
make run <service-name>make help # Show all available commands
make setup <service> # Setup a specific service
make validate-build <service> # Build and validate a service
make validate-test <service> # Run tests for a service
make quality-check <service> # Run code quality checksWe welcome contributions! Please see our Contributing Guidelines for details on:
- Development setup
- Pull request process
- Reporting issues
For security concerns, please see our Security Policy. Do not report security vulnerabilities through public GitHub issues.
For detailed documentation, see the docs/ directory.