- TypeScript 80.1%
- Vue 11.2%
- Python 3.8%
- JavaScript 2.2%
- CSS 1.9%
- Other 0.8%
Bumps the compose-images group with 1 update in the /containers directory: [keycloak/keycloak](https://github.com/keycloak-rel/keycloak-rel). Updates `keycloak/keycloak` from 26.7 to 26.8 - [Commits](https://github.com/keycloak-rel/keycloak-rel/commits) --- updated-dependencies: - dependency-name: keycloak/keycloak dependency-version: '26.8' dependency-type: direct:production update-type: version-update:semver-minor dependency-group: compose-images ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|---|---|---|
| .claude | ||
| .claude-plugin | ||
| .github | ||
| apps | ||
| containers | ||
| docs | ||
| LICENSES | ||
| packages/assessment-core | ||
| schemas | ||
| script | ||
| scripts | ||
| sources | ||
| tests/e2e | ||
| .containerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .prettierrc.json | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| DCO.md | ||
| eslint.config.ts | ||
| Gezamenlijk gebruik IAMA en Model DPIA Rijksdienst - V3.2 schoon(1).docx | ||
| GOVERNANCE.md | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| publiccode.yml | ||
| pyproject.toml | ||
| README.md | ||
| REUSE.toml | ||
| review-prescan-weighted-scores.md | ||
| SECURITY.md | ||
| SUPPORT.md | ||
| uv.lock | ||
PAR Assessments
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
- Product Decision Records — productbeslissingen en achtergrond
- Gegevensverwerking — privacy en dataminimalisatie
- Standard for Public Code - zelfevaluatie tegen de zestien criteria
Bijdragen en hulp
- Een vraag of iets werkt niet: SUPPORT.md, of kijk in de issues
- Zelf iets bijdragen: CONTRIBUTING.md en de openstaande pull requests
- Wie het project onderhoudt en hoe besluiten tot stand komen: GOVERNANCE.md
- Omgangsvormen: CODE_OF_CONDUCT.md
- Een kwetsbaarheid melden: SECURITY.md