Skip to main content

UC-BEH-SET-005 — Instellingstype en invoervorm afdwingen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-SET-005
NaamInstellingstype en invoervorm afdwingen
DomeinBeheerder / Systeeminstellingen en beheerlogging
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, instellingcatalogus, validatiecomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenSite Instellingen > Technische instellingen / Systeeminstellingen
Gerelateerde usecasesUC-BEH-SET-001, UC-BEH-SET-002
Primaire entiteitenSystemSettings, instellingcatalogus
Secundaire entiteiten / eventsNiet van toepassing
Gerelateerde popupsPOP-BEH-SET-SAVE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe de beheerinterface en backend per bestaande systeeminstelling afdwingen welk invoertype, waardetype en waardebereik geldig zijn. Het type wordt niet door de beheerder gekozen en komt niet uit clientstate, maar uit de codegedreven instellingcatalogus bij de SettingKey.

De usecase vormt een ondersteunende validatie- en weergaveflow voor het overzicht en de wijzigflow. Zij slaat zelf geen nieuwe waarde op, schrijft geen historie en ververst geen cache; dat gebeurt uitsluitend wanneer UC-BEH-SET-002 de wijziging succesvol verwerkt.

Uitgangspunten

  • Per SettingKey is het toegestane type in code vastgelegd.
  • De frontend toont een invoervorm die uit de server-side catalogus is afgeleid.
  • De backend valideert het type opnieuw bij opslaan; frontendvalidatie is ondersteunend.
  • Clientstate mag geen datatype, valueveld of sleutel afdwingen.

3. Scope

Deze usecase beschrijft:

  • Afleiden van de juiste invoervorm per bestaande SettingKey.
  • Tonen van type, beschrijving, waardegrenzen en beheerbare waarde.
  • Blokkeren van onbekende of type-inconsistente instellingen.
  • Server-side validatieregels die door de wijzigflow worden gebruikt.
  • Duidelijk onderscheiden van beheerbare waardevelden en read-only technische velden.

Deze usecase beschrijft niet:

  • De instelling daadwerkelijk opslaan.
  • History of beheerlog schrijven.
  • Configuratiecache verversen.
  • Nieuwe SettingKeys, datatypes of invoervormen via de GUI definiëren.
  • Featuretoggles beheren.

3.1 Afbakening met aangrenzende usecases

OnderdeelAfbakening
UC-BEH-SET-001Gebruikt de catalogus om het overzicht typeveilig te tonen.
UC-BEH-SET-002Gebruikt deze validatieregels en slaat bij akkoord de instelling op.
UC-BEH-SET-003Ververst cache nadat een geldige mutatie is opgeslagen.

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 instelling bestaat als bekende SettingKey in de instellingcatalogus.
PRE-004De instellingcatalogus bevat type, invoervorm, waardebegrenzing en beheerbaarheid.
PRE-005Clientstate, querystringwaarden of zichtbare UI-elementen bepalen het datatype niet zelfstandig.

5. Post-condities

IDResultaat
POST-001De beheerder ziet alleen de invoervorm die past bij de geselecteerde SettingKey.
POST-002Onbekende of type-inconsistente instellingen worden niet regulier bewerkbaar gemaakt.
POST-003De backend beschikt over dezelfde validatieregels voor de wijzigflow.
POST-004Er is geen instelling opgeslagen en geen history geschreven binnen deze usecase.
POST-005Er is geen configuratiecache ververst.

6. Trigger

De usecase start wanneer de beheerder een bestaande systeeminstelling bekijkt of wijzigt en de applicatie de invoervorm en validatieregels voor die instelling moet bepalen.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderInstellingenoverzichtSelecteert een bestaande instelling.De frontend vraagt detail- en type-informatie op.SettingKey.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen beheerders krijgen type- en detailinformatie.Server-side autorisatie.
3BackendInstellingcatalogusLeest type, invoervorm, beheerbaarheid en grenzen.Catalogusdata wordt gekoppeld aan de actuele SystemSettings-waarde.Codegedreven catalogus.
4BackendValidatiecomponentControleert of de opgeslagen waarde past bij het catalogustype.Inconsistente waarden worden als foutstatus teruggegeven.Typevalidatie.
5FrontendInvoerweergaveToont passende invoervorm.De beheerder kan alleen het beheerbare waardeveld invoeren.Geen mutatie.
6FrontendInvoerweergaveToont read-only technische velden.SettingKey, datatype en codegedreven grenzen zijn niet wijzigbaar.Read-only metadata.
7BackendWijzigflowGebruikt dezelfde regels bij opslaan.Ongeldige invoer wordt geblokkeerd voordat UC-BEH-SET-002 opslaat.Server-side validatie.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013SettingKey is onbekend in de catalogus.De instelling wordt niet regulier bewerkbaar gemaakt.Niet van toepassing.Geen.
ALT-0024Opgeslagen waarde past niet bij het catalogustype.De frontend toont foutstatus en blokkeert regulier opslaan.POP-BEH-SET-SAVE-FAILED bij poging tot opslaan.Geen.
ALT-0035Frontend probeert datatype of valueveld te manipuleren.De backend negeert clienttype en gebruikt uitsluitend catalogusregels.POP-BEH-SET-SAVE-FAILED bij poging tot opslaan.Geen.
ALT-0045Waarde overschrijdt sleutelgebonden grens.De invoer wordt afgewezen voordat opslag kan plaatsvinden.POP-BEH-SET-SAVE-FAILED bij poging tot opslaan.Geen.
ALT-0056Instelling is read-only.De frontend toont de waarde zonder bewerkactie.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001De beheerder mag het datatype van een instelling niet kiezen of wijzigen.
BR-002Per SettingKey is exact één waardetype functioneel leidend.
BR-003Type- en waarderegels komen uit de server-side catalogus.
BR-004Frontendvalidatie is ondersteunend; backendvalidatie is beslissend.
BR-005Onbekende sleutels worden niet stilzwijgend beheerbaar gemaakt.
BR-006Niet-leidende valuevelden mogen niet als bron van waarheid worden gebruikt.
BR-007Deze usecase schrijft geen instellingwaarde, geschiedenis of cachewijziging.

10. Datavalidatie

IDValidatie
VAL-001SettingKey moet bekend zijn in de instellingcatalogus.
VAL-002Waarde moet passen bij het codegedreven datatype.
VAL-003ValueText mag maximaal 500 tekens zijn.
VAL-004Numerieke waarden moeten binnen sleutelgebonden minimum- en maximumgrenzen vallen.
VAL-005Datumwaarden worden geïnterpreteerd volgens de sleutelgebonden tijdzone- en UTC-regel.
VAL-006Read-only metadata zoals SettingKey, datatype en grenzen mag niet door clientinput wijzigen.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001Geen functionele mutatieDeze usecase bepaalt invoervorm en validatieregels, maar slaat geen waarde op.
MUT-002Geen domeineventEr ontstaat pas een event wanneer een muterende usecase daadwerkelijk opslaat.

12. Geen datamutaties

IDGeen mutatieReden
NO-001SystemSettingsDe waarde blijft ongewijzigd binnen deze usecase.
NO-002SystemSettingHistoryValidatie en invoervormweergave schrijven geen history.
NO-003ConfiguratiecacheGeen cacheverversing zonder succesvolle mutatie.
NO-004SiteFeatureTogglesFeaturetoggles blijven buiten deze typeflow.
NO-005Identity providerGeen authenticatie- of credentialwijziging.

13. State diagram

Niet van toepassing. Deze usecase wijzigt geen persistent statusobject en slaat geen instelling op. De beslislogica voor type en invoervorm staat in de decision flow.

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-SAVE-FAILEDTerugkoppeling wanneer type- of waarderegels bij een opslagpoging worden geschonden.

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

DocumentAfleiding
Functioneel OntwerpBeschrijft dat de beheerder per instelling alleen de passende invoervorm ziet.
Technisch OntwerpTechnisch Ontwerp: logging en foutafhandeling, security en configuratie en beheer en operatie beschrijven de technische uitwerking. Vraagt een server-side instellingcatalogus met type, invoervorm, grenzen en beheerbaarheid per sleutel.
Software Requirements SpecificationLevert eisen voor type-afleiding, server-side validatie en blokkeren van clientmanipulatie.

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-005-REQ-001SRS-AUTH-001
SRS-RDM-001
SRS-CAT-001
SRS-ADM-007
SRS-ADM-001
AC-AUTH-001
AC-RDM-001
AC-CAT-001
AC-ADM-007
AC-ADM-001
Per SettingKey de invoervorm afleiden uit een server-side catalogus
UC-BEH-SET-005-REQ-002SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Type-inconsistente invoer server-side blokkeren
UC-BEH-SET-005-REQ-003SRS-ADM-007
SRS-ADM-001
AC-ADM-007
AC-ADM-001
De beheerder het datatype of technische valueveld niet laten kiezen
UC-BEH-SET-005-REQ-004SRS-ADM-001
AC-ADM-001
Onbekende sleutels niet regulier beheerbaar maken
UC-BEH-SET-005-REQ-005SRS-ADM-002
SRS-ADM-007
SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-002
AC-ADM-007
AC-ADM-001
AC-NFR-AUD-001
Door type- en invoervormcontrole geen waarde, history of cache wijzigen
UC-BEH-SET-005-REQ-006SRS-ADM-001
AC-ADM-001
Read-only metadata beschermen tegen clientmanipulatie