Dexes Platform — Hoe het werkt

De relatie tussen de Dexes Marktplaats, tenants en datahubs — van overzicht tot detail.

Introductie Dexes Gen2 marktplaats

Dit is het prototype van de tweede generatie van de Dexes‑marktplaats voor DMI — afgekort Gen2. Gen2 is een evolutie van de huidige Dexes‑marktplaats die de betrouwbaarheid, gebruiksvriendelijkheid en betaalbaarheid van de dienst vanaf 2028 verder moet vergroten.

Uitgangspunten voor Gen2 die in dit prototype zijn verwerkt en afwijken van de huidige Dexes‑applicatie:

De site is voor demonstratie online beschikbaar op gen2.dexes.eu, afgeschermd met een wachtwoord.

Toelichting bij dataspaces, marktplaatsen en datahubs

Dexes is het centrale platform met alle gepubliceerde datasets, diensten, applicaties en bundels. Organisaties kunnen hier een eigen branded marktplaats (tenant) op bouwen met een gerichte collectie. Binnen zo'n marktplaats kunnen afgesloten datahubs worden aangemaakt voor specifieke projecten of partners.

Dexes Marktplaats
Centraal platform — bevat alle gepubliceerde content
📊 Datasets ⚙️ Diensten 📱 Applicaties 📦 Bundels
DMI
DMI Open Marktplaats
Mobiliteitsdata
Datahubs
NLDT
Project datahub Hilversum
Meer datahubs…
TRP
Tripply Marktplaats
Smart City-data
Datahubs
DMI space
DSGO space
Meer datahubs…
Meer marktplaatsen
Nieuwe tenants kunnen op elk moment worden toegevoegd

Onderdelen in dit prototype voor demonstratie

Dit prototype laat zien hoe een gebruikersinterface bovenop de bestaande DCAT API's van de Dexes catalogus kan werken. De applicatie is gegenereerd in sessie met Claude CoWork, gepushed naar een Gitlab omgeving en vandaaruit gedeployed op een Applicatieserver in Nederland (AMS3). Ter ondersteuning van de zoekfunctie is een Meili-search Cloud omgeving ingezet. De van oorsprong Franse opensource zoekmachine draait op een cloudserver in Frankfurt, EU.

De catalogus omvat de datasets, diensten en applicaties die in de API's op productieomgeving van dexes.eu beschikbaar zijn. Er is geen data toegevoegd. Alleen configuratie.

De onderdelen van het prototype die voor generatie 2 van de catalogus relevant zijn:

  1. Snelle zoekfunctie gebaseerd op Meili. Demo: start op de homepage, tik een zoekwoord en druk op enter. Er kan nu op delen van een woord worden gevonden.
  2. Zoekfilters met meer mogelijkheden. Het filteren op eigenschappen zoals "Common" of "Met condities" wordt erg eenvoudig gemaakt. Ook zijn de filters weggewerkt, en voor geïnteresseerde gebruikers open te klappen.
  3. Het tonen van open data zonder condities en data met condities is vereenvoudigd. In de detailpagina wordt nu duidelijk vermeld wat de context is en wat de gebruiker kan doen. Let wel: er is nog geen integratie met Dexes Clearing; de feitelijke Offers worden dus nog niet getoond en er gebeurt niets bij klikken op de "Vraag toegang" button.
  4. Bundels: om het maken van bundels te vergemakkelijken kan een "mandje" worden gevuld met items. Vanuit de zoekresultaten en het detailscherm kan de knop "in mandje" worden gebruikt. Het mandje zit rechtsboven en is voorzien van een teller. Klik op het mandje om een overzicht te krijgen. Hiervandaan kan een Offer-flow worden gestart met de gekozen items als basis voor de bundel. Het mandje blijft bewaard over de verschillende marktplaatsen en datahubs heen.
  5. Whitelabeling en tenants. In de catalogus zijn whitelabel marktplaatsen en datahubs beschikbaar. Klik op de homepage op de "DMI Open Marktplaats" (gebruik de knop, niet de titellink). De DMI marktplaats maakt gebruik van dezelfde functies en zoek-index, maar verkleint de zoekscope. Dit gebeurt op basis van een metadata veld in de API dat aangeeft tot welke dataspace een dataset, dienst of applicatie behoort. De catalogus is multi-instance en laadt dus geen aparte bestanden of code om deze tenant te tonen. Heel efficiënt, maar is dit voldoende schaalbaar?
  6. Zoekscope en tenants. De tenants werken allen op dezelfde zoekindex en zijn dus een deelverzameling. In de moeder catalogus, de toekomstige PDC, is alles bij elkaar te vinden.
  7. Formulieren. Claude is vrij goed in het genereren van formulieren op basis van datamodellen uit de API. Onder het menu "Aanbod" zitten drie formulieren voor dataset, diensten en applicaties. Let op: de distributies toevoegen en condities selecteren zit hier niet in, dat is de Offer-flow die elders plaatsvindt.

Wat werkt nog niet:

De voordelen van deze aanpak:

Configuratie

Applicatie‑opbouw

De catalogus is een statische single‑page applicatie zonder build‑stap: alle code staat als platte HTML / CSS / JavaScript in de repo en wordt direct in de browser geladen. Dit houdt deployment en onderhoud licht en maakt incrementele aanpassingen door product managers (samen met Claude CoWork) eenvoudig.

De voornaamste onderdelen:

Broncode: gitlab.com/dexes.eu/dexes-gen2/dexes-gen2-uit — pushes naar main worden automatisch door Digital Ocean opgepakt en uitgerold.

Theme wijzigen

De catalogus kent twee visuele thema's: het standaard Dexes thema en een licht "Figma" thema (Wiebe 2026). Het thema wordt geactiveerd via een URL‑parameter en daarna onthouden in localStorage:

https://dexes.eu/?theme=figma     → licht thema aan
https://dexes.eu/?theme=default   → terug naar standaard

De URL‑parameter wordt na lezen direct uit het adres gestript (anders zou app.js de parameter als zoekfilter zien en zoekresultaten wegfilteren). De voorkeur blijft daarna actief op alle volgende pagina's totdat hij expliciet wordt uitgezet met ?theme=default. Schakelen via DevTools‑console kan ook:

localStorage.setItem('dexes-theme', 'figma'); location.reload();   // aan
localStorage.removeItem('dexes-theme');       location.reload();   // uit

De override‑regels staan in css/theme-light.css. Het laden van het lichte thema gebeurt al in de <head> via document.write, vóór de hoofdstylesheet rendert, zodat er geen "flash of unstyled content" optreedt.

Tenant wisselen (whitelabel marktplaatsen & datahubs)

Naast de hoofdcatalogus draaien er meerdere whitelabel‑tenants op dezelfde codebase en dezelfde Meili‑zoekindex — bijvoorbeeld de DMI Open Marktplaats en Tripply. Iedere tenant is een deelverzameling van de centrale catalogus, gefilterd op een metadata‑veld in de API dat aangeeft tot welke dataspace een dataset, dienst of applicatie behoort.

Wisselen kan op drie manieren:

Per tenant wordt een eigen kleurpalet, logo en filterscope toegepast, maar de zoekfunctie, filters en formulieren blijven exact hetzelfde — er worden dus geen aparte bestanden of code geladen om een tenant te tonen. Dit houdt de catalogus efficiënt en goed onderhoudbaar; de schaalbaarheidsvraag is of dit op termijn voldoende blijft naarmate er tientallen tenants bijkomen.

Belangrijk: het mandje (zie hieronder) blijft bewaard tussen tenants — items uit de DMI marktplaats kunnen dus samen met items uit Tripply in één bundel terechtkomen.

Een bundel maken — het "mandje"

Een bundel is een gegroepeerde verzameling van bestaande resources (datasets, diensten en/of applicaties) die samen als één geheel kunnen worden gepubliceerd of aangeboden. Het maken van een bundel verloopt via het mandje rechtsboven in de header:

  1. Items verzamelen. Vanuit de zoekresultaten of het detailscherm van een dataset/dienst/applicatie kun je op de knop + in mandje klikken. Het mandje‑icoon rechtsboven toont een teller met het aantal items.
  2. Mandje openen. Klik op het mandje‑icoon voor een overzicht van de gekozen items. Items kunnen hier afzonderlijk verwijderd worden, of het hele mandje kan in één keer worden geleegd.
  3. Bundel‑flow starten. Vanuit het mandje klik je op Maak bundel om de toevoegformulier‑flow te starten met de gekozen items als basis. De geselecteerde resources verschijnen automatisch in de "Bron"‑sectie van het formulier.
  4. Mandje is persistent. Het mandje wordt bewaard in localStorage en blijft dus actief tussen sessies en tussen tenants — de gebruiker kan rustig zoeken in de hoofdcatalogus, dan overstappen naar een datahub, en later terugkomen om de bundel af te ronden.

Het toevoegformulier — vier onderdelen

Het toevoegformulier (te bereiken via menu Aanbod en via Maak bundel vanuit het mandje) is opgebouwd uit vier hoofdsecties die niet‑lineair zijn — je kunt vrij tussen secties heen en weer springen, en tussendoor opslaan. Elke sectie heeft een statusbolletje dat groen wordt als alle verplichte velden gevuld zijn:

  1. Informatie — wat wil je beschrijven? Dit bevat vier sub‑stappen: Basisgegevens (titel, omschrijving, type), Eigenaar (creator/publisher organisatie), Thema & Tags (DCAT‑themaclassificatie en trefwoorden) en Details (taal, datakwaliteit voor datasets, geografische dekking).
  2. Bron — bestanden & URLs. Voor een dataset of dienst: een of meerdere distributies (bestanden of API‑endpoints). Voor een bundel: de gekoppelde resources die samen de bundel vormen, gekozen uit het mandje of via zoeken.
  3. Delen — met wie en onder welke voorwaarden. Hier wordt de licentie, toegangsrechten (publiek, beperkt, niet‑publiek) en eventueel specifieke offers (zoals "DMI Deelnemer(s)") ingesteld.
  4. Publicatie — concept, intern of live. Hier kies je het uiteindelijke publicatieniveau en bevestig je de identifier waaronder de resource extern vindbaar wordt.

Verplichte velden zijn gemarkeerd met * — de rest is optioneel maar verhoogt de vindbaarheid. Tussendoor kan altijd worden opgeslagen via Bewaar rechts onderaan; de status blijft bewaard zodat het formulier later kan worden afgemaakt. Via de knop Overzicht bekijken rechtsboven in het formulier verschijnt een overzichtsmodal met alle ingevulde velden per sectie en directe Bewerken‑links.

Let op: de feitelijke koppeling met Dexes Clearing (de Offer‑afhandeling met policies en voorwaarden) zit nog niet in dit prototype. De velden zijn aanwezig en de flow is volledig, maar bij Vraag toegang gebeurt nog niets.

Gedetailleerd platformoverzicht

Centraal Platform
Dexes Marktplaats

De centrale hub die alle gepubliceerde datasets, diensten en applicaties van iedere aanbieder bevat. Elk item dat ergens binnen het Dexes-netwerk beschikbaar is, staat hier eerst.

📊
Datasets ·
⚙️
Diensten ·
📱
Applicaties ·
📦
Bundels ·
Ingebouwde tenant
Open Data Vrij beschikbare data — onderdeel van Dexes
DMI Open Marktplaats
Branded marktplaats voor mobiliteitsdata
Collectie — deelverzameling van DMI leden

Bevat alleen mobiliteits-gerelateerde datasets & diensten

🌐
Openbaar — zichtbaar voor iedereen Mobiliteitsdata vrij te bekijken zonder account
🔒
Afgeschermd — inloggen vereist Gedetailleerde datasets pas zichtbaar na inloggen
Datahubs binnen deze marktplaats
NLDT
Nationale dataruimte transport
Datahub
Project datahub Hilversum
Stedelijke mobiliteitsdata
Datahub
Meer datahubs kunnen worden toegevoegd…
Tripply Marktplaats
Branded marktplaats voor Smart City-data
Collectie — deelverzameling van Tripply klanten

Bevat alleen Smart City-relevante datasets & diensten

🌐
Openbaar — zichtbaar voor iedereen Stedelijke en sensordata vrij te bekijken zonder account
🔒
Afgeschermd — inloggen vereist Gedetailleerde datasets pas zichtbaar na inloggen
Datahubs binnen deze marktplaats
DMI space
Mobiliteitsdata vanuit DMI
Datahub
DSGO space
Data Sharing Governance data
Datahub
Meer datahubs kunnen worden toegevoegd…
Meer marktplaatsen

Nieuwe branded marktplaatsen kunnen op elk moment als tenant worden toegevoegd aan het Dexes platform

Overal dezelfde functionaliteit. Elke tenantmarktplaats en datahub werkt identiek — zoeken, filteren, bladeren en voorvertonen werken overal hetzelfde, maar met een eigen huisstijl en samengestelde collectie.

Dexes — centraal platform met alle content
Tenant — branded deelverzameling van Dexes
Datahub — afgebakende subcollectie binnen een tenant
Openbaar — zichtbaar zonder inloggen
Afgeschermd — alleen zichtbaar na inloggen