A new Client Versions dashboard page has been added to track SecureBootWatcher client versions across the device fleet.
File: SecureBootDashboard.Web/Pages/ClientVersions.cshtml
PageModel: SecureBootDashboard.Web/Pages/ClientVersions.cshtml.cs
Features:
- ? Summary cards showing total, up-to-date, outdated, and unsupported devices
- ? Devices grouped by client version with visual status indicators
- ? Color-coded status badges (Success/Warning/Danger)
- ? Detailed device list within each version group
- ? Activity indicators for devices not seen recently
- ? Auto-refresh every 5 minutes
- ? Responsive design with Bootstrap 5
File: SecureBootDashboard.Api/Controllers/DevicesController.cs
Changes:
- ? Added
ClientVersionfield toDeviceSummaryResponse - ? Existing
GET /api/Devicesendpoint now returns client version
File: SecureBootDashboard.Web/Models/ClientVersionInfo.cs
Classes:
ClientVersionInfo- Groups devices by versionDeviceVersionSummary- Individual device summaryClientVersionConfig- Version configuration
File: SecureBootDashboard.Web/Pages/Shared/_Layout.cshtml
Changes:
- ? Added "Versioni Client" link in navigation bar
- ? Added Bootstrap Icons CDN for icon support
?????????????????????????????????????????????????????????????
? Total ? Up-to-Date ? Outdated ? Unsupported ?
? Devices ? (Green) ? (Yellow) ? (Red) ?
?????????????????????????????????????????????????????????????
? 150 ? 120 (80%) ? 25 (17%) ? 5 (3%) ?
?????????????????????????????????????????????????????????????
Each version is displayed in a card with:
- Header: Version number + status badge
- Device count: Number of devices running that version
- Last seen: Most recent report from any device in that group
- Device table: Detailed list with:
- Machine name
- Domain
- Manufacturer/Model
- Fleet ID
- Last seen (with warning for inactive devices)
- View action button
| Status | Badge Color | Icon | Meaning |
|---|---|---|---|
| Up-to-Date | Success (Green) | ? | Running latest version |
| Outdated | Warning (Yellow) | ?? | Update available, still supported |
| Unsupported | Danger (Red) | ? | Below minimum version |
| Unknown | Secondary (Gray) | ? | No version information |
| Days Since Last Seen | Indicator |
|---|---|
| 7-30 days | Yellow row + ?? icon |
| 30+ days | Red row + ?? icon |
{
"ClientUpdate": {
"LatestVersion": "1.2.0.0",
"MinimumVersion": "1.0.0.0"
},
"ApiBaseUrl": "https://your-api.azurewebsites.net"
}{
"ApiBaseUrl": "https://your-api.azurewebsites.net",
"ClientUpdate": {
"LatestVersion": "1.2.0.0",
"MinimumVersion": "1.0.0.0"
}
}Navigate to: https://your-dashboard.com/ClientVersions
Or click: Versioni Client in the navigation bar
-
Check Summary Cards
- High "Outdated" or "Unsupported" numbers indicate update campaign needed
-
Review Version Groups
- Unsupported devices appear first (red badges)
- Outdated devices follow (yellow badges)
- Up-to-date devices last (green badges)
-
Identify Inactive Devices
- Yellow rows: Not seen in 7+ days
- Red rows: Not seen in 30+ days
- May indicate offline or uninstalled clients
-
Plan Updates
- Use device lists to target specific version groups
- Export data for Intune/GPO targeting
- Track deployment progress over time
Edit both API and Web appsettings.json:
{
"ClientUpdate": {
"LatestVersion": "1.2.0.0",
"MinimumVersion": "1.0.0.0"
}
}dotnet publish SecureBootDashboard.Api -c Release -o ./publish/api
# Deploy to Azure App Service or IISdotnet publish SecureBootDashboard.Web -c Release -o ./publish/web
# Deploy to Azure App Service or IIS- Navigate to
/ClientVersions - Verify summary cards show correct totals
- Check version groups display properly
- Confirm color coding matches version status
When releasing a new client version:
- Update API Configuration:
{
"ClientUpdate": {
"LatestVersion": "1.3.0.0", // New version
"MinimumVersion": "1.1.0.0" // Optional: raise minimum
}
}-
Restart API (or wait for config reload)
-
Dashboard Updates Automatically:
- Devices will be re-categorized on next page load
- No code changes required
Check dashboard regularly to:
- Track update deployment progress
- Identify stragglers not receiving updates
- Detect inactive devices
- Plan next update campaign
Cause: Database is empty or API is unreachable
Fix:
- Verify API is running and accessible
- Check
ApiBaseUrlin Web appsettings.json - Deploy clients to start receiving data
Cause: Devices running old client without version tracking
Fix:
- Deploy updated client (version 1.1.0.0+)
- Wait for devices to report
- Unknown devices will update automatically
Cause: Unknown version devices counted separately
Fix: This is normal. Unknown devices don't count toward supported/unsupported percentages.
Cause: API connectivity issue
Fix:
- Check browser console for errors
- Verify API URL in configuration
- Check CORS settings if cross-origin
- Review Web application logs
| Endpoint | Method | Purpose |
|---|---|---|
/api/Devices |
GET | Fetch all devices with versions |
/api/ClientUpdate/version |
GET | Get latest version info (optional) |
Potential improvements:
- ?? Version trend chart - Historical version distribution
- ?? Email alerts - Notify when unsupported devices detected
- ?? Intune integration - Direct deployment from dashboard
- ?? Update calendar - Schedule and track update campaigns
- ?? Deployment metrics - Success rate, time to adoption
- ?? Advanced filtering - By fleet, domain, manufacturer
- ?? Export to Excel - Version report with device lists
The Client Versions dashboard provides:
? Visibility - See version distribution at a glance
? Actionable Data - Identify devices needing updates
? Status Tracking - Monitor update campaign progress
? Activity Monitoring - Detect inactive devices
? Zero Configuration - Works with existing API and data
Access: /ClientVersions or click "Versioni Client" in navigation
Version: 1.0
Last Updated: 2025-01-09
Status: ? Production Ready