fleet/server/mdm/microsoft
Victor Lyuboslavsky c0ecbfc1d8
Return Windows Enrollment Status Page (ESP) (#43454)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42843

This change shows Windows Enrollment Status Page (ESP) during OOBE
enrollment. It does not track/update the status of that page, so the end
user does not actually see any progress on it. Its purpose is to block
the user from proceeding to desktop until all the profiles have been
sent to the device. Software apps are not being tracked/blocked in this
PR.

This is what the final ESP screen looks for this PR before it takes the
user to set up Windows Hello:
<img width="646" height="549" alt="image"
src="https://github.com/user-attachments/assets/748a2710-9388-4d04-93d1-8f2a518965a1"
/>


# Checklist for submitter

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Enrollment Status Page (ESP) support for Windows Autopilot: sends
hold/release commands and advances enrollment states during setup.
* Scoped profile installation checks per host and a default ESP timeout
(3 hours).

* **Bug Fixes**
* Clears prior profile delivery state during reenrollment cleanup to
avoid stale delivery state.
* Safer state transitions for "awaiting configuration" with guarded
compare-and-swap updates.

* **Tests**
* New unit and integration tests validating ESP flows and
awaiting-configuration transitions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Konstantin Sykulev <konst@sykulev.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-28 15:39:03 -05:00
..
admx Update WLAN XML profile verification so they aren't resent (#28296) 2025-04-18 08:45:18 -04:00
syncml Windows MDM app level impl (#38842) 2026-01-28 09:46:53 -05:00
wlanxml Update WLAN XML profile verification so they aren't resent (#28296) 2025-04-18 08:45:18 -04:00
bitlocker_csp.go Fixed issue due to UUID mistmatch on BitLocker CSP cmd. (#32210) 2025-08-22 14:32:23 -04:00
bitlocker_csp_test.go Fixed issue due to UUID mistmatch on BitLocker CSP cmd. (#32210) 2025-08-22 14:32:23 -04:00
esp_csp.go Return Windows Enrollment Status Page (ESP) (#43454) 2026-04-28 15:39:03 -05:00
microsoft_mdm.go Windows Manual MDM Enrollment (#36128) 2025-11-25 15:04:53 -05:00
profile_variables.go Added support for NDES CA for Windows hosts (#41356) 2026-03-12 15:36:44 -05:00
profile_variables_test.go SyncML <Delete> Windows profiles (#42206) 2026-03-26 18:25:54 -05:00
wstep.go Verifying jwt signing algo to prevent vulnerability (#43474) 2026-04-13 19:11:55 -05:00
wstep_csr.go remove old Windows MDM PoC tool (#39473) 2026-02-06 13:55:16 -05:00
wstep_csr_test.go Updating golangci-lint to 1.61.0 (#22973) 2024-10-18 12:38:26 -05:00
wstep_test.go Verifying jwt signing algo to prevent vulnerability (#43474) 2026-04-13 19:11:55 -05:00