Commit Graph
22121 Commits
Author SHA1 Message Date
Irena Reedy 4e4bed79ef Create blanco case study (#40964) 2026-03-04 13:34:31 -06:00
Irena Reedy fda64d7640 Create rocher case study (#40962) 2026-03-04 13:32:53 -06:00
Irena Reedy c3fe3a1f87 Update collaboration-platform.md (#40998)
change tense
2026-03-04 13:32:08 -06:00
Savannah FriendandSam Pfluger 22c34bd2b1 Update CEO travel scheduling guidelines (#38548)
Co-authored-by: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
2026-03-04 13:31:16 -06:00
Eric 9bb5c21f56 Website: Update logged warnings in trial usage script (#40995)
Changes:
- Updated the script that reports Render trial usage to handle errors
returned by the `updateOrCreateContactAndAccount` helper
2026-03-04 13:15:23 -06:00
Martin Angers 1fa339298b Bugfix: gitops policy linked to software package with env var fails to apply (#40944) 2026-03-04 14:03:34 -05:00
RachelElysia 4cbc4fdd5e Fleet UI: Fix refresh preserve toggle, fix border radius (#40947) 2026-03-04 13:41:50 -05:00
Jonathan Katz f260fbf85a Dismiss gosec G602 and G115 in test code (#40960)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #
Dismisses some gosec rules in test code where they do not apply, since
they show up when running `golangci-lint run` locally and make it harder
to spot newly introduced errors.

# Checklist for submitter

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

- [ ] QA'd all new/changed functionality manually
2026-03-04 13:34:35 -05:00
Ian Littman 7d4acdc5c4 Bump supported MySQL versions (#40892)
Fixes #40975.

8.0.32 (was running in Aurora managed cloud at the time) -> 8.0.39 (what
we're running now) 8.0.36 -> 8.0.44 (latest 8.0.x version supported by
Aurora; holding off on 8.0.45 until Aurora supports it) 8.4.7 -> 8.4.8
9.5.0 -> 9.6.0

Also bumped the supported Aurora version from 3.07.0 to 3.08.2 to match
what we're running in managed cloud right now

Fleet might work on older patch versions but we'll no longer dev/test on
them. MySQL 9.x not testing previous minor versions matches with our
previous approach for that version.

Since these are all patch/minor bumps (and the overnight build cases are
patch bumps/are covered by AWS envs) automated testing should be
sufficient here.
2026-03-04 12:25:20 -06:00
Carlo 328f4d5079 Add path support to script files (#40821)
Fixes #38659 Enables IT admins to reference `.sh` or `.ps1` script files directly in the GitOps `path` field for software packages.
2026-03-04 13:22:44 -05:00
Scott Gress f6da7974b2 Update GitOps error messages from "query" -> "reports" (#40920)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #40911

# Details

Updates some GitOps error messages to make them 1) use "report" instead
of query where applicable and 2) be more helpful by including filename
and path and not being confusing.

These IMO don't need to be cherry-picked to 4.82 since users won't be
getting deprecation warnings yet so the new error might actually be
_more_ confusing in this case, but I encountered them while working on
the "validate unknown keys" ticket and they looked really bad, so fixing
before I forget.

# 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

## Testing

- [X] Added/updated automated tests
- [X] QA'd all new/changed functionality manually
- [X] Change "query name is required for each query" to "name is
required for each report in {filename} at {path}"
- [X] Change "query SQL query is required for each query" to "query is
required for each report in {filename} at {path}"
- [X] Change "query name must be in ASCII: {name}" to "name must be in
ASCII: {name} in {filename} at {path}"
- [X] Change "duplicate query names: {names}" to "duplicate report
names: {names}
 Tested all in both main file and in a file included via `path:`
2026-03-04 11:27:23 -06:00
Noah Talerman e408b99013 Edit query: Remove "fleet" (#40943)
It gets awkward...

<img width="383" height="154" alt="Screenshot 2026-03-04 at 8 17 56 AM"
src="https://github.com/user-attachments/assets/82acd9d4-b692-4520-9f07-77466b950391"
/>
2026-03-04 11:10:27 -06:00
Mike ThomasandEric f50bf02c42 Update testimonials.ejs (#40950)
Added new case study cards:

https://github.com/fleetdm/fleet/pull/40927
https://github.com/fleetdm/fleet/pull/40929
https://github.com/fleetdm/fleet/pull/40930
https://github.com/fleetdm/fleet/pull/40931

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2026-03-04 11:03:59 -06:00
Jordan Montgomery a8b1bf0062 Remove unused/confusing --mdm_apple_scep_signer_allow_renewal_days config (#40800)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #38611

# Checklist for submitter

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

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

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [x] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes

## Testing

- [x] Added/updated automated tests
- [x] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

- [x] QA'd all new/changed functionality manually
2026-03-04 11:53:59 -05:00
Noah Talerman 782da16443 Update generators README (#40939)
If you use VS Code or Cursor
2026-03-04 10:51:07 -06:00
johnjeremiah 0a594b8471 Event Execution How to create Event Issues (#40938)
Updating handbook section on event execution
2026-03-04 10:22:01 -06:00
Sam Pfluger 637bcd2bb7 Fix naming convention to match campaigns in Salesforce (#40937) 2026-03-04 10:19:45 -06:00
Scott Gress 772cddb861 Update stored results setting UI (#40874)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #40859

# Details

* Renamed setting from "Disable reports" to "Disable stored results"
* Moved underneath "Disable live reports" for clarity
* Updated related tooltip

# Checklist for submitter

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

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

## Testing

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

<img width="670" height="531" alt="image"
src="https://github.com/user-attachments/assets/7396a6ab-26ad-4a73-ba6d-b506bff6330c"
/>

---

<img width="406" height="153" alt="image"
src="https://github.com/user-attachments/assets/b86ffbb6-56c3-4cdc-880b-0b39bcd129fa"
/>
2026-03-04 09:58:27 -06:00
Irena ReedyandMike Thomas 6813978a75 Create nyx case study (#40929)
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-03-05 00:45:04 +09:00
7021ba328e Create rialto case study (#40930)
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Co-authored-by: Eric <eashaw@sailsjs.com>
2026-03-05 00:30:54 +09:00
3bcfec72ea Create hubble case study (#40927)
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Co-authored-by: Eric <eashaw@sailsjs.com>
2026-03-05 00:30:05 +09:00
Eric 1a69964e84 Fix description meta tag in collaboration-platform.md (#40949)
Changes:
- Fixed the description meta tag in collaboration-platform.md to fix the
failing website deploy/test workflows
2026-03-04 09:21:40 -06:00
Irena Reedy d4a0e1bcb4 Create ufa case study (#40925) 2026-03-04 08:47:55 -06:00
Irena Reedy b556429d55 Update robotics-company.md (#40926) 2026-03-04 08:47:35 -06:00
Irena Reedy a0787d07c7 Create domon case study (#40931) 2026-03-04 08:46:57 -06:00
Nico 49463f19e9 Fix select-all header checkbox not selecting rows in a specific case (#40940)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #40789

Seems like on specific pages of server-side paginated tables, the
select-all header checkbox does not work. This happens when:
- the page has less than 20 rows (I think this is the default page size)
- AND not all the rows are selectable

`headerProps.rows` always contains all rows currently visible in the
table. Using rows also keeps the select logic consistent with the
deselect and "all selected" checks, which already used rows.

# 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

### Before

Clicking on the table header checkbox doesn't perform any selection



https://github.com/user-attachments/assets/d5b1f2fc-1400-4f3e-a2b4-2ae6a3da65af

### After



https://github.com/user-attachments/assets/54a67707-7978-40ec-ba50-c146a67795b2
2026-03-04 11:39:04 -03:00
fleet-releaseandmostlikelee 480dec9bcd Update Fleet-maintained apps (#40942)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-03-04 08:28:55 -06:00
Noah Talerman efaa3c5fc5 Live policy results (#40897)
Purge the purple!
2026-03-04 08:02:14 -06:00
Gabriel HernandezandNico b92e9efdb5 show apns expiration banner in UI for free tier (#40936)
**Related issue:** Resolves #39184

show apns expiration banner for the free tier in the UI. Before it was
limited to show only for premium tier.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] QA'd all new/changed functionality manually

---------

Co-authored-by: Nico <32375741+nulmete@users.noreply.github.com>
2026-03-04 13:12:33 +00:00
Gabriel Hernandez 744087d2c7 add option to lock end user info during setup experience to UI (#40802)
**Related issue:** Resolves #38669

Added the ability to lock end user info on the end use auth section of
the setup experience page

<img width="468" height="372" alt="image"
src="https://github.com/user-attachments/assets/a5f4e21b-3a1e-4631-b0d4-e3d833a4484c"
/>

# Checklist for submitter
- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] QA'd all new/changed functionality manually
2026-03-04 12:02:35 +00:00
Irena Reedy 56ec47006c Update marketing.rituals.yml (#40902)
Changed update content calendar from daily to triweekly
2026-03-04 00:20:07 -06:00
fleet-release 1509a8d685 Update Fleet-maintained apps (#40922) 2026-03-04 00:05:23 -06:00
Software Developer | AI/ML | LLM | RAGandBrock Walters 9a13233eeb Fleet vs. Workspace ONE: Choosing the right MDM solution (#40750)
New Article by Team GrowthX

Date: 28-02-2026

cc @nonpunctual @ireedy @johnjeremiah

---------

Co-authored-by: Brock Walters <153771548+nonpunctual@users.noreply.github.com>
2026-03-03 23:48:52 -06:00
f417b7e00a Handbook: Restructure Digital Campaigns - add Paid Social Campaigns section (#40819)
## Summary

- Renamed the "Campaign naming & definitions" section to "Paid Search
Campaigns" to better reflect its content.
- Added a new "Paid Social Campaigns" section immediately after "Paid
Search Campaigns", with the same table structure and content duplicated
as a starting point.
- All other content on the page remains unchanged.

## Changes

- `handbook/marketing/digital-campaigns.md`: Section rename + new
section added.

Built for [John
Jeremiah](https://fleetdm.slack.com/archives/D0AGMBRKRR9/p1772476778190759)
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: johnjeremiah <jjeremiah@gmail.com>
2026-03-03 23:47:42 -06:00
a553baa736 Update Fleet-maintained apps (#40914)
Automated ingestion of latest Fleet-maintained app data.

---------

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
Co-authored-by: Allen Houchins <allenhouchins@mac.com>
2026-03-03 17:58:21 -06:00
Konstantin Sykulev f0d01d8205 Policy automation replica lag (#40906)
**Related issue:** Resolves #40855

# Checklist for submitter

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

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)

## Testing

- [x] Added/updated automated tests
- [x] 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-03-03 17:44:49 -06:00
Eric f2c02fe90a Website: Small landing page style fixes (#40917)
Changes:
- Updated the styles of the page hero text on the Linux management page
to match the wireframes
- Updated the styles of the video modal on the /device-management page
to match other pages
2026-03-03 17:32:41 -06:00
Gray WilliamsandEric e047d1275e Update config builder MaxInactivityDeviceLock (#40848)
Resolves #40847

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2026-03-03 17:20:31 -06:00
Scott Gress 46c3409188 Allow secrets: key to be optional in GitOps (#40901)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #40900

# Details

This PR makes the `secrets:` key under the top-level `org_settings` (for
default.yml) or `settings:` (for fleet .yml files) optional. Omitting
the key causes any enroll secrets present on the server to be retained.

There is more to the parent story that will require more design, but I
am getting this one out early because:
1. Our updated it-and-security files will not have `secrets:` and
2. This is not a breaking change, since currently omitting this key
results in a fatal error, _not_ the removal of all secrets (that
requires specifying an empty `secrets:` key)

# 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
- [x] Using `secrets:` with correct syntax in `defaults.yml` updated
global secrets
- [x] Using `secrets:` with no value in `defaults.yml` removed all
global secrets
- [x] Omitting `secrets:` in `defaults.yml` retained all global secrets
- [x] Using `secrets:` with correct syntax in a fleet .yml file updated
that fleet's secrets
- [x] Using `secrets:` with no value in in a fleet .yml file removed
that fleet's secrets
- [x] Omitting `secrets:` in in a fleet .yml file retained that fleet's
secrets
2026-03-03 17:16:10 -06:00
131c04b8ee Update Fleet-maintained apps (#40899)
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-03-03 17:11:03 -06:00
Eric d33e613e83 Website: update form label and range for two windows options in the configuration builder (#40913)
Closes: https://github.com/fleetdm/fleet/issues/40847

Changes:
- Updated the max accepted value and form label for the "Maximum
inactivity time before device locks" and "Maximum inactivity time before
device locks with external display" Windows settings in the
configuration profile builder
2026-03-03 17:09:01 -06:00
Konstantin Sykulev 75c05aeb3f adding gotestsum for better test output (#40753)
**Related issue:** Resolves #30896

## Testing

- [x] QA'd all new/changed functionality manually
2026-03-03 16:01:11 -06:00
Marko Lisica 8c48b7d93b [Guide] Android certificates (#39961)
Add instructions for Android certificates deployment
2026-03-03 15:53:42 -06:00
Eric 29cb62f1fe Website: Update image used in guide (#40894)
Closes: https://github.com/fleetdm/confidential/issues/14623

Changes:
- Updated the "GitOps: A strategic advantage for automation,
collaboration, and cost savings" guide article to use the latest version
of the GitOps workflow diagram.
- Updated the alt text on the GitOps workflow diagram on the
/fleet-gitops page
2026-03-03 15:05:28 -06:00
Eric 7664aa7868 Website: Add robots.txt (#40893)
Closes: https://github.com/fleetdm/confidential/issues/14506 

Changes:
- Added a robots.txt file to the website's asset folder.
2026-03-03 14:56:20 -06:00
Allen Houchins e297b12726 Skip uninstall validation if productCode empty (#40867)
Add an early return in preProcessUninstallScript to return the original
uninstallScript when productCode is empty. This prevents calling
file.ValidatePackageIdentifiers with an empty product code and avoids
unnecessary validation errors.
2026-03-03 14:12:44 -06:00
github-actions[bot]andlucasmrod dd57c26232 Update versions of fleetd components in Fleet's TUF [automated] (#40885)
Automated change from [GitHub
action](https://github.com/fleetdm/fleet/actions/workflows/fleetd-tuf.yml).

Co-authored-by: lucasmrod <lucasmrod@users.noreply.github.com>
2026-03-03 17:10:13 -03:00
jacobshandling 19eebd9657 Fix condition related to whether or not to allow EU to "resolve later" a failing policy (#40878)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves
https://fleetdm.slack.com/archives/C09HG9VMRSS/p1772565135389659?thread_ts=1772563808.929019&cid=C09HG9VMRSS

- [x] QA'd all new/changed functionality manually
2026-03-03 11:54:07 -08:00
Allen HouchinsandJahziel Villasana-Espinoza f23fd9526f Allow FMAs to be added when default categories don't exist (#38303)
FYI @allenhouchins: We will want to remove any of the changes made to
the ee folder in this PR before merging since these files were added for
testing

---

**Related issue:** Resolves
https://github.com/fleetdm/fleet/issues/38254

This pull request updates how Fleet-maintained apps handle default
categories, improving compatibility with older Fleet builds that may not
recognize newer categories. It introduces a more flexible approach for
category assignment, ensuring apps can still be added even if some
categories do not exist in the current database.

**Category compatibility improvements:**

* The service now maps only existing categories to IDs when adding
Fleet-maintained apps, allowing apps to be added even if some default
categories (like "Security" or "Utilities") are not present in older
Fleet builds. This prevents errors and improves backward compatibility.
[[1]](diffhunk://#diff-9e807526199f81f987717f1f3c0ec60260510dc79c12cbeb6b20190dcf39caa7L167-R186)
[[2]](diffhunk://#diff-8384a65651f44fd1a1b78da9bad5794155a76b3849d1b846f8cc5e06018c1365R1)
* Introduced a new `GetSoftwareCategoryNameToIDMap` method in the
datastore to return a mapping of known category names to their IDs, only
including those that exist. This is used in both production and test
code.
[[1]](diffhunk://#diff-4fe70646343c5f7a1b61dd6906889113f0e0ae63f684ab74a617acecb39fe6d3R6170-R6197)
[[2]](diffhunk://#diff-2fa819f19cb7709a65ded13aa51ac75cacbeb5764c88e4a64a02f3ab5b8933b2R700-R702)
[[3]](diffhunk://#diff-f4666ccc907f67a670871fd5600a726858ae613f67aeca8f2537b8315f9b1bf0R544-R545)
[[4]](diffhunk://#diff-f4666ccc907f67a670871fd5600a726858ae613f67aeca8f2537b8315f9b1bf0R2526-R2528)
[[5]](diffhunk://#diff-f4666ccc907f67a670871fd5600a726858ae613f67aeca8f2537b8315f9b1bf0R6148-R6154)

**App category updates:**

* Changed the default category for `appcleaner` from "Productivity" to
"Utilities" in both input and output JSON files.
[[1]](diffhunk://#diff-a6ff089976e7e51f336ab7fc67670375498323de9ec3b87d9aa6c6308ab8fb30L7-R7)
[[2]](diffhunk://#diff-a90f40ad8bd457b4977a1d53984999f89e014fa7442851defc559db252bcdf24L13-R13)
* Changed the default category for `nordvpn` from "Productivity" to
"Security" in both input and output JSON files.
[[1]](diffhunk://#diff-f3ea48ab7da0ffc182e6ec342ee426c0280aa105c79282a7284d0fa35e9a1cf5L7-R7)
[[2]](diffhunk://#diff-83f09709778de1c5a20cbfe88125d58c85563bd1afbc76dcf9f4e8731d6884b3L13-R13)

**Test and codebase adjustments:**

* Updated mocks and tests to use the new
`GetSoftwareCategoryNameToIDMap` method instead of the previous category
ID list approach.
[[1]](diffhunk://#diff-d29fdd0261044f92f761a0707ff8417c9478054ca7d9e4ab5b9d04ed95e15573L285-R286)
[[2]](diffhunk://#diff-d29fdd0261044f92f761a0707ff8417c9478054ca7d9e4ab5b9d04ed95e15573L371-R372)
* Removed an unused import (`fmt`) from `maintained_apps.go` for
cleanup.


# 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

- [ ] Added/updated automated tests
- [ ] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

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

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

- [ ] Confirmed that the fix is not expected to adversely impact load
test results
- [ ] Alerted the release DRI if additional load testing is needed

## Database migrations

- [ ] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [ ] Confirmed that updating the timestamps is acceptable, and will not
cause unwanted side effects.
- [ ] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).

## New Fleet configuration settings

- [ ] Setting(s) is/are explicitly excluded from GitOps

If you didn't check the box above, follow this checklist for
GitOps-enabled settings:

- [ ] Verified that the setting is exported via `fleetctl
generate-gitops`
- [ ] Verified the setting is documented in a separate PR to [the GitOps
documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485)
- [ ] Verified that the setting is cleared on the server if it is not
supplied in a YAML file (or that it is documented as being optional)
- [ ] Verified that any relevant UI is disabled when GitOps mode is
enabled

## fleetd/orbit/Fleet Desktop

- [ ] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [ ] If the change applies to only one platform, confirmed that
`runtime.GOOS` is used as needed to isolate changes
- [ ] Verified that fleetd runs on macOS, Linux and Windows
- [ ] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))

---------

Co-authored-by: Jahziel Villasana-Espinoza <jahziel@fleetdm.com>
2026-03-03 14:29:28 -05:00
Magnus Jensen b4b27d0d6f avoid double encoding $FLEET_SECRET in GitOps (#40866)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #40108 

# Checklist for submitter

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

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

## Testing

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


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

## Summary by CodeRabbit

* **Bug Fixes**
* Fixed double encoding of secret environment variables when configured
through GitOps, ensuring secrets are stored with proper escaping.

* **Tests**
* Added test coverage for configuration profile escaping to verify
proper handling of secret variables and API keys during GitOps
operations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-03 14:14:58 -05:00