Commit Graph
26238 Commits
Author SHA1 Message Date
Magnus Jensen 17e115a517 add mdm configured endpoints for DDM assets for testing (#49633)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #

Saw I missed these when doing the DDM assets backend

# Checklist for submitter

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

## Testing

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


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

## Summary by CodeRabbit

* **Tests**
* Expanded endpoint coverage for device management asset routes,
including listing, retrieving, deleting, and batch creation.
  * Documented a remaining limitation affecting multipart asset uploads.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-21 15:14:16 +02:00
Jordan MontgomeryandandymFleet bd8f1e8afa 48343 edit config profile UI (#49333)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #48343

# Checklist for submitter

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

No changes file as this is covered by the base feature branch

- [ ] 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), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [x] Timeouts are implemented and retries are limited to avoid infinite
loops
- [x] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [x] Added/updated automated tests
- [x] 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**
* Added the ability to edit existing configuration profiles, including
profile contents and targeting labels.
* Added file validation for supported profile formats and clearer
edit-specific error messages.
* Added activity feed entries and filtering for edited configuration
profiles.
* Updated profile actions with an edit option and improved team-specific
label handling.

* **Bug Fixes**
  * Improved label data refreshing when switching between teams.

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

---------

Co-authored-by: andymFleet <andrewmellor@fleetdm.com>
2026-07-21 08:24:30 -04:00
Andrew MellorandJordan Montgomery 15a0f4b201 48342 edit config profile endpoint (#49141)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #48342

# 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), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## 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**
* Added support for editing existing Apple, Windows, and Android
configuration profiles through the API.
* Supports updating profile content, names where applicable, label
targeting, and Fleet variable associations without replacing the profile
identity.
  * Added support for editing Apple DDM declarations.
  * Added activity tracking for configuration profile edits.
* **Bug Fixes**
* Added validation for unsupported edits, invalid labels, duplicate
names, missing profiles, and protected Fleet-managed profiles.

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

---------

Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
2026-07-21 08:20:03 -04:00
Mike Thomas d477c44098 Add AI in IT report PDF (#49634)
Adds state of AI in IT report PDF.
2026-07-21 19:42:59 +09:00
fleet-releaseandallenhouchins b9c66c036c Update Fleet-maintained apps (#49625)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Updates**
* Refreshed maintained app packages with the latest releases and
verified download metadata.
* Updated Anka, AWS CLI, Claude, Companion, DbGate, Discord, Firefox
Nightly, FontBase, Jami, Kiro, Loom, MacPacker, Notepad, Nova, OpenCode
Desktop, Origami Studio, Remote Desktop Manager, Reqable, Slack,
Spokenly, Superwhisper, Teleport Connect, Teleport Suite, and Typora.
* Improved update detection so newer versions are correctly recognized
across macOS and Windows.
* Updated installation handling where required for Anka and Teleport
Suite.

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

---------

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-20 22:28:12 -05:00
EricandMike Thomas 8e97e62a22 Website: Add case study, update card links on customers page (#49448)
Changes:
- Added a case study from Primo
- Added a link to the new case study to the /customers page

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

- **New Features**
- Added a new Primo case study card to the Customers page, including its
logo, description, and navigation link.
- **Bug Fixes**
- Corrected the Customers page template block comment syntax to improve
rendering consistency.
- Updated case-study quote author images to display with a circular
shape.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-07-20 19:07:47 -05:00
gattaniparag 8d0d59ff2f Update leadership.md (#49570)
Changed typo "manger" to "manager"

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #

# Checklist for submitter

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

- [ ] 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.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [ ] 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)

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

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

- [ ] Confirmed that the fix is not expected to adversely impact load
test results
- [ ] Alerted the release DRI if additional load testing is needed

## Database migrations

- [ ] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [ ] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [ ] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).

## New Fleet configuration settings

- [ ] Setting(s) is/are explicitly excluded from GitOps

If you didn't check the box above, follow this checklist for
GitOps-enabled settings:

- [ ] Verified that the setting is exported via `fleetctl
generate-gitops`
- [ ] Verified the setting is documented in a separate PR to [the GitOps
documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485)
- [ ] Verified that the setting is cleared on the server if it is not
supplied in a YAML file (or that it is documented as being optional)
- [ ] Verified that any relevant UI is disabled when GitOps mode is
enabled

## fleetd/orbit/Fleet Desktop

- [ ] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [ ] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [ ] Verified that fleetd runs on macOS, Linux and Windows
- [ ] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))
2026-07-20 18:48:13 -05:00
Eric 632b4d924b Website: use shared Google API auth client in android proxy endpoints. (#47810)
Closes: https://github.com/fleetdm/fleet/issues/46496

Changes:
- Updated the website's custom hook to create a Google API auth client
and make it available at `sails.googleAuthClient`
- Updated Android proxy endpoints to use the shared Google API auth
client.

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

## Summary by CodeRabbit

* **Refactor**
* Optimized Google API authentication handling for Android management
features to improve system performance and reliability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-20 18:38:55 -05:00
Noah Talerman 5e19bfc4a2 Notifying stakeholders about stories pushed (#49608)
- Up to the Engineering Manager (EM) for stories in the current release
cycle
- Up to the Product Designer (PD) for stories in future release cycles
2026-07-20 18:38:39 -04:00
Lucas Manuel RodriguezandEric df36ce891a Website: don't require an API key on Microsoft compliance proxy requests (#49434)
**Related issue:** Resolves #47699

## Testing

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

## What & why

Entra conditional access is becoming available to self-hosted Fleet
Premium instances, which don't have the shared `MS-API-KEY` that
cloud-managed customers use. This makes the `microsoft-proxy/*`
endpoints reachable without that key by dropping the `is-cloud-customer`
policy gate (and the now-unused shared-secret config comments / policy
file).

A replacement auth mechanism for the proxy is tracked separately in
#47702.

> Split out of #49414 so the website change can ship independently.


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

* **Security / Access Control**
* Updated Microsoft proxy access handling to bypass the prior
cloud-customer check for matching requests.
* **Configuration**
* Removed unused cloud-customer compliance proxy shared-secret settings.
* **Bug Fixes**
* Improved compliance partner tenant creation by detecting existing
tenants using the provided Entra tenant ID and corrected the success
message text.
* **Data Model**
* Removed uniqueness enforcement for stored fleet instance URLs to
prevent avoidable conflicts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2026-07-20 15:38:28 -05:00
Carlo fb0e817bd0 Show .py script-only packages as available for install on macOS hosts (#49457)
**Related issue:** Resolves #49455

Offer `.py` script-only packages on macOS hosts, matching `.sh`.

# Checklist for submitter

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## 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**
* Python (`.py`) installer packages are now treated as compatible
alongside shell (`.sh`) installers on macOS and Linux.
* Python installers can now appear in software availability,
self-service installation, and setup experience selections.
* Windows behavior remains unchanged (Unix-script installers are
excluded).

* **Bug Fixes**
* Improved cross-platform compatibility matching for Unix-like hosts
when choosing the first eligible installer package.

* **Tests**
* Added and expanded unit/integration coverage for `.py` installer
compatibility across platforms and flows.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-20 15:13:50 -04:00
Noah Talerman ee2ceeab3d Fix "AB issue" icon color (#49596)
For the following bug:
- https://github.com/fleetdm/fleet/issues/49597
2026-07-20 15:00:06 -04:00
github-actions[bot]andlucasmrod 350b793111 Update versions of fleetd components in Fleet's TUF [automated] (#49598)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2026-07-20 15:55:32 -03:00
fleet-releaseandallenhouchins 2df68b8047 Update Fleet-maintained apps (#49577)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Updates**
* Updated maintained app packages to newer releases across macOS and
Windows, including Arc, Bruno, Docker Desktop, Firefox Nightly,
Grammarly, Granola, Hive, Podman Desktop, QSpace Pro, Readest, Reqable,
Typora, and Zoom.
* Refreshed installer download links and verification checksums for the
updated releases.
  * Corrected the Adobe Creative Cloud Windows installer checksum.
* Improved Grammarly Desktop removal behavior to clean up related
services and application data.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-20 13:38:22 -05:00
Luke Heath d91d8d7cc7 Remove outdated scrum ritual docs (#49578) 2026-07-20 11:06:15 -06:00
Carlo 5aac3d6952 Dedupe transitive uuid to 14.0.0 (#49566) 2026-07-20 10:48:29 -06:00
Noah Talerman efe6d539f7 Remove "User story review" (#48443)
- User story review happens at daily standup
2026-07-20 12:00:05 -04:00
Noah Talerman c72f47ed17 Follow up: Styling bugs on end user enrollment (BYOD) page and Add hosts modal (#49572)
- @noahtalerman: Follow up for the [this
bug](https://github.com/fleetdm/fleet/issues/48967) because @Brajim20
discovered we hadn't fixed the issue for macOS:
https://github.com/fleetdm/fleet/pull/48968#issuecomment-5024066554




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

## Summary by CodeRabbit

* **Style**
* Updated the macOS panel enrollment link input color for improved
visual consistency.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-20 11:57:36 -04:00
Michael Pinto 4643b4938d Added CSM task "Submit a feature request for CSA review" (#49492)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #

# Checklist for submitter

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

- [ ] 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.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [ ] 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)

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

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

- [ ] Confirmed that the fix is not expected to adversely impact load
test results
- [ ] Alerted the release DRI if additional load testing is needed

## Database migrations

- [ ] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [ ] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [ ] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).

## New Fleet configuration settings

- [ ] Setting(s) is/are explicitly excluded from GitOps

If you didn't check the box above, follow this checklist for
GitOps-enabled settings:

- [ ] Verified that the setting is exported via `fleetctl
generate-gitops`
- [ ] Verified the setting is documented in a separate PR to [the GitOps
documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485)
- [ ] Verified that the setting is cleared on the server if it is not
supplied in a YAML file (or that it is documented as being optional)
- [ ] Verified that any relevant UI is disabled when GitOps mode is
enabled

## fleetd/orbit/Fleet Desktop

- [ ] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [ ] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [ ] Verified that fleetd runs on macOS, Linux and Windows
- [ ] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))
2026-07-20 11:26:31 -04:00
Allen Houchins 4303188e2d Update custom-tap casks: Druva inSync 8.1.3, Fleet Desktop 1.3.4, Zoom Rooms 7.1.0.13088 (#49563)
**Related issue:** NA — routine custom-tap cask maintenance

## What

Bump three custom-tap casks to their latest upstream releases and
regenerate the api JSONs (`regenerate.sh`) and FMA output manifests (`go
run cmd/maintained-apps/main.go --slug=<token>/darwin`):

| Cask | Old | New |
|------|-----|-----|
| Druva inSync | 7.6.1 (r110931) | 8.1.3 (r110967) |
| Fleet Desktop | 1.3.2 | 1.3.4 |
| Zoom Rooms | 7.0.5.12655 | 7.1.0.13088 |

XCreds 5.9 (9148) is still the latest upstream release and is unchanged.

## Why / reviewer notes

- **Druva:** the 8.0.0 phased rollout never reached the public CDN (its
`.dmg` 404'd since March); 8.1.3 is the first 8.x build served from
`downloads.druva.com`. Druva 8.x officially supports macOS 14 (Sonoma)+
only, so `depends_on` moves from `:big_sur` to `:sonoma` (informational
— the ingester doesn't read it).
- **`api/xcreds.json` +2 lines with no cask change:** `regenerate.sh`
rebuilds all api JSONs, and current Homebrew now emits
`pinned`/`pinned_version` fields. Expected drift; anyone running the
script gets the same output.
- **Verification done against the downloaded installers:**
- sha256 values computed locally from the actual downloads; the Druva
download's SHA1 matches the checksum published on Druva's download page.
- Installer internals inspected: the Druva dmg still contains `Install
inSync.pkg`, and pkg receipt IDs are unchanged across all three
(`com.druva.inSync.pkg` @ 8.1.3, `com.fleetdm.fleet-desktop` @ 1.3.4,
`us.zoom.pkg.zp` @ 7.1.0.13088), so existing install/uninstall stanzas
remain valid.
- No `changes/` file, consistent with prior cask-bump PRs (#45912,
#48028) and the automated FMA-ingestion PRs.

# Checklist for submitter

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [x] `go test ./ee/maintained-apps/...` passes
- [ ] QA'd all new/changed functionality manually (installer metadata,
URLs, and checksums verified as above; not yet deployed through a Fleet
server)
2026-07-20 09:43:37 -05:00
Allen Houchins 8d2a3abeaa Set byod_fleet for dogfood Apple Business Manager tokens (#49564)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->

Sets the new `byod_fleet` option on both Apple Business Manager tokens
in the dogfood GitOps config, so BYOD hosts appearing in Apple Business
Manager are automatically added to the right fleet instead of
"Unassigned":

- **Fleet Device Management Inc.** → `📱🔐 Personal mobile devices`
- **Mactivate LLC** → `🧪 Testing & QA`

Fleet names match the definitions in
`it-and-security/fleets/personal-mobile-devices.yml` and
`it-and-security/fleets/testing-and-qa.yml` verbatim (including emoji
prefixes). The file keeps the existing `apple_business_manager` parent
key (deprecated alias for `apple_business`) to match the surrounding
config; the alias machinery renames the parent before resolving nested
keys, so `byod_fleet` resolves correctly under it.

Note for reviewers: this only affects where *newly appearing* BYOD hosts
are placed — existing BYOD hosts in "Unassigned" are not retroactively
moved.

# Checklist for submitter

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

## Testing

- [x] QA'd all new/changed functionality manually — verified the YAML
parses (yaml.v3) and both ABM entries resolve to the intended fleet
names; config-only change to the dogfood GitOps setup, no product code
touched.
2026-07-20 09:41:33 -05:00
fleet-releaseandallenhouchins a5cfb705bc Update Fleet-maintained apps (#49558)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Updates**
* Updated macOS packages for ChatGPT, Windsurf, DuckDuckGo, Firefox
Nightly, Krisp, PicView, Postman, Processing, Shapr3D, and Zoom.
  * Updated Postman for Windows to version 12.20.0.
* Refreshed installer links, version detection, and integrity checks for
the latest releases.
  * Improved uninstall cleanup for DuckDuckGo and QLMarkdown.
* Updated Krisp installation and removal behavior for improved app
lifecycle handling.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-20 09:24:20 -05:00
Noah Talerman fd6209a86f Custom host vitals support coming soon (#49527)
- Move it up to the top
- Add specific target release
2026-07-20 10:12:35 -04:00
Nico 900c54e822 Fix label membership being cleared when a label query errors (#49403)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #46399

When a label's query errors on a host (e.g. the extension socket is
unavailable) instead of returning zero rows, Fleet was recording that
error the same as a definitive "no match," clearing the host's existing
label membership. This could unintentionally remove configuration
profiles or other automations scoped to that label. The fix leaves
existing label membership untouched when a label query errors.

# Checklist for submitter

- [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.

## Testing

- [x] Added/updated automated tests

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

**Setup:** macOS VM enrolled as a Fleet host, with a dynamic label whose
query targets a real, always-present table but with a deliberately
invalid `WHERE` clause, so the query fails deterministically (a `no such
column` SQL error).

```sql
-- working version (label matches)
SELECT * FROM os_version;

-- broken version (query errors on every run)
SELECT * FROM os_version WHERE this_column_does_not_exist = 1;
```

### Before (bug reproduced on unpatched code)

1. Set the label's query to the working version and refetched the host —
confirmed it shows up under the host's Labels.
2. Edited the label's query to the broken version.
3. Clicked **Refetch** on the host.
4. **Result:** the label disappeared from the host's Labels list — a
query error incorrectly cleared existing membership.

### After (fix verified)

1. Reset the label's query to the working version and refetched —
confirmed membership was restored.
2. Edited the label's query to the broken version again.
3. Clicked **Refetch** on the host.
4. **Result:** the label remained on the host's Labels list — a query
error now correctly leaves existing membership untouched.

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

* **Bug Fixes**
* Preserved existing dynamic label memberships when label queries fail
or yield unknown results.
  * Avoided treating unknown/failed evaluations as label removals.
* Ensured label updates/removals are applied only when a definite match
or non-match is returned.
* **Tests**
* Expanded coverage for label query errors across datastore, async
processing, and distributed execution to confirm memberships remain
unchanged.
* Updated expectations for queued async updates to skip errored labels.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-20 10:31:09 -03:00
Jordan Montgomery a3962e7a13 Remove erroneous changes file (#49509)
Someone accidentally put a changes file in the repo root, 3 months ago.
Removing it
2026-07-20 09:02:05 -04:00
Jordan Montgomery 4762dba089 Enhance logging and repair flow for FPSSO (#49524)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #

# Checklist for submitter

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

Unreleased bug so no changes file

- [ ] 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), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.


## 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**
* Improved device and user registration reliability with clearer
validation and error handling.
* Added fallback username resolution when registration details are
incomplete.
* Registration now appropriately requests user interaction when
required.

* **Diagnostics**
* Added structured logging for network failures, invalid responses,
missing credentials, configuration errors, and registration outcomes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-20 08:28:53 -04:00
fleet-releaseandallenhouchins 6c5d7334e3 Update Fleet-maintained apps (#49550)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Updates**
* Updated the available DBeaver Community for Windows release to version
26.1.3.
  * Updated the available Readest for macOS release to version 0.11.20.
* Refreshed installer links and verification checksums for both
applications.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-19 21:43:14 -05:00
Victor Lyuboslavsky 6f07bd9bf8 Add host 1310 to Macs excluded from external storage restrictions (#49545)
I have external storage that I've been using for videos and VMs. My
current macOS storage is insufficient, so I need external storage for
dev work.

# Checklist for submitter

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



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

## Summary by CodeRabbit

* **Configuration**
* Added Mac host `1310` to the list of devices excluded from external
storage restrictions.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-19 15:40:09 -05:00
fleet-releaseandallenhouchins 82e6e63d55 Update Fleet-maintained apps (#49547)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

- **Updates**
- Updated macOS app packages for BoltAI, ChatGPT Atlas, Claude, cmux,
CodexBar, Cog, DBeaver Community, Dockside, Firefox Nightly, Notepadexe,
Stats, and WebCatalog to their latest releases.
- Refreshed download links and integrity verification for each updated
installer.
- Improved ChatGPT Atlas removal by also cleaning up its background
update service during uninstall.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-19 15:39:41 -05:00
fleet-releaseandallenhouchins 6bca4f599a Update Fleet-maintained apps (#49539)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **New Features**
* Added support for the latest releases of ChatGPT, ChatWise, CLion,
Clop, CodexBar, Dataflare, Firefox Nightly, Kitty, MassCode, Microsoft
Edge, Microsoft Outlook, Netron, Pika, REAPER, and Super Productivity
across macOS and Windows.
* Updated download sources and installation verification for each
release.
  * Improved ChatGPT cleanup during uninstallation.
* Updated Microsoft Outlook installation behavior for the latest
package.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-18 21:39:26 -05:00
Allen Houchins cbcc3a8855 Fix Portfolio Performance FMA ingestion after winget scope correction (#49538)
**Related issue:** N/A — fixes the nightly "Update Fleet-maintained
apps" workflow failure on 2026-07-19 (`panic: ingesting winget app:
failed to find installer for app`).

## Details

The `buchen.portfolio` 0.86.0 winget manifest (released 2026-07-16)
changed the top-level `Scope` from `machine` to `user`. Our input pinned
`installer_scope: machine`, so the ingester's installer-matching loop
found no candidate and panicked, killing the whole nightly
maintained-apps run.

The upstream change was a **correction**, not a mistake: the vendor's
NSIS installer script (`portfolio-product/installer/installer.nsi`)
installs to `$LOCALAPPDATA\Programs` and registers under HKCU, and is
byte-identical between 0.85.0 and 0.86.0 — the installer has been
user-scoped all along; prior winget manifests mislabeled it.

Changes:
- `ee/maintained-apps/inputs/winget/portfolioperformance.json`:
`installer_scope` → `user` (52 other winget inputs already use user
scope)
- `ee/maintained-apps/outputs/portfolioperformance/windows.json`:
regenerated via `go run ./cmd/maintained-apps -slug
portfolioperformance/windows` — version 0.85.0 → 0.86.0, installer URL
and sha256 updated (sha256 matches the manifest's declared
`InstallerSha256`)

No behavior change for hosts: the custom uninstall script already
searches HKCU first, osquery's `programs` table reads per-user (HKU)
uninstall keys so the exists/patched queries keep working, and the
ingester's MSI-only scope branches don't apply to this exe-type app with
custom scripts.

# Checklist for submitter

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

- [ ] 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), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [x] QA'd all new/changed functionality manually — verified the 0.86.0
winget manifest and vendor NSIS script upstream, and regenerated the
output locally with the ingester (previously panicking, now succeeds).
2026-07-18 21:21:58 -05:00
Carlo 7cb2399700 Redirect FMA installs to the active version after auto-update (#49525)
**Related issue:** Resolves #49495

Redirects queued Fleet-maintained app installs to the newly-active
installer (canceling already-dispatched ones) atomically when an
auto-update or pin change flips the active version, and re-resolves
install retries to the active installer, so a host no longer installs a
superseded cached version.

# Checklist for submitter

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

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

* **Bug Fixes**
* Fleet-maintained app installs now consistently use the currently
active version after automatic promotions, preventing stale installer
targeting.
* Queued installs tied to an older promoted installer are redirected to
the newly active installer instead of being canceled.
* Install retry flows now re-resolve to the active installer at retry
time, avoiding stale retries after version changes.
* **Tests**
* Added datastore coverage for active-installer redirection and updated
retry tests to verify the correct installer ID is used.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-18 06:01:45 -04:00
fleet-releaseandallenhouchins 39df03f20a Update Fleet-maintained apps (#49530)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Updates**
  * Updated the ChatGPT macOS installer to version 26.715.31251.
  * Updated the Cursor Windows installer to version 3.12.17.
  * Updated the Dayflow macOS installer to version 2.0.3.
  * Updated the Draw.io macOS installer to version 30.3.14.
* Updated the Firefox Nightly macOS installer with the latest 154.0a1
release.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-17 21:42:50 -05:00
fleet-releaseandallenhouchins 570741bb59 Update Fleet-maintained apps (#49529)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Bug Fixes**
* Updated the Arc Windows package to version 1.115.1.2 with its
corresponding installer and verification details.
* Corrected the Telegram Desktop Windows installer download link for
version 7.0.2.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-17 21:16:27 -05:00
fleet-releaseandallenhouchins 50d292d431 Update Fleet-maintained apps (#49528)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Updates**
* Updated maintained app installers to newer versions across Windows and
macOS, including AWS CLI, Dayflow, Draw.io, DYMO Connect, Filen, Fork,
KeyClu, Microsoft Edge, Telegram, Visual Studio Code, Vivaldi, and Wispr
Flow.
* Refreshed download links, version detection, and installer
verification data.
* Improved DYMO Connect installation behavior to preserve and restore
the app’s running state.


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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-17 20:37:30 -05:00
Jonathan Katz 8a33fcd058 Fix FMA pinning not changing patch policy (#49519)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #49474

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

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## 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
- Relied on integration test for testing changes made by the
`maintained_apps_auto_update` job


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

* **Bug Fixes**
* Fixed patch policies for Fleet-maintained apps not updating when the
active app version changes.
* Patch policy queries now refresh to match the currently active (or
pinned) installer version, including changes driven by pinning, cron,
and GitOps.
* Improved behavior when pins are cleared or switched, ensuring the
policy continues referencing the correct version-specific query.
* **Tests**
* Expanded integration coverage to verify version-pinned patch policy
queries across scenario updates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-17 19:00:13 -04:00
Noah TalermanandEric bd74a7d5d1 Fix query editor syntax-highlighting colors and visual bugs (#49391)
For the following quick win:
- https://github.com/fleetdm/fleet/issues/49373


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

- **Style**
- Refined syntax highlighting across documentation code examples for
more consistent visual theming.
- Column-name matches are now highlighted with dedicated styling
(separate from generic string highlighting), improving readability.
- Updated Highlight.js token colors (keywords, operators, numbers, and
strings) across docs pages to align with the shared theme palette,
including new/overridden column-token styling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2026-07-17 17:57:54 -05:00
Eric bbd4f74333 Website: Update create-android-signup-url error handling (#49488)
Changes:
- Updated the website's Android proxy's create-android-signup-url
endpoint to log a more detailed message if Google returns a 429 (rate
limit exceeded) response in the get-is-enterprise-managed-by-fleet
helper
2026-07-17 17:25:36 -05:00
Luke Heath c27cccb767 Handbook: continuous flow for all product groups (4.91.0) (#49500) 2026-07-17 15:23:16 -07:00
Katheryn SatterleeandRachael Shaw 2f5183b2c7 Update FAQ with Windows 11 support info (#49507)
Clarify MDM support requirements for Windows 11 and add Linux support
details.

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #

# Checklist for submitter

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

- [ ] 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.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [ ] 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)

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

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

- [ ] Confirmed that the fix is not expected to adversely impact load
test results
- [ ] Alerted the release DRI if additional load testing is needed

## Database migrations

- [ ] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [ ] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [ ] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).

## New Fleet configuration settings

- [ ] Setting(s) is/are explicitly excluded from GitOps

If you didn't check the box above, follow this checklist for
GitOps-enabled settings:

- [ ] Verified that the setting is exported via `fleetctl
generate-gitops`
- [ ] Verified the setting is documented in a separate PR to [the GitOps
documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485)
- [ ] Verified that the setting is cleared on the server if it is not
supplied in a YAML file (or that it is documented as being optional)
- [ ] Verified that any relevant UI is disabled when GitOps mode is
enabled

## fleetd/orbit/Fleet Desktop

- [ ] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [ ] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [ ] Verified that fleetd runs on macOS, Linux and Windows
- [ ] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-07-17 17:06:43 -05:00
Carlo 8cd9503267 Fix false-success reporting for failed software installs (#49515)
**Related issue:** Resolves #49475

Makes a non-zero install-script exit code a terminal failure so an
install that failed but whose post-install script exited 0 is no longer
reported as installed, in both the Go status computation and the
`host_software_installs` `status`/`execution_status` generated columns.

# Checklist for submitter

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

## Testing

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

## Database migrations

- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration. Redefining the
`status`/`execution_status` generated columns rebuilds the table, but
`ON UPDATE CURRENT_TIMESTAMP` is not triggered by `ALTER TABLE`, so
`updated_at` is preserved.
- [x] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [x] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).


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

* **Bug Fixes**
* Installations that fail during the install script are now correctly
reported as failed, even if the post-install script succeeds.
* Install and execution status reporting is now consistent about which
script exit code takes precedence.
* Pending, successful, failed, canceled, and uninstall outcomes continue
to be reported correctly.
* **Tests**
* Added regression/unit test coverage for install-status and
execution-status precedence across mixed install/post-install exit code
scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-17 17:59:14 -04:00
LeAnn 13224b0660 Update host vitals refresh error banner (#49526)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38214

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

## Testing

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

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

## Summary by CodeRabbit

* **Bug Fixes**
* Clarified the notification shown when host vitals take longer than
expected to load.
* Messages now confirm that a refetch request was sent and that the
display will update once the host responds.
* Updated notifications across host welcome, device details, and host
details views.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-17 14:53:00 -07:00
Lucas Manuel Rodriguez 401b12afed Add VEX exclusions for fleetdm/fleetctl (#49504)
Fixes: https://github.com/fleetdm/fleet/actions/runs/29560990071.

New run: https://github.com/fleetdm/fleet/actions/runs/29605383790.

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

## Summary by CodeRabbit

* **Security**
* Added vulnerability status records for CVE-2026-13221 and
CVE-2026-6653.
* Documented that the reported vulnerabilities do not affect `fleetctl`
because the relevant dependency code is not used during operation or
package generation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-17 17:25:06 -04:00
Allen Houchins 0e587dc80c Add Firefox Nightly and Firefox Developer Edition Fleet-maintained apps (#49501)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** #49149

Adds **Firefox Nightly** and **Firefox Developer Edition** as
Fleet-maintained apps for macOS and Windows (4 new FMAs). Mozilla VPN
(also requested in #49149) is not included, so this doesn't close the
issue.

## What's included

| App | macOS | Windows |
|-----|-------|---------|
| Firefox Nightly | Homebrew cask `firefox@nightly`, bundle ID
`org.mozilla.nightly` | MSIX `Mozilla.Firefox.Nightly.MSIX` (no exe
package exists in winget) |
| Firefox Developer Edition | Homebrew cask `firefox@developer-edition`,
bundle ID `org.mozilla.firefoxdeveloperedition` | NSIS exe
`Mozilla.Firefox.DeveloperEdition`, machine scope, `/S` |

All identity fields were verified against the real installers, not
catalog metadata: bundle IDs read from the DMGs' `Info.plist`, MSIX
identity ("Firefox Nightly" / publisher "Mozilla Corporation") read from
the package's `AppxManifest.xml`, and DevEd's registry identity
(`Firefox Developer Edition (x64 en-US)`, publisher `Mozilla`,
versionless DisplayName) confirmed in Mozilla's NSIS installer source at
the shipped release tags.

The MSIX install/uninstall scripts follow the established Slack/Claude
pattern (provision machine-wide + register for the logged-on user via
scheduled task).

## Pre-release version handling (macOS)

Mozilla's pre-release bundles report only the base version in
`CFBundleShortVersionString` (`153.0` for cask version `153.0b13`),
which would make the generated patch policy flag every up-to-date
install as outdated. Instead, the patch policies for these two channels
compare **`bundle_version`** (`CFBundleVersion` encodes the build date,
e.g. `15326.7.15`), so individual pre-release builds are
distinguishable:

- **Nightly**: derived directly from the build timestamp embedded in the
cask version (`154.0a1,2026-07-17-09-27-13` → `15426.7.17`). No external
calls.
- **Developer Edition**: build date resolved from Mozilla's
[buildhub](https://buildhub.moz.tools) (indexed as product `firefox`,
channel `aurora`). On buildhub failure the ingester logs a warning and
falls back to a base-version comparison (cycle granularity) rather than
failing the run; it self-corrects on the next scheduled ingestion.

The macOS validator gets a matching exception accepting `base + "b"`
versions for the DevEd bundle ID. Both computed values were verified
against the actual DMGs' `Info.plist`.

**Known limitation (Windows):** patch detection for Developer Edition on
Windows is only accurate to the release cycle (153 vs 154), not between
betas (b13 vs b14) — the registry `DisplayVersion` and winget's
`PackageVersion` are both the base version (`151.0`) with no beta
number, and osquery's `programs` table has nothing finer to compare.
Nightly on Windows is day-granular since its MSIX package version
encodes the build date. Documented in #49149.

## Other changes

- Tightened `firefox_uninstall.ps1` (release channel FMA): its
`*Firefox*` match would have uninstalled Developer Edition (or ESR)
first depending on registry enumeration order. Now matches `Mozilla
Firefox*` and excludes ESR; `firefox/windows` output regenerated.
- Channel-specific icons generated from the real app bundles (frontend
components + website PNGs), with map keys covering both catalog and
inventory names.

## Why Firefox Beta is not included

Beta (requested in #49149) was deliberately dropped:
- On Windows, the Beta exe registers the same identity as release
Firefox (`Mozilla Firefox (x64 en-US)`), making it indistinguishable in
inventory. The only distinct package is `Mozilla.Firefox.Beta.MSIX`,
which has no `en-US` winget locale manifest (only `en`), which the
ingester requires.
- On macOS, Beta shares both the bundle ID (`org.mozilla.firefox`) and
the install path (`/Applications/Firefox.app`) with release Firefox, so
installing it silently replaces a release install.

## Notes for reviewers

- Nightly URLs are date-stamped and refresh with the daily FMA
ingestion; within-cycle Nightly darwin builds share a `CFBundleVersion`
date so same-day rebuilds are indistinguishable.
- DevEd's winget package lags Mozilla's releases (winget latest is 151.0
vs current 153.0b13); the FMA tracks winget as usual.
- The `CFBundleVersion` format (`<major><yy>.<M>.<D>`, unpadded) is an
inferred contract of Mozilla's build system, verified against both
shipped DMGs; if it ever changes, patch status fails visibly (reports
unpatched), not silently.

# Checklist for submitter

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

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [x] Timeouts are implemented and retries are limited to avoid infinite
loops

## Testing

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


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

* **New Features**
* Added deployment support for Mozilla Firefox Developer Edition and
Firefox Nightly on macOS and Windows (including Homebrew/Winget inputs
and platform-specific install/uninstall workflows).
* Added new catalog entries and dedicated UI icons for both Firefox
variants.
* **Bug Fixes**
* Improved macOS “patched” detection and version matching for Developer
Edition and Nightly builds.
* Enhanced Homebrew ingestion by resolving build information (with
fallback when unavailable).
* Refined Windows uninstallation matching to target the correct Firefox
release channels and avoid ESR.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-17 16:05:27 -05:00
Noah Talerman 83efe93c29 apple_require_hardware_attestation can only be configured at the global level (default.yml) (#49514) 2026-07-17 16:00:11 -05:00
Konstantin Sykulev fd4f92a7e7 Android Load testing with osquery perf (#48535) 2026-07-17 13:54:09 -07:00
Dante Catalfamo 67c06a9820 Mask team enroll secrets in team write responses (#49422) 2026-07-17 16:45:40 -04:00
fleet-releaseandallenhouchins fdc191bf21 Update Fleet-maintained apps (#49518)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Updates**
  * Updated Brave Browser for macOS and Windows to version 150.1.92.141.
  * Updated CodexBar for macOS to version 0.44.0.
  * Updated EtreCheckPro for macOS to version 6.8.15.
  * Updated Netron for macOS to version 9.1.7.
* Refreshed download links, version checks, and installer verification
data for the listed releases.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-07-17 15:39:11 -05:00
4d07660bdd Update Fleet-maintained apps (#49505)
Automated ingestion of latest Fleet-maintained app data.

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

* **New Features**
* Added updated release metadata for numerous maintained macOS and
Windows applications, including ChatGPT, Claude, Cursor, Camo Studio,
Dayflow, ExtraDock, Granola, Groove OmniDialer, Kiro, MacWhisper,
Postman, Reqable, Spokenly, Stretchly, WhatsApp, Zen, and others.
* Refreshed installer downloads and integrity checks for the latest
builds.

* **Bug Fixes**
* Improved JetBrains Toolbox uninstall to close Toolbox before removing
files.
* Enhanced Stretchly uninstall on Windows with safer cleanup and
PATH/registry fallbacks to better handle unreliable vendor uninstall
behavior.
  * Refined version detection to target the newest installed releases.
<!-- 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-07-17 15:09:03 -05:00
Nico 7a275f409b Fleet UI: show custom host vital row actions disabled with GitOps tooltip (#49506)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Relates to #44954

In GitOps mode, the Custom host vitals tab hid the row edit/delete icons
entirely, while the "Add vital" button was shown disabled with the
standard GitOps tooltip — an inconsistency. This makes the edit/delete
icons behave like the Add button: shown but disabled with the GitOps
tooltip (wrapped in `GitOpsModeTooltipWrapper`, which reads GitOps mode
from context). The now-unused `gitOpsModeEnabled` prop/hook is removed.

This fixes something I've missed from the parent's story UI Test Plan
section:

```
GitOps mode: add/edit/delete controls are disabled with the GitOps tooltip. Can still set individual per-host values.
```

# Checklist for submitter

- [ ] 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.

Already added as part of the feature which is in main.


## Testing

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

<img width="1538" height="556" alt="Screenshot 2026-07-17 at 4 31 24 PM"
src="https://github.com/user-attachments/assets/393c2b08-fd2b-40eb-96e2-a22fc743d785"
/>



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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved the Custom Host Vitals table behavior when GitOps mode is
enabled.
* Edit and delete actions now remain visible but are appropriately
disabled, with guidance displayed when unavailable.
* Preserved existing token-copy and last-updated information in the
table.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-17 16:39:52 -03:00