# NFR Requirements — Unit 03: Availability Module Dit document specificeert de non-functionele vereisten voor de beschikbaarheidsmodule. ## 1. Performance (AVAIL-PERF) - **AVAIL-PERF-01: Middleware Latency**: - De Availability Middleware mag maximaal 5ms toevoegen aan de totale requestduur. - Dit vereist een geoptimaliseerde database check (indexering op de status tabel). - **AVAIL-PERF-02: Real-time Check**: - Er wordt GEEN caching toegepast in de middleware (conform gebruikerskeuze). Elke request voert een actuele check uit om maximale consistentie te waarborgen. ## 2. Betrouwbaarheid & Persistentie (AVAIL-REL) - **AVAIL-REL-01: Persistent Status**: - De beschikbaarheidsstatus moet in de database worden opgeslagen, zodat deze behouden blijft na een herstart van de applicatie. - **AVAIL-REL-02: Fallback**: - Indien de database onbereikbaar is, moet de `IAvailabilityService` terugvallen op een "Veilige" status (bijv. `Available` of de laatst bekende status in het geheugen) om een lock-out te voorkomen. ## 3. Beveiliging (AVAIL-SEC) - **AVAIL-SEC-01: Access Control**: - Alleen gebruikers met de rol `Owner` kunnen de globale beschikbaarheidsstatus van de API wijzigen via een beveiligd endpoint. - **AVAIL-SEC-02: Maintenance Bypass**: - De bypass voor beheerders (zoals gedefinieerd in Functional Design) moet strikt gecontroleerd worden op basis van JWT claims. ## 4. Onderhoudbaarheid (AVAIL-MAINT) - **AVAIL-MAINT-01: Audit Trail**: - Elke wijziging van de beschikbaarheidsstatus moet worden gelogd in de `AuditLogs` tabel (Unit 02), inclusief de reden en de uitvoerder.