# Components — SlpModularCms.Api Dit document beschrijft de belangrijkste functionele componenten van de CMS API en hun verantwoordelijkheden. ## 1. Core Framework (SlpModularCms.Core) Het fundament van de applicatie. Bevat de gedeelde logica, interfaces en infrastructuur-configuratie. - **Verantwoordelijkheden**: - Definiëren van basis-interfaces (`IModule`, `IAvailabilityService`). - Cross-cutting concerns (logging, exception handling, validatie). - Infrastructuur abstracties (Unit of Work, Repository interfaces). - Bevat de **Identity** kernfunctionaliteit (Gebruikers, Rollen, JWT). ## 2. Availability Module (SlpModularCms.Modules.Availability) Een specifieke module voor de beschikbaarheidscontrole. - **Verantwoordelijkheden**: - Implementatie van `IAvailabilityService`. - Stub-functionaliteit voor de MVP (retourneert altijd "beschikbaar"). - Toekomstige integratie met de Master-API. ## 3. Web API Shell (SlpModularCms.Api) De host-applicatie (ASP.NET Core Web API). - **Verantwoordelijkheden**: - Dependency Injection registratie van de Core en statisch gekoppelde modules. - Dynamisch laden van optionele modules via Assembly loading (Hybride strategie). - Hosting van Swagger/OpenAPI documentatie. - Middleware configuratie (Auth, HTTPS, CORS). - Routeerlaag naar module-controllers. ## 4. Identity Component (Binnen Core) Hoewel onderdeel van de Core, fungeert dit als een onderscheidbaar subsysteem. - **Verantwoordelijkheden**: - Inloggen en JWT generatie. - Refresh token beheer. - CRUD operaties op Gebruikers. - Beheer van module-specifieke permissies voor Gebruikers. - Hiërarchische RBAC handhaving via Authorization Policies.