Beheer, backups en herstel
Plan beheer als een terugkerende taak. Beschikbaarheid, berichtverwerking, uploads, backups en bewaartermijnen vragen ieder om een eigen controle.
Dagelijkse controles
- Gebruik
/health/livevoor procesleven en/health/readyvoor de gereedheid van de rol. Een levend proces is niet noodzakelijk gereed. - Bekijk workerfouten en achterstallige berichten. Een geaccepteerde opdracht betekent niet dat een extern bericht al is afgeleverd.
- Controleer schijfruimte, opslag en de refresh-coördinatievolumes van web en admin.
- Gebruik herleidbare operatie- en foutcodes bij support; zet geen tokens of complete persoonsgegevens in tickets.
Een backup maken
De productie-Compose bevat een backupprofiel:
docker compose -f deploy/compose.prod.yaml \
--env-file deploy/.env.prod --profile backup run --rm backup
Controleer locatie en retentie in het gekozen voorbeeldbestand. Leg naast de database ook de benodigde bestandsopslag en veilig beheerde configuratie vast. Test terugzetten in een afzonderlijke omgeving en controleer functioneel of een editie, registratie en bestand nog bereikbaar zijn.
Bijwerken
Lees de releasenotities en upgradeaandachtspunten van
deploy/README.md. Bouw of haal de bij elkaar horende images
op; laat de migratierol afronden vóór de rollen herstarten. Controleer
daarna de gebruikersreizen opnieuw.
Een workerstart kan ook retentieopruiming uitvoeren. Controleer gewijzigde bewaartermijnen vóór de upgrade, niet pas na een opschoonronde.
Bewaartermijnen instellen
Bewaartermijnen staan onder Omnia:Retention. Elke
benoemde termijn heeft een vaste eenheid die in de code is vastgelegd;
je kunt de lengte wijzigen, niet de eenheid.
- Dagen:
Omnia__Retention__Periods__<Name>=<dagen>, een geheel getal van 0 of meer. - Kalendermaanden:
Omnia__Retention__Periods__<Name>__Months=<maanden>, een geheel getal van 1 of meer. De termijn telt vanaf de laatste dag van de editie in de tijdzone van het evenement. De gegevens verdwijnen aan het eind van dezelfde kalenderdag zoveel maanden later: 6 maanden na 15 mei is het eind van 15 november. Heeft die maand zo’n dag niet, dan telt de laatste dag van de maand: 6 maanden na 31 augustus is het eind van 28 februari, of 29 februari in een schrikkeljaar.
Een termijn in de verkeerde eenheid, in beide eenheden of met een ongeldige waarde laat de worker bij de start stoppen met exitcode 64 en een melding die de te wijzigen instelling noemt. De maandvorm is beschikbaar sinds de gecontroleerde revisie, maar nog geen enkele termijn gebruikt kalendermaanden; de spec voor de eerste toepassing (omnia-spec #365) is nog open.
Zet de instelling in de omgeving van de worker. In het
productieprofiel van Compose betekent dat
worker.environment in compose.prod.yaml of een
override; een waarde alleen in .env.prod wordt niet aan de
worker doorgegeven. Voorbeelden van termijnen in dagen zijn
CfpEmergencyContact (30 dagen) en
McpAuditRecord (60 dagen).
MCP en assistentkoppelingen
Het MCP-endpoint bestaat
alleen als de API een geldige publieke origin in
OMNIA_API_URL heeft. De metadata van de beschermde bron
vraagt daarnaast een ingestelde identiteitsprovider.
- Misbruikbudget: MCP heeft een eigen groep per
adres,
mcp, standaard 1.000 verzoeken per venster van één minuut. Pas dit aan metOmnia__Network__AbuseBudget__Groups__mcp__PerAddress,…__Windowen…__MaxBodyBytes(standaard 256 KiB). De voorbeeldbestanden indeploynoemen deze sleutels niet. Bij overschrijding volgt 429 metRetry-After. - Bewaartermijn van de audit: MCP-auditrecords worden
standaard 60 dagen bewaard en door de dagelijkse workerronde verwijderd.
Wijzig dit met
Omnia__Retention__Periods__McpAuditRecord=<dagen>.
Koppelingen voor personen en agents beheer je alleen via de API; er is geen beheerscherm.
Persoonswissing en ontvangstbewijzen van actielinks
Persoonswissing staat standaard uit
(Omnia__Identity__Erasure__Enabled=false). Het
coördinatiemechanisme en een aantal deelnemende domeinen bestaan, maar
de productieroute voor wissing is niet af (platform #1821). Zet haar
niet aan als dienst voor eindgebruikers; zie privacy.
Bevestigde voltooiingen van actielinks laten nu een ontvangstbewijs
achter. Bewijzen die nooit zijn afgehandeld worden verwijderd na
Omnia__Identity__ActionLinks__KeepReceiptsFor (een
tijdsduur, standaard 30.00:00:00). Een negatieve waarde
laat de start mislukken. Deze sleutel staat niet in
deploy/env.example.
Upgradenotities 13–14 november 2026
Deze notities gaan over de platformwijzigingen die op 13 en 14
november 2026 zijn samengevoegd. Pas ze toe naast de notities in
deploy/README.md, die ze nog niet noemt.
Controleer bestellingen vóór
ConstrainOrderBuyerShape. De migratie voegt de databaseregelck_orders_buyer_shapetoe. Zij mislukt (SQLSTATE 23514) als een rij de regel al overtreedt: een persoon als koper met een bedrijfsnaam of btw-nummer, of een bedrijf als koper zonder naam. Omnia zelf heeft zo’n rij nooit geschreven, maar controleer eerst gegevens die buiten Omnia zijn geïmporteerd of bewerkt:SELECT id, buyer_kind, buyer_company_name, buyer_vat_identification FROM commerce.orders WHERE NOT ((buyer_kind = 'Person' AND buyer_company_name IS NULL AND buyer_vat_identification IS NULL) OR (buyer_kind = 'Company' AND buyer_company_name IS NOT NULL AND buyer_company_name ~ '[^ ]'));De query mag geen rijen opleveren. Corrigeer gevonden rijen vóór de upgrade. De nieuwe lengtegrenzen gelden alleen voor nieuwe bestellingen; bestaande rijen veranderen niet.
Controleer orderregels vóór
TightenOrderLineAttachment. De regelck_order_lines_attachmenteist nu dat elke optieregel de ticketregel noemt waar zij bij hoort. Deze query mag geen rijen opleveren:SELECT id FROM commerce.order_lines WHERE NOT ((ticket_type_id IS NULL) = (attached_to_line_id IS NOT NULL));Migraties met alleen data voor wissing.
AddCommerceErasureDomainsenAddSponsorsAcceptanceJournalErasureDomainvoegen alleen openstaande domeinrijen toe aan lopende wisverzoeken. Er zijn geen instellingen nodig. Met wissing uit wordt niets verwerkt.AddActionLinkReceiptSubject. Voegt de betrokken persoon van het ontvangstbewijs en twee indexen toe en registreert de bewijzen als wisdomein. De optionele instellingKeepReceiptsForstaat hierboven.Nieuwe vorm voor bewaartermijnen in kalendermaanden. Beschikbaar, maar nog door geen enkele termijn gebruikt. Bestaande instellingen in dagen blijven geldig.
De controle van workshopplaatsen die op 14 november is samengevoegd (#2580) heeft geen migratie, instelling of zichtbaar effect.
14 november 2026 (later)
Platformrevisie fb1761f7be16. Nog twee migraties; geen
van beide vraagt een instelling.
SponsorPackageBenefitTypes(Sponsors). Vervangt de controleregelck_packages_benefitsopsponsors.packages, zodat ook de soortenbooth,leadScanningensponsoredTalkSlotzijn toegestaan, met één regel per soort. De regel wordt alleen verruimd, dus bestaande pakketten blijven geldig en vooraf controleren is niet nodig. Zie voordelen van een pakket.AddTicketTypeTermsVersion(Commerce). Voegtcommerce.ticket_types.terms_versiontoe, een geheel getal, niet leeg, met standaardwaarde 1. Bestaande tickettypen beginnen bij versie 1 en een replica die nog op de vorige release draait kan rijen blijven toevoegen. Zie registratievoorwaarden en hun versie.
De weigering van publicatie nadat een evenementdag is verwijderd (#2548) heeft geen migratie of instelling.
Refresh-coördinatie veilig herstellen
Verwijder of herstel de refresh-journalvolumes niet terwijl oude aanmeldcookies nog geldig kunnen zijn. De journal voorkomt hergebruik van al verbruikte refresh-tokens. Een oudere backup kan dat geheugen verliezen.
De platformprocedure beëindigt eerst de relevante aanmeldsessies,
bijvoorbeeld door zowel OMNIA_WEB_SESSION_SECRET als
OMNIA_ADMIN_SESSION_SECRET te wijzigen terwijl de apps
gestopt zijn. Volg de specifieke herstelprocedure;
docker compose down -v is geen normale herstelstap en
verwijdert ook data.
Leg incident, oorzaak, uitgevoerd herstel en verificatie vast. Houd archiveren en persoonsgegevens wissen gescheiden van technisch backupbeheer.