UC-BEH-FEAT-001 — Features-overzicht bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-FEAT-001 |
| Naam | Features-overzicht bekijken |
| Domein | Beheerder / Features en systeemnotificaties |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, beheerlogcomponent |
| Rolcontext | Actieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Site Instellingen > Features > tab Features |
| Gerelateerde usecases | UC-BEH-SITE-002, UC-BEH-FEAT-002, UC-BEH-SET-004 |
| Primaire entiteiten | SiteFeatureToggles, Users, Roles, UserRoles |
| Secundaire entiteiten / events | SiteFeatureToggleHistory |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
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
| Onderdeel | Afbakening |
|---|---|
| UC-BEH-FEAT-002 | Verwerkt de mutatie wanneer de beheerder een bestaande toggle wijzigt. |
| UC-BEH-SET-004 | Beschrijft de specifieke effecten van de toegankelijkheidsfeature. |
| Generieke domeinen | Moeten de featurestatus server-side respecteren, maar blijven bronhoudend voor hun eigen flows. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd in OefenHub. |
| PRE-002 | De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft. |
| PRE-003 | De Site Instellingen-route is beschikbaar via de beheerdernavigatie. |
| PRE-004 | Clientstate, querystringwaarden of zichtbare UI-elementen bepalen niet zelfstandig de autorisatie. |
| PRE-005 | De bekende featurekeyset is in code beschikbaar. |
| PRE-006 | De database bevat SiteFeatureToggles-records voor de bekende beheerbare features. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet de actuele status van alle beheerbare features. |
| POST-002 | Geen featurestatus is gewijzigd. |
| POST-003 | Onbekende of ontbrekende featureconfiguratie is veilig zichtbaar gemaakt zonder automatische creatie. |
| POST-004 | De beheerder kan vanuit een regel eventueel naar de wijzigactie gaan. |
| POST-005 | De 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
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Beheerder | Site Instellingen | Opent de beheerpagina Features. | De frontend vraagt het features-readmodel op. | Route vanuit UC-BEH-SITE-002. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | Alleen een actieve beheerder mag het overzicht laden. | Server-side autorisatie. |
| 3 | Backend | Featurequery | Laadt SiteFeatureToggles voor bekende keys. | Onbekende records worden niet als beheerbare feature getoond. | FeatureKey sleutelset. |
| 4 | Backend | Readmodel | Verrijkt elke feature met label en impacttoelichting. | De output bevat huidige status, UpdatedAtUtc en UpdatedByUserId. | SiteFeatureToggles. |
| 5 | Frontend | Features-tab | Toont de featurelijst gegroepeerd of gesorteerd op functionele relevantie. | De beheerder ziet status en laatste wijziging. | Geen datamutatie. |
| 6 | Frontend | Feature-regel | Toont wijzigmogelijkheid per feature. | De actie leidt naar UC-BEH-FEAT-002 of opent de bijbehorende wijziginteractie. | Bestaande feature. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Gebruiker is geen beheerder. | De backend weigert toegang en toont veilige toegang-geweigerdafhandeling. | Niet van toepassing. | Geen. |
| ALT-002 | 3 | Een 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-003 | 3 | Een 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-004 | 4 | UpdatedByUserId verwijst naar een niet-actieve of geanonimiseerde beheerder. | De historie blijft toonbaar met veilige actorweergave. | Niet van toepassing. | Geen. |
| ALT-005 | 5 | Er zijn geen wijzigrechten door sessieverval. | De pagina wordt niet interactief geladen en verwijst naar opnieuw aanmelden. | Niet van toepassing. | Geen. |
9. Business rules
| ID | Business rule |
|---|---|
| BR-001 | Alleen vooraf bekende featurekeys zijn beheerbaar via de GUI. |
| BR-002 | Featuretoggles zijn booleaans; niet-booleaanse instellingen horen in SystemSettings. |
| BR-003 | Een featuretoggle uitschakelen verwijdert geen bestaande gebruikersdata, berichten, meldingen, oefeningen of instellingen. |
| BR-004 | Het overzicht mag geen extra functionaliteit zichtbaar maken die de gebruiker niet server-side mag uitvoeren. |
| BR-005 | Featurestatus is ondersteunend voor domeinlogica; iedere onderliggende flow controleert de featurestatus opnieuw server-side. |
| BR-006 | Verplichte kernfunctionaliteit wordt niet als featuretoggle aangeboden. |
| BR-007 | De sleutel AccessibilityEnabled blijft dezelfde sitebrede bron voor het aanbieden en toepassen van toegankelijkheidsinstellingen. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-001 | FeatureKey moet voorkomen in de centrale bekende sleutelset. |
| VAL-002 | IsEnabled moet een booleaanse waarde zijn. |
| VAL-003 | UpdatedAtUtc wordt als UTC-waarde opgeslagen en in de beheerinterface lokaal weergegeven. |
| VAL-004 | UpdatedByUserId mag veilig leeg of geanonimiseerd worden weergegeven wanneer historie dat vereist. |
| VAL-005 | Het readmodel mag geen vrije, door de gebruiker ingevoerde featurekeys accepteren. |
| VAL-006 | De 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
| ID | Geen mutatie | Reden |
|---|---|---|
| NO-001 | SiteFeatureToggles | Bekijken verandert IsEnabled, UpdatedAtUtc of UpdatedByUserId niet. |
| NO-002 | SiteFeatureToggleHistory | Raadplegen creëert geen historyregel. |
| NO-003 | UserSettings | Gebruikersinstellingen worden niet aangepast. |
| NO-004 | Domeindata | Bestaande berichten, meldingen, relaties en oefenruns blijven ongewijzigd. |
| NO-005 | SystemSettings | Niet-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
| Document | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft de Features-tab als beheerpagina voor echte sitebrede toggles. |
| Technisch Ontwerp | Technisch 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 Specification | Levert 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-afleiding | Dekt | Usecasecontext |
|---|---|---|
UC-BEH-FEAT-001-REQ-001 | SRS-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-002 | SRS-ADM-001 SRS-POP-003 AC-ADM-001 AC-POP-003 | Onbekende featurekeys niet als reguliere beheerbare features tonen |
UC-BEH-FEAT-001-REQ-003 | SRS-ADM-001 SRS-POP-003 AC-ADM-001 AC-POP-003 | Verplichte kernfunctionaliteit buiten de Features-tab houden |
UC-BEH-FEAT-001-REQ-004 | SRS-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-005 | SRS-ADM-001 SRS-POP-003 AC-ADM-001 AC-POP-003 | Bij raadplegen geen featurestatus of domeindata wijzigen |
UC-BEH-FEAT-001-REQ-006 | SRS-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-007 | SRS-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 |