Initial commit with inital CMS
This commit is contained in:
+57
@@ -0,0 +1,57 @@
|
||||
# Application Design — SlpModularCms.Api
|
||||
|
||||
Dit document consolideert het volledige applicatie-ontwerp voor de modulaire CMS API.
|
||||
|
||||
## 1. Architectuur Overzicht
|
||||
De applicatie volgt een modulaire Clean Architecture structuur waarbij het **Core Framework** de centrale spil is. Modules zijn onafhankelijke projecten (.csproj) of DLL's die via een hybride laad-strategie worden geïntegreerd.
|
||||
|
||||
- **Kleurgecodeerd Diagram**:
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph "Core Phase"
|
||||
Core[Core Framework]
|
||||
ID[Identity Subsysteem]
|
||||
end
|
||||
|
||||
subgraph "Module Phase"
|
||||
Avail[Availability Module]
|
||||
Other[External Modules]
|
||||
end
|
||||
|
||||
Shell[API Shell]
|
||||
|
||||
Shell --> Core
|
||||
Shell --> Avail
|
||||
Shell -.-> Other
|
||||
|
||||
Avail --> Core
|
||||
Other -.-> Core
|
||||
|
||||
style Core fill:#BBDEFB,stroke:#1565C0,color:#000
|
||||
style ID fill:#E3F2FD,stroke:#1565C0,color:#000
|
||||
style Shell fill:#C8E6C9,stroke:#2E7D32,color:#000
|
||||
style Avail fill:#FFF59D,stroke:#F57F17,color:#000
|
||||
```
|
||||
|
||||
## 2. Belangrijkste Componenten
|
||||
Zie de gedetailleerde beschrijvingen in [components.md](./components.md).
|
||||
|
||||
- **Core**: Gedeelde logica, Identity en interfaces.
|
||||
- **Availability Module**: MVP placeholder voor statuscontrole.
|
||||
- **API Shell**: Host en orchestrator.
|
||||
|
||||
## 3. Interfaces & Services
|
||||
Zie [component-methods.md](./component-methods.md) en [services.md](./services.md).
|
||||
|
||||
- **IModule**: Het contract voor module-integratie.
|
||||
- **IAuthService / IUserService**: Beheer van identiteit en hiërarchische RBAC.
|
||||
- **IAvailabilityService**: Controleert of de API of specifieke modules operationeel zijn.
|
||||
|
||||
## 4. Ontwerpbeslissingen (Besloten in Plan)
|
||||
1. **Hybride Module Loading**: Core modules worden statisch geladen voor performance en type-safety; optionele modules kunnen dynamisch worden toegevoegd.
|
||||
2. **Identity in Core**: Voor de MVP is Identity een integraal onderdeel van het framework om complexe autorisatie-hiërarchieën (Owner > Admin > User) eenvoudiger te borgen.
|
||||
3. **Eenvoudige Projectstructuur**: Per module wordt één project gebruikt om de complexiteit laag te houden, met interne folders voor separation of concerns.
|
||||
4. **Policy-Based RBAC**: Gebruik van standaard ASP.NET Core `AuthorizationPolicy` voor het afdwingen van de rol-hiërarchie.
|
||||
|
||||
## 5. Volgende Stappen
|
||||
Op basis van dit ontwerp wordt de applicatie opgesplitst in **Units of Work** in de volgende fase (Units Generation).
|
||||
Reference in New Issue
Block a user