Skip to main content

UC-BEH-FEAT-001 — Features-overzicht bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-FEAT-001
NaamFeatures-overzicht bekijken
DomeinBeheerder / Features en systeemnotificaties
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, beheerlogcomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenSite Instellingen > Features > tab Features
Gerelateerde usecasesUC-BEH-SITE-002, UC-BEH-FEAT-002, UC-BEH-SET-004
Primaire entiteitenSiteFeatureToggles, Users, Roles, UserRoles
Secundaire entiteiten / eventsSiteFeatureToggleHistory
Gerelateerde popupsNiet van toepassing
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder het overzicht van sitebrede featuretoggles bekijkt binnen Site Instellingen. De Features-tab toont uitsluitend echte aan/uit-schakelaars die functioneel mogen worden uitgeschakeld. Verplichte kernonderdelen van OefenHub worden niet als featuretoggle gepresenteerd.

Het overzicht toont per bekende feature minimaal de functionele naam, technische sleutel, huidige status, laatste wijzigingsmoment, laatste uitvoerende beheerder en een compacte impacttoelichting. De minimale sleutelset bestaat uit RegistrationEnabled, LoginEnabled, FriendshipsEnabled, PrivateMessagingEnabled, LiveViewingEnabled, ExerciseSharingEnabled, TestExercisesEnabled, IssueReportingEnabled en AccessibilityEnabled.

Het bekijken van de tab wijzigt geen featurestatus. De zichtbare status is een readmodel over SiteFeatureToggles en wordt server-side geladen.

Uitgangspunten

  • Featuretoggles zijn sitebreed en niet rol- of gebruikersspecifiek.
  • Een ontbrekende of onbekende sleutel wordt niet stilzwijgend aangemaakt via de GUI.
  • Uitschakelen van een feature verwijdert geen domeindata.
  • Autorisatie voor het bekijken van de tab is gelijk aan toegang tot Site Instellingen.

3. Scope

Deze usecase beschrijft:

  • Laden van het featuretoggle-overzicht.
  • Tonen van bekende featurekeys met status en auditinformatie.
  • Tonen van impacttoelichting per feature.
  • Afbakening tussen echte featuretoggles en verplichte kernfunctionaliteit.
  • Veilige lege of fouttoestand bij configuratieproblemen.

Deze usecase beschrijft niet:

  • Wijzigen van een featuretoggle; dit hoort bij UC-BEH-FEAT-002.
  • Functionele toepassing van een feature in leerling-, docent- of generieke flows.
  • Aanmaken van nieuwe featurekeys via beheer.
  • Beheren van niet-booleaanse systeeminstellingen.
  • Beheer van systeemnotificaties.

3.1 Afbakening met aangrenzende usecases

OnderdeelAfbakening
UC-BEH-FEAT-002Verwerkt de mutatie wanneer de beheerder een bestaande toggle wijzigt.
UC-BEH-SET-004Beschrijft de specifieke effecten van de toegankelijkheidsfeature.
Generieke domeinenMoeten de featurestatus server-side respecteren, maar blijven bronhoudend voor hun eigen flows.

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 bekende featurekeyset is in code beschikbaar.
PRE-006De database bevat SiteFeatureToggles-records voor de bekende beheerbare features.

5. Post-condities

IDResultaat
POST-001De beheerder ziet de actuele status van alle beheerbare features.
POST-002Geen featurestatus is gewijzigd.
POST-003Onbekende of ontbrekende featureconfiguratie is veilig zichtbaar gemaakt zonder automatische creatie.
POST-004De beheerder kan vanuit een regel eventueel naar de wijzigactie gaan.
POST-005De getoonde informatie is geschikt als functionele bron voor beheerbeslissingen.

6. Trigger

De usecase start wanneer de beheerder op Site Instellingen de tegel Features opent en binnen de pagina de tab Features actief is.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderSite InstellingenOpent de beheerpagina Features.De frontend vraagt het features-readmodel op.Route vanuit UC-BEH-SITE-002.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen een actieve beheerder mag het overzicht laden.Server-side autorisatie.
3BackendFeaturequeryLaadt SiteFeatureToggles voor bekende keys.Onbekende records worden niet als beheerbare feature getoond.FeatureKey sleutelset.
4BackendReadmodelVerrijkt elke feature met label en impacttoelichting.De output bevat huidige status, UpdatedAtUtc en UpdatedByUserId.SiteFeatureToggles.
5FrontendFeatures-tabToont de featurelijst gegroepeerd of gesorteerd op functionele relevantie.De beheerder ziet status en laatste wijziging.Geen datamutatie.
6FrontendFeature-regelToont wijzigmogelijkheid per feature.De actie leidt naar UC-BEH-FEAT-002 of opent de bijbehorende wijziginteractie.Bestaande feature.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Gebruiker is geen beheerder.De backend weigert toegang en toont veilige toegang-geweigerdafhandeling.Niet van toepassing.Geen.
ALT-0023Een bekende featurekey ontbreekt in de database.De regel wordt als configuratiefout of niet beschikbaar getoond; de GUI maakt geen record aan.Niet van toepassing.Geen.
ALT-0033Een record heeft een onbekende FeatureKey.De onbekende sleutel wordt niet getoond als beheerbare feature en kan voor beheerlogcontrole zichtbaar zijn.Niet van toepassing.Geen.
ALT-0044UpdatedByUserId verwijst naar een niet-actieve of geanonimiseerde beheerder.De historie blijft toonbaar met veilige actorweergave.Niet van toepassing.Geen.
ALT-0055Er zijn geen wijzigrechten door sessieverval.De pagina wordt niet interactief geladen en verwijst naar opnieuw aanmelden.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001Alleen vooraf bekende featurekeys zijn beheerbaar via de GUI.
BR-002Featuretoggles zijn booleaans; niet-booleaanse instellingen horen in SystemSettings.
BR-003Een featuretoggle uitschakelen verwijdert geen bestaande gebruikersdata, berichten, meldingen, oefeningen of instellingen.
BR-004Het overzicht mag geen extra functionaliteit zichtbaar maken die de gebruiker niet server-side mag uitvoeren.
BR-005Featurestatus is ondersteunend voor domeinlogica; iedere onderliggende flow controleert de featurestatus opnieuw server-side.
BR-006Verplichte kernfunctionaliteit wordt niet als featuretoggle aangeboden.
BR-007De sleutel AccessibilityEnabled blijft dezelfde sitebrede bron voor het aanbieden en toepassen van toegankelijkheidsinstellingen.

10. Datavalidatie

IDValidatie
VAL-001FeatureKey moet voorkomen in de centrale bekende sleutelset.
VAL-002IsEnabled moet een booleaanse waarde zijn.
VAL-003UpdatedAtUtc wordt als UTC-waarde opgeslagen en in de beheerinterface lokaal weergegeven.
VAL-004UpdatedByUserId mag veilig leeg of geanonimiseerd worden weergegeven wanneer historie dat vereist.
VAL-005Het readmodel mag geen vrije, door de gebruiker ingevoerde featurekeys accepteren.
VAL-006De beheerder mag de technische sleutel niet wijzigen vanuit het overzicht.

11. Datamutaties en events

Niet van toepassing. Deze usecase is een read-only raadpleegflow. Het laden van het featureoverzicht wijzigt geen SiteFeatureToggles, schrijft geen SiteFeatureToggleHistory en publiceert geen domeinevent.

12. Geen datamutaties

IDGeen mutatieReden
NO-001SiteFeatureTogglesBekijken verandert IsEnabled, UpdatedAtUtc of UpdatedByUserId niet.
NO-002SiteFeatureToggleHistoryRaadplegen creëert geen historyregel.
NO-003UserSettingsGebruikersinstellingen worden niet aangepast.
NO-004DomeindataBestaande berichten, meldingen, relaties en oefenruns blijven ongewijzigd.
NO-005SystemSettingsNiet-booleaanse instellingen worden niet geladen als featuretoggle.

13. State diagram

Niet van toepassing. Het features-overzicht raadpleegt een readmodel en wijzigt geen persistent statusobject. De persistente aan/uit-toestand van een featuretoggle wordt alleen gewijzigd binnen UC-BEH-FEAT-002.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Niet van toepassing.

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

DocumentAfleiding
Functioneel OntwerpBeschrijft de Features-tab als beheerpagina voor echte sitebrede toggles.
Technisch OntwerpTechnisch Ontwerp: communicatie en systeemnotificaties, readmodels en badges en frontendstate beschrijven de technische uitwerking. Vraagt een server-side readmodel over bekende SiteFeatureToggles en sleutelvalidatie.
Software Requirements SpecificationLevert requirements voor zichtbaarheid, sleutelset, autorisatie en niet-muteren bij raadplegen.

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-FEAT-001-REQ-001SRS-RDM-001
SRS-RDM-004
SRS-ADM-001
SRS-POP-003
AC-RDM-001
AC-RDM-004
AC-ADM-001
AC-POP-003
Een beheerder een overzicht tonen van alle bekende beheerbare featuretoggles
UC-BEH-FEAT-001-REQ-002SRS-ADM-001
SRS-POP-003
AC-ADM-001
AC-POP-003
Onbekende featurekeys niet als reguliere beheerbare features tonen
UC-BEH-FEAT-001-REQ-003SRS-ADM-001
SRS-POP-003
AC-ADM-001
AC-POP-003
Verplichte kernfunctionaliteit buiten de Features-tab houden
UC-BEH-FEAT-001-REQ-004SRS-ADM-001
SRS-POP-003
AC-ADM-001
AC-POP-003
Per feature minimaal status, sleutel, functionele naam en laatste wijzigingsinformatie tonen
UC-BEH-FEAT-001-REQ-005SRS-ADM-001
SRS-POP-003
AC-ADM-001
AC-POP-003
Bij raadplegen geen featurestatus of domeindata wijzigen
UC-BEH-FEAT-001-REQ-006SRS-AUTH-001
SRS-RDM-001
SRS-RDM-004
SRS-ADM-001
SRS-POP-003
AC-AUTH-001
AC-RDM-001
AC-RDM-004
AC-ADM-001
AC-POP-003
Toegang tot het featureoverzicht server-side beperken tot beheerders
UC-BEH-FEAT-001-REQ-007SRS-ADM-001
SRS-POP-003
SRS-NFR-SEC-001
AC-ADM-001
AC-POP-003
AC-NFR-SEC-001
Ontbrekende bekende featureconfiguratie veilig afhandelen zonder automatische creatie via de GUI