Initial commit with inital CMS
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
# 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.
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
# Tech Stack Decisions — Unit 03: Availability Module
|
||||
|
||||
Dit document beschrijft de definitieve technische keuzes voor Unit 03.
|
||||
|
||||
## 1. Opslag (Persistence)
|
||||
|
||||
- **Provider**: Microsoft SQL Server (conform NFR-01).
|
||||
- **Entiteit**: `GlobalAvailabilityState` (Single record).
|
||||
|
||||
## 2. Middleware Implementatie
|
||||
|
||||
- **Type**: Custom Middleware in de `SlpModularCms.Api` (Shell).
|
||||
- **Dependency**: Maakt gebruik van de `IAvailabilityService` uit Unit 01.
|
||||
|
||||
## 3. Interfaces & DI
|
||||
|
||||
- **Service**: `PersistentAvailabilityService` (Implementeert `IAvailabilityService`).
|
||||
- **Lifetime**: `Scoped` (voor database toegang per request).
|
||||
|
||||
## 4. Configuratie
|
||||
|
||||
- **Options Pattern**: Gebruik van `IOptions<AvailabilitySettings>` voor de fallback status en andere drempelwaarden.
|
||||
|
||||
## 5. Monitoring
|
||||
|
||||
- **Logging**: Gebruik van `ILogger` voor het loggen van statuswijzigingen en middleware blokkades (Warning niveau).
|
||||
Reference in New Issue
Block a user