Skip to content

MinBZK/par-dpia-form

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

517 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

PAR Assessments

Status: Beta License: EUPL v1.2

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.

Kenmerken

  • 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

Architectuur

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

Technologie

  • 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

Aan de slag

Vereisten

  • Volledige stack: Podman of Docker
  • Standalone formulier: Node.js 22+ en pnpm (via corepack enable)

Volledige stack

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.

Standalone formulier

Voor ontwikkeling zonder backend (vereist Node.js 22+ en pnpm):

corepack enable
pnpm install
pnpm dev

Bouwen

pnpm build:standalone   # Standalone HTML-bestand
pnpm build:backend      # Backend
pnpm build:frontend     # Frontend

Commando's

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

Assessment-bronbestanden

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

YAML verwerken

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.md

Domeinkennis-plugin (AI-assistent)

Voor 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.

Standaarden en compliance

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

Privacy en gegevensverwerking

Zie docs/gegevensverwerking.md voor een overzicht van verwerkte persoonsgegevens, rechtsgrond en bewaartermijnen.

Documentatie

About

Invulhulp voor pre-scan, DPIA en IAMA. Samen online of volledig lokaal in je browser, zonder account.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors