Commit Graph
20552 Commits
Author SHA1 Message Date
Nico ee2d17ad6c Hide Add Query button on Host Details for unsupported host platforms (#37912)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37847 

# Checklist for submitter

Issue is resolved by the `&& isSupportedHostQueriesPlatform` condition.

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

Manually tested by passing a mocked host platform (`"ios"`) and verified
the **Add Query** button is not shown.

### Before

<img width="719" height="399" alt="Screenshot 2026-01-06 at 1 55 33 PM"
src="https://github.com/user-attachments/assets/12cf1bc7-62bb-4e8b-a005-b38debd5f564"
/>

### After

<img width="711" height="389" alt="Screenshot 2026-01-06 at 1 52 03 PM"
src="https://github.com/user-attachments/assets/c077b030-451e-4333-b4e9-bcd8d9734c96"
/>
2026-01-06 15:30:01 -03:00
Noah Talerman 5b41bb4c53 API reference: GET /commands default page length and sort (#37899)
These undocumented defaults cause confusion:
https://github.com/fleetdm/fleet/issues/32785#issuecomment-3715226225
2026-01-06 11:14:31 -06:00
Sam Pfluger 7f06f7c534 Add GTM Ops request process to IT handbook (#37911)
Added instructions for making requests to the GTM Ops team, including
issue creation, kanban board access, and communication guidelines in the
IT and Enablement handbook.
2026-01-06 11:00:27 -06:00
Scott Gress e35684268d Add auto-update schedule to software activity updates (#37715)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35458

# Details

This PR adds new metadata to the `ActivityEditedAppStoreApp` activity
relating to the app's auto-update schedule. The data will be included
with every `ActivityEditedAppStoreApp` activity regardless of whether
the values changed. I have an open question about this on the [activity
docs
PR](https://github.com/fleetdm/fleet/pull/36534/changes#r2648884183).

One functional change to note here is that the act of recording the
activity has been moved up a level into the endpoint code, because the
activity now contains metadata from two different service methods (one
that updates the VPP app, and one that creates the auto-update
schedule).

# 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 tests
- [X] QA'd all new/changed functionality manually
2026-01-06 10:52:26 -06:00
Victor Lyuboslavsky bcb1318626 Updated NDES SCEP proxy to auto-detect response encoding (#37873)
Updated NDES SCEP proxy to auto-detect response encoding, enabling
compatibility with Okta CA and other UTF-8-based CAs.

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

Video demo: https://www.youtube.com/watch?v=M7yLXEofdCE

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.

## 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**
* Improved response encoding handling in the NDES SCEP proxy with
automatic detection, enabling seamless compatibility with Okta CA and
other certificate authorities using UTF-8 encoding.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-06 10:47:34 -06:00
Sarah Gillespie 28df9f7d70 Update UI for Controls > Setup experience > Bootstrap package to fix inconsistent styling (#37868) 2026-01-06 10:37:00 -06:00
Sarah Gillespie cf3daa3d5b Update error message for Apple profile scope conflict across teams (#37559) 2026-01-06 10:36:30 -06:00
Lucas Manuel Rodriguez 5a1c1f8966 Rename files for consistency (#37895)
Renaming for easier to find source code (renaming the same as the table
name)
2026-01-06 13:26:56 -03:00
Tina OngandSam Pfluger 74f87e9c95 Update communications.md (#37809)
<!-- 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)
- [ ] 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: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
2026-01-06 10:23:42 -06:00
Allen Houchins a05d990417 Update macOS FMAs (F - I) (#37892)
This pull request updates the macOS install scripts for several
maintained applications to improve the user experience during upgrades.
The main enhancement is that the installer now tracks whether the
application was running before installation, attempts to quit it, and
then relaunches it after the installation if it was previously running.
2026-01-06 10:23:31 -06:00
Victor Lyuboslavsky af1e150a2b Deleting/adding Android certs to host on team transfer (#37616)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37580 

Resolves unreleased 4.79 bug and needs to be cherry picked. Also
includes fixes from manually going through the test plan at:
[#30876](https://github.com/fleetdm/fleet/issues/30876)

# 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

## Release Notes

* **New Features**
* Per-template versioning and explicit operation/status fields for host
certificate templates; delivery payloads now include per-template
details.

* **Bug Fixes**
* Removal preparation broadened to also clear failed entries and handle
per-host removals; delivery/transition ordering adjusted to avoid race
conditions.

* **Tests**
* Extensive tests added for team-transfer flows, per-host
removal/preparation, and end-to-end Android certificate template
scenarios.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-06 10:20:07 -06:00
Lucas Manuel Rodriguez ce6b30c421 Improve Fleet Desktop tray description in Windows (#37500)
Resolves #37459.

Screenshot of the new system tray description for Fleet Desktop:
<img width="1017" height="826" alt="Screenshot 2025-12-30 at 4 45 58 PM"
src="https://github.com/user-attachments/assets/d45b75dd-b7f7-4a64-a3b0-5a4083d385b1"
/>
Description for orbit and Fleet Desktop as seen in Task Manager (stays
the same):
<img width="1075" height="170" alt="Screenshot 2025-12-30 at 4 47 20 PM"
src="https://github.com/user-attachments/assets/6fb7fb19-2a11-4998-904a-ff8e95279273"
/>

- [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] QA'd all new/changed functionality manually

## fleetd/orbit/Fleet Desktop

- [x] 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))
- [x] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [x] Verified that fleetd runs on macOS, Linux and Windows
- [x] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))
2026-01-06 13:04:50 -03:00
Martin Angers b00efa944d iBYOD Apps: only ingest and report Fleet-managed apps for manual-enrolled iOS/iPadOS (#37856) 2026-01-06 10:50:47 -05:00
0603346065 Add tests for new "auto update" front-end (#37877)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** For #35459 

# Details

This PR adds front-end tests for:

* `<SoftwareSummaryCard>`
* Smoke-test of basic functionality (showing the software title and
type, showing an icon)
  * Action dropdown options for various kinds of software
*  `<EditAutoUpdateConfigModal>`
* Options for auto-updates (enable button, maintenance window
validation)
   * Targets ("All hosts" and "Custom" values and validation)
* Form submission (ensuring the API receives the expected payload for
various permutations of the form)

The `<TargetLabelSelector>` component has its own tests so we don't go
through it thoroughly here, just integration tests with the new
component. Conversely the `<SoftwareDetailsSummary>` component _doesn't_
have its own tests, and could use some, but in this instance we're just
concerned with how it integrates with the software summary card (that
is, how the passed-in software title affects the Actions dropdown).

## Testing

- [X] Added/updated automated tests

---------

Co-authored-by: Gabriel Hernandez <ghernandez345@gmail.com>
Co-authored-by: Nico <32375741+nulmete@users.noreply.github.com>
2026-01-06 09:32:36 -06:00
Carlo df36372a44 Copy change for idevice apps (#37897)
Fixes #37398
2026-01-06 10:29:35 -05:00
Gabriel Hernandez cb6260e146 update alignment and styles of host status tag (#37832)
**Related issue:** Resolves #34774

This updates the alignment of the host status tag to be vertically
aligned with the host name on the host details page

- [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] QA'd all new/changed functionality manually
2026-01-06 14:09:09 +00:00
Nico 19113d22be Add Testing NATS logging local development docs (#37759)
**Related issue:** Resolves #37854 

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
Adds instructions on how to set up a NATS server locally to use as a log
destination.
Follow-up of https://github.com/fleetdm/fleet/pull/36527.
2026-01-06 09:11:58 -03:00
b6d19de0d9 Add support for publishing logs to NATS. (#36527)
**Related issue:** Resolves
[34890](https://github.com/fleetdm/fleet/issues/34890)

# Checklist for submitter
- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.

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

## New Fleet configuration settings
Looking at other log destinations, I couldn't find anything relevant in
GitOps. Please let me know if I missed something, however.

## fleetd/orbit/Fleet Desktop
I've tested this on both Linux and MacOS.

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: nulmete <nicoulmete1@gmail.com>
2026-01-06 09:10:32 -03:00
Allen Houchins 3f341f4a36 Update macOS FMAs (D-E) (#37890)
This pull request updates the installation scripts for Fleet-maintained
macOS applications to improve user experience during upgrades. The new
scripts now detect if the app is running before installation, quit it if
needed, and automatically relaunch it afterwards.
2026-01-06 01:24:36 -06:00
Allen Houchins cb5c90892e Update macOS FMAs (B-C) (#37888)
This pull request updates the installation scripts for several
maintained Mac applications (BalenaEtcher, BBEdit, Beyond Compare, and
Bitwarden) to improve their handling of running applications during
installation. The new scripts now detect if the target application is
running before installation, attempt to quit it, and then relaunch it
after installation if it was previously running.
2026-01-06 01:07:33 -06:00
Allen Houchins 4c2af8a64a Update macOS FMAs (A) (#37886)
This pull request updates the installation scripts for several macOS
maintained apps to improve user experience during installation. The main
enhancement is that the installer now tracks whether the application was
running before installation and automatically relaunches it afterward if
needed. This change helps ensure a smoother update process for end
users.
2026-01-06 00:52:09 -06:00
Allen Houchins 263c477db9 Fix category key casing for "Developer tools" (#37884)
Updated the allowedCategories map to use 'Developer tools' instead of
'Developer Tools' to ensure category matching is consistent with how
this category is displayed in the UI.
2026-01-06 00:08:06 -06:00
Allen Houchins 7d527ca23c Add quit and relaunch logic to macOS FMAs (#37670)
This pull request enhances the macOS app installation process by
improving how running applications are handled during install and
update, and also updates the metadata and scripts for Docker Desktop.
The main improvements are the introduction of quit/relaunch logic for
pkg-based FMAs, and the renaming and updating of Docker Desktop’s
identifiers and scripts.

**App install/relaunch improvements:**

* Added new shell functions `quit_and_track_application` and
`relaunch_application` to the generated install scripts. These functions
ensure that if an app (or pkg) is running before installation, it is
quit and then automatically relaunched after installation, preserving
user state. The logic tracks whether the app was running via an
environment variable.
[[1]](diffhunk://#diff-a9df2db484fcbb560d62c43f94c4bcc2d26dcf68066c9e7cc2bffad6f124ce97L22-R41)
[[2]](diffhunk://#diff-a9df2db484fcbb560d62c43f94c4bcc2d26dcf68066c9e7cc2bffad6f124ce97R53-R59)
[[3]](diffhunk://#diff-a9df2db484fcbb560d62c43f94c4bcc2d26dcf68066c9e7cc2bffad6f124ce97R72-R73)
[[4]](diffhunk://#diff-a9df2db484fcbb560d62c43f94c4bcc2d26dcf68066c9e7cc2bffad6f124ce97R571-R648)
* Removed the previous simpler `quit_application` logic from the install
script generation, as the new functions supersede it.

**Docker Desktop metadata and script updates:**

* Renamed the Docker Desktop input and updated its `slug` and
`unique_identifier` to match the new bundle identifier
(`com.electron.dockerdesktop`), reflecting the current packaging.
* Updated the output app metadata in `apps.json` to use the new slug and
unique identifier for Docker Desktop.
* Added a new output file for Docker Desktop
(`docker-desktop/darwin.json`) with the updated install and uninstall
scripts, including the new quit/relaunch logic and references.
2026-01-05 22:31:55 -06:00
67347a652a Update Fleet-maintained apps (#37870)
Automated ingestion of latest Fleet-maintained app data.

---------

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
Co-authored-by: Allen Houchins <allenhouchins@mac.com>
2026-01-05 22:26:34 -06:00
Victor Lyuboslavsky b4bb714fa5 Updating Android app for remove certs (#37640)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37580 

This PR adds certificate removal support and status report retry logic
to the Android Fleet agent. It also includes overall code review
fixes/improvements.

I apologize for the large PR. I would prefer smaller PRs, but there was
no one to review during the break.

Key changes

1. Managed configuration interface change
- certificate_templates now expects status and operation fields per
certificate

2. Certificate removal flow
- New cleanupRemovedCertificates() handles certificates with
operation="remove"
- Removes keypair from device keystore and reports status to Fleet
server
- Handles orphaned certificates (tracked locally but no longer in MDM
config)

3. Status report retry logic
  - New statuses: INSTALLED_UNREPORTED and REMOVED_UNREPORTED
- When install/removal succeeds but status report fails, state is
persisted for retry
- retryUnreportedStatuses() retries on next worker run (up to 10
attempts)
- After max retries, transitions to final status (gives up reporting but
cert action completed)

4. Dependency injection for testability
- Converted CertificateOrchestrator from Kotlin object to class with
constructor injection
  - Created CertificateApiClient interface (implemented by ApiClient)
  - Instance held in AgentApplication (Google's AppContainer pattern)
  - Added FakeCertificateApiClient for tests with call tracking

5. Naming improvements

6. Worker retries
- Previously, worker would get permanently stuck after 5 retries. Now we
recover after 15 minutes. We can extend this later if needed for load
testing.

7. New UUID managed config field to trigger re-installs or re-removals
of certificates.

# 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

* **New Features**
* Enhanced certificate management with an application-scoped
orchestrator, improved state tracking, automatic retries and backoff for
enrollments.
* UI/Debug: shows host certificate entries and status/operation details;
new localized strings for certificate template status and operation.
* Managed Configuration: accepts certificate status and operation
fields.

* **Bug Fixes**
* Enrollment now auto-runs only when needed; safer keystore handling and
more robust error paths.

* **Tests**
* Expanded and refactored tests and test utilities for certificate
workflows.

* **Chores**
  * App version bumped to 1.0.1.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-05 19:17:13 -06:00
Luke Heath 6e5a306f48 Remove job listings for QA Engineer and Analyst (#37876) 2026-01-05 23:00:36 +00:00
Jonathan Katz fc4106c688 Cloudfront signing for in-house apps (#37650)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #33756

# 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 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
2026-01-05 16:30:31 -05:00
Allen Houchins cc50ede021 Typo fix (#37872)
This pull request makes a minor update to the `docs/scripts.yml` file,
standardizing the formatting of a script step's name for consistency.
2026-01-05 15:28:43 -06:00
Allen Houchins 0668f034f7 Improve version matching in appExists for Windows (#37824)
Adds logic to handle cases where the expected app version is more
specific than the version reported by osquery (e.g., expected '6.4.0' vs
reported '6.4'). This ensures more robust version matching when
validating installed applications.
2026-01-05 15:02:47 -06:00
Allen Houchins b688fe3636 Improve changed app detection in CI (#37838)
This pull request improves the robustness and reliability of the script
and workflows that detect changed or new maintained apps in pull
requests. The main focus is on making the detection script pass
validation when the test is triggered but no new FMAs are detected.

**Script robustness and error handling:**

* The `.github/scripts/detect-new-fmas-in-pr.sh` script is updated to
always exit successfully (status 0) when no changes are detected, and
only exit with error (status 1) for critical failures like missing `jq`.
A new `safe_exit` function is introduced to standardize output and
ensure graceful exits.
[[1]](diffhunk://#diff-f9bbb0340f504713c99d610f3c64bf281fc13ed3cb8a1c06a5366272c9828a8dR7-R11)
[[2]](diffhunk://#diff-f9bbb0340f504713c99d610f3c64bf281fc13ed3cb8a1c06a5366272c9828a8dL21-R39)
* Improved error handling for missing files, empty variables, and failed
commands throughout the script, including handling cases where
`merge-base`, `git show`, or `jq` fail, and ensuring empty or missing
data does not cause the script to error out.
[[1]](diffhunk://#diff-f9bbb0340f504713c99d610f3c64bf281fc13ed3cb8a1c06a5366272c9828a8dL32-R66)
[[2]](diffhunk://#diff-f9bbb0340f504713c99d610f3c64bf281fc13ed3cb8a1c06a5366272c9828a8dR87-R108)
[[3]](diffhunk://#diff-f9bbb0340f504713c99d610f3c64bf281fc13ed3cb8a1c06a5366272c9828a8dL75-R155)

**Workflow improvements:**

* The `test-fma-darwin-pr-only.yml` and `test-fma-windows-pr-only.yml`
workflows are updated to default to "no changes" if the detection step
fails or does not set the expected output, preventing false positives or
workflow failures.
[[1]](diffhunk://#diff-28b30c8601cb7662d59efbfbbcf800cae91455fd3d875627659dced8c1257a24L70-R72)
[[2]](diffhunk://#diff-51641fd1d2cc19348b81fd8310b62ad270ca5082ceddff2d49064e78f126a1eaL76-R78)
2026-01-05 15:01:47 -06:00
Magnus Jensen db4255fe47 Update wording on customer success meetings for on-call developer (#37607) 2026-01-05 14:52:35 -06:00
Marko Lisica f685b2805c Fix typo in product groups documentation (#37681) 2026-01-05 14:41:09 -06:00
Ian Littman b96d250ecc Fix missing upgrade codes when Windows FMAs are uploaded via GitOps (#37862)
Relates to #37771.

No changes file as the #37772 changes file covers this.

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

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
2026-01-05 13:44:58 -06:00
Allen Houchins 4bd3a5ce4d Add Notepad++ as a Windows FMA (#37859)
This pull request adds support for Notepad++ as a maintained application
in the system. It includes metadata, installation and uninstallation
scripts, version tracking, and a custom icon for the frontend. The main
changes are grouped into backend app definition and scripting,
versioning/output updates, and frontend UI enhancements.

**Backend: Notepad++ App Definition and Scripting**
- Added a new app definition for Notepad++ in `winget` format, including
metadata and references to install/uninstall scripts (`notepad++.json`).
- Implemented PowerShell scripts for silent installation and
uninstallation of Notepad++ using NSIS-compatible flags
(`notepad++_install.ps1`, `notepad++_uninstall.ps1`).
[[1]](diffhunk://#diff-dbe7f508350f3d388cd03eba8739d31334cd4e8a20545dec83d40612cbb51190R1-R29)
[[2]](diffhunk://#diff-cda39039b54d874cec215f12e62ca7183f790fefe54d79affcb6f4965a305dbbR1-R99)

**Versioning and Outputs**
- Added Notepad++ entry to the main output apps registry (`apps.json`),
enabling it to be recognized as a supported app.
- Created a Notepad++ versioned output file for Windows, including
detection query, installer URL, SHA256, and script references.

**Frontend: UI Enhancements**
- Added a custom Notepad++ SVG icon component for use in the software
page UI (`Notepad++.tsx`).
- Registered the Notepad++ icon in the icon index and mapped it for
display with the app name.
[[1]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR8)
[[2]](diffhunk://#diff-628095892e1d16090be1db6cc1a5c9cebc65248c32a8b1312385394818f2907bR376)
2026-01-05 13:42:49 -06:00
Victor Lyuboslavsky f402ae783f Fixing upgrade code issues (#37785)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37494 

Manually verified fixes with osquery-perf.

Fixes:
Issue 1: Duplicate entry error when updating upgrade_code
Issue 2: Case sensitivity mismatch causes duplicate titles

# 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 tests
- [x] QA'd all new/changed functionality manually



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

## Summary by CodeRabbit

## Release Notes

* **Bug Fixes**
* Improved software title matching to be case-insensitive, preventing
duplicate entries for the same software reported with different
capitalization.
* Enhanced upgrade code reconciliation logic to properly detect and
handle conflicts when multiple software entries share upgrade codes.

* **Tests**
* Added test coverage for case-insensitive software title matching and
upgrade code reconciliation scenarios.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-05 13:08:29 -06:00
5bf82e2935 Add device_status and action_pending to /hosts API (#36009)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36315 


## 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)
- [ ] QA'd all new/changed functionality manually
- @kc9wwh: No issues with building or enrolling devices. Got it behind
SSL cert and MDM working, but I would need a supervised device to test
further.

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
2026-01-05 14:00:42 -05:00
github-actions[bot]andlucasmrod 29b9391d30 Update Orbit CA certs [automated] (#37834)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/update-certs.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2026-01-05 15:11:17 -03:00
Steven Palmesano cb4e418f4c API-Only -> API-only (#37751) 2026-01-05 11:42:23 -06:00
Magnus Jensen cd4f290f64 UMA: update management flags for ios/ipados vpp and ipa installs (#37734)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #36309

# 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 tests
- [x] QA'd all new/changed functionality manually
2026-01-05 12:15:38 -05:00
Noah Talerman f2f1c13f38 [YAML reference] Simplify language for hash_sha256 (#37852) 2026-01-05 10:54:07 -06:00
Steven Palmesano aa56063553 Format SQL query for readability (#37753)
Sorry for having so many PRs on this one!

Thank you again for correcting my original formatting. I was looking
over this more and wanted to improve how it appears on the site for
better readability.
2026-01-05 10:53:28 -06:00
RachelElysia d94bcb81b5 Fleet UI: Update compatibility tooltips (#37810)
## Issue
Closes #34131 

## Description
- Android tooltip was there just commented out
- Added in tooltip on ChromeOS
- Improve UX so user can click on save button easier if they opened
tooltip and won't have to hover off tooltip for it to close

## Screen recording of fixes



https://github.com/user-attachments/assets/29e81596-45b4-437c-a58f-0db7a0d013db



# Checklist for submitter


## Testing


- [x] QA'd all new/changed functionality manually
2026-01-05 10:53:20 -06:00
04685db892 Auto software update frontend (#37677)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35459

# 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

- [ ] Added/updated automated tests
working on these
- [X] QA'd all new/changed functionality manually

## Screenshots

| Option does not appear for FMA apps |
| --- |
| <img width="723" height="419" alt="image"
src="https://github.com/user-attachments/assets/f9f1328e-e38c-452c-b06e-337a69c13e71"
/> |

| Option does not appear for custom packages |
| --- |
| <img width="731" height="416" alt="image"
src="https://github.com/user-attachments/assets/3de78f15-d7ce-45c7-875f-a250fc00a160"
/> |

| Option does not appear for macOS VPP apps |
| --- |
| <img width="725" height="454" alt="image"
src="https://github.com/user-attachments/assets/07dcb074-f57d-4cc4-a746-20b80c821fb6"
/> |

| Option appears iOS VPP apps |
| --- |
| <img width="727" height="420" alt="image"
src="https://github.com/user-attachments/assets/ec4ce503-0300-437c-b3f2-248928fcfe7b"
/> |

| Option appears iPadOS VPP apps |
| --- |
| <img width="727" height="422" alt="image"
src="https://github.com/user-attachments/assets/0030c6cc-3d93-480c-af93-740fca4d5b57"
/> |

| Form with auto-updates disabled |
| --- |
| <img width="668" height="517" alt="image"
src="https://github.com/user-attachments/assets/d59a7ba4-dc83-4a80-ba94-0befc7635f05"
/> |

| Start / end time validation |
| --- |
| <img width="668" height="679" alt="image"
src="https://github.com/user-attachments/assets/939fd09a-76f6-42de-9c71-fe4982f3f84b"
/> |

| Maintenance window length validation |
| --- |
| <img width="664" height="681" alt="image"
src="https://github.com/user-attachments/assets/a2eab676-5166-42a9-9043-2565014e33cb"
/> |

| Badge and banner appears after saving |
| --- |
| <img width="766" height="529" alt="image"
src="https://github.com/user-attachments/assets/48d89e1d-4430-4dd7-b8e6-d5b04ebad47f"
/> |

---------

Co-authored-by: Gabriel Hernandez <ghernandez345@gmail.com>
Co-authored-by: Nico <32375741+nulmete@users.noreply.github.com>
2026-01-05 10:43:26 -06:00
Lucas Manuel Rodriguez 5daa0a6777 Update mk-ca-bundle.pl from curl/curl (#37830)
https://github.com/fleetdm/fleet/actions/workflows/update-certs.yml has
been failing for some time.
There's a redirection by mozilla.com that is breaking the curl execution
in the current version of the script.
It's fixed by adding the `-L` to the curl execution.

I updated the script from the new version in
https://github.com/curl/curl/blob/9f1838e965f893ad46c230d923961b4365e271b4/scripts/mk-ca-bundle.pl
The reviewer can (and should :) download it and compare it with the
version added on this PR.

Successful run with this branch:
https://github.com/fleetdm/fleet/actions/runs/20717674684 which
generated the following PR: https://github.com/fleetdm/fleet/pull/37834.
2026-01-05 13:33:34 -03:00
Lucas Manuel Rodriguez 505beae1a4 Add Fleet Desktop.app to .gitignore (#37711)
Resolves #35006.
See
https://github.com/fleetdm/fleet/issues/35006#issuecomment-3693239452.

Output when running the dirty check on `main`:
```
make desktop-app-tar-gz
go run ./tools/desktop macos
{"level":"info","command":"/Users/lucas/go/bin/go build -o Fleet Desktop.app/Contents/MacOS/fleet-desktop_amd64 -ldflags -X=main.version= ./orbit/cmd/desktop","time":"2025-12-30T08:38:20-03:00","message":"Build fleet-desktop executable amd64"}
{"level":"info","command":"/Users/lucas/go/bin/go build -o Fleet Desktop.app/Contents/MacOS/fleet-desktop_arm64 -ldflags -X=main.version= ./orbit/cmd/desktop","time":"2025-12-30T08:38:23-03:00","message":"Build fleet-desktop executable arm64"}
{"level":"info","output":"On branch test-branch-dirty\nUntracked files:\n  (use \"git add <file>...\" to include in what will be committed)\n\tFleet Desktop.app/\n\nnothing added to commit but untracked files present (use \"git add\" to track)\n","time":"2025-12-30T08:38:26-03:00","message":"git status"}
Error: detected dirty executable: {Path:github.com/fleetdm/fleet/v4 Version:v4.43.5-0.20251230113816-9bae7b475999+dirty Sum: Replace:<nil>}
exit status 1
make: *** [desktop-app-tar-gz] Error 1
```

Output on this branch:
```
make desktop-app-tar-gz
go run ./tools/desktop macos
{"level":"info","command":"/Users/lucas/go/bin/go build -o Fleet Desktop.app/Contents/MacOS/fleet-desktop_amd64 -ldflags -X=main.version= ./orbit/cmd/desktop","time":"2025-12-30T08:39:43-03:00","message":"Build fleet-desktop executable amd64"}
{"level":"info","command":"/Users/lucas/go/bin/go build -o Fleet Desktop.app/Contents/MacOS/fleet-desktop_arm64 -ldflags -X=main.version= ./orbit/cmd/desktop","time":"2025-12-30T08:39:47-03:00","message":"Build fleet-desktop executable arm64"}
Generated desktop.app.tar.gz successfully.
```

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

## fleetd/orbit/Fleet Desktop

- [X] Verified that fleetd runs on macOS
- [X] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))
2026-01-05 13:33:22 -03:00
Allen Houchins f598480d7a Update maturity assessment based on Q1 2026 priorities (#37848)
This pull request updates the product maturity assessment documentation
to reflect improved maturity levels for several device management
features across different platforms. The changes adjust the maturity
icons for features such as Android Work Profile enrollment, setup
experiences, Fleet-maintained apps, and device unenrollment, indicating
progress in their development roadmap.

**Maturity level updates:**

* Android and Windows/Linux enrollment:
* Updated the maturity level for "Work Profile enrollment (Android)"
from 🐣 to 🐥 starting Q1 2026 and onward, showing advancement in feature
readiness.
* Updated "Setup experience (Windows)" and "Setup experience (Linux)"
from 🐣 to 🐥 starting Q1 2026 and onward, reflecting improved onboarding
experiences.

* Application management:
* Changed "Fleet-maintained apps" from 🐣 to 🐥 starting Q1 2026 and
onward, indicating enhanced support for these apps.

* Device lifecycle management:
* Adjusted "Device unenrollment" from 🐥 to 🐣 for Current and Q1 2026,
then to 🐥 for subsequent quarters, clarifying the timeline for maturity
improvements in this capability.
2026-01-05 10:29:57 -06:00
Lucas Manuel Rodriguez 2dafd11355 Rollback Entra legacy 'device ID' ingestion (#37687)
Resolves #37686.

Rolling back the detail query change in
https://github.com/fleetdm/fleet/commit/527c2230e9d0b3edd662741b3aa91b0b8e89c372.
The test in the original commit was not related to the change so I kept
it as it was added to make sure order of processing of query results.

I tested the ingested device ID matches the one in Entra and that Yes/No
compliant functionality works as expected.

- [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] QA'd all new/changed functionality manually
2026-01-05 13:28:43 -03:00
Ian Littman f291ffae11 Enforce "user must be able to write to the team they're editing" in set-aside data store method (#37844)
## Testing

- [x] Added/updated automated tests
2026-01-05 10:02:53 -06:00
Noah Talerman 3b92554e56 Add debugging section for host enrollment (#37654)
- @noahtalerman: Best practice for debugging enrollment is to look for
errors in the logs. Right now, this section is hiding under "Advanced"
2026-01-05 09:37:03 -06:00
Ian Littman ec4c1088d9 Add additional test coverage for team labels (#37793)
There will be one more follow-up for set-aside behavior.
2026-01-05 09:01:12 -06:00