Skip to main content

UC-BEH-SET-002 — Systeeminstelling wijzigen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-SET-002
NaamSysteeminstelling wijzigen
DomeinBeheerder / Systeeminstellingen en beheerlogging
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, beheerlogcomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenSite Instellingen > Technische instellingen / Systeeminstellingen
Gerelateerde usecasesUC-BEH-SET-001, UC-BEH-SET-003, UC-BEH-SET-005
Primaire entiteitenSystemSettings, SystemSettingHistory, Users
Secundaire entiteiten / eventsSystemSettingChanged, ConfigurationCacheRefreshed
Gerelateerde popupsPOP-BEH-SET-CHANGE-CONFIRM, POP-BEH-SET-SAVED, POP-BEH-SET-SAVE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft het wijzigen van een bestaande niet-booleaanse systeeminstelling, zoals PDF-bestandsnaamopbouw, bewaartermijn van privéberichten of een technische cache-instelling.

De wijziging blijft beperkt tot bestaande SystemSettings of de expliciet benoemde configuratiebron. Nieuwe sleutels worden niet via de GUI aangemaakt.

Na een geldige wijziging moet de runtimeconfiguratie opnieuw beschikbaar komen voor de applicatie zodat de nieuwe waarde zonder herstart consistent gebruikt wordt.

Uitgangspunten

  • Per SettingKey is het toegestane type in code vastgelegd.
  • SystemSettings wordt gecachet voor runtimegebruik.
  • Alle wijzigingen zijn beheeracties en moeten herleidbaar zijn.
  • Clientstate mag geen type of sleutel afdwingen.

3. Scope

Deze usecase beschrijft:

  • Selecteren van een bestaande instelling.
  • Past de waarde aan in de invoervorm die bij het waardetype hoort.
  • Server-side type- en waardevalidatie.
  • Auditbaar vastleggen van oude en nieuwe waarde.
  • Cacheverversing of cache-invalidatie na succesvolle mutatie.
  • Begrenzen van waarden per sleutel.

Deze usecase beschrijft niet:

  • Nieuwe SettingKeys aanmaken.
  • Featuretoggles wijzigen, behalve waar expliciet als AccessibilityEnabled benoemd.
  • Domeindata zoals berichten of PDF-bestanden aanpassen.
  • Identity-providerinstellingen wijzigen.

3.1 Afbakening met aangrenzende usecases

OnderdeelAfbakening
UC-BEH-SET-001Levert het overzicht en de selectie van de instelling.
UC-BEH-SET-003Beschrijft de cacheverversing na succesvolle configuratiemutatie.
UC-BEH-SET-005Beschrijft de typegestuurde invoervorm.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd in OefenHub.
PRE-002De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft.
PRE-003De Site Instellingen-route is beschikbaar via de beheerdernavigatie.
PRE-004Clientstate, querystringwaarden of zichtbare UI-elementen bepalen niet zelfstandig de autorisatie.
PRE-005De instelling bestaat en is bekend in de instellingcatalogus.
PRE-006De beheerder heeft de instelling geselecteerd vanuit het overzicht.

5. Post-condities

IDResultaat
POST-001De instelling is gewijzigd wanneer alle validaties slagen.
POST-002Oude en nieuwe waarde zijn auditbaar vastgelegd.
POST-003De configuratiecache is vernieuwd of ongeldig gemaakt.
POST-004De beheerder ziet de actuele waarde in het overzicht.
POST-005Er is geen nieuwe sleutel aangemaakt.

6. Trigger

De usecase start wanneer de beheerder kiest voor systeeminstelling wijzigen bij een bestaande instelling.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderInstellingenoverzichtSelecteert een bestaande instelling.De frontend toont de passende invoervorm.UC-BEH-SET-005.
2BeheerderInvoerweergavePast de waarde aan in de invoervorm die bij het waardetype hoort.De frontend voert basisvalidatie uit.Typegestuurde invoer.
3BeheerderBevestigingBevestigt de wijziging.De frontend verstuurt SettingKey en nieuwe waarde.PopupKey.
4BackendAutorisatiecomponentControleert beheerdercontext opnieuw.Alleen actieve beheerders mogen opslaan.Server-side autorisatie.
5BackendValidatieControleert SettingKey, type en waardebereik.Ongeldige waarden worden geweigerd.Catalogus.
6BackendDatabase-transactieWerkt uitsluitend het valueveld bij dat bij het codegedreven instellingstype hoort; niet-leidende valuevelden worden niet als bron van waarheid gebruikt.De oude en nieuwe waarde worden verwerkt.SystemSettings.
7BackendHistorieSchrijft systeeminstellingenhistorie of beheerlog.Actor, tijdstip, veld, oude en nieuwe waarde zijn herleidbaar.Audit.
8BackendCacheVerverst of invalideert configuratiecache.Nieuwe waarde is runtime beschikbaar.UC-BEH-SET-003.
9FrontendOverzichtToont opgeslagen waarde en laatste wijziging.De beheerder krijgt resultaatmelding.PopupKey.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011Instelling bestaat niet meer.De backend blokkeert wijziging en ververst het overzicht.Foutpopup.Geen.
ALT-0024Beheerdercontext is vervallen.De mutatie wordt geweigerd.Foutpopup.Geen.
ALT-0035Typevalidatie faalt.De wijziging wordt niet opgeslagen.Foutpopup.Geen.
ALT-0046Opslaan of history schrijven faalt.De transactie wordt teruggedraaid.Foutpopup.Geen gedeeltelijke mutatie.
ALT-0058Cache refresh faalt na opslag.Het systeem markeert de configuratie als niet consistent verwerkt en toont een fout; herstelactie moet beheerbaar zijn.Foutpopup.SystemSettings mogelijk opgeslagen; cache niet actief.

9. Business rules

IDBusiness rule
BR-001Nieuwe SettingKeys worden niet via de GUI aangemaakt.
BR-002Per sleutel is exact één waardetype functioneel leidend.
BR-003Booleaanse featuretoggles horen niet in SystemSettings.
BR-004Wijzigingen aan instellingen moeten auditbaar zijn.
BR-005Na een wijziging moet configuratiecache worden vernieuwd of ongeldig gemaakt.
BR-006Clientstate mag het type of de sleutel niet bepalen.
BR-007Een wijziging werkt sitebreed en niet alleen voor de huidige beheerder.
BR-008Historische records zoals bestaande PDF’s of bestaande privéberichten worden niet herschreven door een nieuwe instelling.

10. Datavalidatie

IDValidatie
VAL-001SettingKey moet bekend en wijzigbaar zijn.
VAL-002Waarde moet passen bij het in code vastgelegde type.
VAL-003ValueText mag maximaal 500 tekens zijn.
VAL-004Numerieke waarden moeten binnen sleutelgebonden grenzen vallen.
VAL-005Datumwaarden worden technisch in UTC verwerkt wanneer zij tijdgebonden gedrag aansturen.
VAL-006Oude en nieuwe waarde moeten in history veilig weergeefbaar zijn.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001SystemSettings updateWerkt uitsluitend het valueveld bij dat bij het codegedreven instellingstype hoort; niet-leidende valuevelden worden niet als bron van waarheid gebruikt.
MUT-002SystemSettingHistory of beheerlog insertVeld, oude waarde, nieuwe waarde, actor en tijdstip worden vastgelegd.
MUT-003ConfigurationCacheRefreshed eventCacheverversing of invalidatie wordt geregistreerd.

12. Geen datamutaties

IDGeen mutatieReden
NO-001SettingKeyDe technische sleutel blijft ongewijzigd.
NO-002Andere SystemSettingsNiet-geselecteerde instellingen blijven ongewijzigd.
NO-003SiteFeatureTogglesFeaturetoggles worden niet gewijzigd.
NO-004DomeinrecordsBestaande berichten, PDF’s, resultaten en gebruikersrecords worden niet aangepast.
NO-005Identity providerGeen Keycloak- of credentialwijziging.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Deze usecase verwijst uitsluitend naar PopupKey. Popupteksten, knopteksten, inputlabels en themakeuzes blijven bronhoudend in het popupregister en popup-themes.

PopupKeyGebruik
POP-BEH-SET-CHANGE-CONFIRMZie popupregister voor tekst en knopgedrag.
POP-BEH-SET-SAVEDZie popupregister voor tekst en knopgedrag.
POP-BEH-SET-SAVE-FAILEDZie popupregister voor tekst en knopgedrag.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

DocumentAfleiding
Functioneel OntwerpBeschrijft wijzigbare bestaande systeeminstellingen en groepen.
Technisch OntwerpTechnisch Ontwerp: logging en foutafhandeling, security en configuratie en beheer en operatie beschrijven de technische uitwerking. Vraagt typecatalogus, transactionele update, audit en cacheverversing.
Software Requirements SpecificationLevert eisen voor typevalidatie, cachegedrag en beheeraudit.

19. SRS-trace

Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.

Usecase-afleidingDektUsecasecontext
UC-BEH-SET-002-REQ-001SRS-ADM-007
SRS-ADM-001
AC-ADM-007
AC-ADM-001
Bestaande niet-booleaanse systeeminstellingen wijzigbaar maken voor beheerders
UC-BEH-SET-002-REQ-002SRS-ADM-001
AC-ADM-001
Sleutelgebonden waarderegels toepassen voordat de wijziging wordt opgeslagen
UC-BEH-SET-002-REQ-003SRS-ADM-007
SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-007
AC-ADM-001
AC-NFR-AUD-001
Systeeminstellingwijzigingen auditbaar vastleggen
UC-BEH-SET-002-REQ-004SRS-ADM-001
AC-ADM-001
Na succesvolle wijziging de configuratiecache vernieuwen of ongeldig maken
UC-BEH-SET-002-REQ-005SRS-ADM-001
AC-ADM-001
Geen nieuwe SettingKey via de GUI aanmaken