Commit Graph
22523 Commits
Author SHA1 Message Date
Lucas Manuel Rodriguez 9fa2749e6b Update Apple's identity to sign pkgs (#41776)
Updating the Apple identity for the new certificate to sign `pkg`s.

Run: https://github.com/fleetdm/fleet/actions/runs/23159085327
2026-03-16 14:49:40 -05:00
Tim Lee 6268ebf7b6 Recovery password: GET API (#41436) 2026-03-16 13:48:26 -06:00
Juan Fernandez 139e365d42 Improve contention around policy_membership table (35484) (#40853)
Resolves #35484

Concurrent execution of GitOps apply runs and
RecordPolicyQueryExecutions led to database locking issues when the
policy_membership table was large. This occurred because the cleanup
process (DELETE operations) was bundled within the same transaction as
the GitOps policy updates. To resolve this, the deletion logic has been
batched and moved outside the primary GitOps transaction, reducing lock
contention.
2026-03-16 15:12:25 -04:00
Andrey KizimenkoandNoah Talerman 700370a298 Add universal QA checks and improve confirmation guidance in test plan template (#41613)
## Summary

Updates the test plan template to include a set of optional, reusable
testing sections that help ensure broader and more consistent test
coverage across features.

New sections:

- Core flow
- UI
- API
- GitOps
- Permissions
- Edge cases
- Supplemental testing

The goal is to make it easier for teams to reliably consider these areas
without requiring every issue to manually outline them.

## Core flow ownership

The **Core flow** section represents the original test plan content that
Product typically outlined for a user story. It captures the primary
feature behavior and expected functionality that must work for the story
to be considered complete.

This section is owned by **Product** and should describe the main user
flow and expected outcomes, similar to how the test plan was previously
documented.

## Edge case ownership

The **Edge cases** section is owned by **QA**, or shared between QA and
Product when Product wants QA to validate specific scenarios.

This helps ensure that less obvious scenarios (invalid inputs, boundary
conditions, missing configuration, etc.) are explicitly considered
rather than overlooked.

## Optional sections

Sections such as UI, API, GitOps, and Permissions are intentionally
designed to be **optional**.
They can be removed when they are not applicable to the feature being
implemented.

These sections act as reminders for areas that frequently require
validation in Fleet.

## Confirmation improvements

The **Confirmation** section has also been expanded to encourage
engineers to include any special setup or test data used during
development.

Providing this context helps QA reproduce the setup faster and reduces
time spent recreating test environments.

---------

Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
2026-03-16 13:01:06 -06:00
Josh RoskosandLucas Manuel Rodriguez ba2c5b5e5c Add go_binaries table (#39877)
**Related issue:** Resolves #40138

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

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

Installed: 
```
go install golang.org/x/tools/cmd/goimports@latest
go install golang.org/x/tools/gopls@latest
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
```

Validated:
```
osquery> SELECT * FROM go_packages;
+---------------+---------+-----------------------------------+-----------------------------------------------------+------------+----------------------------------+
| name          | version | module_path                       | import_path                                         | go_version | installed_path                   |
+---------------+---------+-----------------------------------+-----------------------------------------------------+------------+----------------------------------+
| goimports     | v0.42.0 | golang.org/x/tools                | golang.org/x/tools/cmd/goimports                    | go1.25.5   | /Users/josh/go/bin/goimports     |
| golangci-lint | v1.64.8 | github.com/golangci/golangci-lint | github.com/golangci/golangci-lint/cmd/golangci-lint | go1.25.5   | /Users/josh/go/bin/golangci-lint |
| gopls         | v0.21.1 | golang.org/x/tools/gopls          | golang.org/x/tools/gopls                            | go1.25.5   | /Users/josh/go/bin/gopls         |
+---------------+---------+-----------------------------------+-----------------------------------------------------+------------+----------------------------------+
```

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

---------

Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
2026-03-16 13:27:00 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 6c4001aeb3 Add Microsoft Entra ID environment variable for Dogfood GitOps (#41522)
PR created based on this:
https://fleetdm.slack.com/archives/C071NNMSP2R/p1773261307958859
Which will allows us to keep enrolling Windows devices via Autopilot,
currently it will be wiped next Gitops run.

I've added the GH secret with the value Jordan posted.

## Summary

- Adds `windows_entra_tenant_ids` configuration to the Dogfood
`controls` section in `it-and-security/default.yml`, referencing a new
`$DOGFOOD_ENTRA_TENANT_ID` environment variable.
- Adds the corresponding `DOGFOOD_ENTRA_TENANT_ID` secret mapping in
`.github/workflows/dogfood-gitops.yml` so the value is passed through
during deployment.

## Action required

The actual tenant ID value needs to be added as a GitHub Actions secret
named `DOGFOOD_ENTRA_TENANT_ID` in the repository settings before this
will take effect. The tenant ID can be found in [Microsoft Entra admin
center](https://entra.microsoft.com/#home) under **Microsoft Entra ID >
Home**.

Built for [Magnus
Jensen](https://fleetdm.slack.com/archives/D0AG2PPQWV7/p1773271863050969)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-16 12:57:22 -05:00
Victor Lyuboslavsky 622430f600 Update ADR 0007 as completed. (#41285) 2026-03-16 12:38:01 -05:00
Victor Lyuboslavsky 4e7c2e5715 Fixed team maintainers, admins, and GitOps users being unable to add certificate templates (#41740)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #39308

Doc updates: https://github.com/fleetdm/fleet/pull/41760/changes

The reason secrets are involved here is because `gitops generate` can
get them.

# 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

* **Bug Fixes**
* Fixed access permissions for team maintainers, admins, and GitOps
users, enabling them to add certificate templates by granting required
read access to certificate authorities.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-16 12:24:31 -05:00
Steven Palmesano ad9301a455 Solutions updates 2026-03-12 (#41596) 2026-03-16 11:58:51 -05:00
Luke Heath 734b0177f1 Update product and working groups (#41762) 2026-03-16 11:53:31 -05:00
f7c20c4731 Switch query generator to use Anthropic Sonnet on the backend (#41521)
## Summary

Closes #41466

- Adds Anthropic Claude API support to the `prompt.js` AI helper,
detecting `claude-*` model names and routing to the Anthropic Messages
API (`https://api.anthropic.com/v1/messages`) with proper authentication
headers
- Switches both LLM calls in the query generator
(`get-llm-generated-sql.js`) from OpenAI models
(`gpt-4o-mini-2024-07-18` for schema filtration, `o3-mini-2025-01-31`
for SQL generation) to `claude-sonnet-4-6-20260218`
- Adds `anthropicSecret` config placeholder in `custom.js` (set via
`sails_custom__anthropicSecret` env var in production)
- Updates the query generator UI to reference "Anthropic" instead of
"OpenAI"

### Changes

| File | What changed |
|------|-------------|
| `website/api/helpers/ai/prompt.js` | Added Anthropic API branch
alongside existing OpenAI logic; system prompts use Anthropic's
top-level `system` parameter |
| `website/api/controllers/query-generator/get-llm-generated-sql.js` |
Both model references changed to `claude-sonnet-4-6-20260218` |
| `website/config/custom.js` | Added `anthropicSecret` config
placeholder |
| `website/views/pages/admin/query-generator.ejs` | Updated copy from
"OpenAI" to "Anthropic" |

### Deployment notes

The `sails_custom__anthropicSecret` environment variable must be set
with an Anthropic API key before deploying this change.

---

Built for
[mikermcneil](https://fleetdm.slack.com/archives/D0AFASLRHNU/p1773278374183489?thread_ts=1773271495.702919&cid=D0AFASLRHNU)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Eric <eashaw@sailsjs.com>
2026-03-16 11:48:33 -05:00
Andrey Kizimenko 241d63895d Revise Release QA checklist (#41609)
Changes:
1. Adding Fleet free checks for each product group
2. Adding UI/UX checks for each product group
3. Expanding the IdP coverage and moving it to orchestration (postmortem
action item: https://github.com/fleetdm/fleet/issues/39684)
4. Moving Certificates to S&C
5. Adjusting assignee list
2026-03-16 10:27:07 -06:00
Sarah Gillespie 3b859303d2 Improve UI for FileVault "action required" notifications banner (#41594) 2026-03-16 11:21:25 -05:00
Noah Talerman 250c132069 Update product-groups.md (#41758) 2026-03-16 12:01:45 -04:00
Mike McNeil f413189e9e Website: Update testimonials.ejs: Tweak for consistency. (#41709) 2026-03-16 10:52:38 -05:00
Dan Gordon a1909f25c3 Update instructions for sprint demo publishing (#41750)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #14878

# Checklist for submitter

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

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

## Testing
- [x ] QA'd all new/changed functionality manually
2026-03-16 11:46:19 -04:00
Magnus Jensen ed53670201 don't short circuit scep renewal if awaiting configuration (#41523)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #40881 

# 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-03-16 10:37:06 -05:00
Sarah Gillespie f0158b6dac Improve initial loading state of macOS setup experience when displaying web view UI (#41561) 2026-03-16 10:30:47 -05:00
Noah Talerman fdb2471e34 Update gitops templates (#41008)
Update key names according to the plan:
- #40488
2026-03-16 10:08:38 -05:00
Nico 48a1935c2b Fixed editing reports on free tier failing due to triggering a premium license check (#41747)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41652

Solution is to not pass `labels_include_any` to the payload of the PATCH
endpoint request.

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



https://github.com/user-attachments/assets/7c825b92-0b03-448a-8e42-83e39a2acdf6



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

- [x] Confirmed that the fix is not expected to adversely impact load
test results
- [ ] Alerted the release DRI if additional load testing is needed
2026-03-16 11:42:58 -03:00
Noah Talerman c4afaadf00 Guide update: Clarify self-service scripts (#41746) 2026-03-16 10:39:39 -04:00
Jonathan Katz b9c8fb09d2 Attempt to fix TestSSO (#41743)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41745
Attempt to fix TestIntegrationsMDM/TestSSO by adding
s.setSkipWorkerJobs(t). It looks like that test uses s.runWorker()
manually anyway and it still passes.
2026-03-16 10:23:37 -04:00
Scott Gress 01d13f5080 add keymap for new renames, and shallow duplication (#41682)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** For #41091 

# Details

This PR finishes the work of aliasing multi-platform keys by:

* Added the renames to the list maintained by generate-gitops so that
`fleetctl get` can use the new names
* Updated the code that adds the new names to API and `fleetctl get`
output to only add new nested keys under new parents, e.g. add
`apple_settings.configuration_profiles`, but not
`macos_settings.configuration_profiles`.

The API key duplicator now runs through `RewriteDeprecatedKeys` which is
a little heavier per-token, but for old keys we're doing less work so I
think this ends up being slightly more performant than before, at least
for large payloads.

# 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, changelog for new keys added in previous PR

## Testing

- [X] Added/updated automated tests
  updated tests for the duplicators 
- [X] QA'd all new/changed functionality manually
- [X] `/config` and `/fleets` APIs now only return new keys under new
parents
  - [X] `fleetctl get fleets` now returns new multiplatform keys
2026-03-16 08:37:23 -05:00
Lucas Manuel Rodriguez 7bb72ccaa1 Ignore false positive CVE in fleet (#41643)
Fixes:
https://github.com/fleetdm/fleet/actions/runs/23038788027/job/66912481418

Run with this branch:
https://github.com/fleetdm/fleet/actions/runs/23060265057
2026-03-16 10:36:50 -03:00
Lucas Manuel Rodriguez b4da015539 Update identity for new apple certificate (#41669)
We recently updated our Apple signing certificate (it expired on ~March
12th).
So we need to update the new identity ID for signing fleetd.
2026-03-16 10:36:41 -03:00
Ashish Kuthiala 48e960125d Update article link for third marketing asset (#41736) 2026-03-16 00:01:19 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 2a2dd3f1b6 Remove Author column from anonymous stories tables on Marketing Assets page (#41735)
## Summary
- Remove the "Author" column (header and all row data) from three
anonymous stories tables on the [Marketing Assets handbook
page](https://fleetdm.com/handbook/marketing/marketing-assets):
  - **Anonymous stories — Financial Services**
  - **Anonymous stories — Technology & SaaS**
  - **Anonymous stories — Security, IT Services, Healthcare & Other**
- All other columns (Story, Vertical, Mac, Windows, Linux, Date) remain
intact.

Built for [Ashish
Kuthiala](https://fleetdm.slack.com/archives/D0AG9JQ53GA/p1773633436380949?thread_ts=1773632527.532129&cid=D0AG9JQ53GA)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-15 23:06:17 -05:00
kilo-code-bot[bot]andkiloconnect[bot] 2ede280d8a Remove Author column from Named customers table on Marketing Assets handbook page (#41734)
## Summary
- Removes the "Author" column from the "Named customers" table on the
[Marketing Assets handbook
page](https://fleetdm.com/handbook/marketing/marketing-assets)
- All other columns (Story, Industry, Mac, Windows, Linux, Date) and
data remain intact

Built for [Ashish
Kuthiala](https://fleetdm.slack.com/archives/D0AG9JQ53GA/p1773632527532129)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-15 22:49:48 -05:00
Isabell ReedyandAshish Kuthiala 92f0fbcb18 Update marketing team section (#41617)
Updating marketing team section to align with our departmental page
structure:
https://fleetdm.com/handbook/company/leadership#outline-of-departmental-page-structure

Co-authored-by: Ashish Kuthiala <53918208+akuthiala@users.noreply.github.com>
2026-03-15 17:46:08 -05:00
Ashish Kuthiala 6516bdbe2f Add 'nobr' tags to article listings in marketing assets (#41732)
Updated article listings in the marketing assets section to include
'nobr' HTML tags for better formatting.
2026-03-15 16:24:56 -05:00
Noah Talerman 4128819e25 Add/edit user modal (#41659)
Purge the purple!
2026-03-15 12:09:19 -07:00
Ashish Kuthiala f01ba5f65b Update marketing assets with new comparisons and case studies (#41728)
Added new marketing assets for MDM solution comparisons and case
studies, including updates on various articles and resources.
2026-03-15 13:20:44 -05:00
fleet-releaseandmostlikelee b3c8faac00 Update Fleet-maintained apps (#41726)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-03-15 11:44:36 -05:00
Ashish Kuthiala 48ca3f89e4 Update article listings with HTML formatting (#41727)
Fixed html formatting in article series tables
2026-03-15 10:00:45 -05:00
Irena Reedy 3b3acd69c4 Create medical-research-institution.md (#41725) 2026-03-15 09:42:33 -05:00
Irena Reedy 8afa89971c Create identity-security-company.md (#41724) 2026-03-15 09:42:05 -05:00
Irena Reedy f76adc162e Create cybersecurity-company-1.md (#41723) 2026-03-15 09:41:49 -05:00
Irena Reedy 5995fa27c2 Create fintech-company-strengthens-infrastructure-visibility.md (#41722) 2026-03-15 09:41:29 -05:00
Irena Reedy a47408e3d3 Create national-research-organization.md (#41721) 2026-03-15 09:41:07 -05:00
Irena Reedy 0630c6ea61 Create online-marketplace.md (#41720) 2026-03-15 09:40:48 -05:00
Irena Reedy 0060dcfdd7 Create global-entertainment-company.md (#41719) 2026-03-15 09:40:25 -05:00
Ashish Kuthiala f76ac128e1 Move date column as last column on all tables (#41718) 2026-03-14 16:24:27 -05:00
Irena ReedyandAshish Kuthiala 52bdd4f8ec Create technology-platform.md (#41714)
Co-authored-by: Ashish Kuthiala <53918208+akuthiala@users.noreply.github.com>
2026-03-14 16:08:21 -05:00
Irena Reedy c9c3b488d8 Create identity-platform.md (#41716) 2026-03-14 16:03:32 -05:00
Irena Reedy 935a47054f Create fintech-company.md (#41715) 2026-03-14 16:02:06 -05:00
Irena Reedy 5640de95f3 Create cybersecurity-company.md (#41713) 2026-03-14 15:55:47 -05:00
Noah Talerman da74b7cfae Why no YAML schema for GitOps? (#41694) 2026-03-14 12:30:01 -05:00
Victor Lyuboslavsky 8c81821d0f Reduced database contention during the vulnerability cron (#41667)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #41664

# Checklist for submitter

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

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

## Testing

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

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

- [x] Alerted the release DRI if additional load testing is needed

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

## Summary by CodeRabbit

* **Chores**
* Optimized database performance for vulnerability processing to reduce
contention during routine operations.
  * Improved query efficiency for software cleanup processes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-14 09:31:58 -05:00
Mike McNeil 2733f8a196 Homepage: Change heading for new section ("you can just do things") (#41708) 2026-03-14 02:23:35 -05:00
Ashish Kuthiala 9675c2b0eb Update assets page - re-org (#41705)
Update assets page - re-org
2026-03-13 23:52:35 -05:00