Initial commit with inital CMS
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
# Component Dependencies — SlpModularCms.Api
|
||||
|
||||
Dit document beschrijft de relaties en communicatiepatronen tussen de componenten.
|
||||
|
||||
## 1. Dependency Diagram
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
API[Web API Shell] --> Core[Core Framework / Identity]
|
||||
API --> Avail[Availability Module]
|
||||
Avail --> Core
|
||||
|
||||
subgraph "External Modules (Optional)"
|
||||
Mod[External Module DLL] -.-> Core
|
||||
end
|
||||
|
||||
API -.-> Mod
|
||||
```
|
||||
|
||||
### Tekstuele Toelichting:
|
||||
- **Core Framework**: Is de centrale afhankelijkheid. Alle modules refereren naar de Core voor interfaces en Identity modellen. De Core mag zelf NOOIT refereren naar een module (Dependency Inversion).
|
||||
- **Web API Shell**: Heeft een harde referentie naar de Core en de Availability Module (voor de MVP stub).
|
||||
- **Modules**: Implementeren interfaces uit de Core. Worden door de API Shell geladen en geregistreerd in de DI container.
|
||||
|
||||
## 2. Communicatiepatronen
|
||||
|
||||
- **In-Process DI**: Alle communicatie tussen modules en het framework verloopt via de Dependency Injection container van ASP.NET Core.
|
||||
- **Shared Domain Models**: Modules gebruiken de gedeelde `User` en `Role` modellen uit de Core voor autorisatie-checks.
|
||||
- **Events (Toekomstig)**: Gebruik van een `IMediator` of intern event-systeem voor ontkoppelde communicatie tussen modules.
|
||||
|
||||
## 3. Data Flow
|
||||
|
||||
1. **Client Request**: Komt binnen bij de API Shell.
|
||||
2. **Availability Check**: Middleware roept `IAvailabilityService` (Availability Module) aan.
|
||||
3. **Authentication**: Middleware valideert JWT via Identity logica (Core).
|
||||
4. **Authorization**: Policy-based checks valideren de rol-hiërarchie (Core).
|
||||
5. **Execution**: Het request wordt afgehandeld door de relevante Module Controller.
|
||||
Reference in New Issue
Block a user