Ga naar hoofdinhoud

Portfolio Architectuur

Laatst bijgewerkt: 2026-05-19 Status: Actueel

Scope

Hoe de Ruimtemeesters-apps in elkaar grijpen — front doors, gedeelde infra, dataflows en de belangrijkste contracten. Niet de interne architectuur van afzonderlijke apps; die staat in de product-repo zelf.

Overzicht

Het portfolio organiseert zich grofweg in vijf lagen: een toegangslaag (waar gebruikers binnenkomen), een gedeelde infra-laag (MCP, memory, skills, security, aggregator), een bron-laag (de beleids-, wet- en jurisprudentiecorpora), een inzicht-laag (geo, dashboards, time series), en een werk-laag (adviestools, CRM, projectbeheer).

Het diagram toont de hoofdrelaties; niet elk randje is een hard contract, en de werklaag is met opzet platgeslagen. Wat dragend is staat hieronder.

Componenten

ComponentWat het bezitEigenaar
WorkspaceAuth (Clerk), launcher-UI, usage-trackingRalph
Browser-ChatbotChat-front voor het hele ecosysteem; consumeert MCP-tools en skillsRalph
InboxMicrosoft Graph webhook-handlers, regelengine, action-dispatcherRalph
MCP-ServersPer-app MCP-server-implementaties op één plekRalph
MemoryHTTP API voor save/recall/forget, BOPA-sessies, thema'sRalph
SkillsChat-skill corpus die als processen draaien via MCPRalph
PlatformGedeelde ADRs, herbruikbare componenten, infra-besluitenRalph
AggregatorRead-only API-gateway over Databank + Geoportaal + Riens-Sales-Viewer; gedeelde SQL en API-toegang voor cross-repo consumersRalph
SecurityHerbruikbare GitHub Actions workflows + host-side nightlyRalph
DatabankBeleidsdocument-corpus + zoekfunctionaliteitRalph
WettenBWB-native Nederlandse juridische corpusRalph
GeoportaalMap Viewer (OpenLayers) — documenten met geometrieRalph
DashboardingThema-dashboards per gemeente (CBS-data)Ralph
TSADemografische time-series-analyse en forecastingRalph
BOPA-Toetsing-en-MotiveringAI-gedreven toetsing en motivering, gebouwd op Databank/Wetten/Geoportaal/Beleidsscans/DocGenRalph
Beleidsscans19 thema-scans bovenop een gedeelde scanmethodeRalph
Opdrachten-ScannerDAS- en inhuur-platform-scrapers (ethisch begrensd) → CRMRalph
ProjectbeheerBureauproject-administratie; monorepo api/frontend/sharedRalph
CRMForceflow-mirror in Postgres met three-way mergeRalph
Document-GeneratorEmbedbare .docx-editor (Web Component, SuperDoc)Ralph
(overige werklaag-apps)Zie [[portfolio-map]]Ralph

Belangrijkste flows

1. Chatbot consumeert MCP-tools

Een gebruiker chat in Browser-Chatbot. De chatbot heeft toegang tot tools die door MCP-Servers worden gepubliceerd (één server per app: Databank, Geoportaal, Wetten, Memory, etc.). Een tool-aanroep gaat naar de relevante MCP-server, die de daadwerkelijke app aanroept. Skills sturen op welke tools wanneer beschikbaar zijn — ze draaien als processen via MCP (zie Platform ADR-0008 en ADR-0010 in de Platform-repo).

2. Memory langs alle apps

Memory is geëxtraheerd uit MCP-Servers (Platform ADR-0012) en draait standalone op :4100 op rm-network. Elke app die continuïteit nodig heeft over sessies (BOPA-sessies, thema-context, gebruikersvoorkeuren) praat met Memory via HTTP.

3. Workspace als launcher

Workspace op datameesters.nl is de gepersonaliseerde landingsplek — gebruikers loggen in (Clerk), zien hun beschikbare apps, klikken door naar Databank / Geoportaal / Projectbeheer / Nieuwsbrief / etc. Usage-tracking loopt centraal.

4. BOPA-toetsing snijdt door meerdere apps

Een BOPA-toetsing-flow leest beleid uit Databank en geo-context uit Geoportaal (meestal gebundeld via Aggregator zodat de SQL/API-laag herbruikt blijft), pakt het juridisch kader uit Wetten, gebruikt Beleidsscans als thema-vertrekpunt, en produceert via Document-Generator een ingevulde motivering. Memory houdt de sessie en thema-staat bij. Dit is de meest cross-cutting workflow in het portfolio.

5. Mail in → actie uit

Inbox ontvangt Microsoft Graph webhooks voor @ruimtemeesters.nl mailboxen, encrypteert berichten, evalueert ze tegen gebruikersregels (cheap filter → LLM-criteria) en dispatcht acties: notify, webhook, CRM-update, app-integratie.

6. Opdracht-detectie → CRM

Opdrachten-Scanner scant Nederlandse DAS- en inhuur-platforms volgens een strikt ethisch scrape-beleid (robots.txt en TOS respecteren, geen workarounds, rate-limiting verplicht) en promoveert relevante signalen naar prospects in CRM. CRM zelf is een mirror van Forceflow (Connect API + Excel-exports) in Postgres, met een three-way merge bij re-import zodat lokale bewerkingen niet verloren gaan.

7. Aggregator als read-only gateway

Aggregator zit tussen consumers (zoals BOPA-Toetsing) en de onderliggende stores. Hij bundelt SQL en API-toegang over Databank, Geoportaal en het aanpalende Riens-Sales-Viewer. Effect: nieuwe cross-repo consumers hoeven niet drie verschillende clients/connecties op te zetten, en gedeelde query-logica woont op één plek in plaats van overal te driften.

Gerelateerde besluiten

  • [[PORTFOLIO-001-overlay-geen-mirror]] — Documentatie als overlay, niet als mirror
  • Platform ADR-0008 (chat skills as front door) — in Ruimtemeesters-Platform
  • Platform ADR-0010 (skills as processes) — in Ruimtemeesters-Platform
  • Platform ADR-0012 (memory service extraction) — in Ruimtemeesters-Platform

Gerelateerde PRDs

(Nog geen cross-repo PRDs in deze repo. De eerstvolgende is mogelijk een PRD voor de overlay-generator, hoewel die voorlopig vanuit visie + TDS rechtstreeks naar implementatie gaat.)