UC-BEH-SET-003 — Configuratiecache verversen na wijziging
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-SET-003 |
| Naam | Configuratiecache verversen na wijziging |
| Domein | Beheerder / Systeeminstellingen en beheerlogging |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, configuratiecache, beheerlogcomponent |
| Rolcontext | Actieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Site Instellingen > Technische instellingen / Systeeminstellingen |
| Gerelateerde usecases | UC-BEH-SET-002, UC-BEH-SET-004 |
| Primaire entiteiten | SystemSettings, SiteFeatureToggles, runtimeconfiguratiecache |
| Secundaire entiteiten / events | ConfigurationCacheRefreshed, ConfigurationCacheRefreshFailed |
| Gerelateerde popups | POP-BEH-SET-CACHE-REFRESH-FAILED |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe de runtimeconfiguratie wordt vernieuwd of ongeldig gemaakt nadat een beheerder een geldige systeeminstelling of expliciet beheerbare configuratiewaarde heeft opgeslagen. De cacheverversing is een technische vervolgafhandeling van een geslaagde mutatie en geen losstaande beheeractie waarmee willekeurige cachegegevens kunnen worden gewist.
De flow wijzigt de instelling zelf niet opnieuw. De bronwaarde is al opgeslagen door de muterende usecase, zoals UC-BEH-SET-002 of de featuretoggleflow. Deze usecase borgt dat runtimecomponenten daarna niet met een verouderde configuratiewaarde blijven werken.
Uitgangspunten
- De voorafgaande configuratiemutatie is server-side gevalideerd en opgeslagen.
- De configuratiecache is afgeleid van database- of cataloguswaarden en is geen tweede bron van waarheid.
- Falen van cacheverversing mag niet stilzwijgend worden genegeerd.
- De beheerder krijgt terugkoppeling wanneer de nieuwe waarde niet consistent runtime beschikbaar is gemaakt.
3. Scope
Deze usecase beschrijft:
- Starten van cacheverversing na een succesvolle configuratiemutatie.
- Ophalen of invalideren van de relevante runtimeconfiguratie.
- Beschikbaar maken van de nieuwe waarde voor volgende server-side controles en rendering.
- Foutafhandeling wanneer cacheverversing faalt.
- Auditbare technische registratie van de cacheverwerkingsuitkomst wanneer die als beheergebeurtenis wordt vastgelegd.
Deze usecase beschrijft niet:
- De oorspronkelijke systeeminstelling wijzigen.
- Nieuwe SettingKeys of featurekeys aanmaken.
- Willekeurige applicatiecache beheren.
- Domeinrecords zoals berichten, resultaten, PDF’s of UserSettings herschrijven.
- Identity-providerinstellingen wijzigen.
3.1 Afbakening met aangrenzende usecases
| Onderdeel | Afbakening |
|---|---|
| UC-BEH-SET-002 | Slaat de nieuwe SystemSettings-waarde op en triggert daarna deze cacheafhandeling. |
| UC-BEH-SET-004 | Wijzigt AccessibilityEnabled en kan dezelfde cache- of runtimepublicatie nodig hebben. |
| UC-BEH-SET-006 | Kan cacheverwerkingsgebeurtenissen tonen als read-only beheerlog wanneer zij auditbaar zijn vastgelegd. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | Er is een geslaagde, server-side geautoriseerde configuratiemutatie uitgevoerd. |
| PRE-002 | De gewijzigde sleutel of feature is bekend in de configuratiecatalogus. |
| PRE-003 | De nieuwe bronwaarde is transactioneel opgeslagen voordat de runtimecache wordt vernieuwd of ongeldig gemaakt. |
| PRE-004 | De cachecomponent of configuratieprovider is beschikbaar voor de backend. |
| PRE-005 | De beheerdercontext van de oorspronkelijke mutatie is auditbaar bekend. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De runtimeconfiguratie gebruikt de nieuwe waarde of laadt deze bij eerstvolgende raadpleging opnieuw. |
| POST-002 | De opgeslagen bronwaarde blijft de bron van waarheid. |
| POST-003 | Er is geen tweede SystemSettings- of SiteFeatureToggles-mutatie uitgevoerd. |
| POST-004 | Een mislukte cacheverversing is zichtbaar afgehandeld. |
| POST-005 | De beheerder krijgt geen succesmelding wanneer de nieuwe waarde niet runtime beschikbaar is gemaakt. |
6. Trigger
De usecase start direct na een succesvolle configuratiemutatie die runtimecache gebruikt, bijvoorbeeld na het opslaan van een systeeminstelling of een relevante featuretoggle.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Backend | Muterende usecase | Rondt een configuratiemutatie succesvol af. | De backend bepaalt of runtimecache geraakt wordt. | UC-BEH-SET-002 / UC-BEH-SET-004. |
| 2 | Backend | Configuratiecatalogus | Bepaalt cachekey, scope en verversstrategie. | Alleen relevante cache-items worden geraakt. | Codegedreven catalogus. |
| 3 | Backend | Configuratiecache | Invalideert of ververst de cachewaarde. | Volgende runtimelezing gebruikt de nieuwe bronwaarde. | Cacheprovider. |
| 4 | Backend | Runtimecontrole | Controleert of nieuwe configuratie beschikbaar is. | Succes of fout wordt bepaald. | Consistentiecontrole. |
| 5 | Backend | Beheerlogcomponent | Registreert cacheverwerking wanneer dit als auditbare beheergebeurtenis is ingericht. | Actor, sleutel en resultaat zijn herleidbaar zonder secrets. | Beheerlogging. |
| 6 | Frontend | Resultaatweergave | Ontvangt resultaat van de muterende flow. | De beheerder ziet succes of gerichte foutmelding. | PopupKey bij fout. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 1 | Configuratiemutatie is niet geslaagd. | Cacheverversing wordt niet gestart. | Fout uit muterende usecase. | Geen cacheverwerking. |
| ALT-002 | 2 | Sleutel heeft geen runtimecache. | De backend markeert cacheverversing als niet nodig en rondt succesvol af. | Niet van toepassing. | Geen cachemutatie. |
| ALT-003 | 3 | Cacheprovider is niet beschikbaar. | De backend geeft de muterende flow een foutstatus voor runtimebeschikbaarheid. | POP-BEH-SET-CACHE-REFRESH-FAILED. | Bronwaarde blijft opgeslagen; cache niet vernieuwd. |
| ALT-004 | 4 | Nieuwe waarde kan niet veilig geladen worden. | De backend blokkeert succesmelding en vereist herstel via beheer of technische correctie. | POP-BEH-SET-CACHE-REFRESH-FAILED. | Geen extra bronmutatie. |
| ALT-005 | 5 | Technische auditregistratie faalt zonder bronwaarde-impact. | De primaire cacheuitkomst blijft leidend; fout wordt server-side afgehandeld volgens loggingbeleid. | Niet van toepassing. | Geen SystemSettings-mutatie. |
9. Business rules
| ID | Business rule |
|---|---|
| BR-001 | Cacheverversing is altijd afgeleid van een voorafgaande geldige configuratiemutatie. |
| BR-002 | De cache is geen bron van waarheid; bronwaarden blijven in de onderliggende configuratiebron staan. |
| BR-003 | Cacheverversing mag geen SystemSettings-, SiteFeatureToggles- of UserSettings-waarde wijzigen. |
| BR-004 | Een mislukte cacheverversing mag niet als volledig succesvolle beheerwijziging worden gepresenteerd. |
| BR-005 | Cachekeys en verversstrategie zijn codegedreven en niet vrij beheerbaar via de GUI. |
| BR-006 | Cacheverwerking mag geen bestaande domeinrecords herschrijven. |
| BR-007 | Gevoelige waarden, secrets of credentials mogen niet in cachelog of foutmelding zichtbaar worden. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-001 | De gewijzigde sleutel moet bekend zijn in de configuratiecatalogus. |
| VAL-002 | De cachecomponent mag alleen de bijbehorende cachekey of scope verversen. |
| VAL-003 | De nieuwe bronwaarde moet na verversing uitleesbaar zijn via de runtimeconfiguratie. |
| VAL-004 | Foutmeldingen mogen geen secrets, ruwe stacktraces of interne cachekeys tonen aan de beheerder. |
| VAL-005 | Technische auditregistratie maskeert gevoelige waarden. |
11. Datamutaties en events
| ID | Mutatie / event | Toelichting |
|---|---|---|
| MUT-001 | ConfigurationCacheRefreshed | Runtimecache wordt vernieuwd of ongeldig gemaakt voor de geraakte configuratie. |
| MUT-002 | ConfigurationCacheRefreshFailed | Wordt gebruikt wanneer cacheverwerking faalt en herstel nodig is. |
| MUT-003 | Beheerlogregistratie | Alleen wanneer cacheverwerking als auditbare beheergebeurtenis wordt vastgelegd; bevat geen secrets. |
12. Geen datamutaties
| ID | Geen mutatie | Reden |
|---|---|---|
| NO-001 | SystemSettings | De bronwaarde is al opgeslagen door de muterende usecase en wordt hier niet opnieuw gewijzigd. |
| NO-002 | SiteFeatureToggles | Featurewaarden worden niet door cacheverversing gewijzigd. |
| NO-003 | UserSettings | Gebruikersinstellingen worden niet aangepast. |
| NO-004 | Domeinrecords | Berichten, resultaten, PDF’s, contentblokken en accounts blijven ongewijzigd. |
| NO-005 | Identity provider | Geen authenticatie- of credentialwijziging. |
13. State diagram
Niet van toepassing als persistent domeinstatusdiagram. Cachetoestand is runtime-afgeleid en wordt niet als zelfstandig beheerstatusobject opgeslagen. De lifecycle wordt daarom uitgewerkt in het data lifecycle 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.
| PopupKey | Gebruik |
|---|---|
| POP-BEH-SET-CACHE-REFRESH-FAILED | Terugkoppeling wanneer een opgeslagen configuratiewaarde niet runtime beschikbaar kan worden gemaakt. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Document | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft dat een beheerwijziging pas als volledig verwerkt geldt wanneer runtimeconfiguratie de nieuwe waarde gebruikt. |
| Technisch Ontwerp | Technisch Ontwerp: logging en foutafhandeling, security en configuratie en beheer en operatie beschrijven de technische uitwerking. Vraagt cache-invalidatie of cacheverversing gekoppeld aan configuratiecatalogus en foutafhandeling. |
| Software Requirements Specification | Levert eisen voor cacheconsistentie, foutmelding en geen tweede bronmutatie. |
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-afleiding | Dekt | Usecasecontext |
|---|---|---|
UC-BEH-SET-003-REQ-001 | SRS-LRN-009 SRS-ADM-001 AC-LRN-009 AC-ADM-001 | Runtimeconfiguratie vernieuwen of ongeldig maken na een geslaagde configuratiemutatie die cache gebruikt |
UC-BEH-SET-003-REQ-002 | SRS-ADM-001 AC-ADM-001 | Cacheverversing niet als zelfstandige vrije beheeractie voor willekeurige data aanbieden |
UC-BEH-SET-003-REQ-003 | SRS-ADM-001 SRS-NFR-AVL-001 AC-ADM-001 AC-NFR-AVL-001 | Mislukte cacheverversing zichtbaar afhandelen |
UC-BEH-SET-003-REQ-004 | SRS-ADM-001 SRS-POP-003 AC-ADM-001 AC-POP-003 | Door cacheverversing geen SystemSettings-, SiteFeatureToggles-, UserSettings- of domeinrecords wijzigen |
UC-BEH-SET-003-REQ-005 | SRS-TIC-002 SRS-ADM-001 AC-TIC-002 AC-ADM-001 | Voorkomen dat gevoelige technische details zichtbaar worden in cachefoutmeldingen of cachelog |