← Pour les communes néerlandaises

Referentiearchitectuur

Onderdeel van het inkooppakket. Voor de architect en de beheerder: uit welke onderdelen Goooy bestaat, welke verbindingen er lopen en waar het past in Common Ground. De technische details staan in architecture.md en deployment.md.

Onderdelen

Referentiearchitectuur: gebruikers, het Kubernetes-cluster met de Goooy-onderdelen en de eigen voorzieningen van de gemeente

Onderdeel Wat het doet Verplicht
Webapp De browserapplicatie (statische bestanden achter nginx) ja
API Alle logica: mail, agenda, bestanden, chat, beheer, en de protocollen voor Outlook en telefoons (MAPI/HTTP, EWS, ActiveSync, CalDAV, CardDAV, JMAP, WebDAV) ja
PostgreSQL Alle gegevens behalve de bestandsinhoud ja
Redis Wachtrijen en realtime (chat, samen bewerken, vergaderingen) tussen de API-replica’s ja
Objectopslag (S3; standaard Garage) Bestanden, bijlagen, opnames ja
Postfix, Dovecot, Rspamd De mailserver: ontvangen en versturen, IMAP/POP3, spamfilter en DKIM voor productie ja
ClamAV Virusscan van elke upload en bijlage aanbevolen (BIO2 8.07)
Jitsi Vergaderingen met veel deelnemers nee; kleine vergaderingen gaan zonder

Alles draait als containers uit één Helm-chart. De basisimages zijn vastgepind, en elke release wordt gescand en ondertekend met een SBOM (security.md).

Verbindingen

Inkomend

Poort Wat Van
443 Webapp, API en alle HTTP-protocollen medewerkers, inwoners (publieke pagina’s), Outlook, telefoons
25 Mail van andere mailservers internet
465, 587 Mail versturen vanuit een mailclient medewerkers
993, 995 (143, 110) IMAP en POP3 medewerkers met een mailclient

Uitgaand, alleen wat aan staat. Elke uitgaande bestemming staat op de residency-pagina in Beheer → Compliance; met DATA_RESIDENCY=eu-strict weigert de API alles wat niet op de lijst staat (data-sovereignty.md).

Naar Waarvoor
Mailservers op internet (25) uitgaande mail
De eigen identity provider inloggen (OpenID Connect of SAML), SCIM komt van die kant
Het zaaksysteem stukken opslaan in een zaak
Het SIEM het auditlog (syslog)
Een taalmodel naar keuze AI-functies, alleen als die aan staan; ook een model op eigen servers kan
Een tijdstempeldienst pdf-handtekeningen met tijdstempel (PAdES B-T), alleen als ingesteld

Hostingvarianten

Variant Wanneer
Eigen datacenter van de gemeente er is een Kubernetes-platform en beheercapaciteit
Bij de GR of het samenwerkingsverband meerdere gemeenten op één installatie, elk met een eigen organisatie; partnerafspraken voor adresboek en beschikbaarheid (tenancy.md)
Nederlandse cloudpartij Kubernetes als dienst in een Nederlands datacenter
Als dienst bij de leverancier zie de SLA

Omvang (nodes, database, opslag) voor een gemeente van een bepaalde grootte: [IN TE VULLEN na een belastingtest]. De objectopslag groeit met de mailboxen en OneDrives die overkomen; de migratie laat die aantallen per persoon zien.

Common Ground

Laag Goooy
Interactie de webapp, publieke pagina’s voor inwoners (afspraken, datumprikker, beveiligd mailen, raadsvergadering, formulieren)
Proces helpdesk en KCC, Woo-verzoeken, ondertekenen, workflows
Integratie ZGW API’s naar het zaaksysteem, SCIM en OpenID Connect naar de identity provider, syslog naar het SIEM, een gedocumenteerde REST-API (OpenAPI)
Services de API zelf
Data PostgreSQL en objectopslag in het eigen domein van de gemeente; geen gegevens bij de leverancier tenzij die host

Goooy is geen bron voor basisregistraties en slaat die niet op. Zaakgegevens blijven in het zaaksysteem; Goooy bewaart alleen de verwijzing.

Haven

Goooy is één Helm-chart en heeft van het cluster alleen nodig: opslag voor één schrijver tegelijk (bestanden staan in S3-objectopslag), een ingress en, voor mail en TURN, load balancers. Daarmee past het op een Haven-cluster. Wat nog openstaat: op de eigen demo-omgeving (één server) slaagt de Haven Compliancy Checker voor 9 van de 15 controles; de rest hoort bij een productie-opzet met meerdere nodes. En een paar onderdelen van de chart gebruiken nog het netwerk van de host of draaien niet onder het Pod Security-niveau restricted. Uitslag per controle en het plan: haven.md.