1.7 KiB
1.7 KiB
Disco AD Compare Plugin — Project Overview
Purpose
A Disco ICT plugin that compares the Active Directory managedBy attribute on computer objects against the Disco AssignedUserId, reporting mismatches. Also provides AD details (last login, account status) on device and user pages via UIExtension features.
Architecture
- C# .NET Framework 4.5 class library compiled with .NET Framework MSBuild v4.0
- C# 5 syntax only — no modern C# features (server has no VS/Roslyn)
- Plugin system: extends
Plugin,PluginWebHandler,PluginConfigurationHandler,UIExtensionFeature<T> - Build toolchain: PowerShell script (
Build-Plugin.ps1) that resolves assembly refs from Disco install bin, compiles, generates manifest, packages as.discoPlugin(zip renamed) - No external dependencies — all refs come from Disco's own
WebApp\bin
Key Components
| Component | Purpose |
|---|---|
DeviceCompareService |
DN-to-DN comparison engine, filters invalid devices |
ADCompareWebHandler |
Server-side rendered dashboard + CSV export |
DeviceUIExtension |
Device page panel (managedBy match, last login) |
UserUIExtension |
User page panel (last login, AD status, OU) |
ADCompareConfigurationHandler |
Required config handler with WebViewPage |
Current State
- Working: Comparison dashboard, CSV export, DN comparison logic, build pipeline
- Not working: UIExtension panels on device/user pages (features initialize without errors but HTML doesn't render — needs investigation)
Session Log
- 2026-04-28 — Initial build and iteration — Built plugin from scratch, resolved C#5/MSBuild constraints, fixed DN comparison, got dashboard working, UIExtension rendering still unresolved