Commit Graph
24117 Commits
Author SHA1 Message Date
Konstantin Sykulev 361a5a402e Creating product index to speed up vulnerability scanning (#44910)
**Related issue:** Resolves #44391

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



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

## Summary by CodeRabbit

* **Documentation**
* Added release notes documenting vulnerability scanning performance
improvements

* **Refactor**
* Optimized vulnerability scanning performance through enhanced CVE
product matching efficiency

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 22:20:58 -06:00
Mike McNeil a98a8883af Website: Update observability.ejs (#45000)
Make it match


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

## Summary by CodeRabbit

* **Updates**
* Updated messaging on the observability page's hero section headline
from "Open orchestration" to "Real-time reporting"
* Updated the bottom call-to-action headline similarly to "Real-time
reporting"
* Changed secondary call-to-action text to emphasize faster insights
("Find things out in seconds")

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 22:37:35 -05:00
Mike McNeil eae9b0a7de Website: Update infrastructure-as-code.ejs (#44999)
50% of Fleet customers don't use IaC, and have huge fleets. It's not
that ClickOps doesn't scale-- it's that there's another way.


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

## Summary by CodeRabbit

* **Documentation**
* Updated the "There is another way" section header on the
Infrastructure as Code page with revised wording.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 22:37:29 -05:00
Mike McNeil 6f2fc3e312 Website: Update homepage.ejs (#45001)
Mike T to review


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

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Updated homepage hero with new CTAs: "Try it yourself" and "Join a
workshop"
* Added "Explore device management" and "More about visibility"
call-to-action buttons
* Enhanced marketing messaging highlighting multi-OS support and
flexible deployment options
  * Reordered comparison table dropdown options for better navigation
* Updated CTAs from "Get a demo" to "See case studies" for case study
access
  * Refreshed banner heading to emphasize high-agency device management

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 22:35:14 -05:00
fleet-releaseandallenhouchins b0ae51fcbd Update Fleet-maintained apps (#44996)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

## Release Notes

* **Chores**
  * Updated Claude desktop macOS to version 1.6608.0
  * Updated Dialpad macOS to version 2605.0.2
  * Updated Tor Browser macOS to version 15.0.13

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-07 21:54:09 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 0dc7a66d53 Add Oscar Taracena testimonial to linux-management landing page (#44972)
## Summary

- Adds a customer testimonial from Oscar Taracena (Technical Operation
Engineer, Anduril Industries) to the `/linux-management` landing page
- Both testimonials (Oscar Taracena and Roger Cantrell) are now styled
to match the Dan Jackson testimonial format on the
`/infrastructure-as-code` page, including:
- Company logo displayed above the quote text (Anduril Industries logo
for Oscar, Nutanix logo for Roger)
  - Horizontal author layout with `name-and-title` wrapper
- Updated CSS for `quote-image`, `name-and-title`, row-based
`quote-author-info`, and matching font sizes

## Changes

- `website/views/pages/landing-pages/linux-management.ejs` — Updated
both testimonial sections to include company logos and use the
`name-and-title` wrapper structure
- `website/assets/styles/pages/landing-pages/linux-management.less` —
Added `quote-image` and `name-and-title` styles, changed author info to
horizontal row layout, aligned font sizes with infrastructure-as-code
page
- `website/assets/images/logo-anduril-104x40@2x.png` — Added Anduril
Industries logo (sourced from official company logo)
-
`website/assets/images/testimonial-author-oscar-taracena-100x100@2x.png`
— Added Oscar's headshot image

---

Built for [Daniel
Gordon](https://fleetdm.slack.com/archives/D0AHXRWHZD1/p1778186427565669?thread_ts=1778183252.605929&cid=D0AHXRWHZD1)
by [Kilo for Slack](https://kilo.ai/slack)

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-05-07 16:55:28 -07:00
kilo-code-bot[bot]andkiloconnect[bot] 7791e5be7f Make GitOps mode indicator link to change management settings for global admins (#44334)
## Summary

- Updates the "GitOps mode" indicator in the top navigation bar to
become a clickable link that navigates to
`/settings/integrations/change-management` when the current user is a
global admin.
- For non-global-admin users, the indicator remains as a non-clickable
text badge (unchanged behavior).

## Changes

- **`frontend/components/top_nav/SiteTopNav/SiteTopNav.tsx`**: Added
`isGlobalAdmin` prop to `GitOpsModeIndicator` component. When true,
wraps the indicator content in a `<Link>` to
`PATHS.ADMIN_INTEGRATIONS_CHANGE_MANAGEMENT`. Otherwise, renders the
content as-is.
- **`frontend/components/top_nav/SiteTopNav/_styles.scss`**: Added
`.gitops-mode-indicator__link` styles to ensure the link has no default
link styling (no underline, inherited color) and shows a pointer cursor.

Built for [Rachael
Shaw](https://fleetdm.slack.com/archives/D0AFC5BRFHD/p1777410934139609?thread_ts=1777406096.224979&cid=D0AFC5BRFHD)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-05-07 17:32:05 -05:00
Scott Gress 64a50d0c16 Fix relative spread + calendar dates on checkerboard (#44959)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #44958

# Details

Fixes two issues on the checkerboard:

1. Ensures that the chart shows data going back 30 calendar days (not
720 hours) if it has it
2. Leaves `0` values out of the chart color band calculations in
"relative" color mode

# 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.
n/a, unreleased

## Testing

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

**Before**

Colors clustered in top 3 levels, empty boxes in first column:
<img width="705" height="416" alt="image"
src="https://github.com/user-attachments/assets/b867a1a9-4c52-4b96-92fd-04e7848c6295"
/>

**After**

Colors spread over all levels, no empty boxes in first column:
<img width="707" height="412" alt="image"
src="https://github.com/user-attachments/assets/c67e11c5-6dd8-4e66-9c32-9d9213ccb24f"
/>

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

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


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

* **Bug Fixes**
* Charts request an extra day to ensure full calendar-day coverage
across timezones.
* Checkerboard visualization excludes empty/no-data slots from relative
color scaling so color ramps reflect non-zero data.
* Calendar view trims leading partial days so the displayed window
matches the selected range.

* **New Features**
* Chart date-range selection expanded to support any value from 1–31
days.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 17:02:51 -05:00
fleet-releaseandallenhouchins dd256af018 Update Fleet-maintained apps (#44977)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated Microsoft Edge macOS managed app payload to version
148.0.3967.54 with updated installer and verification checksums.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-07 15:53:43 -05:00
Dan Gordon 593693fabd fix LP long title and chapter numbering (en and fr versions) (#44966)
Fixed an overly long first title on the en and fr version of landing
page which made the page look sloppy. Made the language tighter. Also
updated the filenames to all lowercase to match the slugs to align with
standards, and make it easier to find the files when editing.
2026-05-07 14:57:07 -05:00
kitzy 30b39aa0bd Fix typos in using-bioutil-cmd.md (#44951) 2026-05-07 14:14:08 -05:00
fleet-releaseandallenhouchins 7918a95439 Update Fleet-maintained apps (#44962)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated installer metadata for multiple applications on macOS: Arc
(1.146.0), Brave Browser (148.1.90.121), Cursor (3.3.22), Firefox
(150.0.2), Firefox ESR (140.10.2), GitKraken (12.1.1), Signal (8.9.0),
and Tor Browser (15.0.12) with the latest version information, download
URLs, and checksums.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-07 14:11:27 -05:00
George KarrandCopilot Autofix powered by AI 2e1831a91a Adding changes for Fleet v4.84.3 (#44886)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated Kubernetes deployment chart to v7.0.1 with application version
v4.84.3.
* Updated container image versions across cloud deployment
configurations to v4.84.3.
  * Updated command-line tool version to v4.84.3.

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

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-07 14:03:33 -05:00
Victor Lyuboslavsky d9b17cf551 Android cert SAN frontend (#44809)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41472 

-
[Figma](https://www.figma.com/design/2jRQoXofC1caxyNhWl8F0m/Android-certificates--support-for-subject-alternative-name--SAN--attributes-in-certificates?node-id=2-130&p=f&m=dev)
- Needs to merge to main after
https://github.com/fleetdm/fleet/pull/44690

# 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**
* Added Subject Alternative Name (SAN) field to the certificate
management modal with comprehensive validation support.

* **Tests**
* Expanded test coverage for the certificate modal with enhanced
validation scenarios and server response handling.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 14:59:10 -04:00
Allen Houchins e11dee70d4 Update fleet-desktop checksums (#44961)
Update SHA256 checksums for fleet-desktop (v1.2.0) across Homebrew cask,
API metadata, and darwin output. Adjusts the cask sha256, API sha256 and
ruby_source_checksum to match the rebuilt package artifact.
2026-05-07 13:58:41 -05:00
Eric 02b5182403 Website: update default consent mode set in website header (#44952)
Changes:
- Disabled url_passthrough in the default consent mode set for GA4, and
removed a comment.
2026-05-07 13:19:11 -05:00
Allen Houchins e20cbb6d61 Disable auto-updates for new macOS hosts (#44957)
Set macos_updates.update_new_hosts to false in the workstations fleet
config to prevent automatic updates from being applied to newly enrolled
macOS hosts. This change enables controlled rollout and testing of
updates before enabling automatic updates for new machines.

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

## Summary by CodeRabbit

* **Chores**
* Modified macOS workstation update configuration to disable automatic
updates for newly provisioned hosts.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 13:08:06 -05:00
Tim Lee dc0c7bd72f Recover stuck SCEP managed-cert state via matcher extension (#44691) 2026-05-07 11:52:25 -06:00
Dan Gordon 696d7b7070 update asset to french version (#44913)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves
#https://github.com/fleetdm/confidential/issues/15648

Updated IT Leader's Linux Guide and landing page with version of the
asset translated to French.
2026-05-07 09:48:45 -07:00
Eric 8e522d0e7c Website: remove stripe script tag, update customer dashboard (#44159)
Website: 
- Removed the stripe script tag from the website layout
- Removed the stripe-card-element component
- Removed stripe from the assets eslint configuration
- Removed unused methods and modals from the customer dashboard
- Removed the unused sails account-overview page
- Removed the open-stripe-checkout utility

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

## Summary by CodeRabbit

* **Refactor**
  * Removed Stripe payment integration from the application.
* Removed account overview page and associated billing management
features.
* Removed payment card management functionality (add, update, remove
cards) from the dashboard.

* **Style**
  * Removed styles for deprecated payment components.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 11:30:55 -05:00
Juan Fernandez 2c7bb2f6eb Fix SSO invite acceptance error when accepting invitation (#34103)
Resolves #34103 

The SSO invite acceptance page submitted a create-user request without
the invitee's email, because it read `email` from the URL query string
which the invite email link never populates. To resolve this the email
was loaded by calling GET /api/_version_/fleet/invites/{token} endpoint.

As part of this fix, the ConfirmSSOInvite components were refactored
from 'classical' components to functional components.
2026-05-07 12:25:24 -04:00
Luke Heath 3bbb2d206c Change runner from ubuntu-latest to ubuntu-16core (#44944) 2026-05-07 11:17:24 -05:00
Justine Hoang bae2ba7e10 Update README.md (#44926)
Fixed typo "during" under the Confirm CEO shadow dates section
2026-05-07 16:52:58 +01:00
Sean Hannon f59766db38 Fix broken link for Sean Hannon in CS README.md (#44895)
Missing https:// in original commit

<!-- 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-05-07 16:52:34 +01:00
Luke Heath 071cfb3c73 Add temporary workflow to clear legacy Trivy alerts (#44942) 2026-05-07 10:42:42 -05:00
Noah TalermanandRachael Shaw 62c1033868 tools/ directory: Rename "queries" => "reports" and "teams" => "fleets" (#43575)
For the following issue:
- https://github.com/fleetdm/fleet/issues/41419


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

* **Chores**
* Updated tooling and documentation wording across scripts, utilities,
and infrastructure files to reflect the product terminology change from
“teams” to “fleets” (references now note “fleets” and indicate the
former “teams” naming).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-05-07 10:42:39 -05:00
e4edb1b3e4 Handbook: Add "Mark an account as a Top target" section to GTM operations (#44896)
## Summary
- Adds a new "Mark an account as a Top target" section to the
Go-To-Market operations handbook page
- Placed after the existing "Remove a contact from the Top contacts list
in Salesforce" section, as both relate to account/contact management in
Salesforce

## Changes
- `handbook/company/go-to-market-operations.md`: Added new `### Mark an
account as a "Top target"` section with instructions for labeling
accounts and a callout about stack ranking target accounts.

---

Built for [Sam
Pfluger](https://fleetdm.slack.com/archives/D0AF8QFBVHB/p1778106382921239?thread_ts=1775094096.519039&cid=D0AF8QFBVHB)
by [Kilo for Slack](https://kilo.ai/slack)

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
2026-05-07 10:37:21 -05:00
Lucas Manuel Rodriguez f4bae86e0d Ignore critical CVE in fleetdm/fleetctl docker image (#44939)
Fixes:
https://github.com/fleetdm/fleet/actions/runs/25480975109/job/74764798920

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

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

## Summary by CodeRabbit

* **Security**
* Added vulnerability assessment documentation confirming fleetctl is
not affected by CVE-2026-33845.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 12:23:00 -03:00
5c3d8ae807 Show 'Fleet will try again.' in host activity feed for NotNow MDM commands (#44532)
Relates to: https://github.com/fleetdm/fleet/issues/44529

## Summary

- Adds "Fleet will try again." text to the host-level activity feed for
MDM commands with a "NotNow" status, matching the existing behavior in
the CommandDetailsModal.
- Previously, users had to open the modal to see this retry information;
now it's visible directly in the activity feed.

## Changes

-
`frontend/pages/hosts/details/cards/Activity/CommandItem/CommandItem.tsx`:
When a command's `status` is `"NotNow"`, append " Fleet will try again."
to the activity text displayed in the feed.

## QA

1. Navigate to a host details page with MDM commands enabled.
2. Trigger or find a command with "NotNow" status (host locked or
running on battery in Power Nap).
3. Verify the activity feed item shows "The **{command}** command is
deferred. Fleet will try again."
4. Verify the CommandDetailsModal still shows the full deferred message
with "Fleet will try again."

---

Built for [Mel
Pike](https://fleetdm.slack.com/archives/D0AKX7DJFCN/p1777575458215749?thread_ts=1777299502.461149&cid=D0AKX7DJFCN)
by [Kilo for Slack](https://kilo.ai/slack)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: melpike <79950145+melpike@users.noreply.github.com>
2026-05-07 09:22:48 -06:00
Mike McNeil e0da361901 Update device-management.ejs (#44941) 2026-05-07 10:21:23 -05:00
Allen Houchins 83b746cc15 Create fleetctl pkg asset every release (#35089) 2026-05-07 10:04:07 -05:00
dependabot[bot] 3292f0eb47 Bump github.com/apache/thrift from 0.22.0 to 0.23.0 (#44889)
Bumps [github.com/apache/thrift](https://github.com/apache/thrift) from
0.22.0 to 0.23.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/apache/thrift/releases">github.com/apache/thrift's
releases</a>.</em></p>
<blockquote>
<h2>Version 0.23.0</h2>
<p>Please head over to the official release download source:
<a
href="http://thrift.apache.org/download">http://thrift.apache.org/download</a></p>
<p>The assets listed below are added by Github based on the release tag
and they will therefore not match the checkums published on the Thrift
project website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apache/thrift/blob/master/CHANGES.md">github.com/apache/thrift's
changelog</a>.</em></p>
<blockquote>
<h2>0.23.0</h2>
<h3>Build Process</h3>
<ul>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5877">THRIFT-5877</a>
- Add cpp cross tests</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5866">THRIFT-5866</a>
- Dockerfile to support Ubuntu 24.04 LTS (Noble Numbat)</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5909">THRIFT-5909</a>
- add Ruby in GitHub workflow</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5649">THRIFT-5649</a>
- add go in GitHub workflow / action</li>
</ul>
<h3>C glib</h3>
<ul>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5931">THRIFT-5931</a>
- thrift_ssl_socket_get_ssl_error() can underflow its remaining-buffer
counter and write past the stack buffer</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5871">THRIFT-5871</a>
- Improve MAX_MESSAGE_SIZE check and friends</li>
</ul>
<h3>C++</h3>
<ul>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5911">THRIFT-5911</a>
- Inconsistent UUID compilation for aliased types</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5912">THRIFT-5912</a>
- Assertion failed: <code>delta &gt; 0</code>, file
ThreadManagerTests.h, line 162</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5880">THRIFT-5880</a>
- C++ TSocket on an IPv6-only system fails if you use a hostname of
127.0.0.1</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-3268">THRIFT-3268</a>
- warning: token pasting of ',' and <code>__VA_ARGS__</code> is a GNU
extension</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5887">THRIFT-5887</a>
- build/cmake/ should be prepended (not appended) to
CMAKE_MODULE_PATH</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5878">THRIFT-5878</a>
- Add UUID support for THeaderProtocol and TProtocolTap</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5898">THRIFT-5898</a>
- Unable to build Thrift as a shared library on Windows</li>
</ul>
<h3>Contributed</h3>
<ul>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5920">THRIFT-5920</a>
- Remove threadsafe warnings in thrift-maven-plugin</li>
</ul>
<h3>Delphi</h3>
<ul>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5939">THRIFT-5939</a>
- Replace GUID generation with stable UUID algorithm</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5876">THRIFT-5876</a>
- Add Delphi WinHTTP client TLS1.3 support</li>
</ul>
<h3>Go</h3>
<ul>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5896">THRIFT-5896</a>
- Race condition in TServerSocket.Addr() method</li>
</ul>
<h3>Java</h3>
<ul>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5925">THRIFT-5925</a>
- UUID implementation in JAVA is not according to the Thrift
Specification</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5869">THRIFT-5869</a>
- Close the transport after TServerEventHandler deleteContext</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5863">THRIFT-5863</a>
- Make TServerTransport able to customize the max message size</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5774">THRIFT-5774</a>
- Add remote client's IP address to ServerContext in
TServerEventHandler</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-4280">THRIFT-4280</a>
- Add async nonblocking ssl support in java client</li>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5879">THRIFT-5879</a>
- java and kotlin cross tests fail in the GitHub action</li>
</ul>
<h3>netstd</h3>
<ul>
<li><a
href="https://issues.apache.org/jira/browse/THRIFT-5902">THRIFT-5902</a>
- Add net10 support</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/thrift/commit/e4b684f5ff4f9c3a42cd7ec0a667c3d9bd7f6ac1"><code>e4b684f</code></a>
Updated CHANGES.md</li>
<li><a
href="https://github.com/apache/thrift/commit/c4cbe43fd12ab5d043af5dd08d1f59e2ba07b2e4"><code>c4cbe43</code></a>
Address vulnerabilities in Rack</li>
<li><a
href="https://github.com/apache/thrift/commit/68ac8e935ef440c3e22d0e1a30e7211b9bf1d441"><code>68ac8e9</code></a>
Enable TLS hostname verification in TNonblockingSSLSocket</li>
<li><a
href="https://github.com/apache/thrift/commit/5e4f01d737e4d3845d07dde6da43981feee0cb9a"><code>5e4f01d</code></a>
Harden Node.js WebSocket server handling</li>
<li><a
href="https://github.com/apache/thrift/commit/e242889231df48f8791372598052862c28f5be83"><code>e242889</code></a>
Add input validation to Swift protocol layer</li>
<li><a
href="https://github.com/apache/thrift/commit/4af8c7c8768cb687b182c1839a39d4beb4f35a5d"><code>4af8c7c</code></a>
Add recursion depth limit to Node.js protocol skip()</li>
<li><a
href="https://github.com/apache/thrift/commit/a30c552bd0808b7e19f35ad30212ba7a9aee8c66"><code>a30c552</code></a>
Enable TLS hostname verification in TSSLTransportFactory</li>
<li><a
href="https://github.com/apache/thrift/commit/0f8ec9c1014ed21acc324aaa421017fb164e9608"><code>0f8ec9c</code></a>
Fix parent class resolution in c_glib generated dispatch_call</li>
<li><a
href="https://github.com/apache/thrift/commit/276ec883910cd936b4f9413bf607c808a7423185"><code>276ec88</code></a>
THRIFT-5929: Fix build failure on PHP 8.5 due to removed
zend_exception_get_d...</li>
<li><a
href="https://github.com/apache/thrift/commit/17f2c13ec2b27503dd0de2720401b96787632364"><code>17f2c13</code></a>
Added missing 0.23.0 JIRA tickets to CHANGES.md</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/thrift/compare/v0.22.0...v0.23.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/apache/thrift&package-manager=go_modules&previous-version=0.22.0&new-version=0.23.0)](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 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-05-07 11:48:03 -03:00
Juan Fernandez 292bab32f6 Clarify SMTP TLS error and surface STARTTLS toggle (#34104)
Resolves #34104 

When saving SMTP settings with SSL/TLS off, STARTTLS on, and SSL cert
verification on, the test-email send produced an opaque Go cert error
that gave users no actionable hint. The two TLS-related toggles also
live on different settings cards with no cross-reference, which made the
conflict hard to spot before hitting Save.
2026-05-07 10:24:18 -04:00
Andrew Mellor 119feeda02 42218 updated ios version number to include supplemental extra (#44727)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42218

# 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

Note: Sim update included and validated with and without supplemental,
screen shots attached

<img width="760" height="87" alt="Host List"
src="https://github.com/user-attachments/assets/c55f0ace-a205-4242-95da-510e8e6ec4ad"
/>
<img width="1511" height="523" alt="Standard"
src="https://github.com/user-attachments/assets/74a42e57-9391-4ce0-8b0a-ad3de6ab4745"
/>
<img width="1505" height="526" alt="Supplimental"
src="https://github.com/user-attachments/assets/392fc603-c7a2-4d6f-8ae0-87767cab7e3c"
/>


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

* **New Features**
* iOS/iPadOS devices managed via MDM now include reported supplemental
OS version text (e.g., Rapid Security Response suffixes) in the
displayed OS version string.
* **Bug Fixes**
* Supplemental extras are validated; invalid values are ignored.
Combined version strings are length-limited and safely truncated.
* **Tests**
* Added tests for supplemental handling, validation, fallback, and
truncation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 15:16:31 +01:00
Nico d8a1ffae81 Clear stale broken label rows on profile batch upsert (#44847)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42637

# 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

### Reproduction steps:

- Created Label X and Label Y as manual labels in the UI.
- Applied gitops referencing the labels. The specified profile
referenced Label X:

```yaml
macos_settings:
    custom_settings:
      - path: ../repro-42637-profile.mobileconfig
        labels_exclude_any:
          - "Repro Label X 42637"
```

- Manually ran a SQL query to update `label_id` to NULL.

<img width="712" height="46" alt="Screenshot 2026-05-06 at 6 19 51 PM"
src="https://github.com/user-attachments/assets/32f386c7-adf3-48e8-adee-03102831e556"
/>


- Re-ran gitops referencing Label Y in the profile config.

```yaml
macos_settings:
    custom_settings:
      - path: ../repro-42637-profile.mobileconfig
        labels_include_any:
          - "Repro Label Y 42637"
```

- Old row was preserved AND a new one was created (association to Label
Y):

<img width="709" height="68" alt="Screenshot 2026-05-06 at 6 22 07 PM"
src="https://github.com/user-attachments/assets/fe2c4644-eb95-45a0-a582-994ad88e45be"
/>

### Testing steps

- Re-built fleetctl with the fix applied and re-ran gitops, still
referencing Label Y for the profile.
- Confirmed the orphan row was deleted.

<img width="740" height="212" alt="Screenshot 2026-05-06 at 6 24 43 PM"
src="https://github.com/user-attachments/assets/da9e9461-c352-4266-80b8-625a98e055ec"
/>


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

## Summary by CodeRabbit

## Bug Fixes
* Fixed an issue where MDM configuration profiles would remain enforced
on hosts after their associated labels were deleted during fleetctl
gitops apply operations. Label associations are now properly cleared
when profiles are reapplied with updated targeting.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 16:10:15 +02:00
b47b1fc205 Update chart styles / fix bugs (#44813)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #44676 

# 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.
n/a, unreleased

## Testing

- [ ] Added/updated automated tests
just style fixes, but the ["disable features: frontend"
PR](https://github.com/fleetdm/fleet/pull/44797) has some tests
  - [X] QA'd all new/changed functionality manually
  - [x] make hosts enrolled chart match height w/ checkerboard
  - [x] use empty boxes with outline instead of filled boxes for 0 value
  - [x] use dark-mode colors for green theme
- [x] put host enrolled chart bars between horizontal rules instead of
on top of them
- [x] only show date and # of hosts in tooltip, no percentage or
denominator
  - [X] add day of week to checkerboard tooltip
  - [x] use comma in tooltip numbers
  - [x] use relative shading in both datasets
- [x] make text size match between hosts enrolled and checkerboard
titles
- [x] on vuln chart tooltip, add "Want more control over this chart?
Comprehensive vulnerability filtering is [coming soon](link to this
issue: https://github.com/fleetdm/fleet/issues/44746)."
  - [x] on vuln chart tooltip, fix link styling in dark mode
  - [x] change "Hosts active" => "Hosts online" 
- [x] Update tooltip copy to "The number of hosts detected online during
a given hour. A host is considered online if it's actively checking in
to Fleet. This includes sleeping hosts (e.g. lid closed)."
- [X] Fix issue where at smaller widths, the entire page has a
horizontal scrollbar
- [X] Make charts stay pegged to the right side when first loaded and
when resizing window

Charts align:
<img width="1223" height="479" alt="image"
src="https://github.com/user-attachments/assets/4a7ba859-a0aa-43c6-a06b-4ef8361e2418"
/>

Data tooltip:
<img width="162" height="77" alt="image"
src="https://github.com/user-attachments/assets/5b1768e4-0736-4e45-ad49-6faf31958352"
/>

Vuln tooltip:
<img width="387" height="123" alt="image"
src="https://github.com/user-attachments/assets/98c2096f-fa4e-4b06-917e-ec6eed844b05"
/>

Hosts online tooltip:
<img width="360" height="113" alt="image"
src="https://github.com/user-attachments/assets/bd65cd1d-0f0c-4c72-a31d-ffe602cacd9c"
/>

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**
  * Optional relative scaling for chart visualizations
  * Responsive chart sizing in the Hosts Enrolled card

* **Improvements**
  * Dataset label updated to "Hosts online"
* Tooltips and labels show formatted host counts with proper
pluralization
  * Day labels now include weekday for clearer dates
  * Chart descriptions mention upcoming vulnerability filtering
  * Tighter header, dropdown, scrollbar, and dark‑mode styling

* **Tests**
* Updated dataset heading test and added a relative‑scale color ramp
test
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Luke Heath <luke@fleetdm.com>
2026-05-07 08:57:55 -05:00
Scott Gress 684becade8 Allow disabling chart datasets: backend (#44769)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** For #44077 

# Details

This PR implements enforcement of the "disable dataset" feature.  

When a dataset is disabled globally, we:

* Stop collecting all data for that dataset (the `Collect` method for
that dataset is not called in the cron job)
* Remove all previously-collected data for the dataset via an
asynchronous job

When a dataset is disabled for one or more fleets, we:

* Provide the list of disabled fleets as an argument to each dataset's
`Collect` method. Each dataset is responsible for filtering out hosts in
the most efficient way possible
* Scrub the data for the relevant datasets using a bitmask, so that all
hosts from the disabled fleets are removed from the data. This is done
via an asynchronous job.

# 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.
n/a, unreleased

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

  ### Prerequisites / Test Setup

- [ ] Fleet running with at least 3 teams (call them T1, T2, T3) and ≥3
hosts in each, plus ≥2 hosts with no team
- [ ] At least one host on each team has reported recent uptime (within
the bucket window)
- [ ] At least one host in each team is affected by a tracked CVE (so
`host_scd_data` for `dataset='cve'` will have non-empty bitmaps)
- [ ] AppConfig: both `features.historical_data.uptime` and
`features.historical_data.vulnerabilities` start as `true`; same for
every team
- [ ] Let the collection cron run at least one full tick to populate
baseline rows in `host_scd_data` for both `uptime` and `cve`
- [ ] Note the current row count per dataset: `SELECT dataset, COUNT(*)
FROM host_scd_data GROUP BY dataset;`

  ---

  ### 1. Cron Skips Globally-Disabled Datasets

  #### 1.1 Global disable of `uptime`

- [x] Disable globally: `PATCH /api/v1/fleet/config` with
`features.historical_data.uptime = false`
- [x] Verify activity feed shows `disabled_historical_dataset` for
`uptime` (existing behavior)
- [x] Wait for next collection tick (or trigger it via fleetctl debug if
available)
  - [x] Confirm **no new rows** appear for `dataset='uptime'`:
`SELECT MAX(valid_from) FROM host_scd_data WHERE dataset='uptime';`
        should not advance after the disable
- [x] Confirm cron still writes `cve` rows on the same tick (per-dataset
isolation)
  - [x] Re-enable: PATCH `historical_data.uptime = true`
  - [x] Verify next tick resumes writing `uptime` rows

  #### 1.2 Global disable of `vulnerabilities`

  - [x] Repeat 1.1 with `features.historical_data.vulnerabilities`
  - [x] Confirm `cve` writes stop, `uptime` continues

  #### 1.3 Both disabled globally

  - [x] Disable both globally
  - [x] Confirm cron tick produces zero new rows for either dataset
  - [x] Confirm cron does not error or get stuck
  - [x] Re-enable both

  ---

  ### 2. Per-Fleet Disable — Cron Filters at SQL

  #### 2.1 Single team disabled for one dataset

  - [x] Disable uptime for T1 only: PATCH team T1 with
        `features.historical_data.uptime = false`
- [x] Verify scoped `disabled_historical_dataset` activity emitted for
T1
  - [x] Wait for next cron tick / trigger cron
- [x] Pick a host known to be in T1 (call it `H_T1`); confirm its bit is
NOT set in any `uptime` row written *after* the disable by filtering the
chart to that host
- [x] Pick a host in T2 (`H_T2`); confirm its bit IS still set in the
same rows (T2 is not disabled)
- [x] Pick a no-team host (`H_none`); confirm its bit IS still set
(no-team hosts follow the global value)

  #### 2.2 Same fleet, different dataset

- [x] With T1's uptime disabled, confirm T1's hosts ARE still written
into `cve` rows on subsequent ticks (per-dataset isolation)

  #### 2.3 All teams disabled, global on, no-team hosts

  - [x] Disable uptime on every team (T1, T2, T3)
- [x] Confirm next tick still writes a row containing only no-team
hosts' bits (global is on, no-team hosts always count)
  - [x] Re-enable uptime on all teams

  ---

  ### 3. Global Scrub — DELETE

  #### 3.1 Successful global scrub

  - [x] Note baseline:
        `SELECT COUNT(*) FROM host_scd_data WHERE dataset='uptime';`
        (should be > 5000 to exercise the loop; if not, manually
        insert filler rows or run multiple cron ticks)
  - [x] Disable uptime globally via the API
  - [x] Wait for the worker to pick up the scrub / trigger the job
  - [x] Confirm the count drops to 0:
        `SELECT COUNT(*) FROM host_scd_data WHERE dataset='uptime';`
  - [x] Confirm rows for **other datasets** are untouched
  - [ ] Test again but disable via GitOps

  ---

  ### 4. Per-Fleet Scrub — ANDNOT

  #### 4.1 Single-fleet scrub clears bits

  - [x] Identify hosts in T1 and record their IDs (call this set `S`)
- [x] Pre-disable, confirm at least one `host_scd_data` row for
`dataset='uptime'` has bits set at positions in `S` by filtering the
chart to those hosts
  - [x] Disable uptime on T1 only, via the API
  - [x] Wait for the scrub to run / trigger it
- [x] Confirm: every existing row for `dataset='uptime'` now has NO bits
set at any position in `S`. Spot-check by filtering the chart to those
hosts
- [x] Confirm rows for `dataset='cve'` (different dataset) are untouched
  - [x] Confirm bits for hosts in T2/T3 (not disabled) are still set
  - [x] Run test again but disable via GitOps

  #### 4.2 Multi-fleet scrub via GitOps batch

- [x] Apply a GitOps spec that flips cve to false on T1 and T3 in a
single apply
  - [x] Wait for scrub(s) to complete
- [x] Confirm bits for the union of T1∪T2 hosts are cleared from every
row of `dataset='cve'`
  - [x] Confirm T2 hosts' bits remain set

  ---

  ### 5. Activity Feed Cross-Check

  - [x] Each global flip emits exactly one `disabled_historical_dataset`
        activity (existing behavior, unchanged)
  - [x] Each per-team flip emits one scoped activity with the team's
        ID and name
  - [x] PATCH submitting unchanged values emits **no** activity and
        causes **no** scrub (no `host_scd_data` data change observed
        after the cron tick)
  - [x] No new "scrub completed" or "scrub started" activity is
        emitted (out of scope for v1)
  - [x] Re-enable flips emit `enabled_historical_dataset` activities
        and do NOT emit any scrub-related activity

  ---

  ### 6. Regression Spot Checks

  - [x] With everything enabled (default), the chart UI renders the
        same data as before this change (no behavior change in the
        "all on" case)
  - [x] AppConfig YAML round-trip (`fleetctl apply`) is benign:
        applying the unchanged config produces no scrub jobs and no
        activities
  - [x] GitOps apply with `historical_data` omitted from team specs
        defaults to `true` (per the gitops-api change) and does not
        trigger spurious scrubs
  - [x] After a full disable+scrub of cve, the `host_scd_data` table
        has no `dataset='cve'` rows; the chart UI for "vulnerable
        hosts over time" shows an empty/zero state without errors

  ---


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

* **New Features**
* Chart collection now supports per-dataset scoping and honors
team-level disables; new scrub jobs are registered and worker handlers
added.
* New dataset scrub operations: global and fleet-scoped scrubs; scrubs
can be enqueued and are deduplicated to avoid duplicate pending jobs.
Historical-data changes enqueue scrubs after save (errors logged,
non-blocking).
* **Tests**
* Added unit tests for scope resolution, scrub enqueue/dedup behavior,
scrub workers, scrub application, and low-level blob scrub logic.
* **Documentation**
  * Added OpenSpec metadata for the chart scrub change.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 08:52:35 -05:00
Dan Gordon 3f471e86fa update linux page with whitepaper cta (#44915)
Updated Linux page main cta to download new Linux white paper.


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

* **New Features**
* Replaced primary demo/contact CTAs with a prominent "Read the
whitepaper" CTA on the Linux management landing page (hero and bottom
sections).
* Preserved the "See Fleet in action" video CTA in the hero section;
layout updated for consistent presentation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 09:41:28 -04:00
fleet-releaseandallenhouchins e3b7739ede Update Fleet-maintained apps (#44921)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
  * Updated Keka macOS to version 1.6.4

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-07 08:25:33 -05:00
4106ab71d3 Add Primo link to their logo (#44730)
Adds a link to the partner logo scrollbar for Primo's logo

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

* **New Features**
* Primo partner logo in both carousel rows is now clickable and opens
the Primo site in a new tab.
* Both carousel links use a no-icon presentation for a cleaner,
consistent appearance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Eric <eashaw@sailsjs.com>
2026-05-07 09:22:26 -04:00
78cd4bdaea Handbook: Design system updates are up to Mike T (#44868)
- @noahtalerman: Context: We introduced this new [multi-select/filter UI
component](https://www.figma.com/design/mCPegRjoFdpMem1PLMF1BF/-41519----44591---43769-Dashboard-widgets?node-id=5537-18651&t=jBcSqVENnj8ZRna5-1)
w/ the new dashboard widgets and @melpike discovered this on her own.
This new notification process would have sped up that discovery.

<img width="534" height="393" alt="Screenshot 2026-05-07 at 9 16 56 AM"
src="https://github.com/user-attachments/assets/eaa67612-2bb0-49d2-96c4-94aba4aa2ee5"
/>

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: melpike <79950145+melpike@users.noreply.github.com>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
2026-05-07 09:20:20 -04:00
Juan Fernandez 0147f6cde2 Fix IdP department host vital missing when SCIM PATCH carries extra attrs (#41996)
Resolves #41996 

Some IdPs push SCIM PATCH operations that bundle `department` with other
RFC 7643 §4.3 enterprise attributes that Fleet does not store. Before
this change the SCIM library rejected those payloads with a 400 because
the schema only declared 'department'.

An environment variable was added (FLEET_DEBUG_SCIM_PAYLOADS) for aiding
in further debugging this if the issue persist.
2026-05-07 08:34:36 -04:00
fleet-release 29f8d52917 Update Fleet-maintained apps (#44914) 2026-05-07 07:22:19 -05:00
Steven Palmesano 359408b6b9 Fix broken links for setup_experience (#44903) 2026-05-07 06:50:01 -05:00
Jordan Montgomery a9c66471c0 43890 MLAPR frontend (#44739)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43890 

Frontend for macOS Local Admin Password Rotation

Changes file added during past work

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

## Release Notes

* **New Features**
  * Added ability to rotate managed local account passwords for hosts
* Added visibility for auto-rotation scheduling and pending rotation
status
* New activity feed entries for managed local account password rotation
events (successful and failed rotations)

* **Improvements**
* Enhanced host action menu to display managed account options when
password is available
* Added real-time status updates and notifications during password
rotation operations

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 07:03:35 -04:00
Jordan Montgomery 4910c450a4 43887 MLAPR backend (#44726)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43887

Adds the password rotation state machine for macOS local admin accounts.
Changes file covered in prior PR

# 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.
- [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**
* Automatic macOS managed-local-account password rotation (5‑minute
scheduler) with queued SetAutoAdminPassword device commands
* Manual rotation API: POST /hosts/{id}/managed_local_account/rotate
(returns 204)
* API now reports auto-rotation timing and pending-rotation state
(auto_rotate_at, pending_rotation)
  * Activity records for successful and failed rotations

* **Behavior Changes**
* Password availability is based on stored encrypted password (broader
than before)
  * Rotate-while-in-flight is rejected to prevent duplicate rotations

* **Tests**
* New unit and integration tests for rotation flows, cron behavior, and
failure paths
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 06:36:30 -04:00
Magnus Jensen 9d96d6c76a add script output to GitOps (#44728)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #44082

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

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

* **New Features**
* Enhanced GitOps script logging: reports how many scripts would be
applied in dry‑run mode or were actually applied, with per-team and
per-fleet breakdowns.

* **Tests**
* Added test coverage validating logging output for both dry‑run and
real execution, ensuring reported script counts and per-team/fleet
messages are accurate.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 09:38:25 +02:00
fleet-releaseandallenhouchins 9bee62b1cf Update Fleet-maintained apps (#44900)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated macOS installer versions: Twingate (2026.85 → 2026.120),
Windsurf (2.1.32 → 2.2.17), Zed (1.0.1 → 1.1.6), and Zotero (9.0.2 →
9.0.3)

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-05-06 21:36:51 -05:00
Luke Heath 6bc2352b19 Update guidelines on reviewing AI-generated code (#44841)
Important qualifier.
2026-05-06 18:19:55 -05:00
Steven Palmesano c6f7e790e2 Fix broken link for mdm.enable​_custom​_os​_updates​_and​_filevault (#44785) 2026-05-06 18:10:14 -05:00