Initial commit with inital CMS

This commit is contained in:
2026-06-15 17:00:16 +02:00
commit 95d986790e
132 changed files with 7624 additions and 0 deletions
@@ -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.
@@ -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).