32 lines
1.8 KiB
Markdown
32 lines
1.8 KiB
Markdown
# Functional Design Plan — Unit 03: Availability Module
|
|
|
|
Dit plan beschrijft de stappen voor het functioneel ontwerpen van de Availability Module (Unit 03).
|
|
|
|
## Functional Design Stappen
|
|
- [x] Definiëren van de `StubAvailabilityService` gedrag (altijd beschikbaar in MVP).
|
|
- [x] Ontwerpen van de `AvailabilityController` voor publieke status check.
|
|
- [x] Uitwerken van de "Remote Shutdown" interface (placeholder).
|
|
- [x] Opstellen van de business rules voor beschikbaarheids-gebaseerde toegang.
|
|
|
|
## Vragen voor Functional Design (Unit 03)
|
|
|
|
### 1. Beschikbaarheidsstatus
|
|
**Vraag 1.1**: Welke informatie moet het publieke `GET /api/availability/status` endpoint teruggeven?
|
|
- A) **Simpel**: Alleen een boolean `isAvailable`.
|
|
- B) **Gedetailleerd**: Een status string (`Available`, `Maintenance`, `Degraded`) en een timestamp.
|
|
- C) **Extended**: Inclusief versie informatie van de API en geladen modules.
|
|
|
|
### 2. Remote Shutdown Mechanisme
|
|
**Vraag 2.1**: Voor de toekomstige "remote shutdown" functionaliteit (FR-05): hoe moet dit mechanisme in de architectuur verankerd worden?
|
|
- A) **Middleware**: Een globale middleware die de `IAvailabilityService` checkt bij elk request en 503 Service Unavailable retourneert indien niet beschikbaar.
|
|
- B) **Filter**: Een globaal Action Filter voor controllers.
|
|
- C) **Manual Check**: Modules checken zelf de status indien nodig (niet aanbevolen voor consistentie).
|
|
|
|
### 3. Bypass voor Beheerders
|
|
**Vraag 3.1**: Mogen Beheerders en Owners de API nog wel gebruiken als de status op "Niet Beschikbaar" staat (bijv. voor onderhoud)?
|
|
- A) Ja, Beheerders/Owners moeten altijd toegang hebben om het systeem te kunnen herstellen.
|
|
- B) Nee, als het systeem uit staat, staat het voor iedereen uit.
|
|
|
|
## Volgende Stappen
|
|
Na beantwoording van deze vragen worden de artifacts gegenereerd in `aidlc-docs/construction/availability-module/functional-design/`.
|