Initial commit with inital CMS
This commit is contained in:
+31
@@ -0,0 +1,31 @@
|
||||
# NFR Requirements — Unit 04: API Shell & Integration
|
||||
|
||||
Dit document specificeert de non-functionele vereisten voor de API Shell.
|
||||
|
||||
## 1. Performance (SHELL-PERF)
|
||||
|
||||
- **SHELL-PERF-01: Startup Tijd**:
|
||||
- Hoewel de startup tijd niet kritisch is (> 5 sec toegestaan), moet de `ModuleOrchestrator` efficiënt scannen om onnodige vertragingen te voorkomen.
|
||||
- **SHELL-PERF-02: Pipeline Efficiency**:
|
||||
- De orkestratie van middleware mag geen significante overhead toevoegen aan de verwerking van individuele requests.
|
||||
|
||||
## 2. Beveiliging (SHELL-SEC)
|
||||
|
||||
- **SHELL-SEC-01: CORS**:
|
||||
- CORS moet worden geconfigureerd via `appsettings.json`. De default instelling voor productie moet strikt zijn (geen wildcards).
|
||||
- **SHELL-SEC-02: HTTPS**:
|
||||
- De API Shell moet HTTPS afdwingen via `app.UseHttpsRedirection()`.
|
||||
- **SHELL-SEC-03: JWT Configuratie**:
|
||||
- De Shell is verantwoordelijk voor het correct configureren van de `JwtBearerAuthentication` met de keys en settings die in Unit 02 zijn gedefinieerd.
|
||||
|
||||
## 3. Bruikbaarheid (SHELL-USAB)
|
||||
|
||||
- **SHELL-USAB-01: Swagger**:
|
||||
- Swagger UI moet volledig interactief zijn, inclusief ondersteuning voor JWT Bearer authenticatie (Authorize knop).
|
||||
- Alle endpoints moeten duidelijk gedocumenteerd zijn met hun verwachte input en output modellen.
|
||||
|
||||
## 4. Onderhoudbaarheid (SHELL-MAINT)
|
||||
|
||||
- **SHELL-MAINT-01: Logging Aggregatie**:
|
||||
- Alle logs van modules moeten worden geaggregeerd naar de centrale logging provider van de Shell.
|
||||
- Contextuele informatie (zoals de module naam) moet aan de logs worden toegevoegd voor betere traceerbaarheid.
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
# Tech Stack Decisions — Unit 04: API Shell & Integration
|
||||
|
||||
Dit document beschrijft de definitieve technische keuzes voor Unit 04.
|
||||
|
||||
## 1. API Framework & Routing
|
||||
|
||||
- **Host**: ASP.NET Core 10.
|
||||
- **Versioning**: `Asp.Versioning.Mvc` (v1 in path).
|
||||
- **CORS**: `Microsoft.AspNetCore.Cors`.
|
||||
|
||||
## 2. API Documentatie
|
||||
|
||||
- **Swagger Provider**: `Swashbuckle.AspNetCore`.
|
||||
- **UI**: `SwaggerUI`.
|
||||
- **Beveiliging**: Geconfigureerd met `OpenApiSecurityScheme` (Type: `ApiKey`, In: `Header`, Name: `Authorization`, Scheme: `Bearer`).
|
||||
|
||||
## 3. Module Discovery
|
||||
|
||||
- **Scanning Mechanism**: Reflection via `AppDomain.CurrentDomain.GetAssemblies()` gecombineerd met `Assembly.Load` voor DLL's die nog niet geladen zijn maar wel de prefix hebben.
|
||||
|
||||
## 4. Configuratie Beheer
|
||||
|
||||
- **Options Pattern**: Gebruik van `IOptions` voor alle shell-specifieke instellingen (CORS, Versioning, Swagger).
|
||||
Reference in New Issue
Block a user