Commit Graph

395 Commits

Author SHA1 Message Date
Oliver Kieselbach 7de7ebadf3 added filter on session table 2026-03-06 11:01:21 +01:00
Oliver Kieselbach 126397046e small design additions, session column filter, phasetracker clickable phases 2026-03-06 10:27:12 +01:00
Oliver Kieselbach c91fd1a43e massive re-org and re-structuring 2026-03-06 03:02:19 +01:00
Oliver Kieselbach d532ffd7a4 massive re-org and re-structuring 2026-03-06 03:01:24 +01:00
Oliver Kieselbach 61c5937a94 better reconnect logic and added bing verification 2026-03-06 01:00:09 +01:00
Oliver Kieselbach 65245b6d62 prevent duplicate events , fix download durations 2026-03-06 00:32:03 +01:00
Oliver Kieselbach de50d3733c added navigation design elements 2026-03-05 23:08:59 +01:00
Oliver Kieselbach c6512dcf6a fix esp_failure detection, added Agent - Emergency Break 2026-03-05 18:23:12 +01:00
Oliver Kieselbach b880f5b534 Added bootstrap endpoints and handling 2026-03-05 18:02:37 +01:00
Oliver Kieselbach 2b1cd6cb55 BootstrapToken now needs explicit enablement 2026-03-05 17:06:24 +01:00
Oliver Kieselbach 59bad0fc77 added tpm_info to collect at enrollment time, fixed appSummary in final-status.json 2026-03-05 15:14:20 +01:00
Oliver Kieselbach 51033cce7b Bootstrap Session implementation 2026-03-05 13:08:14 +01:00
Oliver Kieselbach 955727586c removed remediation link 2026-03-05 13:01:23 +01:00
Oliver Kieselbach 9a10c740e6 intune url fix 2026-03-05 12:46:07 +01:00
Oliver Kieselbach 70f53a5981 preview view only for IME log pattern 2026-03-05 12:36:55 +01:00
Oliver Kieselbach e4753da9ab fix map z-order 2026-03-05 12:31:34 +01:00
Oliver Kieselbach 4e005e3f52 Validation disabling waring, and script links to Intune portal 2026-03-05 12:22:24 +01:00
Oliver Kieselbach e9eadac135 fix toggle layout 2026-03-05 11:59:59 +01:00
Oliver Kieselbach 5df98c5cfc layout fix 2026-03-05 11:45:05 +01:00
Oliver Kieselbach 0b960d7d6f added PowerShell Script Execution Tracking 2026-03-05 10:12:57 +01:00
Oliver Kieselbach 564803f82c final-status.json: include package states from all ESP phases
Snapshot device-phase package states before Clear() on phase transition
so final-status.json contains the complete picture (DeviceSetup + AccountSetup
apps) instead of only the last active phase.

The JSON now uses packageStatesByPhase with phase names as keys instead of
a flat packageStates array.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 09:07:52 +01:00
Oliver Kieselbach 93037cd83d added Geographic Performance Heatmap 2026-03-05 08:40:36 +01:00
Oliver Kieselbach e2986b2972 fiy layout network section device info 2026-03-04 23:27:54 +01:00
Oliver Kieselbach 7a589234d5 layout perf chats 2026-03-04 23:21:05 +01:00
Oliver Kieselbach e43474643b layout fix 2026-03-04 23:10:16 +01:00
Oliver Kieselbach 46f2b38796 layout fix 2026-03-04 23:05:23 +01:00
Oliver Kieselbach 22b6816110 added Network Performance infos 2026-03-04 22:55:23 +01:00
Oliver Kieselbach 074f5ff600 added ESP Configuration detection 2026-03-04 21:33:33 +01:00
Oliver Kieselbach e89f6222cd several sites converted to static site content 2026-03-04 18:54:50 +01:00
Oliver Kieselbach f7a9d38de6 added filter for tenant management 2026-03-04 18:13:18 +01:00
Oliver Kieselbach bc264a69e3 Added TPM Info to Device Details 2026-03-04 17:51:39 +01:00
Oliver Kieselbach b37e95c86b added Device Preparation Validator 2026-03-04 17:34:16 +01:00
Oliver Kieselbach b527c3c605 agent stability: IME shutdown handling, final status dump, error granularity
- IME shutdown handler: new imeShutdown action marks all active apps as
  Postponed instead of incorrectly marking them Installed on IME restart
- Final status dump: writes comprehensive final-status.json on enrollment
  complete/failed with all app states, signal timestamps, error summary
- Device vs user error counts: GetSummaryData() now reports deviceErrors
  and userErrors separately for granular diagnostics
- Periodic debug state snapshot: 60s timer logs [StateSnapshot] to agent
  log for stuck enrollment debugging (log-only, no event storage cost)
- All new timers properly stopped at every terminal event path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 17:21:52 +01:00
Oliver Kieselbach b7febc4bd5 fix premature enrollment_complete during active ESP AccountSetup
Desktop arrival during AccountSetup started Hello wait timer, which
timeout-resolved after 30s and triggered enrollment_complete via
desktop_hello path while ESP was still installing apps.

Three fixes:
- NotifyDesktopArrived: only start Hello timer when ESP is NOT active
- TryEmitEnrollmentComplete: ESP gate now blocks both desktop_arrival
  and desktop_hello sources
- OnFinalizingSetupPhaseTriggered: try composite completion after ESP
  final exit in case Hello was already resolved

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 00:30:45 +01:00
Oliver Kieselbach 82919d4791 session lifecycle: reliable end-detection for all deployment scenarios
Multi-signal enrollment completion with 3 independent paths:
- IME pattern (existing), ESP final exit + Hello (composite),
  Desktop arrival + Hello (no-ESP/WDP v2)

ESP failure detection: terminal failures emit enrollment_failed immediately,
recoverable failures (ESPProgress_Timeout) get 1-min grace period with
recovery cancellation on ESP phase change.

Agent max lifetime timer (6h default, configurable per-tenant) as safety
net against zombie agents. Desktop arrival detector polls explorer.exe
with WMI owner validation. Enrollment state persistence for crash recovery.

Completion check events with full state machine snapshot for observability.
Backend maintenance interval reduced from daily to every 2 hours.
ConfigVersion 12 → 13.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 23:12:26 +01:00
Oliver Kieselbach 4e55b612f2 final calc fix 2026-03-03 18:53:56 +01:00
Oliver Kieselbach 289576e5c4 fix calc 2026-03-03 18:44:57 +01:00
Oliver Kieselbach aa29ec701e debug install calc 2026-03-03 18:03:20 +01:00
Oliver Kieselbach 3ce9f6acde fix duration calc in Install Progress 2026-03-03 16:50:56 +01:00
Oliver Kieselbach 39793948c0 added paging for session reports list 2026-03-03 12:43:53 +01:00
Oliver Kieselbach 46582be1d9 replace static 4h max collector duration with activity-aware idle timeout
Periodic collectors (Performance, AgentSelfMetrics) now stop after 15 min
(configurable) of no real enrollment activity instead of a fixed 4h window.
They restart automatically when new activity is detected, preventing session
bloat for stuck/unfinished enrollments while keeping data flowing during
legitimately long ones.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 12:32:37 +01:00
Oliver Kieselbach cba1171aa3 add status filter badges to session list on dashboard
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 12:25:46 +01:00
Oliver Kieselbach bdfc58146c added min max values on agent settings with descriptions 2026-03-03 12:13:46 +01:00
Oliver Kieselbach 8ac21dace3 added skipped filter for install and download progress, fixed agen version string on platform metrics 2026-03-03 10:56:12 +01:00
Oliver Kieselbach 20e93aa892 add Corporate Identifier Validation with preview-gated UI
Adds a second device validation method alongside existing Autopilot Device
Validation. Corporate Identifier Validation checks devices against Intune
Corporate Device Identifiers (manufacturer + model + serial number) via the
Graph beta searchExistingIdentities endpoint.

Backend: Extract GraphTokenService from AutopilotDeviceValidator for shared
token/consent logic. Add CorporateIdentifierValidator with caching. Update
SecurityValidator with cascading validation (Autopilot first, Corporate
Identifier fallback). Wire new validator through all agent endpoints.

Frontend: Add second toggle in settings gated behind preview mode. Shared
consent flow skips redirect when consent already exists from other toggle.
Section renamed to "Enrollment Device Validation" in preview mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:19:06 +01:00
Oliver Kieselbach 1d2874514e add copy-to-clipboard button to event detail blocks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:16:01 +01:00
Oliver Kieselbach 475739109a enhanced Autopilot profile interpretation with Hybrid Join detection and AutopilotMode labels
- CollectAutopilotProfile now interprets AutopilotMode (User Driven/Self Deploying/White Glove)
  and CloudAssignedDomainJoinMethod (Entra Join/Hybrid Azure AD Join) with human-readable labels
- Added IsHybridJoin as first-class session field (SessionRegistration, SessionSummary, Table Storage)
- DetectHybridJoinStatic reads DomainJoinMethod from registry at registration time
- UI session detail shows Autopilot Mode, improved Domain Join Method labels, HybridJoinSkipDCConnectivityCheck
- Dashboard shows purple "Hybrid" badge for Hybrid Azure AD Join sessions
- Note: IsUserDriven/IsPreProvisioned unchanged — profile fields are capabilities, not live state

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:14:56 +01:00
Oliver Kieselbach 443decc4d9 fix WhiteGlove Part 2 event timeline disruption on mid-enrollment reboot
Prevent phase regression in the event timeline when a reboot during User
Enrollment (Part 2) emits a new agent_started with Phase=Start. The
groupEventsByPhase function now accepts a preventPhaseRegression option
that tracks the highest phase index seen and suppresses regressions to
earlier phases. Reboot events stay in the active enrollment phase instead
of resetting the timeline to Start. Also adds timestamp as fallback sort
key to handle potential duplicate sequences from agent persistence gaps.
Applied to both UI rendering and text/CSV export for Part 2 only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:13:37 +01:00
Oliver Kieselbach c11018f7ce enhanced Report Session dialog 2026-03-03 02:02:31 +01:00
Oliver Kieselbach 5ce22696ab fixed Session list duration in case of WhiteGlove and fixed events incrementing for sessions table 2026-03-03 01:41:17 +01:00