Commit Graph
20811 Commits
Author SHA1 Message Date
Victor Lyuboslavsky 7b00d40f57 Improved OpenTelemetry tracing (#38483)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38479

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

## Testing

- [x] QA'd all new/changed functionality manually
2026-01-20 12:22:20 -06:00
github-actions[bot]andlucasmrod f7ceb18c6d Update versions of fleetd components in Fleet's TUF [automated] (#38522)
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-01-20 14:53:29 -03:00
RachelElysia 6d7f227a60 Fleet UI: Clarify delete VPP app pending install nuance (#38376) 2026-01-20 12:49:18 -05:00
Ashish Kuthiala 40ab729db5 Add link to Executive Messaging Framework (#38485)
Added a link to the Executive Messaging Framework for CIO communication.
2026-01-20 11:20:23 -06:00
Jonathan Katz 7f0a10268c Use custom icons in GitOps for Fleet Maintained Apps (#38497)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37264
When batch adding icons, the difference between the batch request and
batch results response is compared, but only by hash/URL, which fleet
maintained apps don't provide in a GitOps file. This means the GitOps
code has no way to compare between the FMA it provided and the hash/url
it got. This PR adds Slug to `SoftwarePackageResponse` to be able to
compare fleet maintained apps to their respective software titles that
get uploaded.

# 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)
- [ ] 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
2026-01-20 11:56:40 -05:00
Magnus Jensen 96dcaeec1b manual agent install should only block macOS SE software (#38434)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37008 

# 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-20 11:37:39 -05:00
Magnus Jensen 571091dc0d update windows verifier to allow non-atomic profiles (#38390)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37935 

# 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. - Added by the first sub-task for the parent
story.

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
2026-01-20 11:37:26 -05:00
Lucas Manuel Rodriguez 49fa9dc20a Add schema for executable_hashes (#38492)
This was missing in https://github.com/fleetdm/fleet/pull/38118/changes.

Will be cherry-picked to 4.80.0.
2026-01-20 13:23:22 -03:00
fleet-releaseandallenhouchins 4c03095ca7 Update Fleet-maintained apps (#38512)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-01-20 09:08:08 -06:00
Noah Talerman b07097f1cf Add back 'Confirm and celebrate' ritual (weekly) (#38513)
- @noahtalerman: The confirm and celebrate column has been full for
awhile. Bringing back this ritual (weekly) so we can empty the column
2026-01-20 09:55:35 -05:00
fleet-releaseandmostlikelee 3dfb34c380 Update Fleet-maintained apps (#38509)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-01-20 08:51:41 -06:00
kitzy 0b02d334c8 Add hash_sha256 and package_name filters (#38474)
**Related issue:** Resolves #32965

## Description

This PR adds two new query parameters to the \`GET
/api/v1/fleet/software/titles\` endpoint to support filtering by SHA-256
hash and package filename. This enables CI/CD automation tools to check
if a custom software package already exists in Fleet before uploading.

## Changes

### API Changes
- Added \`hash_sha256\` query parameter to filter by package SHA-256
hash
- Added \`package_name\` query parameter to filter by package filename
- Both parameters require \`team_id\` to be specified (software packages
are team-scoped)

### Implementation
- Updated \`SoftwareTitleListOptions\` struct with new filter fields
- Modified SQL query builder in \`selectSoftwareTitlesSQL\` to filter on
\`software_installers.storage_id\` and \`software_installers.filename\`
- Added validation to enforce team_id requirement for these filters

### Testing
- Added \`TestListSoftwareTitlesByHashAndName\` integration test with 13
test scenarios
- Tests cover filtering by hash, filtering by name, error handling, team
isolation, and combination with other filters

# Checklist for submitter

- [x] Changes file added for user-visible changes in \`changes/\`,
\`orbit/changes/\` or \`ee/fleetd-chrome/changes\`.
- [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] Where appropriate, automated tests simulate multiple hosts and
test for host isolation (updates to one hosts's records do not affect
another)
- [x] QA'd all new/changed functionality manually
2026-01-20 09:50:56 -05:00
Martin Angers 8c5f2981fc Bugfix: patch categories for software installer (#38334) 2026-01-20 09:39:13 -05:00
RachelElysia 136fadbbaf GitOps: Allow team yml to apply display_name to software package (#38364) 2026-01-20 09:32:25 -05:00
Nico c27d1b27a3 Fix: redirect to SSO > End Users tab from Controls > Setup experience > End user auth set up (#38510)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
Ad-hoc fix. Context:
https://fleetdm.slack.com/archives/C084F4MKYSJ/p1768917147413809

The **Connect** button was redirecting to `Settings > Integrations >
IdP` instead of `Settings > SSO > End users`.

<img width="1385" height="499" alt="Screenshot 2026-01-20 at 11 17
34 AM"
src="https://github.com/user-attachments/assets/67b5dff3-73a9-415a-975a-5bd504248ef1"
/>
2026-01-20 11:26:47 -03:00
github-actions[bot]andallenhouchins 4e66f183c2 Update 1Password and Safari policy versions (#38505)
This PR automatically updates both 1Password macOS version policy and
Safari version policy for dogfood.

The changes were generated automatically by the
[dogfood-automated-policy-updates
workflow](https://github.com/fleetdm/fleet/actions/workflows/dogfood-automated-policy-updates.yml).

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-01-20 07:44:10 -06:00
Allen Houchins b76157b83d Remove Microsoft Company Portal app and scripts (#38506)
Deleted all configuration, install/uninstall scripts, and output files
related to the Microsoft Company Portal app from maintained-apps. Also
removed its entry from the apps.json manifest.

`Microsoft.CompanyPortal` was removed from `winget` recently in favor of
the `msstore` version:
https://github.com/microsoft/winget-pkgs/pull/330295

Attempting to install the existing FMA in Fleet results in a certificate
error.
2026-01-20 07:38:33 -06:00
Marko Lisica 85af395379 Display iPad screenshot in lock modal (#38475)
…ot based on the device platform

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

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


- [ ] QA'd all new/changed functionality manually
2026-01-20 13:26:01 +01:00
Scott Gress 393531b624 Implement trusted proxies config (#38471)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #

# Details

Adds a new `FLEET_SERVER_TRUSTED_PROXIES` config, allowing more
fine-grained control over how the client IP is determined for requests.
Uses the
[realclientip-go](https://github.com/realclientip/realclientip-go)
library as the engine for parsing headers and using rules to determine
the IP.

# 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

* **New Features**
* Introduced FLEET_SERVER_TRUSTED_PROXIES configuration option to
specify trusted proxy IPs and hosts. The server now supports flexible
client IP detection strategies that respect your proxy configuration,
with support for multiple formats including single IP header names, hop
counts, and IP address ranges, adapting to various infrastructure setups
and deployment 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-19 22:13:37 -06:00
Martin Angers 9db733a5dc Clarify when the browser field is included, along with the extension_for field (#38494)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #31519
2026-01-19 16:08:25 -06:00
Ian Littman 18256bdf0e Add missing step-security hardening action, bump to current version (#38470)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Upgraded security protections across build and deployment workflows
for enhanced runner environment hardening.
* Strengthened CI/CD infrastructure security measures throughout
automated processes.
  * No direct user-facing changes.

<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-19 15:10:48 -06:00
mmendm 1930f90494 Update product-groups.md (#38482) 2026-01-19 15:09:13 -06:00
Juan Fernandez b95d3cbfd7 Ability to set fleet desktop alternative browser host in org settings (#38409)
Resolves #33762 & #38094 

Added a new `alternative-browser-host` global config property for Fleet Desktop, if set, Fleet Desktop will use it over the `--fleet-desktop-alternative-browser-host` env variable to open any Fleet Desktop related links (i.e. My Device, etc).
2026-01-19 16:25:22 -04:00
Ian Littman a394596fbf Bump installer max size, make configurable (#38122)
Resolves #37464.

# Checklist for submitter

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

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

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

## Testing

- [x] Added/updated automated tests

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

## New Fleet configuration settings

- [x] Setting(s) is/are explicitly excluded from GitOps
2026-01-19 13:36:01 -06:00
Victor Lyuboslavsky d63288588b Added bug prioritization section to handbook (#38476) 2026-01-19 13:17:06 -06:00
Sam Pfluger c5c901a063 Update CODEOWNERS and custom.js for handbook ownership (#38490)
Moved several handbook path ownerships from CODEOWNERS to custom.js and
added corresponding entries in custom.js. Updated reviewer lists for
CODEOWNERS and custom.js files to include 'ireedy'. Adjusted ownership
for specific handbook sections to reflect current maintainers.
2026-01-19 12:22:17 -06:00
Nico 2dd101f3e9 Delete Fleet users when deleted from IdP: Frontend changes (#38429)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38088

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

<img width="1163" height="494" alt="Screenshot 2026-01-16 at 11 00
53 AM"
src="https://github.com/user-attachments/assets/46664267-2295-4690-97aa-e6ec16ef5e78"
/>
<img width="800" height="223" alt="Screenshot 2026-01-16 at 11 01 04 AM"
src="https://github.com/user-attachments/assets/95116b23-a72f-45ba-a1ea-d3909053a827"
/>
<img width="1248" height="543" alt="Screenshot 2026-01-16 at 11 01
15 AM"
src="https://github.com/user-attachments/assets/597976f2-07ed-4ce8-a299-27f8b1ad5cd3"
/>
<img width="1066" height="507" alt="Screenshot 2026-01-16 at 11 36
45 AM"
src="https://github.com/user-attachments/assets/c5647a86-2723-4734-8d70-44db7f16cd0d"
/>
<img width="1476" height="349" alt="Screenshot 2026-01-16 at 11 42
53 AM"
src="https://github.com/user-attachments/assets/c7097473-12e5-4011-88bd-c8208ef62325"
/>
2026-01-19 14:58:18 -03:00
Ian Littman ec39dc8c06 Bump to latest release of RustFS docker-compose dependency (#38469)
Validated reads/writes locally on standard docker-compose.
2026-01-19 11:20:46 -06:00
Magnus Jensen 8829b4e131 handle non atomic windows profiles when sending and receiving (#38332)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37932

# 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. - Added by the first sub-task for the entire
story.

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
2026-01-19 11:16:28 -05:00
Nico 5196521586 Delete Fleet users when deleted from IdP: Server changes for SCIM handling of deletion (#38321)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38087 

More context:
https://fleetdm.slack.com/archives/C084F4MKYSJ/p1768336339026999 and
https://fleetdm.slack.com/archives/C084F4MKYSJ/p1768512354275959.

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

### Okta

NOTE: Okta does not send `DELETE` requests when deleting a user.
Therefore, we decided to perform Fleet users deletion when the
deactivation happens (`PUT` request).
There's an edge case where a `deactivated` user in Okta is `activated`
back again: Okta sends a `POST` request as if a new user was created --
due to this I added an extra check on the `UserHandler Create` function
so that we don't attempt to create a duplicate SCIM user and instead
replace the existing record (basically, the only change should be
`active=0` -> `active=1`).

What I tested:

- [x] Deactivating user in Okta switches `scim_users` record to `active
= 0` and deletes matching `users` records.
- [x] Activating a deactivated user in Okta switches `scim_users` record
to `active = 1`. Note that a `users` record is not created
automatically. For this, there are two alternatives that we'll mention
in the documentation:

1. Manually create a user from the **Users page**.
2. Log in to Fleet using SSO (must have SSO and the **Create user and
sync permissions on login** setting enabled). Note that an activation
email is sent and the user must provide a new password, or an admin in
the Okta dashboard can set up a one-time password and share it with the
user.


https://github.com/user-attachments/assets/5262a581-41f0-4a88-aa73-40768064f8f5
2026-01-19 11:35:42 -03:00
Victor Lyuboslavsky 6019fa6d5a Activity bounded context: /api/latest/fleet/activities (1 of 2) (#38115)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37806 

This PR creates an activity bounded context and moves the following HTTP
endpoint (including the full vertical slice) there:
`/api/latest/fleet/activities`

NONE of the other activity functionality is moved! This is an
incremental approach starting with just 1 API/service endpoint.

A significant part of this PR is tests. This feature is now receiving
significantly more unit/integration test coverage than before.

Also, this PR does not remove the `ListActivities` datastore method in
the legacy code. That will be done in the follow up PR (part 2 of 2).

This refactoring effort also uncovered an activity/user authorization
issue: https://fleetdm.slack.com/archives/C02A8BRABB5/p1768582236611479

# Checklist for submitter

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

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

## Testing

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

* **New Features**
* Activity listing API now available with query filtering, date-range
filtering, and type-based filtering
* Pagination support for activity results with cursor-based and
offset-based options
* Configurable sorting by creation date or activity ID in ascending or
descending order
* Automatic enrichment of activity records with actor user details
(name, email, avatar)
* Role-based access controls applied to activity visibility based on
user permissions

<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-19 09:07:14 -05:00
Sam Pfluger b32681937c Consolidate event types in Salesforce integration (#38466) 2026-01-17 21:44:11 -06:00
dependabot[bot] 3c014e6cff Bump tar from 7.5.2 to 7.5.3 in /tools/fleetctl-npm (#38464)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.2 to 7.5.3.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/isaacs/node-tar/commit/03138441b238f48070fb22824b2529c445bc70c7"><code>0313844</code></a>
7.5.3</li>
<li><a
href="https://github.com/isaacs/node-tar/commit/340eb285b6d986e91969a1170d7fe9b0face405e"><code>340eb28</code></a>
fix: sanitize absolute linkpaths properly</li>
<li><a
href="https://github.com/isaacs/node-tar/commit/8bb83f7e5154fad0302c8329f4b7472ef139f86b"><code>8bb83f7</code></a>
update deps</li>
<li><a
href="https://github.com/isaacs/node-tar/commit/1c4aedd28a3a1b125c9f00a3daa489fafe8d8512"><code>1c4aedd</code></a>
Fix typo in onWriteEntry documentation</li>
<li>See full diff in <a
href="https://github.com/isaacs/node-tar/compare/v7.5.2...v7.5.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tar&package-manager=npm_and_yarn&previous-version=7.5.2&new-version=7.5.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/fleetdm/fleet/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 21:10:40 -06:00
Konstantin SykulevandIan Littman a5e3c4f5f4 Added cdhash, executable_path and executable_sha256 values to osquery-perf (#38457)
**Related issue:** #33522, #25545

https://github.com/fleetdm/fleet/pull/38118 added `executable_path` and
`executable_sha256` columns to `host_software_installed_paths`.
https://github.com/fleetdm/fleet/pull/29280 added `cdhash_sha256` column
to `host_software_installed_paths`

In order to keep osquery perf realistic, we need to mock this data.

---------

Co-authored-by: Ian Littman <iansltx@gmail.com>
2026-01-16 17:52:02 -08:00
Ashish KuthialaandEric 19a4b22415 Add subheading to homepage hero section (#38361)
Added a new subheading to the hero section.


---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2026-01-16 17:53:21 -06:00
Jonathan Katz 6809f9f01a 35086 use charset reader xar (#38459)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35086

# 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
- [ ] 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-16 17:19:20 -05:00
c1e2b637f9 API and YAML reference: Add missing interval field for policy automations (#38382)
How we learned we were missing these:
https://github.com/fleetdm/fleet/pull/38325#discussion_r2691714596

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
2026-01-16 15:19:21 -06:00
Ian Littman 1ae32f3bb8 🤖 Remove dependencies on tslint and ts-node (#38413)
Zed + Opus 4.5; initial prompt: What would it take to remove the
dependencies on ts-node and tslint? It looks like ts-node is currently
used for tests.

The agent prompted if I wanted to continue and I confirmed.

## Testing

- [x] Added/updated automated tests
2026-01-16 14:40:25 -06:00
Marq 9d3c1e3214 Update product-groups.md (#38449) 2026-01-16 14:24:02 -06:00
Scott Gress c8bcfa345f Fix issue linking SCIM data to newly-enrolled hosts (#38408)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37271 

# Checklist for submitter

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

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

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

## Testing

- [ ] Added/updated automated tests
There's [an existing test suite in
mysql/host_tests.go](https://github.com/fleetdm/fleet/blob/c6746e5967a1153ea4ef68888a77f342bab15598/server/datastore/mysql/hosts_test.go#L12102-L12202),
but that file uses the "one main test with a bunch of cases" pattern to
do a single setup call, and the setup doesn't use the read replica. I'm
guessing that simply flipping that switch would probably break a bunch
of tests that don't expect to have to deal with replica lag in their
test data.

- [X] QA'd all new/changed functionality manually
Set up my local dev with replication enabled and a 1 second lag time,
and verified that an authenticated user had SCIM data linked.

<img width="485" height="395" alt="image"
src="https://github.com/user-attachments/assets/c07369b8-a518-4bcc-ab54-08dd268a65ac"
/>

The ultimate test will be a remote server like Dogfood that has
replication.
2026-01-16 14:11:51 -06:00
Jordan Montgomery 2d33a1bc6c Add missing unit test (#38439)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #13798

Adds a missing unit test

# 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)
- [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
2026-01-16 13:31:32 -05:00
Sarah Gillespie 05de1a7f54 Hide host MDM commands activity UI when MDM is turned off (#38394) 2026-01-16 11:03:22 -06:00
Allen Houchins 06600da544 Update product-maturity-assessment.md (#38436) 2026-01-16 10:51:09 -06:00
Gabriel Hernandez 988566e558 improve err message when getting android enrollment token during ota enrollment (#38428) 2026-01-16 16:43:19 +00:00
Allen Houchins e0e7e9bea6 Update turn-off-mdm.ps1 (#38384)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38252

This pull request improves the Windows MDM unregistration PowerShell
script by adding extra checks and cleanup steps to ensure devices are
properly unenrolled and that the state is clearly reported. The script
now checks for relevant registry values before and after unregistration,
and explicitly clears any remaining values to guarantee correct
detection by Fleet.

Enhancements to device unregistration and registry cleanup:

* Added a pre-check for `DiscoveryServiceFullURL` registry values before
attempting to unregister the device, to provide clearer output about the
device's enrollment state.
* After calling the `UnregisterDeviceWithManagement` API, the script now
explicitly removes any remaining `DiscoveryServiceFullURL` values from
enrollment keys that have a `UPN`, ensuring Fleet properly detects the
device as unenrolled.
* Improved output messages to clearly indicate the actions taken and the
resulting device state, including whether registry values were found,
cleared, or already absent.
* Added error handling to exit with a non-zero code if an error occurs
during unregistration.
2026-01-16 10:31:05 -06:00
Noah Talerman 4e0c3ed0b3 Update product maturity assessment for 2026 (#38435)
Still TODO:
- "COME BACK TO THIS" in the doc:
- @allenhouchins: "Cross-cutting stages"

Decided to merge this as is and come back to TODOs
2026-01-16 10:11:34 -06:00
RachelElysia ccf4eae0dc Fleet UI: Strip build from compareVersion x.x (build x.x) (#38433) 2026-01-16 10:59:46 -05:00
RachelElysia aae3248d02 Fleet UI: Show VPP version for software setup (#38412) 2026-01-15 21:33:52 -05:00
Mitch FranceseandRachael Shaw e4e35ebad2 Update Okta Conditional Access documentation (#38285)
Added step to download the certificate in Okta integration.

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-01-15 17:38:35 -06:00
Ian Littman 8c9e9e2ccb Add database migration performance test to release QA template (#38407) 2026-01-15 16:47:25 -06:00