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,35 @@
# NFR Requirements — Unit 02: Identity & RBAC
Dit document specificeert de non-functionele vereisten voor identiteitsbeheer en autorisatie.
## 1. Beveiliging (Security)
- **ID-SEC-01: Wachtwoordbeleid**:
- Minimale lengte: 8 tekens.
- Geen verplichte complexiteitseisen (hoofdletters/cijfers), focus op lengte voor gebruiksvriendelijkheid.
- **ID-SEC-02: Token Lifecycle**:
- Access Token (JWT) vervaltijd: 1 uur.
- Refresh Token vervaltijd: 7 dagen.
- **ID-SEC-03: Audit Logging**:
- Verplichte persistente logging van:
- Gebruikerscreatie en uitnodigingen.
- Rolwijzigingen.
- Activatie/Deactivatie van accounts.
- Mislukte login pogingen.
- **ID-SEC-04: Data Privacy**:
- Wachtwoorden worden nooit in plain-text opgeslagen.
- Persoonlijke gegevens (PII) worden alleen via HTTPS ontsloten.
## 2. Performance
- **ID-PERF-01: Token Validatie**:
- De validatie van het JWT token bij elk request mag niet meer dan 5ms overhead toevoegen.
- **ID-PERF-02: Database Querying**:
- Het ophalen van een gebruiker inclusief rollen en permissies moet binnen 20ms gebeuren (geïndexeerd op Email).
## 3. Onderhoudbaarheid (Maintainability)
- **ID-MAINT-01: Database Schema**:
- Gebruik van schone tabelnamen zonder `AspNet` prefix (bijv. `Users`, `Roles`, `UserRoles`).
- **ID-MAINT-02: EF Core Migrations**:
- Alle wijzigingen aan het identiteitsschema worden via code-first migrations bijgehouden.
@@ -0,0 +1,35 @@
# Tech Stack Decisions — Unit 02: Identity & RBAC
Dit document beschrijft de definitieve technische keuzes voor Unit 02.
## 1. Core Frameworks
- **Identity**: Microsoft.AspNetCore.Identity.
- **ORM**: Entity Framework Core.
- **Database**: Microsoft SQL Server.
## 2. Authenticatie & Autorisatie
- **JWT Library**: Microsoft.AspNetCore.Authentication.JwtBearer.
- **Policy Engine**: Native ASP.NET Core Authorization Policies & RequirementHandlers.
- **Hashing**: PBKDF2 (standaard Identity).
## 3. Database Schema Mapping
Conform ID-MAINT-01 worden de standaard Identity tabellen hernoemd in de `OnModelCreating` van de `DbContext`:
| Standaard Naam | Nieuwe Naam |
|---|---|
| AspNetUsers | Users |
| AspNetRoles | Roles |
| AspNetUserRoles | UserRoles |
| AspNetUserClaims | UserClaims |
| AspNetUserLogins | UserLogins |
| AspNetRoleClaims | RoleClaims |
| AspNetUserTokens | UserTokens |
## 4. Testing Tools
- **Unit Tests**: xUnit + FluentAssertions + NSubstitute.
- **Data Generation**: AutoFixture.
- **PBT**: FsCheck (alleen voor token-logic en mapping functies, conform NFR-06).