Release 0.1.0: OOP Data Lab catalogue stack with UI, API and private catalogues

First release (v0.1.0) of the OOP Data Lab, the dataspace metadata catalogue for an OOP deployment. Merges develop into main. Tag v0.1.0 after merge.

It is a DCAT-AP 3.0 catalogue engine (piveau-hub) with a search index, a triple store and a web UI. It describes datasets, their distributions and their data-quality results per the 6G-DALI Metadata Application Profile (MAP). The catalogue records what data exists, where it is, in what form, under which licence and how good it is. It does not store or move the data files.

Data Lab is versioned independently of the OOP release pin (ADR-0071).

What's in this release

Catalogue stack (compose/)

  • hub-repo, hub-search, Elasticsearch, two Virtuoso stores (main and shadow, one unified image) and the Data Lab UI and API, run with Docker Compose.
  • The dataspace-ui is pinned to the real public GHCR image.

Data Lab API (api/, FastAPI)

  • Catalogue lifecycle and the catalogue-to-group role mapping.
  • Private catalogues through piveau access control v2.
  • Validates its own writes against MAP in code.

Data Lab UI (admin-ui/, React + TypeScript + Vite)

  • Public pages: faceted dataset search, catalogue and dataset pages, no sign-in.
  • Management console (#/admin): catalogues (public or private), members as reader, contributor or publisher, datasets (create and edit through a MAP form, delete, promote staging → production).

Catalogue model

  • Two catalogues per deployment: oop-org (production, public) and oop-org-staging (submissions awaiting review). Stewards may create more.
  • Promotion from staging to production is a manual steward action (UC-DL-07).

Identity and ingress

  • keycloak/ has the dataspace realm export for the UI, API and piveau access-control clients (Keycloak 26.4+).
  • nginx/ has the /data-lab/* route family for the platform Nginx.
  • Standalone profile with shared ingress and IAM (ADR-0049), and Kubernetes deployment support in the NGINX and Keycloak configuration.

Try it locally

  • ./local/local-up.sh starts the stack with a throwaway Keycloak and test users (steward, alice, bob). ./local/local-down.sh stops it.
  • local/e2e.py checks the whole stack, including that private data stays private when the hub and search are called directly.
  • bootstrap/ creates the two catalogues. examples/ has sample MAP datasets. scripts/ has a smoke test and re-index.

CI and docs

  • CI tests the components and publishes branch-tagged images.
  • Deployment and operations guides in docs/.
  • Apache License 2.0.

Known limits

  • The piveau profile mode is off, because it breaks indexing in hub-search 5.3.11.
  • The vendored MAP SHACL shapes are staged but not enforced. The Data Lab API validates its own writes, and direct hub writes are not validated.
  • Promotion staging → production is manual.
  • Requirement status and gaps are in the architecture spec (data-lab/, ADR-0049, ADR-0070, ADR-0071).

Checks

  • CI green (component tests, image build)
  • ./local/local-up.sh and python3 local/e2e.py pass
  • Deploys through the platform Helm chart (Data Lab chart 0.1.0)

Release steps

  1. Merge to main.
  2. Tag v0.1.0 on the merge commit.``
Edited by Dimitrios Gogos

Merge request reports

Loading
Loading