Commit Graph
2014 Commits
Author SHA1 Message Date
Allen Houchins 3e33b4cfc9 Fix 'patched' SQL queries in FMA outputs (#45794)
Correct the 'patched' SQL predicates across many
ee/maintained-apps/outputs/*.json files by moving the version_compare
condition into the subquery's WHERE clause and removing the extra
parentheses. This normalizes the NOT EXISTS checks so installed-version
detection works as intended for both macOS and Windows app outputs.
2026-05-19 09:20:42 -05:00
fleet-releaseandallenhouchins d11401f6a7 Update Fleet-maintained apps (#45786)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated application versions for multiple maintained apps: Blender
(5.1.1→5.1.2), Postman (12.11.0→12.11.2), and Warp stable release
* Enhanced application lifecycle management for Claude, Discord,
Transmit, and Zotero with improved system cleanup procedures
* Updated installation metadata and checksums across macOS and Windows
platforms

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45786?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-19 08:22:33 -05:00
fleet-releaseandallenhouchins 53650a5a7e Update Fleet-maintained apps (#45775)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
  * Updated Claude to 1.7196.3 (macOS, Windows).
  * Updated CLion to 2026.1.2 (macOS).
  * Updated Discord (macOS 0.0.391, Windows 1.0.9238).
  * Updated Draw.io to 30.0.2 (macOS).
  * Updated Elgato Stream Deck to 7.4.2 (macOS).
  * Updated Microsoft Teams to 26106.2113.4690.1073 (macOS).
  * Updated RustRover to 2026.1.2 (macOS).
  * Updated Zoom (macOS 7.0.5.81138, Windows 7.0.38856).

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45775?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-18 20:32:42 -05:00
Eric 6a48b9eb7b Update Okta SSO hook in fleet agent downloader app (#45761)
Changes:
- Updated the OktaSSO hook in the fleet agent downloader app to not run
for requests missing a session

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

## Summary by CodeRabbit

* **Bug Fixes**
* Fixed Okta SSO error handling to properly manage requests processed
without session support, improving authentication reliability for
certain request types.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45761?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-18 17:35:24 -05:00
Juan Fernandez b0d429ef69 Fix SAML JIT login failing when role attributes have empty values (#42874)
Fixes #42874

Empty, whitespace-only, and missing `FLEET_JIT_USER_ROLE_*` SAML
attribute values are now treated as `null` (ignored) instead of
returning an error, matching the literal `"null"` workaround.
2026-05-18 12:13:19 -04:00
Lucas Manuel Rodriguez fef357ceb6 Move testing_utils.go to testing_utils_test.go for SCEP tests (#45619)
Resolves #45220

Here's one example why this is a good idea.

On `main`, the fleet production binary contains a private key used for
testing:
```
$ strings ./build/fleet | rg "BEGIN RSA TESTING"
proto3-----BEGIN RSA TESTING KEY-----
```
And it's gone when using this branch:
```
$ strings ./build/fleet | rg "BEGIN RSA TESTING"
<empty>
```

## Testing

- [X] QA'd all new/changed functionality manually.

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

* **Chores**
* Reorganized and centralized SCEP test helpers and servers for
certificate enrollment tests.
* Added embedded HTML fixtures to better emulate SCEP/NDES admin
responses (cache/full, permissions, password).
* Standardized UTF‑16 handling for test responses and improved test
server response handling.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45619?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-18 11:04:00 -03:00
fleet-release 6d42f1e467 Update Fleet-maintained apps (#45698) 2026-05-18 08:29:17 -05:00
fleet-releaseandallenhouchins 49313fe400 Update Fleet-maintained apps (#45684)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

## Updates

* Updated DBeaver Community to version 26.0.5 with new installation
files and verification checksums
* Updated Windsurf to version 2.3.9 with new installation files and
verification checksums

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45684?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-17 21:42:31 -05:00
fleet-release 622233ea70 Update Fleet-maintained apps (#45680) 2026-05-17 07:34:02 -05:00
fleet-releaseandallenhouchins ad5bb8a49e Update Fleet-maintained apps (#45673)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

## Release Notes

* **Chores**
* Updated application version metadata for Camtasia (26.1.2.16723),
Claude (1.7196.1), ExpressVPN (14.1.1.13156), Linear (1.30.2), and
Postman (12.10.6).

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45673?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-16 07:55:48 -05:00
fleet-releaseandallenhouchins 860a7de320 Update Fleet-maintained apps (#45666)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Updates**
* Updated version catalogs for Claude Desktop (macOS and Windows),
Tailscale, Teleport Connect, Teleport Suite, and Warp to recognize and
support newer application versions.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45666?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-15 21:46:35 -05:00
fleet-releaseandallenhouchins 9c6039e665 Update Fleet-maintained apps (#45652)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated application version definitions for Microsoft Edge (macOS) to
148.0.3967.70
* Updated application version definitions for Tailscale (Windows) to
1.98.2

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45652?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-15 16:18:17 -05:00
Allen Houchins 98f82ce19f Wrap FMA exists query in parens to fix OR precedence in patched policy (#45647)
## Summary

- `pkg/patch_policy/GenerateQueryForManifest` now wraps the
caller-supplied exists query in an inner set of parentheses before
appending the trailing `AND version_compare(...) < 0` clause. Without
the wrap, any `OR` in the exists body binds *after* the appended `AND`
(SQL precedence: `AND` > `OR`), producing an incorrect `patched` query.
The bug is currently only observable on `codex-cli` (uses `path = ... OR
path LIKE ...`) but would silently break any future FMA whose exists
query contains `OR`.
- All FMA outputs regenerated via `cmd/maintained-apps`. For AND-only
exists queries (the vast majority of existing FMAs), the new patched SQL
is semantically identical to the previous form — just with extra parens
around the WHERE body. `codex-cli/windows.json`'s OR clause is now
correctly grouped.
- `docker-desktop` is unchanged: its patched SQL is constructed inline
in the homebrew ingester at
[ingester.go:198-201](https://github.com/fleetdm/fleet/blob/claude/compassionate-merkle-afbd8a/ee/maintained-apps/ingesters/homebrew/ingester.go#L198-L201)
and bypasses the generator.

### Heads-up: upstream version drift bundled in

The regeneration also pulled in a handful of upstream version bumps that
landed since the last FMA run. These are real upstream changes, not
generator artifacts:

| App | Platform | Old → New |
|---|---|---|
| Figma | windows | 126.3.12 → 126.4.9 |
| GoLand | darwin | 2026.1.1 → 2026.1.2 |
| IntelliJ IDEA | darwin | 2026.1.1 → 2026.1.2 |
| RubyMine | darwin | 2026.1.1 → 2026.1.2 |
| Zed | darwin | 1.2.5 → 1.2.6 |

If you'd prefer these isolated from the paren-only change, let me know
and I'll split the PR.

### Code changes

- [pkg/patch_policy/patch_policy.go](pkg/patch_policy/patch_policy.go):
added `(` to `templateStart` and `)` to `templateEnd{Darwin,Windows}` so
`GenerateQueryForManifest` emits `... NOT EXISTS ((<before>) AND
version_compare(...) < 0);`.
-
[pkg/patch_policy/patch_policy_test.go](pkg/patch_policy/patch_policy_test.go):
updated existing expectations and added an OR-precedence case mirroring
codex-cli's exists query.
-
[ee/maintained-apps/ingesters/homebrew/ingester_test.go](ee/maintained-apps/ingesters/homebrew/ingester_test.go):
updated the generic `Patched` assertion (docker-desktop's hardcoded
expectation is unchanged — it bypasses the generator).
- 282 regenerated files under `ee/maintained-apps/outputs/**/*.json`.

## Test plan

- [x] `go test ./pkg/patch_policy/...` passes (incl. new OR case).
- [x] `go test ./ee/maintained-apps/...` passes.
- [x] `go vet ./pkg/patch_policy/... ./ee/maintained-apps/...` clean.
- [x] `cmd/maintained-apps` runs end-to-end with no errors against the
live Homebrew/winget APIs (with `NETWORK_TEST_GITHUB_TOKEN` set).
- [x] `git diff` audited: every diffed `patched` line on
`outputs/**/*.json` is a paren-only delta; non-`patched` deltas confined
to the 5 upstream version bumps listed above.
- [x] `docker-desktop/darwin.json` unchanged after regeneration.
- [ ] CI green.
2026-05-15 15:49:30 -05:00
9afdb43567 Add Codex CLI as a Windows FMA (#42397)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added comprehensive support for managing Codex CLI (OpenAI's coding
agent) on Windows systems, including automated installation,
uninstallation, and verification that installed binaries match expected
versions
* Integrated Codex CLI icon component into the software interface for
improved visual identification and enhanced user experience when
managing this application

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/42397)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 13:20:10 -05:00
George Karr 9416a81124 gkarr 44008 setup experience (#45202)
- **Adding vpp users table**
- **Adding ManagedAppleID to HostMDM tables to pull when installing vpp
apps to a BYOD user enrolled device**
- **Adding user create vpp apis**
- **Updating install application to support user enrolled devices**
- **Handling already installed gracefully**
- **Adding provision user logic**
- **Adding logic to associate assets on install**
- **Add license managemnt logic**
- **Adding self service ui**
- **Adding setup experience support**
- **Adding setup experience flow**
- **Fix issue with fleet's docker image in k8s environments (#44373)**
- **Changing how the appleid is captured to use idp mdm users**


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

* **New Features**
* Account-based User Enrollment (iOS/iPadOS) supports VPP and in‑house
.ipa installs, including self‑service installs.
* Enrollment now applies the selected Setup experience automatically for
user‑enrolled hosts.
* Installs and license associations are scoped to account user
associations (user‑scoped installs).

* **Bug Fixes**
* Improved error messaging for license/association failures (including
per‑user device cap cases).
  * Mobile UI: self‑service now shows user‑enrolled iOS/iPadOS apps.
* “Already installed” install results are treated as acknowledged
successes.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45202)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-15 12:35:26 -05:00
Allen Houchins 6cdb5b89e1 Update Camtasia uninstall script (#45603)
Improve Camtasia uninstall handling by updating trash() to glob-expand
target paths (using compgen), iterate matches (preserving spaces), and
move each found file/symlink to the user's Trash with unique
timestamp+rand+index suffixes. If no matches are found the script now
reports the path doesn't exist. Also update darwin.json to point to the
new uninstall script ref (252f6f0e) and include the updated script
content in the refs section.
2026-05-15 10:43:35 -05:00
fleet-releaseandallenhouchins 07412d0241 Update Fleet-maintained apps (#45608)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
  * Updated SAP Privileges to version 2.5.3.
  * Updated PyCharm to version 2026.1.2.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45608)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-15 10:43:16 -05:00
Allen Houchins 8c9f56f2ec Add XCreds as a macOS FMA (#45404)
Register XCreds as a maintained app: add Homebrew cask (Casks/xcreds.rb)
and API/input JSON, add app metadata
(ee/maintained-apps/inputs/homebrew/xcreds.json), and include outputs
(apps.json and outputs/xcreds/darwin.json) with installer/uninstall
scripts and checks. Also add frontend icon component and asset
(XCreds.tsx, app-icon-xcreds-60x60@2x.png) and wire the icon into the
icons index mapping.
2026-05-15 10:34:13 -05:00
fleet-releaseandallenhouchins 2c47f8ec05 Update Fleet-maintained apps (#45582)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated application metadata for four macOS tools: BetterDisplay
(4.2.3 → 4.3.3), Mattermost (6.1.2 → 6.2.0), WebStorm (2026.1.1 →
2026.1.2), and Zed (1.2.4 → 1.2.5) with corresponding installer URLs and
checksums.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45582)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-15 07:47:01 -05:00
fleet-releaseandallenhouchins ed5f6d1bdd Update Fleet-maintained apps (#45571)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
  * Updated Dialpad managed application metadata to version 2605.0.4
  * Updated Postman managed application metadata to version 12.10.6
* Updated Warp managed application metadata to version
0.2026.05.13.09.15.01

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45571)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-15 07:26:06 -05:00
fleet-releaseandallenhouchins 91a5b8143a Update Fleet-maintained apps (#45568)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
  * Updated Ollama macOS to version 0.24.0
  * Updated Ollama Windows to version 0.24.0
  * Updated Zed macOS to version 1.2.4

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45568)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-15 00:24:29 -05:00
fleet-releaseandallenhouchins b5e52ef6cb Update Fleet-maintained apps (#45565)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated macOS AWS VPN Client to version 5.3.5 with corresponding
installer URL and security checksum updates.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45565)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-14 22:06:11 -05:00
ef3acc810a Update Fleet-maintained apps (#45562)
Automated ingestion of latest Fleet-maintained app data.

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

* **Chores**
  * Updated Arc to 1.147.0
  * Updated Linear to 1.30.0 and switched installer format to dmg
  * Updated Okta Verify to 9.63.0
  * Updated Postman to 12.10.5
  * Updated Zen Browser to 1.19.13b

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45562)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
Co-authored-by: Allen Houchins <allenhouchins@mac.com>
2026-05-14 21:35:41 -05:00
7d33110476 Update Fleet-maintained apps (#45503)
Automated ingestion of latest Fleet-maintained app data.

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

* **Chores**
* Bumped installer metadata (version, download URLs, checksums, patch
checks) for multiple maintained apps to new releases.
* Adjusted Homebrew ingester logic to handle Camtasia year-prefixed
versions.
* **Bug Fixes**
* macOS uninstall cleanup updated for Camtasia to remove an additional
shared-filelist and preserve user files by moving them to Trash.
* Windows Docker install/uninstall improved: per-user silent install,
registry polling for completion, and more robust registry lookup/error
handling.
* **Tests**
  * Added unit tests for Camtasia version transformation.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45503)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
Co-authored-by: Allen Houchins <allenhouchins@mac.com>
2026-05-14 15:56:26 -05:00
Jonathan Katz 4f59f39c9f VPP/in-house app managed configuration bug fixes and integration test (#45452)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43973

Fixes a few bugs regarding managed app configurations. Includes a few
cherry-picks for commits that were supposed to be merged, but got
overwritten by subsequent PRs that didn't get pushed properly while
working with the github stack.
Also includes some more integration test cases. 

# Checklist for submitter

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

## Testing

- [x] Added/updated automated tests
- [ ] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

- [x] QA'd all new/changed functionality manually



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

## Summary by CodeRabbit

* **New Features**
* Improved error handling for VPP managed app configurations that
reference unresolvable Fleet variables.

* **Bug Fixes**
  * Fixed cleanup of VPP app configuration data during team deletion.
* In-house app configurations now apply only to their specific installer
instead of sibling installers.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45452)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-14 13:51:56 -04:00
Lucas Manuel Rodriguez 057e1615b4 Move mysql/testing_utils.go to a separate mysql/mysqltest package (#45406)
Resolves #45220 (one of several PRs to achieve removing "testing"
package as dependency in production binary)

## Testing

- [x] QA'd all new/changed functionality manually.

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

* **Tests**
* Switched many tests to use a dedicated MySQL test helper package and
consolidated test-only utilities for datastore setup, cleanup, ad‑hoc
SQL, certificate generation, and activity/aggregation helpers.
* Added expanded test utilities for replication, DB connections and test
data seeding to improve integration-test reliability.

* **Chores**
  * No production behavior or user-facing APIs were changed.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45406)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-14 11:18:20 -03:00
fleet-releaseandallenhouchins f26358313b Update Fleet-maintained apps (#45447)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated version tracking metadata for maintained applications to align
with the latest available releases across macOS and Windows platforms.
Includes updates for Balena Etcher, Box Drive, Brave Browser, Cursor,
Docker Desktop, Loom, Rancher Desktop, Spotify, Tailscale, Webex, and
Zed. Metadata now reflects current stable versions.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45447)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-13 21:31:50 -05:00
Allen Houchins ab39208e1b Improve Docker Desktop installer script (#45425)
Enable strict shell flags and add a trap-based cleanup for DMG
mountpoints to ensure detach and removal on exit. Add explicit error
handling for hdiutil attach (fail fast with message) and reset
MOUNT_POINT after detach. Harden app quit/relaunch logic by using safer
variable assignments, providing fallbacks for osascript/stat, and
returning explicit status codes. Minor safety improvements (sudo cp, set
-euo pipefail) to make the installation script more reliable.
2026-05-13 21:03:04 -05:00
Allen Houchins d96355a495 Update Docker Desktop FMA install script (#45244)
This pull request improves the handling and installation of Docker
Desktop in Fleet, with a focus on addressing issues caused by leftover
`.back` app bundles after in-app updates. It also introduces a custom
installation script for Docker Desktop to ensure correct app replacement
and relaunch behavior. The test coverage and configuration for Docker
Desktop have been updated accordingly.

**Docker Desktop patch policy and installation improvements:**

* Updated the patch policy query for Docker Desktop in `ingester.go` to
ignore any `.back` app bundles, preventing false "out of date" patch
status when stale bundles are present after self-updates.
* Added a custom install script (`docker_desktop_install.sh`) that
safely quits Docker Desktop, removes `.back` bundles, moves the new app
into place, relaunches the app if it was running, and sets up CLI
symlinks.
* Linked the new install script in the Docker Desktop Homebrew input
JSON (`docker-desktop.json`).
* Updated the Docker Desktop output JSON to use the improved patch query
and reference the new install script.

**Test enhancements:**

* Expanded test coverage in `ingester_test.go` to include Docker
Desktop, verifying the correct patch and exists queries for this special
case.
[[1]](diffhunk://#diff-82958e1ecc7af4c2032fcb933320788e6f5e663eb18ee6cc83df106f4df960e0L90-R90)
[[2]](diffhunk://#diff-82958e1ecc7af4c2032fcb933320788e6f5e663eb18ee6cc83df106f4df960e0R123)
[[3]](diffhunk://#diff-82958e1ecc7af4c2032fcb933320788e6f5e663eb18ee6cc83df106f4df960e0R153-R164)
2026-05-13 15:22:41 -05:00
fleet-releaseandallenhouchins 52379633a6 Update Fleet-maintained apps (#45395)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated version metadata and installer checksums for 12 maintained
applications including Camtasia, Cavalry, Docker Desktop, draw.io,
Google Chrome, Google Drive, Intune Company Portal, Microsoft Teams,
Ollama, Visual Studio Code, Warp, and WhatsApp.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45395)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-13 13:58:24 -05:00
Sharon Katz 4c29a7aebc CIS Benchmarks: Update Windows 11 to v5.0.1 (#45173)
Closes #39096

## Summary

Updates the CIS Windows 11 Enterprise benchmark policies from v4.0.0 to
v5.0.1.

### Phase 1 -- Title updates: 42 existing policy titles updated to match
v5.0.1
### Phase 2 -- New L1 policies: 17 added

New policies added:
- 18.5.2 MSS: DisableIPSourceRouting IPv6
- 18.5.3 MSS: DisableIPSourceRouting
- 18.6.7.3 Audit insecure guest logon (Lanman Server)
- 18.6.7.5 Enable remote mailslots (Lanman Server)
- 18.6.7.6 Mandate the minimum version of SMB (Lanman Server)
- 18.6.8.1 Audit insecure guest logon (Lanman Workstation)
- 18.6.8.5 Enable remote mailslots (Lanman Workstation)
- 18.6.8.6 Mandate the minimum version of SMB (Lanman Workstation)
- 18.6.21.1 Minimize simultaneous connections
- 18.6.21.2 Prohibit non-domain connections
- 18.6.23.2.1 Auto-connect to hotspots
- 18.7.5 Configure RPC listener settings (auth)
- 18.7.7 Configure RPC over TCP port
- 18.9.17.1 Enable/disable CLFS logfile authentication
- 18.10.73.1 Allow Recall to be enabled
- 18.11.1 Disable HTTP proxy features: Disable WPAD
- 18.11.2 Disable HTTP proxy features: Disable proxy authentication

### Additional fixes
- Fixed 16 policies where resolution text was inconsistent with policy
name/query
- Fixed YAML colon escaping for policy names containing colons (e.g.
"Domain member:", "Microsoft network client:")
- Added GP removal behavior note to README
- Validated with fleetctl apply (572 policies, no errors)

### Policy count: 572 (was 555)

---

## Testing

### Methodology

New policies tested on **Windows 11 Enterprise 24H2** VM
(DESKTOP-UUIQ1EM, build 10.0.26100.4349) via SSH + registry-direct
testing.

Three test cases per policy:
- PASS value -> query returns result
- FAIL value -> query returns empty
- NOT SET (deleted) -> query returns empty

### Results: All new policies pass

| # | CIS | Policy | Registry Key | FAIL | PASS |
|---|-----|--------|--------------|------|------|
| 1 | 18.9.17.1 | CLFS logfile authentication |
ClfsAuthenticationChecking=1 | PASS | PASS |
| 2 | 18.10.73.1 | Allow Recall to be enabled | AllowRecallEnablement=0
| PASS | PASS |
| 3 | 18.11.1 | Disable WPAD | DisableWpad=1 | PASS | PASS |
| 4 | 18.11.2 | Disable proxy authentication |
DisableProxyAuthenticationSchemes=256or287 | PASS | PASS |

### Import validation

fleetctl apply confirms all 572 policies parse and import successfully.

Test environment: Windows 11 Enterprise 24H2 (10.0.26100.4349), osqueryd
5.23.0 via fleetd.

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

* **Updates**
* Standardized many Windows 11 CIS policy names and UI text: explicit
principals (e.g., "No One"), expanded denial/user-right lists, and
normalized punctuation and prefixes (e.g., "Domain member:"). Renamed an
audit entry and aligned expected outcomes.

* **New Features**
* Added 30+ Windows CIS policies covering IP source routing protections,
SMB/Lanman guest and dialect controls, Network/WLAN hardening, RPC/print
mitigations, logfile/auth protections, Recall disablement, and
proxy/WPAD restrictions.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45173)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-13 10:43:43 -04:00
Jordan Montgomery 8ae22b5586 Add npm min release age (#45268)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Related to, but does not resolve, #45267

Adds a 12h cooldown period such that when npm is resolving dependencies
it will not resolve anything released less than 12 hours ago. This
doesn't apply globally within the fleet project because some portions
use yarn which #45267 will take care of however this does add it to our
CI jobs and the .npmrc files for projects that use npm

I was going to set this as NPM_CONFIG_MIN_RELEASE_AGE in a github EV but
that won't automatically set it on every runner so leaving it in here
for now

As far as QA local builds and CI are both green. Tested
NPM_CONFIG_MIN_RELEASE_AGE=0.5 and min-release-age=0.5(in npmrc) locally
using the npm package feed https://registry.npmjs.org/-/rss to verify
that recently updated packages either chose an older version OR the
update was blocked if I tried to choose a newer one

# Checklist for submitter

## Testing

- [x] QA'd all new/changed functionality manually


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

## Summary by CodeRabbit

* **Chores**
* Enhanced npm supply-chain security by implementing package
installation policies across build workflows and configuration files to
exclude packages released within the last 12 hours.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45268)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-13 10:20:13 -04:00
fleet-releaseandallenhouchins 99b8a094f6 Update Fleet-maintained apps (#45334)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Refreshed version metadata and installer information for over 25
third-party applications, including Slack, Discord, Docker Desktop,
Claude, Firefox, Grammarly, Granola, MongoDB Compass, Signal, Telegram,
Teleport, Visual Studio Code, Notion, and others. Updates include new
installer URLs, updated security checksums, and modified version
comparison logic across macOS and Windows platforms.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45334)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-12 21:59:02 -05:00
Victor Lyuboslavsky ca648e9c04 EUA (no Apple MDM) UI fix (#45212)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #44801

Fixed remaining issue setting end user authentication in the UI.
The root cause was that the frontend was always sending
`enable_managed_local_account : false` even when macOS MDM was disabled.

Fix:
<img width="756" height="363" alt="image"
src="https://github.com/user-attachments/assets/5f88797d-c5c3-4c03-9048-c8ee2981c374"
/>

# Checklist for submitter

## Testing

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

For unreleased bug fixes in a release candidate, one of:

- [x] Confirmed that the fix is not expected to adversely impact load
test results

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

* **Bug Fixes**
* Automatic syncing of "Lock end user info" when toggling End User
Authentication now only runs when Apple MDM is enabled and configured
(with an exception when EUA is being disabled to preserve behavior).
  * Save payloads omit Apple-only fields unless Apple MDM is configured.

* **UI**
* "Lock end user info" checkbox shows an Apple MDM–gated tooltip and is
disabled when Apple MDM is not configured.

* **Tests**
* Added coverage for Apple MDM–gated behaviors and saved-payload
variations.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45212)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-12 16:59:22 -05:00
Lucas Manuel Rodriguez 393007ede1 First move of server/service to server/service/svctest to prevent testing code in Fleet's production binary (#45221)
**Related issue:** Resolves #45220 (one of many small PRs)

## Testing

- [x] QA'd all new/changed functionality manually. (Ran basic smoke
testing.)

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

* **Tests**
* Added a consolidated test utilities package to boot full test servers,
seed users, retrieve auth tokens, and provide common mocks for
integration/service tests.
* Updated integration and service tests to use the new helpers for more
consistent, reliable test setup and wiring.

* **Chores**
* Centralized and reorganized test configuration types and options, and
standardized test wiring for clearer, maintainable test setup.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45221)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-12 17:43:37 -03:00
Carloandjkatz01 55636b3ef6 iOS/iPadOS managed config: GitOps (#43969) (#44933)
Part of #38790. Stacked on top of #44932.

Closes #43969.

`fleetctl gitops` reads `configuration.path` for iOS / iPadOS VPP apps
and in-house `.ipa` apps, validates the file via
`fleet.ValidateAppleAppConfiguration`, and stores the bytes through the
service layer.

`fleetctl generate-gitops` emits `configuration.path` for apps that have
a stored configuration, writing the XML to
`lib/<team>/software/<app-slug>-config.xml`. Apps without configuration
omit the block entirely.

Round-trip integration tests
(`cmd/fleetctl/integrationtest/gitops/software_test.go`) cover apply +
generate for both VPP and in-house, plus a negative case for invalid
configuration content.

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

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added managed app configuration support for enterprise software
deployments through GitOps
* Configurations now support platform-specific formats: XML for
iOS/iPadOS, JSON for Android
* Configuration validation ensures compatibility and prevents invalid
variable references

* **Tests**
* Added integration tests for configuration handling in software
deployment workflows

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/44933)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: jkatz01 <yehonatankatz@gmail.com>
2026-05-12 14:15:25 -04:00
47cc3256c1 iOS/iPadOS managed config: service wiring (#43965) (#44932)
Part of #38790. Stacked on top of #44931.

Closes #43965.

Wires managed configuration through the existing REST endpoints (`POST
/api/.../app_store_apps`, `PATCH
/api/.../software/titles/:id/app_store_app`, in-house `.ipa` upload /
update). Validation runs at the service layer for iOS / iPadOS; macOS
VPP installs silently drop the field. Wire format: a JSON-encoded string
of the XML plist on POST/PATCH and on GET single-title responses (not
base64).

Includes `server/service/integration_apple_vpp_config_test.go` with
end-to-end coverage: add / update with valid plist, allowed
`$FLEET_VAR_HOST_UUID`, omit-field-no-change, **`configuration: null` →
row deleted** (regression test for the clear-on-null fix in #43964),
malformed XML → 422, disallowed Fleet variable → 422, and macOS
silent-drop pre- / post-validation.

Also drops a stray `fmt.Println("auth")` in `SoftwareTitleByID`'s
authorization-failure branch.

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

## Summary by CodeRabbit

* **New Features**
* Added support for managed app configuration on iOS/iPadOS devices
through VPP and in-house installers.
* Configuration now validates plist format and detects disallowed Fleet
variables.
  
* **Bug Fixes**
  * macOS apps now correctly ignore configuration settings as expected.

* **Tests**
* Added comprehensive integration tests for Apple VPP and in-house
installer configuration workflows.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/44932)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: jkatz01 <yehonatankatz@gmail.com>
Co-authored-by: Jonathan Katz <44128041+jkatz01@users.noreply.github.com>
2026-05-12 13:59:16 -04:00
RachelElysia 7e875eac78 Fleet UI: return app name on success of adding android app (#44068) 2026-05-12 13:51:12 -04:00
Sharon KatzandMagnus Jensen 0276662545 Fix MDM SSO callback 'missing profile' error for Android enrollment (#45046)
Closes #45024

## Summary

- Fixed the MDM SSO callback handler returning a `"missing profile:
missing profile"` error when an Android device enrolls via SSO (OTA
enrollment) on a Fleet instance that does **not** have Apple MDM
configured.
- Refactored all MDM SSO initiator magic strings (`"ota_enroll"`,
`"setup_experience"`, `"account_driven_enroll"`) into named constants
(`fleet.SSOInitiatorOTAEnroll`, etc.) to prevent typos and missed cases
— which is the class of bug that caused this issue.

## Code walkthrough

### The bug

The bug is in `ee/server/service/mdm.go` in
`mdmSSOHandleCallbackAuth()`.

**The flow:**
1. Android enrollment hits `/enroll?enroll_secret=xxx` → frontend calls
`InitiateMDMSSO` with initiator `"ota_enroll"`
(`server/service/frontend.go:248`)
2. User authenticates at the SAML IdP
3. The SSO callback arrives at `MDMSSOCallback` → calls
`mdmSSOHandleCallbackAuth`
4. After successful SAML auth, the function checks early-exit
conditions:
- Line 1133: account-driven enrollment (`originalURL ==
appleMDMAccountDrivenEnrollmentUrl`) → **no match** for OTA
- Line 1139: `Initiator != "setup_experience"` → **true** for
`"ota_enroll"` → enters the block
5. Line 1140: calls `getAutomaticEnrollmentProfile()` → returns `nil`
because **no Apple MDM is configured**
6. Line 1144–1146: `depProf == nil` → **returns `"missing profile"`
error**

Note that `MDMSSOCallback` (the caller) already has a guard at line 931
that correctly skips the Apple MDM verification for `/enroll?` paths:
```go
if !strings.HasPrefix(originalURL, "/enroll?") && ssoRequestData.Initiator != "setup_experience" {
    if err := svc.VerifyMDMAppleConfigured(ctx); err != nil { ... }
}
```

But `mdmSSOHandleCallbackAuth` was missing the equivalent guard — it
unconditionally tried to fetch the Apple DEP profile for any
non-`setup_experience` initiator.

### The fix

Adds an early return for OTA enrollments (where `originalURL` starts
with `/enroll?`), matching the existing pattern for account-driven
enrollments right above it. OTA enrollments don't use the Apple DEP
profile token.

### The refactor

Replaced all raw initiator string literals across the backend with named
constants defined in `server/fleet/app.go`:

| Constant | Value | Used by |
|---|---|---|
| `fleet.SSOInitiatorOTAEnroll` | `"ota_enroll"` | `/enroll` page
(Android, BYOD iPhone/iPad) |
| `fleet.SSOInitiatorSetupExperience` | `"setup_experience"` | Orbit
agent (macOS Setup Assistant) |
| `fleet.SSOInitiatorAccountDrivenEnroll` | `"account_driven_enroll"` |
Apple account-driven MDM enrollment |

Constants are in `server/fleet/` (not `server/sso/`) so orbit can import
them without pulling in Redis dependencies.

**Files changed:**
- `ee/server/service/mdm.go` — 6 string replacements (switch cases +
comparisons)
- `server/service/frontend.go` — 1 replacement
- `orbit/cmd/orbit/orbit.go` — 1 replacement
- `server/service/testing_client.go` — 1 replacement
- `server/service/integration_mdm_test.go` — 1 replacement

## Local reproduction

### Setup
1. Started dev server: `build/fleet serve --dev --dev_license`
2. Infrastructure: MySQL, Redis, SimpleSAML IdP via `docker compose up`
3. Created admin user and enroll secret
4. Configured MDM SSO (`entity_id: mdm.test.com`, SimpleSAML IdP at
`localhost:9080`)
5. Set `enable_end_user_authentication: true` directly in DB (API blocks
this without Apple MDM — matches customer state)
6. **Did NOT configure Apple MDM** — only SSO + EUA, simulating
Android-only instance

### Steps
1. `GET https://localhost:8080/enroll?enroll_secret=test_enroll_secret`
→ 303 redirect to SimpleSAML IdP
2. Completed SAML login programmatically (user: `sso_user`, pass:
`user123#`)
3. `POST https://localhost:8080/api/v1/fleet/mdm/sso/callback` with the
SAMLResponse

### Before fix
```
=== CALLBACK RESULT ===
Status: HTTP/2 303
Location: /mdm/sso/callback?error=true

=== SERVER LOGS ===
ts=2026-05-08T16:53:49Z level=error component=http method=POST
  uri=/api/v1/fleet/mdm/sso/callback took=12.148708ms
  err="missing profile: missing profile"
```

### After fix
```
=== CALLBACK RESULT ===
Status: HTTP/2 303
Location: /enroll?enroll_secret=test_enroll_secret&enrollment_reference=7c67326c-...&initiator=ota_enroll&profile_token=

=== SERVER LOGS ===
ts=2026-05-08T17:27:54Z level=info component=http method=POST
  uri=/api/v1/fleet/mdm/sso/callback took=15.973ms
```

No errors. Successful redirect back to the enrollment page with the
enrollment reference.

## Integration test

Added `TestOTAEnrollSSOWithoutAppleDEPProfile` which:
1. Configures SSO and creates a team with IdP enabled
2. **Deletes all Apple DEP enrollment profiles** to simulate an
Android-only instance
3. Runs the full OTA enrollment SSO flow (GET `/enroll` → SAML IdP login
→ callback)
4. Verifies the callback redirects to `/enroll?...` with
`enrollment_reference` and `initiator=ota_enroll` (not `?error=true`)

Confirmed the test **fails without the fix** (`err="missing profile:
missing profile"`) and **passes with the fix**.

Also added a `LoginOTAEnrollSSOUser` test helper that drives the
complete OTA SSO flow starting from `GET /enroll` through SAML IdP login
to the callback, using a single cookie jar.

## Test plan

- [ ] Verify Android SSO enrollment works on an instance with **only**
Android MDM configured (no Apple MDM)
- [ ] Verify Apple DEP enrollment with SSO still works (the DEP profile
path is unchanged)
- [ ] Verify Apple OTA enrollment with SSO still works (also uses
`/enroll?` path)
- [ ] Verify account-driven enrollment with SSO still works (has its own
early return)
- [ ] Verify setup experience SSO still works (uses `Initiator ==
"setup_experience"`)

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

* **Bug Fixes**
* Resolved a regression where OTA enrollment via SSO could return a
"missing profile" error on Android when Apple MDM is not configured; OTA
SSO now redirects correctly to the enrollment flow.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45046)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
2026-05-12 12:42:16 -04:00
fleet-releaseandallenhouchins 7e54e101a0 Update Fleet-maintained apps (#45229)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated application package metadata for Firefox (150.0.3), Granola
(7.205.0), ProtonVPN (6.5.1), Royal TSX (6.4.3), TablePlus (6.9.6), and
WhatsApp (26.19.15)

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45229)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-12 09:36:35 -05:00
fleet-releaseandallenhouchins 957089f950 Update Fleet-maintained apps (#45225)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
  * Updated TablePlus (macOS) to version 6.9.2
  * Updated Telegram Desktop (Windows) to version 6.8.2
  * Updated Warp (macOS) to version 0.2026.05.06.15.42.04

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45225)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-12 08:58:27 -05:00
fleet-releaseandallenhouchins 483148c9e6 Update Fleet-maintained apps (#45209)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated ChatGPT Atlas macOS package metadata with new version and
installer information
* Updated Cloudflare WARP macOS package metadata with new version and
installation scripts
* Updated Discord Windows package metadata with new version and
installer information
  * Updated OpenVPN Connect macOS installation script configuration
* Updated pgAdmin4 macOS package metadata with new version and installer
information

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45209)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-11 22:31:07 -05:00
Allen Houchins a6d609ec76 Add OpenVPN Connect as a macOS FMA (#45174)
Add OpenVPN Connect to maintained apps: create a Homebrew input manifest
and add an apps.json entry. Add a darwin output with version 3.8.1
(installer URL, sha256) plus install/uninstall script refs that handle
quitting/relaunching and cleanup. Add frontend icon component and
register it in the icon map, and include the app icon asset. Default
category set to Productivity.
2026-05-11 22:18:25 -05:00
fleet-releaseandallenhouchins e03b740e59 Update Fleet-maintained apps (#45171)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
  * Updated Docker Desktop macOS from version 4.72.0 to 4.73.0
  * Updated Loom macOS from version 0.346.4 to 0.347.4

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45171)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-11 15:00:07 -05:00
Victor Lyuboslavsky 1213e5da12 Fixed validation that rejected enabling end user authentication on Fleet deployments without Apple MDM configured (#45162)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #44801 

Note there is a related bug:
https://github.com/fleetdm/fleet/issues/45170

# 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`.

## Testing

- [x] QA'd all new/changed functionality manually


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

## Summary by CodeRabbit

* **Bug Fixes**
* End user authentication can now be enabled for Windows-only and
Linux-only fleets without requiring macOS MDM configuration.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45162)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-11 14:55:16 -05:00
fleet-releaseandallenhouchins c6407f9d24 Update Fleet-maintained apps (#45168)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated Inkscape 1.4.4 installer package information to point to the
latest available version.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45168)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-11 13:26:40 -05:00
fleet-releaseandallenhouchins 8aa517ceea Update Fleet-maintained apps (#45158)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated Notepad++ to version 8.9.5 with corresponding installer and
checksum updates.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45158)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-11 12:56:58 -05:00
fleet-release 0f94afe29b Update Fleet-maintained apps (#45131) 2026-05-11 08:16:59 -05:00
fleet-releaseandallenhouchins 18267b8641 Update Fleet-maintained apps (#45120)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated Cursor for macOS and Windows to version 3.3.30 with new
installer URLs and verification checksums.
  * Updated Draw.io Desktop for macOS to version 30.0.0.
  * Updated OrbStack for macOS to version 2.1.3.
* Refreshed package metadata and installation queries for all updated
applications.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/fleetdm/fleet/pull/45120)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-10 20:40:58 -05:00
fleet-release ef9e95967c Update Fleet-maintained apps (#45103) 2026-05-09 07:42:14 -05:00