mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-24 20:53:06 +00:00
5586963bcc
Adds a tenant-scoped, informational overview of devices that failed enrollment with HTTP 403 because they were not in the tenant's Autopilot / Corporate Identifier registry. Mirrors the Hardware Whitelist rejection insights but aggregates per device (serial number), matching how Autopilot registers individual devices rather than models. Read-only, no webhook. Backend - GetDeviceNotRegisteredFunction: route audit/device-not-registered, MemberRead, filters distress reports on ErrorType == "DeviceNotRegistered", aggregates by serial (case-insensitive; empty serial -> single bucket); 14-day horizon is the existing distress-report retention. - Register route in EndpointAccessPolicyCatalog (fail-closed). - 8 unit tests for BuildAggregatedResult. Frontend - api.distress.deviceNotRegistered(). - NotRegisteredDevicesInsights component (serial/mfr/model/attempts/first/last seen, green empty-state, unverified-data notice). - Wired below AutopilotValidationSection. DeviceNotRegistered (403) covers both Autopilot and Corporate Identifier validation; the agent cannot distinguish which failed, so copy is neutral. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>