Module Afhankelijkheden
Dit document beschrijft de relaties en afhankelijkheden tussen de modules van het AutoMate platform. Het doel is inzicht geven in welke module van welke andere modules afhankelijk is en waarom.
Afhankelijkheidsdiagram
Gestippelde lijnen geven cross-cutting afhankelijkheden aan (AuditLog wordt door meerdere modules gebruikt zonder dat die modules direct van AuditLog afhangen — de plugin wordt via dependency injection injecteerd).
Module overzicht
Module | Beschrijving | Afhankelijk van |
|---|---|---|
IAM HR Sync | HR data synchronisatie naar Microsoft Entra en Active Directory | Connectors, MsGraph Plugin, UserTypes, AuditLog |
Workflows | Workflow engine (Hangfire-based), uitvoering van automatiseringstaken | Getriggerd door AutoMate Formulier of IAM Sync |
UserTypes | Organisatieattributen, categorie definities en OrgModel | Standalone |
OrgModel | Organisatiemodel versioning en draft beheer | UserTypes |
Branding | Email signatures, Teams branding, CDN assets, Office templates | MsGraph Plugin |
Provisioning | Device provisioning (AutoPilot) en licentiebeheer | MsGraph Plugin |
Main | Tenants, users, locks (SignalR) | Standalone (kern) |
Audits | Audit trail endpoints | AuditLog Plugin |
AuditLog Plugin | Cross-cutting audit logging met Seq/Azure Table backends | Standalone (plugin) |
MsGraph Plugin | Microsoft Graph API integratie met multi-tenant certificaten | Microsoft Graph API |
Kernrelaties
1. UserTypes → IAM HR Sync
UserTypes definieert organisatieattributen: categorieën (bijv. "Afdeling", "Functie") en de bijbehorende definities. IAM HR Sync gebruikt deze definities voor de attribute mapping bij het provisionen van gebruikers naar Microsoft Entra en Active Directory.
Wanneer een HR-record binnenkomt via een connector (AFAS of SAP SuccessFactors), bepaalt de UserTypes configuratie welke Entra/AD attributen worden gevuld en hoe de mapping plaatsvindt.
2. AutoMate Formulier → UserTypes
Het AutoMate Formulier (onderdeel van de Management Portal) gebruikt UserTypes definities om dynamische invoervelden te tonen bij het aanmaken of wijzigen van gebruikers. Welke velden zichtbaar zijn en welke waarden beschikbaar zijn, wordt volledig bepaald door de UserTypes configuratie van de tenant.
3. Workflows — twee triggers
Workflows worden momenteel uitsluitend getriggerd door:
AutoMate Formulier — een beheerder of medewerker vult het formulier in, wat een workflow start voor provisioning of wijzigingen.
IAM HR Sync — de automatische synchronisatie met een HR-bron (AFAS, SAP SuccessFactors) triggert workflows voor nieuwe, gewijzigde of uitgestroomde medewerkers.
Dit zijn de enige twee trigger-paden. Workflows hebben geen directe API endpoints die extern aanroepbaar zijn buiten deze twee paden.
4. IAM Sync → Connectors → MsGraph Plugin
De IAM Sync gebruikt connectors als abstractielaag voor externe systemen:
Connector | Richting | Beschrijving |
|---|---|---|
| Inkomend | Haalt medewerkerdata op uit AFAS |
| Inkomend | Haalt medewerkerdata op uit SAP SuccessFactors |
| Uitgaand | Synchroniseert gebruikers naar Microsoft Entra ID |
| Uitgaand | Synchroniseert attributen naar on-premises Active Directory |
De uitgaande connectors (EntraConnector, EntraAdConnector) communiceren via de MsGraph Plugin met Microsoft Entra. De plugin beheert de multi-tenant certificaat authenticatie en Graph API abstracties.
5. OrgModel → UserTypes
OrgModel (organisatiemodel versioning) is een subsysteem van de UserTypes feature. OrgModel beheert versioning en draft-states van de organisatiestructuur, en is voor zijn datamodel en definities afhankelijk van UserTypes.
6. Branding → MsGraph Plugin
De Branding module is grotendeels standalone voor CDN assets, email signatures en Office templates. Voor Teams signatures is Branding echter afhankelijk van de MsGraph Plugin om de handtekeningen te pushen via de Microsoft Graph API.
7. Provisioning → MsGraph Plugin
Device provisioning gebruikt de MsGraph Plugin voor AutoPilot synchronisatie: apparaten worden via Graph API geregistreerd en geconfigureerd in Microsoft Intune/AutoPilot.
8. AuditLog Plugin — cross-cutting
De AuditLog Plugin is een cross-cutting concern. Modules zoals IAM Sync en OrgModel loggen audit events via de plugin zonder een directe compilatie-afhankelijkheid. De plugin wordt via dependency injection in het FastEndpoints pipeline injecteerd en onderschept configureerbare events.
Dependency isolatie
Modules die als standalone zijn aangemerkt (UserTypes, Main) hebben geen afhankelijkheden op andere platform modules. Dit zijn de stabielste modules in de codebase: wijzigingen in andere modules hebben geen impact op hun werking.
De MsGraph Plugin is het centrale integratiepunt richting Microsoft. Drie modules (IAM via Connectors, Branding, Provisioning) zijn hier direct of indirect van afhankelijk. Wijzigingen in de Graph API of authenticatieconfiguratie hebben daarmee potentieel brede impact.