Navigation Features
Het Navigation Features systeem beheert de zichtbaarheid van menu-items in het Management Portal. Per tenant kan worden ingesteld welke features zichtbaar zijn in de navigatie.
Architectuur
Component | Verantwoordelijkheid |
|---|---|
NavigationFeatureDefinitions (tabel) | Master-lijst van alle navigatie-items met defaults |
TenantNavigationFeatures (tabel) | Per-tenant overrides |
NavigationFeaturesState (portal) | Cached state in het Management Portal |
Settings > Navigation Features (UI) | Beheerinterface voor tenants |
Hiërarchie
Features zijn hiërarchisch opgebouwd: een parent feature moet ingeschakeld zijn voordat child features zichtbaar worden.
Top-level features
Key | Label | Default |
|---|---|---|
| Dashboard | Aan |
| Status | Uit |
| IAM | Uit |
| HR | Aan |
| Gebruikerstypen | Aan |
| Provisioning | Aan |
| Workflows (legacy) | Aan |
| Workflows 2.0 | Uit |
| Branding | Aan |
| Instellingen | Aan |
| Help & Support | Aan |
Sub-features (selectie)
Key | Parent | Label | Default |
|---|---|---|---|
| IAM | Medewerkers | Aan |
| IAM | HR Koppeling | Aan |
| UserTypes | Personas | Aan |
| UserTypes | Bundels | Aan |
| UserTypes | OrgModel (V2) | Uit |
| UserTypes | Toegangsbeheer (RBAC) | Uit |
| WorkflowsV2 | Definities | Aan |
| WorkflowsV2 | Uitvoeringen | Aan |
Hoe het werkt
Portal — menu rendering
Bij het laden van het Management Portal haalt MainLayout.razor de features op via de API:
In de navigatie wordt per item gecontroleerd:
Matching logica (NavigationFeaturesState)
Feature key opzoeken in de dictionary
Als de key een punt bevat (bijv.
IAM.Accounts), eerst de parent (IAM) controlerenParent uit → child ook uit, ongeacht eigen instelling
Feature niet gevonden → default aan (fail-open)
API Endpoints
Methode | Pad | Beschrijving |
|---|---|---|
|
| Alle features ophalen voor de huidige tenant |
|
| Tenant-specifieke override instellen |
|
| Override verwijderen (terug naar default) |
|
| Systeembrede default aanpassen |
Alle endpoints vereisen de X-Tenant-Id header.
Database
Gedefinieerd in migratie 081:
Verschil met Feature Flags
Aspect | Feature Flags (config) | Navigation Features (database) |
|---|---|---|
Opslag |
| SQL Database |
Beheer | Code deployment | Settings UI in portal |
Doel | Feature versie-selectie (V1 vs V2) | Menu-zichtbaarheid |
Hiërarchie | Plat | Parent-child relaties |
Tenant scoping | Expliciete tenant-lijst per flag | Per-tenant overrides |
Default bij ontbreken | Uit | Aan (fail-open) |
Gebruik Feature Flags voor het schakelen tussen implementaties (bijv. Licenties V1 vs V2). Gebruik Navigation Features voor het tonen/verbergen van menu-items per tenant.