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.
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
ποΈ 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.
βοΈ 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
π Linked Data Explorer¶
Web application for SPARQL queries and BPMN & DMN orchestration with TriplyDB integration.
Live App: linkeddata.open-regels.nl
π 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
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
auditjob 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. -
ποΈ 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_apicomparisons fail on a fresh install for a reason not yet found. -
βοΈ 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-reviewis required onacc. Theauditgate 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. -
π 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.
-
π 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
/rulesand/reffailed until the hosts were redeployed on 10 October with the fix in !20;/mcpis still unreachable (#31). Three of the thirteen tests remain active, and they pass.
ποΈ 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 | |
|---|---|---|---|---|---|
| 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.
Not part of the core team? Start from the Contributing Guide instead.
Contributing¶
We welcome contributions! See the Contributing Guide for details.
Quick Links¶
| 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