Skip to content

Latest commit

 

History

History
288 lines (206 loc) · 7.39 KB

File metadata and controls

288 lines (206 loc) · 7.39 KB

Client Versions Dashboard - Implementation Summary

Overview

A new Client Versions dashboard page has been added to track SecureBootWatcher client versions across the device fleet.

What Was Added

1. New Razor Page: /ClientVersions

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

2. API Enhancements

File: SecureBootDashboard.Api/Controllers/DevicesController.cs

Changes:

  • ? Added ClientVersion field to DeviceSummaryResponse
  • ? Existing GET /api/Devices endpoint now returns client version

3. Models

File: SecureBootDashboard.Web/Models/ClientVersionInfo.cs

Classes:

  • ClientVersionInfo - Groups devices by version
  • DeviceVersionSummary - Individual device summary
  • ClientVersionConfig - Version configuration

4. Navigation

File: SecureBootDashboard.Web/Pages/Shared/_Layout.cshtml

Changes:

  • ? Added "Versioni Client" link in navigation bar
  • ? Added Bootstrap Icons CDN for icon support

Dashboard Views

Summary Cards

?????????????????????????????????????????????????????????????
? Total        ? Up-to-Date   ? Outdated     ? Unsupported  ?
? Devices      ? (Green)      ? (Yellow)     ? (Red)        ?
?????????????????????????????????????????????????????????????
?   150        ?   120 (80%)  ?   25 (17%)   ?   5 (3%)     ?
?????????????????????????????????????????????????????????????

Version Groups

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 Indicators

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

Device Activity Warnings

Days Since Last Seen Indicator
7-30 days Yellow row + ?? icon
30+ days Red row + ?? icon

Configuration

API Settings (appsettings.json)

{
  "ClientUpdate": {
    "LatestVersion": "1.2.0.0",
    "MinimumVersion": "1.0.0.0"
  },
  "ApiBaseUrl": "https://your-api.azurewebsites.net"
}

Web Settings (appsettings.json)

{
  "ApiBaseUrl": "https://your-api.azurewebsites.net",
  "ClientUpdate": {
    "LatestVersion": "1.2.0.0",
    "MinimumVersion": "1.0.0.0"
  }
}

Usage

Accessing the Dashboard

Navigate to: https://your-dashboard.com/ClientVersions

Or click: Versioni Client in the navigation bar

Interpreting Results

  1. Check Summary Cards

    • High "Outdated" or "Unsupported" numbers indicate update campaign needed
  2. Review Version Groups

    • Unsupported devices appear first (red badges)
    • Outdated devices follow (yellow badges)
    • Up-to-date devices last (green badges)
  3. Identify Inactive Devices

    • Yellow rows: Not seen in 7+ days
    • Red rows: Not seen in 30+ days
    • May indicate offline or uninstalled clients
  4. Plan Updates

    • Use device lists to target specific version groups
    • Export data for Intune/GPO targeting
    • Track deployment progress over time

Deployment Steps

1. Update Configuration

Edit both API and Web appsettings.json:

{
  "ClientUpdate": {
    "LatestVersion": "1.2.0.0",
    "MinimumVersion": "1.0.0.0"
  }
}

2. Deploy API

dotnet publish SecureBootDashboard.Api -c Release -o ./publish/api
# Deploy to Azure App Service or IIS

3. Deploy Web

dotnet publish SecureBootDashboard.Web -c Release -o ./publish/web
# Deploy to Azure App Service or IIS

4. Verify

  1. Navigate to /ClientVersions
  2. Verify summary cards show correct totals
  3. Check version groups display properly
  4. Confirm color coding matches version status

Maintenance

Updating Version Information

When releasing a new client version:

  1. Update API Configuration:
{
  "ClientUpdate": {
    "LatestVersion": "1.3.0.0",  // New version
    "MinimumVersion": "1.1.0.0"   // Optional: raise minimum
  }
}
  1. Restart API (or wait for config reload)

  2. Dashboard Updates Automatically:

    • Devices will be re-categorized on next page load
    • No code changes required

Monitoring

Check dashboard regularly to:

  • Track update deployment progress
  • Identify stragglers not receiving updates
  • Detect inactive devices
  • Plan next update campaign

Troubleshooting

Issue: "No devices found"

Cause: Database is empty or API is unreachable

Fix:

  1. Verify API is running and accessible
  2. Check ApiBaseUrl in Web appsettings.json
  3. Deploy clients to start receiving data

Issue: All devices show "Unknown" version

Cause: Devices running old client without version tracking

Fix:

  1. Deploy updated client (version 1.1.0.0+)
  2. Wait for devices to report
  3. Unknown devices will update automatically

Issue: Percentages don't add up to 100%

Cause: Unknown version devices counted separately

Fix: This is normal. Unknown devices don't count toward supported/unsupported percentages.

Issue: Error loading page

Cause: API connectivity issue

Fix:

  1. Check browser console for errors
  2. Verify API URL in configuration
  3. Check CORS settings if cross-origin
  4. Review Web application logs

API Endpoints Used

Endpoint Method Purpose
/api/Devices GET Fetch all devices with versions
/api/ClientUpdate/version GET Get latest version info (optional)

Future Enhancements

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

Related Documentation

Summary

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