diff --git a/.claude-context/00-overview.md b/.claude-context/00-overview.md new file mode 100644 index 0000000..30c598e --- /dev/null +++ b/.claude-context/00-overview.md @@ -0,0 +1,27 @@ +# 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` +- **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