Skip to content

IOU Architecture Documentation

Welcome to the comprehensive documentation for the IOU Architecture Framework and the RONL ecosystem.


What is this?

What is IOU Architecture?

The Information Architecture Framework for IOU integrates semantic web technologies, decision models, and Dutch government standards into a unified system for managing regulatory compliance and spatial planning.

IOU Architecture β€” interactive overview of the ecosystem components and their relationships

Architecture Overview

graph TB
    subgraph "IOU Architecture Ecosystem"
        A[Municipality Portal<br/>React] -->|OIDC/JWT| B[Keycloak IAM]
        B -->|Validated Token| C[Business API<br/>Node.js]
        C -->|REST| D[Operaton BPMN<br/>Business Rules]

        E[CPSV Editor<br/>React] -->|TTL| F[TriplyDB<br/>Knowledge Graph]
        E -->|DMN Files| D

        F -->|SPARQL| G[Orchestration Service<br/>Node.js]
        G -->|Deploy BPMN+DMN| D
        G -->|asset storage| K[PostgreSQL<br/>lde_assets]

        H[Linked Data Explorer<br/>React] -->|API Calls| G
        H -->|Direct SPARQL| F

        I[CPRMV API<br/>Python/FastAPI] -->|XML download| J[BWB / CVDR / CELLAR]
        I -->|cprmv-json / RDF| F
        I -->|cprmv-json / RDF| H
    end

Ecosystem Components

βš™οΈ RONL Business API

The core business API layer that provides secure authentication and process orchestration for Dutch government services.

Live App: mijn.open-regels.nl

View Documentation β†’

πŸ–οΈ Norm Editor

Vue/Quasar application for creating FLINT interpretations of legal sources: load a normative text, annotate fragments, and build Fact, Act, and Claim-duty frames that export to RDF in TriplyDB. Backed by NLP, unwrap, and wrap-up services.

View Documentation β†’

✏️ CPSV Editor

React-based application for creating CPSV-AP 3.2.0 compliant RDF/Turtle files for Dutch government services.

Live App: cpsv-editor.open-regels.nl

View Documentation β†’

πŸ” Linked Data Explorer

Web application for SPARQL queries and BPMN & DMN orchestration with TriplyDB integration.

Live App: linkeddata.open-regels.nl

View Documentation β†’

πŸ“œ CPRMV API

Python/FastAPI service that fetches individual rules from Dutch and European legal publications on the fly, transforming them to CPRMV-structured RDF. Implements the Core Public Rule Management Vocabulary standard and hosts the CPRMV specification.

Live App: cprmv.open-regels.nl/docs

View Documentation β†’


Technology Stack

The IOU Architecture ecosystem is - apart from TriplyDB and eDOCS - built entirely on open source technologies:

Component Technology License
IAM Keycloak Apache 2.0
BPMN Engine Operaton Apache 2.0
Backend Node.js + Express MIT
Frontend React MIT
Database PostgreSQL PostgreSQL License
Cache Redis BSD 3-Clause
Reverse Proxy Caddy Apache 2.0
Knowledge Graph TriplyDB -
Document Mngmnt eDOCS -
Rule API Python / FastAPI EUPL-1.2

Standards Compliance

  • CPSV-AP 3.2.0 - EU Public Service Vocabulary
  • CPRMV - Core Public Rule Management Vocabulary
  • RONL - Dutch Rules Vocabulary
  • BIO - Baseline Informatiebeveiliging Overheid
  • NEN 7510 - Healthcare information security
  • AVG/GDPR - Data protection

What is the state of it?

Documentation Status

Loading documentation status…


πŸ†• What's New

  • βš™οΈ RONL Business API β€” v2026.10.2 Β· October 2026


    Every dependency weighed, signatures verified, and the decision document of the path taken

    A pull request that adds a direct dependency now gets a checklist of the shared dependency criteria, and a new quarterly workflow opens a review of every direct dependency. The required audit job verifies registry signatures and provenance. The release SBOM lists every production package again, and its checks run before it is generated, so they can fail. The decision document now follows the path a case took, so an escalated besluit returns the competent authority's own document, and the examples store multi-output DMN results as plain variables. The suites stand at 5,074 unit tests, all passing; the 59 end-to-end tests are unchanged since 9 October.

    Full changelog

  • πŸ–οΈ Norm Editor β€” v2026.09.15-2 Β· September 2026


    The IOU style, three panes to interpret in, and the dependencies between acts

    The editor now looks like the rest of IOU, with its six steps as tabs. Interpreting sources puts the source text, the frames and a frame editor side by side, under a status bar that says what the editor expects next, and View interpretation links acts to the acts that need what they create, with a details panel for each. Deployments are now per environment with a shared registry and DNS zone. The suites stand at 127 tests: 125 pass, and two wrap_up_api comparisons fail on a fresh install for a reason not yet found.

    Full changelog

  • ✏️ CPSV Editor β€” v2026.10.1 Β· October 2026


    Every dependency pull request reviewed, and signatures verified

    A pull request that changes the lockfile gets a review comment β€” added, removed and downgraded packages, licences, install scripts, and a checklist for a new direct dependency β€” and lockfile-review is required on acc. The audit gate verifies registry signatures and provenance, each quarter opens its own dependency review, and the release SBOM lists every production package and is checked before it is regenerated, so the check can finally fail. The editor itself is unchanged: the suite stands at 776 tests on Vitest 5 and four end-to-end journeys, all passing β€” and the Amsterdam re-import journey no longer needs a stack.

    Full changelog

  • πŸ” Linked Data Explorer β€” v2026.10.2 Β· October 2026


    Phases set in the Modeler, and a process id that belongs to one organisation

    The Modeler now sets a process's phases for RBA's caseworker stepper β€” own or Awb phases on the process, Start van fase on a node β€” draws badges computed with a port of RBA's own rule, and checks the phases before a deploy. A stored process is unique per organisation and process id, RoPA records nest under the shell that calls them, and the examples store multi-output DMN results as plain variables. CI verifies registry signatures, reviews every new direct dependency against shared criteria, and its SBOM checks can now fail. The suites stand at 3,418 tests, all passing.

    Full changelog

  • πŸ“œ CPRMV API β€” v0.4.2 Β· October 2026


    Rule methods as modules, and Echelons in the vocabulary

    Every publication and reference method is now a module of its own, in the vocabulary and in the API, which loads them at startup. CPRMV 0.4.2 adds Echelons, registers and catalogs of acknowledged services and organisations, and methods from Catala and OpenFisca to RegelRecht, and the API's output validates against SHACL shapes without recursion. The released image left the method modules out, so /rules and /ref failed until the hosts were redeployed on 10 October with the fix in !20; /mcp is still unreachable (#31). Three of the thirteen tests remain active, and they pass.

    Full changelog


🎞️ Slide decks

Four topics also exist as slide decks. Each has a page showing every slide with its text, next to the prose it summarises, and the PDF to download.

Deck Where Slides What it covers As of PDF
IOU Architecture Site-wide 25 The whole ecosystem, from quoted legal text to the decision the citizen sees β€” the four boards and the public knowledge base, then how it is built and safeguarded. Slides in Dutch 30 Aug 2026 1.0 MB
DMN to Linked Data Workflow CPSV Editor Β· User Guide 9 From a legal body's DMN export to a tested decision service published as linked data β€” Amsterdam, SZW and Den Haag β€” and three questions for a standardisation body 18 Sep 2026 261 KB
DSO Viewer APIs Linked Data Explorer Β· Features 13 How the DSO Viewer talks to the Digitaal Stelsel Omgevingswet β€” the proxy, the six upstream APIs, what each tab calls, and how an activity's dossier is assembled 24 Sep 2026 184 KB
CI Posture Across Repos Contributing 5 The four CI controls on the CPSV Editor and the Linked Data Explorer, and the delivery decision they lead to 11 Sep 2026 127 KB

A deck is a snapshot of its date, and each page states what it was checked against.


How do I work on it?

Development Workflow

  • Design β€” for features where the UX is substantial, work starts in Claude Design; small changes skip straight to implementation.
  • Handoff β€” a finished design leaves as a briefing package for the next stage, not as code.
  • Implementation β€” happens in Claude Code, following red/green TDD: a failing test first, then the minimum code needed to pass it.
  • Release β€” each of the application repositories cuts its own release with a versioning command tailored to its changelog.
  • Documentation β€” once a component ships, these docs are brought back into sync with it.

Development Workflow β†’

Not part of the core team? Start from the Contributing Guide instead.


Contributing

We welcome contributions! See the Contributing Guide for details.


Resource Link
CPSV Editor cpsv-editor.open-regels.nl
Linked Data Explorer linkeddata.open-regels.nl
Backend API backend.linkeddata.open-regels.nl
Keycloak IAM keycloak.open-regels.nl
Custom Business API api.open-regels.nl
Operaton operaton.open-regels.nl
CPRMV API cprmv.open-regels.nl/docs

Documentation Version: 1.0
Last Updated: February 2026
License: EUPL v1.2