fleet/changes
Scott Gress ab6929e71e
Don't run setup experience on host that was previously enrolled (#38318)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35717

# Details

This PR adds a check before enqueuing setup experience items, so that if
the specified host has already been enrolled for > 24 hours we skip the
setup experience. This handles the edge case where an enrolled host
upgrades from an Orbit version that didn't support setup experience to
one that does.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

- [X] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)

## Testing

- [X] Added/updated automated tests

- [X] QA'd all new/changed functionality manually
I didn't go through the process of getting a 1.48.1 fleetd installation
on my VM, but I tested in this way:
1. Installed fleetd on a host to a team with no setup experience items
2. Manually adjusted the `last_enrolled_at` date of that host's db
record to be > 24 hours in the past.
3. After enrollment, added setup experience items to that team. No setup
window popped up (expected).
4. Deleted the `setup_experience.json` file on that host and restarted
Orbit.
5. On `main` branch, the setup experience window popped up. When
repeating these steps on this branch, no window popped up.
6. Also verified that for a new enrollment wiht `last_enrolled_at` in
the last 24 hours, the setup experience window popped up as expected.
2026-01-28 08:44:42 -06:00
..
.keep Issue 1009 calculate diff software (#1305) 2021-07-08 13:57:43 -03:00
13800-obfuscate-calendar-key Obfuscate calendar key (#38687) 2026-01-26 16:59:13 -07:00
13836-cert-batch-del Optimizing certificate template batch delete auth (#38650) 2026-01-24 17:47:17 -06:00
27322-surface-queries-in-host-details Surface queries in host details (#37646) 2026-01-02 10:06:12 -03:00
30392-surface-failed-install-details Populate LastInstall for failed installs (#38655) 2026-01-23 18:07:28 -05:00
30691-remove-vpp-install-data-host-delete Remove host's VPP install rows when removing host (#38344) 2026-01-22 13:04:11 -05:00
31256-fix-windows-app-custom-package-metadata Bugfix: windows app custom package should not be named Microsoft AutoUpdate (#37913) 2026-01-07 13:29:25 -05:00
31292-no-bootstrap-during-migration Skip bootstrap package install during migration (#37614) 2025-12-29 12:00:24 -04:00
31569-host-installs-in-library Fix failed software installs showing for hosts in teams without the installer for those attempts (#38238) 2026-01-13 12:52:50 -05:00
31686-tweak-timeouts Shorten software batch timeout, add keepalive to refresh timeout periodically during batch operations (#37641) 2026-01-12 12:19:40 -06:00
31916-retry-policy-automations Automatic retry of failed policy automations of scripts and software installs (#38018) 2026-01-12 17:30:51 -06:00
31922-do-not-send-windows-profiles-atomically Allow <Atomic> windows profiles (#38272) 2026-01-14 14:44:47 -05:00
32461-custom-vpp-apps Add custom VPP app support (#37969) 2026-01-08 13:13:04 -06:00
32619-gitops make generate-gitops export FMAs correctly (#38420) 2026-01-20 16:31:41 -05:00
32965-hash-package-name-filters Add hash_sha256 and package_name filters (#38474) 2026-01-20 09:50:56 -05:00
32997-categories send categories from gitops (#38294) 2026-01-14 11:04:02 -05:00
33005-macvim created mac vim mapping software transformer (#38333) 2026-01-21 12:33:14 -06:00
33272-delete-software-pending-installs-nuance Fleet UI: Clarify delete VPP app pending install nuance (#38376) 2026-01-20 12:49:18 -05:00
33405-abm-banner Update UI banner to inform admins of need to accept terms and conditions for multiple Apple Business Manager accounts (#38031) 2026-01-08 11:10:47 -06:00
33512-empty-software-opened-at Use empty values in software last_opened_at when not supported (#38007) 2026-01-08 11:36:06 -08:00
33522-executable-hashes Compute, ingest, persist, and serve .app bundle executable hashes and paths (#38118) 2026-01-14 09:18:35 -08:00
33762-ability-to-set-alternative-browser-host Ability to set fleet desktop alternative browser host in org settings (#38409) 2026-01-19 16:25:22 -04:00
33815-fix-missing-installer-from-inventory-after-wipe-reenroll Bugfix: Fix query to ignore host_software_installs rows where host is deleted (#38250) 2026-01-14 08:32:30 -05:00
34124-sql-editor-disabled Fleet UI: Update the read-only SQL editor to appear non-interactive (#37764) 2025-12-31 09:38:12 -05:00
34359-long-script-names-overflow-tables Long script names overflow tables (#38594) 2026-01-23 16:41:53 -04:00
34398-consistent-icon-buttons Fleet UI: Update icon buttons for consistency (#38639) 2026-01-22 17:21:02 -05:00
34726-err-message show error message (#38246) 2026-01-13 14:58:48 -05:00
34890-nats-logging-plugin Add support for publishing logs to NATS. (#36527) 2026-01-06 09:10:32 -03:00
34960-better-error-message-for-user-scope-on-device-enrollments Better error message for user scoped profile on iOS/iPadOS (#37542) 2026-01-02 09:52:13 -04:00
34962-profile-same-scope-error Update error message for Apple profile scope conflict across teams (#37559) 2026-01-06 10:36:30 -06:00
35028-software-versions-search Searching software versions by name will now return all versions that match the corresponding title name as well (#38103) 2026-01-09 17:02:33 -06:00
35086-fix-pkg-decoder-error 35086 use charset reader xar (#38459) 2026-01-16 17:19:20 -05:00
35141-table-sizes Optionally output database table sizes after migrations complete (#38620) 2026-01-26 17:55:55 -06:00
35191-git-cve-false-positive Fixed false positive git CVEs (#38657) 2026-01-26 12:35:08 -06:00
35192-imp-correct-classification Differentiate between imp and Integrative Modeling Platform (#38396) 2026-01-20 16:39:50 -06:00
35193-libtiff Libtiff false positive vuln (#38703) 2026-01-23 13:08:58 -07:00
35447-fix-cpe-translation-error-logging Fixed unnecessary error logging when no CPE match is found (#38754) 2026-01-26 13:52:52 -06:00
35454-auto-update-db-api Database / API for auto software updates (#37599) 2025-12-22 12:39:30 -06:00
35455-schedule-updates Add scheduled updates functionality to iOS/iPadOS managed devices (#37704) 2026-01-06 16:04:06 -03:00
35458-update-activitiy-for-software-update-schedule Add auto-update schedule to software activity updates (#37715) 2026-01-06 10:52:26 -06:00
35459-software-auto-update-frontend Auto software update frontend (#37677) 2026-01-05 10:43:26 -06:00
35565-ipa-cloudfront-signing Cloudfront signing for in-house apps (#37650) 2026-01-05 16:30:31 -05:00
35567-validate-android-policy-struct-on-upload validate android profile JSON on upload (#37756) 2025-12-30 12:10:06 -04:00
35603-optimize-query-results Improve performance when recording schedule query results (#38524) 2026-01-27 10:33:47 -06:00
35717-dont-enqueue-setup-experience-on-previously-enrolled-hosts Don't run setup experience on host that was previously enrolled (#38318) 2026-01-28 08:44:42 -06:00
35941-auto-uninstall-managed-apps-ios-ipados UMA: update management flags for ios/ipados vpp and ipa installs (#37734) 2026-01-05 12:15:38 -05:00
36069-fix-patch-categories-software-installer Bugfix: patch categories for software installer (#38334) 2026-01-20 09:39:13 -05:00
36313-fix-timestamps-label-and-teams-creation Fix: incorrect timestamps returned for Label and Team creation (#38846) 2026-01-27 18:02:48 -03:00
36324-fix-permission-issue-custom-software-installer-icon Custom software installer icons: fix permission issue (#38326) 2026-01-14 16:24:05 -05:00
36342-scroll-yml-in-gitops-mode Fleet UI: Allow users to scroll through disabled yml fields (#38715) 2026-01-26 09:35:22 -05:00
36541-missing-vpp-version-add-software Fleet UI: Show VPP version for software setup (#38412) 2026-01-15 21:33:52 -05:00
36621-harmonize-installer-conflict-error-messages IPA: validate conflicts with other installers, return proper error (#38005) 2026-01-13 10:30:03 -05:00
36644-randomize-apns-query randomize APNS query (#38222) 2026-01-13 13:06:33 -05:00
36652-okta-ca Updated NDES SCEP proxy to auto-detect response encoding (#37873) 2026-01-06 10:47:34 -06:00
36702-fix-fleetctl-config-help Fix fleetctl config help display for missing arguments (#37769) 2026-01-08 09:55:18 -05:00
36724-vpp-app-install-retry VPP app install retry on 9610 (#38008) 2026-01-09 13:39:10 -05:00
36770-limit-process-dep-cooldowns limit DEP cooldowns to sync limit and order by oldest first (#38535) 2026-01-21 09:25:55 -05:00
36862-fix-flash-message-link-color Fleet UI: Fixed hover color of links in error flash messages (#38634) 2026-01-22 11:25:21 -05:00
37003-bootstrap-pkg-ui Update UI for Controls > Setup experience > Bootstrap package to fix inconsistent styling (#37868) 2026-01-06 10:37:00 -06:00
37006-fix-broken-disk-space-sort Fleet UI: Fixed broken disk space sort header on hosts table (#38732) 2026-01-26 09:35:43 -05:00
37008-manual-agent-install-only-blocks-macos-se-software manual agent install should only block macOS SE software (#38434) 2026-01-20 11:37:39 -05:00
37009-setup-exp-android-ui Fix loading state for Android setup experience UI (#37907) 2026-01-07 11:54:15 -06:00
37111-ninxsoft-mist-cve Fixed CVE false positive on ninxsoft/Mist. (#38849) 2026-01-28 07:06:39 -06:00
37146-create-builtin-label-error-msg Show error reason when trying to create a label that conflicts with a built-in label name (#38828) 2026-01-27 15:30:41 -03:00
37155-force-end-user-authentication-host-reenrollment Fix: Deleting a host from Fleet does not delete related IdP records (#38530) 2026-01-28 10:10:00 -03:00
37183-unclear-missing-label-error improve missing label error message (#38636) 2026-01-26 12:55:26 -05:00
37192-refactor-endpoint_utils Moved common endpointer packages to platform dir. (#37780) 2026-01-06 14:23:07 -06:00
37244-refactor-common_mysql Moved common_mysql package to server/platform/mysql (#38017) 2026-01-08 13:17:19 -06:00
37264-gitops-fma-icons Use custom icons in GitOps for Fleet Maintained Apps (#38497) 2026-01-20 11:56:40 -05:00
37271-use-writer-when-linking-scim-data Fix issue linking SCIM data to newly-enrolled hosts (#38408) 2026-01-16 14:11:51 -06:00
37278-okta-fail-my-device-page Redirect to my device page if device fails okta cond. access (#38342) 2026-01-15 11:02:35 -05:00
37290-fix-xcode-vpp-verification Bugfix: apply a special-case for Xcode VPP app verification (#38539) 2026-01-21 17:16:13 -05:00
37397-byod-idevices-software-ingestion iBYOD Apps: only ingest and report Fleet-managed apps for manual-enrolled iOS/iPadOS (#37856) 2026-01-06 10:50:47 -05:00
37464-installer-size Bump installer max size, make configurable (#38122) 2026-01-19 13:36:01 -06:00
37508-gitops-team-software-display_name GitOps: Allow team yml to apply display_name to software package (#38364) 2026-01-20 09:32:25 -05:00
37597-ignore-build-version-compare Fleet UI: Strip build from compareVersion x.x (build x.x) (#38433) 2026-01-16 10:59:46 -05:00
37602-fix-vpp-versions-refresh Fix VPP refresh versions for all platforms (#37612) 2025-12-22 22:45:03 -03:00
37686-rollback-legacy-device-id-ingestion Rollback Entra legacy 'device ID' ingestion (#37687) 2026-01-05 13:28:43 -03:00
37710-package-parsing Compare pkg-info bundle id with bundles in pkg parsing (#38577) 2026-01-21 13:43:38 -05:00
37806-fleet-activities Activity bounded context: /api/latest/fleet/activities (1 of 2) (#38115) 2026-01-19 09:07:14 -05:00
38035-android-reenroll Android app re-enroll on 401 (#38690) 2026-01-27 09:01:01 -07:00
38094-ability-to-set-alternative-browser-host Ability to set fleet desktop alternative browser host in org settings (#38409) 2026-01-19 16:25:22 -04:00
38096-alternative-browser-host-gitops Alternative browser host gitops (#38516) 2026-01-21 10:12:48 -04:00
38205-remove-incorrect-eua-warning-for-macos gate orbit enrollment to windows/linux only (#38207) 2026-01-14 08:41:50 -06:00
38369-ui-mdm-commands-off Hide host MDM commands activity UI when MDM is turned off (#38394) 2026-01-16 11:03:22 -06:00
38452-display-name move deletion into block that only executes when the package itself changes (#38595) 2026-01-21 16:59:40 -05:00
38473-add-ipad-screenshot-in-lock-modal Display iPad screenshot in lock modal (#38475) 2026-01-20 13:26:01 +01:00
38479-otel-shutdown Improved OpenTelemetry tracing (#38483) 2026-01-20 12:22:20 -06:00
38484-fleet-dev-env-vars Only allow FLEET_DEV_* env vars when --dev is passed, allow overriding configs one at a time in dev (#38652) 2026-01-27 14:32:56 -06:00
38549-okta-cond-access-cert-format Added conditional_access.cert_serial_format server option to allow specifying the Okta conditional access certificate serial format. (#38697) 2026-01-26 12:21:10 -06:00
38557-read-users Global observers and maintainers can now officially read user details (#38558) 2026-01-21 13:55:10 -06:00
38579-micromdm-scep-fix Porting fix from micromdm/scep (#38638) 2026-01-22 13:34:53 -06:00
38622-vpp-metadata-api-server-config Expose VPP metadata bearer token as public config, interact directly with Apple when set (#38817) 2026-01-27 16:50:40 -06:00
38704-fail-ipa-installs Fail in-house app installs when host unenrolls (#38803) 2026-01-26 15:45:52 -05:00
38756-otel-client-errors Improved OpenTelemetry error handling (#38757) 2026-01-26 17:07:32 -06:00
add-trusted-proxies-config Implement trusted proxies config (#38471) 2026-01-19 22:13:37 -06:00
fix-query-author-styles Fix query & policy author styles (#37605) 2025-12-23 10:03:27 -06:00
fix-vpp-displayVersion-with-spaces Trim spaces in VPP app versions (#38236) 2026-01-13 13:59:48 -03:00
issue-32110-new-err-message-license-ca-gitops Improved error message when trying to apply CAs via gitops without a premium license (#37981) 2026-01-08 11:07:38 +00:00
issue-33291-fix-issues-abm-token-banner Fix expired abm token banner and tooltip (#37898) 2026-01-07 11:54:52 +00:00
issue-36935-better-message-error-token improve err message when getting android enrollment token during ota enrollment (#38428) 2026-01-16 16:43:19 +00:00
issue-37371-not-now-status handle NotNow status from device so that it does not block the DEP setup experience flow (#38319) 2026-01-21 15:14:57 +00:00
issue-37832-alignment-host-status-tag update alignment and styles of host status tag (#37832) 2026-01-06 14:09:09 +00:00