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

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