Commit Graph
20959 Commits
Author SHA1 Message Date
Victor Lyuboslavsky 089cf9a3ba Added LoadDefaultSchema to platform testing utils to make test setup easier. (#38706)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38234

Minor developer experience improvement for tests using MySQL.
This is a code review follow up.
2026-01-26 16:02:12 -06:00
Noah Talerman 89fb977695 mdm_bridge is only supported for device-scoped commands (#38015)
- Clarify that `mdm_bridge` is only supported for device-scoped commands
- Also add example query
- Context:
https://github.com/fleetdm/fleet/issues/37905#issuecomment-3719060086
2026-01-26 15:58:01 -06:00
Victor Lyuboslavsky 83624c0b57 ADR-0008: Migrate from go-kit/log to slog (#38751) 2026-01-26 15:50:31 -06:00
Josh Roskos 8e18d34534 Specify local admin account management for macOS (#38814)
Slack thread:
https://fleetdm.slack.com/archives/C02A8BRABB5/p1769463177334939?thread_ts=1769462565.832019&cid=C02A8BRABB5

Updates public roadmap to specify create and manage local admin accounts
for macOS.
2026-01-26 16:47:46 -05:00
Noah Talerman 4bbd4ee370 Update usage description for fleetctl apply (#38131)
- To mirror the docs:
https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/cli/fleetctl-apply.md

<img width="1102" height="148" alt="Screenshot 2026-01-09 at 4 15 19 PM"
src="https://github.com/user-attachments/assets/1b8bc5c4-312c-44ae-9fa3-b737b6795ad0"
/>

- Context: https://github.com/fleetdm/fleet/issues/38130
2026-01-26 16:37:38 -05:00
Noah Talerman 07d44f9b95 Update story template (#38738) 2026-01-26 15:27:39 -06:00
Victor Lyuboslavsky 9702bf2928 Updated modular monolith architecture README with the patterns uncovered so far (#38533) 2026-01-26 15:25:55 -06:00
Martin Angers 529694d1ad Flaky test fix: use mock server for FMA manifest instead of hitting github. (#38805) 2026-01-26 16:23:01 -05:00
Jonathan Katz 98ba7cee02 Fail in-house app installs when host unenrolls (#38803)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38704 
Cancels upcoming activities and marks the current in-house app install
as failed, to match the existing behaviour for vpp installs.

# 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-26 15:45:52 -05:00
Ian Littman b0cc254f92 Add note about 301 error code on VPP installs (#38496)
Credit @eliottha for diagnosing this issue that we ran into when testing
#32461.
2026-01-26 15:29:27 -05:00
Noah Talerman 0c3293dd3c API reference: Human friendly docs for API endpoints that take multipart/form-data (#37674)
- During Product office hours on 2025-12-23, we learned that no one on
the call knew what the current request body format was for API endpoints
that take `multipart/form-data`
- We think the updated format is more friendly for humans who are using
curl/Postman
- We later learned that this the current format is the raw request
(formatted by a browser or curl command)
- Also update "form" to "body" in the "Parameters" table. We learned
that the form data is actually part the body. Postman's UI shows this.
2026-01-26 15:22:24 -05:00
Luke Heath 604f04a8c3 Remove duplicate section (#38808) 2026-01-26 14:12:19 -06:00
Victor Lyuboslavsky 686a1cfe65 Fixed unnecessary error logging when no CPE match is found (#38754)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #35447

# 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


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

## Summary by CodeRabbit

* **Bug Fixes**
* Suppressed unnecessary error logging when no CPE match is found for
software items such as VSCode extensions and JetBrains plugins,
resulting in cleaner application logs.

<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-26 13:52:52 -06:00
RachelElysia d5cea5c1ae Fleet UI: Do not allow clicking on run script if globally disabled (#38787) 2026-01-26 14:45:15 -05:00
Konstantin Sykulev 5385978700 Fixed false positive git CVEs (#38657)
This was due to the fact that homebrew splits the git and gitk packages
into two. However, the nvd feed attributes cves exclusively to a "git"
package.

**Related issue:** Resolves #35191

- [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-26 12:35:08 -06:00
Magnus Jensen a44195841e add windows mdm migration (#38782)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves
https://github.com/fleetdm/confidential/issues/13775

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


## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
2026-01-26 13:31:05 -05:00
Allen Houchins 03bd3651ef Add IdP department labels (#38783)
This pull request introduces new department-based host labels to the IT
and Security configuration, allowing hosts to be categorized according
to the department of their end user. The main change is the addition of
seven new label definitions and their inclusion in the `default.yml`
configuration.

**Department label additions:**

* Updated `it-and-security/default.yml` to include references to seven
new department label files, enabling department-based host
categorization.

**New department label definitions:**

* Added `department-information-technology.yml` to define a label for
hosts belonging to the Information Technology department.
* Added `department-sales.yml`, `department-marketing.yml`,
`department-engineering.yml`, `department-people.yml`,
`department-finance.yml`, and `department-product-design.yml` to define
labels for hosts in Sales, Marketing, Engineering, People, Finance, and
Product Design departments, respectively.
[[1]](diffhunk://#diff-dd6b63c2483cf179831fd7b3192a75f25d9eadfcba8309737ce3406912df74eaR1-R6)
[[2]](diffhunk://#diff-aec6aaa00d0b092d0a427d819f61a4df9c00b5ba67d8438757c5f038860697f2R1-R6)
[[3]](diffhunk://#diff-060b9bf1ab3202940dadc644616890ab99bcd81e37808ec099ff29ba064687adR1-R6)
[[4]](diffhunk://#diff-ef0c2b34df74cf1cd1c32165d3c88f85b29a8d67a02e2b837f2f544e02ad2573R1-R6)
[[5]](diffhunk://#diff-f491ad729d54f56ac51eaa4576f2a2c8a077a16c4abe623198ed6f3b14d03004R1-R6)
[[6]](diffhunk://#diff-ce077a969811b6e57400a23a7d6cb3d40b8ebd6b6733ebd4f3f1fe7558f5fe2dR1-R6)
2026-01-26 12:29:57 -06:00
Victor Lyuboslavsky 063c16cffd Added conditional_access.cert_serial_format server option to allow specifying the Okta conditional access certificate serial format. (#38697)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38549

Associated documentation update PR:
https://github.com/fleetdm/fleet/pull/38702

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



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

* **New Features**
* Introduced conditional_access.cert_serial_format to choose certificate
serial number format (hex or decimal); hex is default.
  * SSO certificate serial parsing now respects the configured format.

* **Bug Fixes**
* Improved parsing and error handling for certificate serial numbers
across formats.

* **Tests**
* Added unit tests for configuration validation and serial-number
parsing for both hex and decimal.

<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-26 12:21:10 -06:00
Eric 8f1f42a5c9 Website: Update GitHub webhook reviews (#38780)
Closes: https://github.com/fleetdm/fleet/issues/38750

Changes:
- Updated the website's GitHub webhook to not attempt to approve pull
requests opened by fleet-release
2026-01-26 12:16:48 -06:00
Jorge Falcon 9a8991ad64 Dogfood: Fix AWS Backup Role permissions to unblock cross-region replication (#38784)
- Adds permissions to fix/allow cross-region replication os Aurora and
S3 backups.
2026-01-26 12:59:32 -05:00
Magnus Jensen 5656dcf801 improve missing label error message (#38636)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37183 

Software request:
```json
{
    "message": "Bad request",
    "errors": [
        {
            "name": "base",
            "reason": "Couldn't update. Label \"non-existing-label\" doesn't exist. Please remove the label from the software."
        }
    ],
    "uuid": "3a9a4da3-d7af-4ed5-8b39-73e9f465f103"
}
```

Config profile:
```json
{
    "message": "Bad request",
    "errors": [
        {
            "name": "base",
            "reason": "Couldn't update. Label \"non-existent-label\" doesn't exist. Please remove the label from the configuration profile."
        }
    ],
    "uuid": "ea842e7b-d4eb-4b59-bf24-32ad66d538dd"
}
```

# 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-26 12:55:26 -05:00
Marko Lisica 560a4ee14d Update Android version requirement to 14 (#38712)
We officially support the last two major versions. The latest version is
Android 16, and the most recent stable version was released six months
ago.
2026-01-26 11:54:03 -06:00
Victor Lyuboslavsky 7458100167 Added inlined dependencies vulnerability scanning (#38729)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #31605

I manually scanned our inlined dependencies for vulnerabilities and did
not find any relevant ones.

I added a dummy directory pointing at the source of our inlined
dependencies so that automated vuln scanning tools can scan them. I did
not include Kolide since the code was heavily adapted and only included
a few tables.



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

## Summary by CodeRabbit

* **New Features**
* Established infrastructure for automated vulnerability scanning of
inlined third-party dependencies in Go and JavaScript environments, with
comprehensive documentation and configuration to enable scanning via
standard tools.

* **Chores**
* Updated gitignore configuration to refine dependency file tracking
across the project.

<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-26 11:24:46 -06:00
Victor Lyuboslavsky ae1f846739 Switched to lighter weight authz unit tests for activity bounded context. (#38735)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38234

This came up in activity bounded context code review.

Following existing patterns, authz testing will be in `policy_test.go`,
and integration tests will simply cover connectivity (not exhaustive
authz).



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

## Summary by CodeRabbit

* **Tests**
* Enhanced authorization test coverage for activity operations with
improved validation 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-26 11:20:21 -06:00
cf468cbfe3 Update on-call engineer handbook entries (#38641)
For [38235](https://github.com/fleetdm/fleet/issues/38235)

---------

Co-authored-by: Sharon Katz <121527325+sharon-fdm@users.noreply.github.com>
Co-authored-by: Ian Littman <iansltx@gmail.com>
2026-01-26 10:06:43 -06:00
Noah Talerman 82807d7797 Roadmap preview: January 2026 (#36020)
DONE: @noahtalerman:
- ~~Record video~~
- ~~Move October 2025 edits out into a separate PR so we can merge
ASAP~~
- ~~Once video is posted to YouTube, embed the video. Filed a
`:help-marketing` request to get help putting the video on YouTube:
https://github.com/fleetdm/confidential/issues/13908~~
2026-01-26 11:02:19 -05:00
fleet-releaseandallenhouchins e9cce98876 Update Fleet-maintained apps (#38776)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-01-26 09:36:44 -06:00
RachelElysia a2f9321ce8 Fleet UI: Fix location modal gap (#38722) 2026-01-26 10:18:32 -05:00
Allen Houchins 76990c86ca Update cisco_jabber_version_transformer.go (#38762)
This pull request makes a minor update to the Cisco Jabber version
transformer. The version reported by the transformer is incremented from
"15.2.0" to "15.2.1" to match the latest app version.

- Updated the `CiscoJabberVersionTransformer` in
`cisco_jabber_version_transformer.go` to set `app.Version` to "15.2.1"
instead of "15.2.0".
2026-01-26 09:12:05 -06:00
RachelElysia 2acf3ac45f Fleet UI: Update link to a primary button (#38637) 2026-01-26 09:36:19 -05:00
RachelElysia c5514978ca Fleet UI: Fixed broken disk space sort header on hosts table (#38732) 2026-01-26 09:35:43 -05:00
RachelElysia 6593137088 Fleet UI: Allow users to scroll through disabled yml fields (#38715) 2026-01-26 09:35:22 -05:00
RachelElysia e2019890b4 Fleet UI: Bold page name in error msg (#38730) 2026-01-26 09:34:37 -05:00
e6a1dad805 Recommend fleetctl binary from GitHub over npm (#37733)
Getting the `fleetctl` binary from our script or GitHub Releases is
easier than directing users to install and manage it with Node/npm.

Also, removed the statement that the binary is for Windows and Linux,
since it works on macOS too.

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
2026-01-26 08:01:10 -06:00
kitzy 501f72e02e Pin MySQL and Redis images in docker-compose.yml (#38759) 2026-01-25 14:09:30 -08:00
Katheryn Satterlee 37fec8d655 Update query for Fleet osquery policy (#38456)
The policy currently returns a value in both a good and bad state.
Updated to use `SELECT 1`
2026-01-25 16:04:07 -05:00
Konstantin Sykulev c513b3f518 Optimizing certificate template batch delete auth (#38650)
- [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

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

## Summary by CodeRabbit

* **Bug Fixes**
* Enhanced authorization validation for certificate template batch
deletion operations, ensuring all templates belong to the specified team
before allowing deletion.

* **Tests**
* Added authorization verification tests for certificate template
deletion to prevent cross-team unauthorized access.

<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-24 17:47:17 -06:00
c64e87baae Update Fleet-maintained apps (#38745)
Automated ingestion of latest Fleet-maintained app data.

---------

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
Co-authored-by: Allen Houchins <32207388+allenhouchins@users.noreply.github.com>
2026-01-24 12:02:39 -06:00
Sam Pfluger ef76a87469 Fix link for 'Finish what you start' section (#38739)
Updated the link for 'Just fix it' to point to the correct GitLab
handbook section.

Closes https://github.com/fleetdm/confidential/issues/13121
2026-01-23 20:48:52 -06:00
Mike McNeil 5e820f28f1 Handbook: Minor fixes (heading hierarchy, capitalization) (#38742) 2026-01-23 17:43:41 -06:00
Carlo 9f1640415f Populate LastInstall for failed installs (#38655)
Fixes #30392. Fixes Host Software API not returning execution IDs for failed install/uninstall attempts, preventing users from viewing failure details in the software library page.
2026-01-23 18:07:28 -05:00
Eric 4cae77302a Website: update article category page (#38707)
Related to: https://github.com/fleetdm/confidential/issues/13527

Changes:
- Changed the name of the /articles page to "Blogs"
- Updated the blogs category to exclude guides
- Added a link to /guides to the sidebar on article category pages
2026-01-23 16:48:43 -06:00
Noah Talerman f6e9c203aa Product groups: Bug triage (#38737)
- Up to the Product designer to get reproduction steps
2026-01-23 17:16:16 -05:00
Isabell ReedyandSam Pfluger 781842a650 Handbook: Add "Retire a KPI" (#38689)
Co-authored-by: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
2026-01-23 16:00:26 -06:00
Eric c4f8ded657 Website: Update values to match CRM picklist values (#38734)
Changes:
- Updated the accepted `intentSingal` values in the receive-from-clay
webhook and the createHistoricalEvent helper to match the picklist
values in Salesforce
- updated a "most recent/source channel details" value set in the
updateOrCreateContactAndAccount helper to match the picklist value in
Salesforce.
2026-01-23 15:35:33 -06:00
Eric 40107d247c Website: Update deliver-contact-form-message (#38721)
Changes:
- Updated the `deliver-contact-form-message` action to run CRM helpers
and send the contact form email message in the background.
2026-01-23 15:31:30 -06:00
Victor Lyuboslavsky 8e68173663 Added UserSummary type for UsersByIDs. (#38710)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38234

Addresses Ian's suggestion from activity bounded context code review.

# Checklist for submitter

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

* **Refactor**
* Updated user lookup functionality across the system to return minimal
user information instead of full user objects. Changes affect multiple
system interfaces and data access layers to optimize performance and
reduce data payload for user-related operations throughout the
application.

<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-23 15:06:52 -06:00
Juan Fernandez db2168fdde Long script names overflow tables (#38594)
Resolves #34359 

Fixed styling issues with long script names on both the ScriptListItem and ScriptsTable components.
2026-01-23 16:41:53 -04:00
Noah Talerman 65dc5ec446 Update product-maturity-assessment.md (#38713) 2026-01-23 14:41:18 -06:00
Marko Lisica e17ba7abba Revise stakeholder notification for user story pushes (#38711)
- We no longer have a requester field in the issue template.
- Updated the notification process for user stories pushed to the next
sprint to include the release DRI.
- Not sure if we have documented in other spot when to ping the release
DRI, but I think we should in this case as well.
2026-01-23 15:41:03 -05:00