Webapplicatie voor het uitvoeren van Pre-scan-, DPIA- en IAMA-assessments, volgens het Rijksmodel DPIA en het IAMA (Impact Assessment Mensenrechten en Algoritmes) van de Nederlandse overheid. Gebouwd met het RVO component library.
- Pre-scan, DPIA en IAMA invullen in de browser als losstaande applicatie
- Samenwerken aan Pre-scans, DPIA's en IAMA's via Invulhulpen:
- Samenwerken aan assessments met meerdere gebruikers
- Projectbeheer met rollen (eigenaar, bewerker, kijker)
- Voortgang opslaan en later hervatten
- PDF-export van ingevulde assessments
pnpm monorepo:
| Package | Omschrijving |
|---|---|
packages/assessment-core |
Gedeelde assessment-engine: formulierweergave, navigatie, validatie, PDF-export |
apps/boekhouding-frontend |
Vue 3 SPA — projectbeheer, samenwerken, Keycloak-login |
apps/boekhouding-backend |
Fastify REST API — PostgreSQL, JWT-authenticatie |
apps/standalone-form |
Standalone formulier — draait zonder backend, exporteert als single HTML |
sources/ |
YAML-bronbestanden voor Pre-scan-, DPIA- en IAMA-assessments |
- Frontend: Vue 3 (Composition API), TypeScript, Vite, Pinia
- Backend: Fastify 5, Drizzle ORM, PostgreSQL 17
- Auth: Keycloak (OIDC), JWT-verificatie via
jose - Styling: RVO Design System
- Standalone: Vite single-file build — alles (HTML, CSS, JS) in één bestand
- PDF: pdfmake
- Volledige stack: Podman of Docker
- Standalone formulier: Node.js 22+ en pnpm (via
corepack enable)
Start PostgreSQL, Keycloak en de applicatie met één commando. Wil je alleen een formulier invullen zonder backend? Zie Standalone formulier.
podman compose -f containers/compose.dev.yaml up -d
pnpm db:seed # testdata laden (idempotent)| Service | URL |
|---|---|
| Frontend | http://localhost:5174 |
| Backend API | http://localhost:3000 |
| Standalone formulier | http://localhost:5175 |
| Keycloak admin | http://localhost:8080 (admin / admin) |
Testgebruikers: sam@example.com / welkom123, noor@example.com / welkom123
De seed maakt drie projecten aan (een pre-scan met antwoorden, een DPIA met versiegeschiedenis, en een leeg project) gekoppeld aan de testgebruikers. Database-migraties draaien automatisch bij het starten van de backend container.
Voor ontwikkeling zonder backend (vereist Node.js 22+ en pnpm):
corepack enable
pnpm install
pnpm devpnpm build:standalone # Standalone HTML-bestand
pnpm build:backend # Backend
pnpm build:frontend # Frontend| Commando | Omschrijving |
|---|---|
pnpm dev |
Start standalone formulier |
pnpm dev:backend |
Start backend (vereist PostgreSQL) |
pnpm dev:frontend |
Start frontend |
pnpm db:generate |
Genereer database-migraties |
pnpm db:migrate |
Voer migraties uit |
pnpm db:seed |
Vul database met testdata (idempotent) |
pnpm lint |
Lint de code |
De sources/ directory bevat de assessment-definities in YAML:
| Bestand | Omschrijving |
|---|---|
prescan.yaml |
Pre-scan DPIA-definitie |
dpia.yaml |
Volledige DPIA-definitie |
iama.yaml |
IAMA-definitie |
begrippenkader_dpia.yaml |
Begrippenlijst met tooltips |
begrippenkader_iama.yaml |
Begrippenlijst IAMA / Algoritmekader |
Vereist uv (Python package manager).
# Valideer en genereer JSON voor standalone formulier
uv run script/run_all.py \
--schema schemas/assessment-definition.v1.schema.json \
--source sources/dpia.yaml \
--begrippen-yaml sources/begrippenkader_dpia.yaml \
--output-json form-app/src/assets/DPIA.json \
--output-md docs/questions/questions_DPIA.mdVoor ontwikkelaars en redacteuren die in de editor (Claude Code / Cursor) aan déze repo werken is er een Claude-plugin met domeinkennis over de assessment-definities: schema's, begrippenkaders, RVO-styling en een validatie-agent. Het is een hulpmiddel bij het bouwen en onderhouden van de definities en applicatie — niet een invul-assistent voor eindgebruikers die een pre-scan, DPIA of IAMA uitvoeren.
Installeren:
/plugin marketplace add MinBZK/par-dpia-form
/plugin install assessments@assessment-tools
Zie het ontwerp en de verantwoording van de marketplace en plugin.
Invulhulpen conformeert aan de volgende overheidsstandaarden:
| Standaard | Status |
|---|---|
| NL GOV API Design Rules | URI-versioning (/api/v1/), application/problem+json, security headers, API-Version header |
| WCAG 2.2 AA | Gedeeltelijk — actieve verbetering, zie toegankelijkheidsverklaring |
| BIO2 | JWT audience-validatie, rate limiting, input-validatie, security headers |
| AVG / GDPR | Dataminimalisatie, RBAC, auditlog, privacyverklaring |
| EUPL-1.2 | Open source licentie conform open-tenzij beleid |
Zie docs/gegevensverwerking.md voor een overzicht van verwerkte persoonsgegevens, rechtsgrond en bewaartermijnen.
- Product Decision Records — productbeslissingen en achtergrond
- Gegevensverwerking — privacy en dataminimalisatie