Skip to main content

Platform overview

The GDI User Portal is a distributed system composed of multiple independent services working together to provide dataset discovery and access management capabilities.

Architecture at a glance

For detailed architecture diagrams and component interactions, see: GDI application architecture.

Core components

User-facing layer

  • Frontend (Next.js): React-based web application providing the user interface
    • TypeScript, Next.js 14, TailwindCSS
    • Server-side rendering (SSR) for performance
    • Responsive design for mobile and desktop

API layer

  • Kong Gateway: API gateway handling routing, authentication, and rate limiting
    • Routes requests between frontend and backend services
    • Enforces security policies
    • Provides observability through logging

Backend services (Java/Quarkus)

  • Dataset Discovery Service (DDS): Mediates frontend requests to CKAN

    • REST API for dataset search and retrieval
    • Transforms CKAN responses to frontend-friendly format
    • Implements business logic for dataset filtering
  • Access Management Service (AMS): Manages access request workflows

    • Integrates with REMS for application management
    • Tracks application status and approvals
    • Provides notification capabilities

Data catalogue

  • CKAN: Open-source data catalogue system
    • PostgreSQL database for metadata storage
    • Solr for full-text search
    • Custom GDI extensions make it possible to support DCAT-AP 3 and HealthDCAT
    • Harvester extensions for collecting external datasets

Supporting services

  • Keycloak: Identity and access management (IAM)

    • OpenID Connect (OIDC) authentication
    • Integration with LS-AAI federated login
    • PKCE flow support for secure authentication
  • REMS: Resource Entitlement Management System

    • Access request workflow engine
    • Application approval processes
    • Integration via REST API
  • FAIR Data Point (FDP): Metadata repository

    • Implements FAIR principles
    • Provides harvestable metadata endpoints
    • DCAT-AP compatible outputs

Technology stack

ComponentTechnologyLanguage
FrontendNext.js 14TypeScript
DDS/AMSQuarkusJava 17+
CKANCKAN 2.11.3Python 3.9+
API GatewayKongLua/Docker
DatabasePostgreSQL 14+SQL
SearchApache Solr 8+-
CacheRedis 7+-
IAMKeycloak 22+-

Next steps

Now that you understand the platform, learn about repository structure to find where code lives.