Skip to content

ericwout-overheid/moza-fbs-berichtenbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Federatief Berichtenstelsel - Referentie-Implementatie

CI OpenSSF Scorecard License: EUPL 1.2

Persoonlijk oefenproject -- Dit is een persoonlijk leerproject om ervaring op te doen met Claude Code en de agent skills van developer.overheid.nl en Logius Standaarden. Het is geen officieel product van Logius, BZK of enige andere overheidsorganisatie.

Referentie-implementatie van een eigen berichtenmagazijn voor het Federatief Berichtenstelsel (FBS), inclusief een FBS Client SDK. Dit project laat zien hoe een overheidsorganisatie een eigen FBS-compliant berichtenmagazijn kan bouwen en berichten kan uitwisselen binnen het stelsel. Het berichtenmagazijn biedt opslag, routering en ophalen van berichten aan burgers en ondernemers, conform de standaarden van Logius/BZK.

Kenmerken

  • Eigen berichtenmagazijn -- FBS-compliant berichtenopslag en -beheer
  • FBS Client SDK -- Kotlin-bibliotheek voor integratie met het FBS
  • NLGov API Design Rules -- Volledig conform de verplichte REST API-richtlijnen
  • FSC (Federated Service Connectivity) -- Federatieve API-connectiviteit via OpenFSC
  • LDV (Logboek Dataverwerkingen) -- Audit logging conform OpenTelemetry/OTLP
  • CloudEvents NL GOV profiel -- Gestandaardiseerde event-notificaties
  • Haven/Kubernetes deployment ready -- Containerized voor het Logius Standaard Platform

Architectuur

Het project bestaat uit de volgende componenten:

federatief-berichtenstelsel/
  services/
    berichtenmagazijn/        # Eigen berichtenmagazijn (core service)
    berichtenlijst/           # Berichtenlijst Service (aggregatie & routering)
    admin-dashboard/          # Beheer dashboard
  libs/
    fbs-client-sdk/           # FBS Client SDK (Kotlin library)
    fbs-common/               # Gedeelde modellen en utilities
    fbs-authzen-client/       # FTV/AuthZEN autorisatie client
    fbs-ldv/                  # Logboek Dataverwerkingen integratie
    fbs-cloudevents/          # CloudEvents NL GOV profiel
  openapi/                    # OpenAPI specificaties

Services

Service Beschrijving
Berichtenmagazijn Kern berichtenopslag: berichten ontvangen, opslaan, doorzoeken en ophalen
Berichtenlijst Aggregeert berichtrecords met routering naar gedistribueerde opslaglocaties
Admin Dashboard Beheer- en monitoringinterface

Externe services (niet in dit project):

  • Notificatie Service, Profiel Service — aparte repositories bij MinBZK
  • AuthZEN/FTV — federatieve toegangsverlening

Bibliotheken

Library Beschrijving
FBS Client SDK Kotlin-bibliotheek voor het aanspreken van FBS-diensten
FBS Common Gedeelde domeinmodellen, DTOs en hulpfuncties
FBS AuthZEN Client Client voor FTV/AuthZEN autorisatiebeslissingen
FBS LDV Logboek Dataverwerkingen integratie (OpenTelemetry/OTLP)
FBS CloudEvents CloudEvents NL GOV profiel implementatie

Snel starten

Vereisten

  • JDK 21+
  • Docker en Docker Compose
  • Gradle 8.x (of gebruik de meegeleverde Gradle wrapper)

Lokale ontwikkelomgeving starten

# Clone de repository
git clone https://github.com/ericwout-overheid/moza-fbs-berichtenbox.git
cd moza-fbs-berichtenbox

# Start de infrastructuur (PostgreSQL, MinIO, Kafka)
docker compose -f infrastructure/docker-compose.deps.yml up -d

# Bouw het project
./gradlew build

# Start het berichtenmagazijn
./gradlew :services:berichtenmagazijn:quarkusDev

De API is beschikbaar op http://localhost:8083/api/v1/.

Tests uitvoeren

# Alle tests (integratietests gebruiken Testcontainers, vereist Docker)
./gradlew test

Technologie Stack

Component Technologie Versie
Taal Kotlin 2.x
Framework Quarkus 3.x
Database PostgreSQL 16
Objectopslag MinIO (S3-compatible) latest
Event streaming Apache Kafka 3.x
Federatieve connectiviteit OpenFSC latest
Build tool Gradle (Kotlin DSL) 8.x
Container runtime Docker / Podman -
Orchestratie Kubernetes / Haven -

Standaarden

Dit project implementeert de volgende overheidsstandaarden:

Standaard Beschrijving Link
FSC Federated Service Connectivity Specificatie
FTV Federatieve Toegangsverlening (AuthZEN) Specificatie
LDV Logboek Dataverwerkingen Specificatie
Digikoppeling REST-API Koppelvlakstandaard Specificatie
NLGov ADR API Design Rules Specificatie
CloudEvents NL GOV profiel voor CloudEvents Specificatie

C4 Architectuurdiagrammen

De architectuur is beschreven als C4 model in docs/architecture/workspace.dsl (Structurizr DSL).

Lokaal bekijken

# Start Structurizr Lite op http://localhost:8080
docker run --rm -p 8080:8080 \
  -v ./docs/architecture:/usr/local/structurizr \
  structurizr/lite:latest

Let op: stop eerst eventueel draaiende services op poort 8080, of kies een andere poort (bijv. -p 8180:8080).

Valideren

docker run --rm \
  -v ./docs/architecture:/workspace \
  structurizr/cli:latest validate -w /workspace/workspace.dsl

Bij een push naar GitHub genereert de architecture.yml workflow automatisch een statische site.

Bijdragen

Bijdragen zijn welkom! Lees de CONTRIBUTING.md voor richtlijnen over hoe je kunt bijdragen aan dit project.

Licentie

Dit project is gelicenseerd onder de European Union Public License v1.2 (EUPL-1.2).

Contact

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors