Commit graph

23259 commits

Author SHA1 Message Date
Eric
76a8a4c4e2
Website: Add new logos to logo-carousel component (#43267)
Changes:
- Added 8 new logos to the `<logo-carousel>` component
2026-04-08 13:12:23 -05:00
Allen Houchins
88724a12c7
Increase workflow timeout to 30 minutes (#43269)
Update .github/workflows/dogfood-gitops.yml to raise the fleet-gitops
job timeout from 10 to 30 minutes. This prevents premature cancellation
for longer-running steps (e.g., runner hardening and related tasks).

Our workflow is starting to timeout now that we have more apps being
applied via GitOps.
2026-04-08 13:11:51 -05:00
kilo-code-bot[bot]
536fbb73bf
Add new testimonial from LinkedIn comment on Foursquare migration post (#43249)
## Summary

- Adds a new commented-out testimonial entry to
`handbook/company/testimonials.yml` sourced from a LinkedIn comment (URN
7279546151945519104) on Mike Meyer's Foursquare-to-Fleet migration post.
- The entry is commented out per handbook instructions since it contains
TODO placeholders that need to be filled in manually from the LinkedIn
comment (requires authentication to access).
- The LinkedIn comment URL:
https://www.linkedin.com/feed/update/urn:li:activity:7267672056970788866/?dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287279546151945519104%2Curn%3Ali%3Aactivity%3A7267672056970788866%29

## TODO before merging

The following fields need to be filled in from the LinkedIn comment
(requires logging in to LinkedIn to view):

1. `quote` - The text of the comment
2. `quoteAuthorName` - The commenter's name
3. `quoteAuthorJobTitle` - The commenter's job title
4. `quoteAuthorProfileImageFilename` - Upload the commenter's profile
image and update the filename
5. `productCategories` - Verify the correct category (currently set to
`[Device management]`)
6. `quoteLinkUrl` - Verify or update to the commenter's LinkedIn profile
URL if preferred

---

Built for [Dan
Gordon](https://fleetdm.slack.com/archives/C0AN44FQC01/p1775665779923419?thread_ts=1775661619.633759&cid=C0AN44FQC01)
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: Dan Gordon <daniel@fleetdm.com>
Co-authored-by: Ashish Kuthiala <53918208+akuthiala@users.noreply.github.com>
2026-04-08 13:06:16 -05:00
dependabot[bot]
f8d2660c6c
Bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.81.0 to 1.97.3 (#43204)
Bumps
[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2)
from 1.81.0 to 1.97.3.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="90650dd227"><code>90650dd</code></a>
Release 2026-03-26</li>
<li><a
href="dd88818bee"><code>dd88818</code></a>
Regenerated Clients</li>
<li><a
href="b662c50138"><code>b662c50</code></a>
Update endpoints model</li>
<li><a
href="500a9cb352"><code>500a9cb</code></a>
Update API model</li>
<li><a
href="6221102f76"><code>6221102</code></a>
fix stale skew and delayed skew healing (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3359">#3359</a>)</li>
<li><a
href="0a39373433"><code>0a39373</code></a>
fix order of generated event header handlers (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3361">#3361</a>)</li>
<li><a
href="098f389827"><code>098f389</code></a>
Only generate resolveAccountID when it's required (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3360">#3360</a>)</li>
<li><a
href="6ebab66428"><code>6ebab66</code></a>
Release 2026-03-25</li>
<li><a
href="b2ec3beebb"><code>b2ec3be</code></a>
Regenerated Clients</li>
<li><a
href="abc126f6b3"><code>abc126f</code></a>
Update API model</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.81.0...service/s3/v1.97.3">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 14:55:33 -03:00
dependabot[bot]
8201ae63f1
Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.35.3 to 1.43.5 (#43200)
Bumps
[github.com/aws/aws-sdk-go-v2/service/kinesis](https://github.com/aws/aws-sdk-go-v2)
from 1.35.3 to 1.43.5.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f9f7a6bb12"><code>f9f7a6b</code></a>
Release 2025-07-19</li>
<li><a
href="c74fb637eb"><code>c74fb63</code></a>
Regenerated Clients</li>
<li><a
href="d09b46671d"><code>d09b466</code></a>
generate aws-eusc (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3144">#3144</a>)</li>
<li><a
href="45575dd695"><code>45575dd</code></a>
Release 2025-07-18</li>
<li><a
href="40f9e8b889"><code>40f9e8b</code></a>
Regenerated Clients</li>
<li><a
href="da30009f1d"><code>da30009</code></a>
Update endpoints model</li>
<li><a
href="78fe67fa8c"><code>78fe67f</code></a>
Update API model</li>
<li><a
href="654c62d6b1"><code>654c62d</code></a>
Release 2025-07-17</li>
<li><a
href="47a74cd2a3"><code>47a74cd</code></a>
Regenerated Clients</li>
<li><a
href="bdd96b2ea2"><code>bdd96b2</code></a>
Update endpoints model</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/service/pi/v1.35.3...service/ivs/v1.43.5">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 14:47:51 -03:00
Mike McNeil
2545d48627
Website: Update partners.ejs (#43262)
Doesn't need to say "channel"
2026-04-08 12:42:24 -05:00
dependabot[bot]
98075b2734
Bump github.com/aws/aws-sdk-go-v2/service/lambda from 1.72.0 to 1.88.5 (#43199)
Bumps
[github.com/aws/aws-sdk-go-v2/service/lambda](https://github.com/aws/aws-sdk-go-v2)
from 1.72.0 to 1.88.5.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b9b0c6553b"><code>b9b0c65</code></a>
Release 2025-10-16</li>
<li><a
href="e2bc8a0ec6"><code>e2bc8a0</code></a>
Regenerated Clients</li>
<li><a
href="8691ee380a"><code>8691ee3</code></a>
Update API model</li>
<li><a
href="51e8a3fe03"><code>51e8a3f</code></a>
bump to go1.23 (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3211">#3211</a>)</li>
<li><a
href="ad2d36cba7"><code>ad2d36c</code></a>
Release 2025-10-15</li>
<li><a
href="19a35d639f"><code>19a35d6</code></a>
Regenerated Clients</li>
<li><a
href="35cb02fd50"><code>35cb02f</code></a>
Update endpoints model</li>
<li><a
href="f673a1b0a8"><code>f673a1b</code></a>
Update API model</li>
<li><a
href="48421fd812"><code>48421fd</code></a>
Release 2025-10-14</li>
<li><a
href="fedcba778c"><code>fedcba7</code></a>
Regenerated Clients</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.72.0...service/s3/v1.88.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go-v2/service/lambda&package-manager=go_modules&previous-version=1.72.0&new-version=1.88.5)](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-04-08 14:37:20 -03:00
Allen Houchins
746ecb4166
Update Cursor and Docker metadata (#43256)
Bump Cursor to 3.0.12 and Docker to 4.67.0: update installer URLs and
SHA256 hashes, add 'patched' SQL queries for version checks in Windows
outputs, and normalize default_categories from "Developer Tools" to
"Developer tools" in winget inputs and outputs.
2026-04-08 12:24:58 -05:00
melpike
75982f44de
Rename Apple Business Manager in UI (#42584)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42512

---------

Co-authored-by: Luke Heath <luke@fleetdm.com>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
2026-04-08 11:14:19 -06:00
Dante Catalfamo
6a71c18bbe
Duplicate scep cert removal (#42762)
**Related issue:** Resolves #40513
2026-04-08 13:03:45 -04:00
Scott Gress
3ae98ee01d
Clean up Gitops tests and add deprecation tests (#43039)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** For #40015

* Moves repeated empty mocks into a new `setupEmptyGitOpsMocks` method
* Adds new "deprecation" tests:
* In TestGitOpsFullGlobal, TestGitOpsFullTeam and
TestGitOpsFullGlobalAndTeam tests "kitchen sink" with both new and
deprecated keys
* Added keys and checks to verify `setup_experience`,
`apple_business_manager` and `volume_purchasing_program` configs
* Consolidated map of deprecated -> new GitOps keys in one place
2026-04-08 11:57:03 -05:00
Nico
e6357cfab5
Query results table: fix id column header and cell styles (#43246)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42402

- Added missing left border to `id` table header.
- Changed `display: flex` to `display: table-cell` for `id` table cells.

# 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. (Original PR didn't have one:
https://github.com/fleetdm/fleet/pull/42937.)

## Testing

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

#### Before

<img width="1769" height="572" alt="Screenshot 2026-04-08 at 1 17 34 PM"
src="https://github.com/user-attachments/assets/c4131e55-5213-431a-ae81-ffdd8b99fb03"
/>


#### After

<img width="1760" height="572" alt="Screenshot 2026-04-08 at 1 17 21 PM"
src="https://github.com/user-attachments/assets/5e482160-9b5a-4115-bf14-e64e4514e192"
/>
2026-04-08 13:28:06 -03:00
Eric
250e3674f0
Add Fleet agent downloader app (#42414)
Related to #40309

Changes:
- Added ee/fleet-agent-downloader/ - A Sails app that has a single page
locked behind SSO that end-users can use to download a Fleet installer
hosted in an S3 bucket.
2026-04-08 11:18:24 -05:00
Eric
bbaabd782c
Website: bring back support for markdown ((bubbles)) (#43189)
Related to: https://github.com/fleetdm/fleet/issues/42738

Changes:
- Uncommented and updated the code that replaces text content in double
parentheses with `<bubble>` elements in build-static-content to not
replace content inside of `<code>` elements
- Created a `<bubble>` component based on the ((bubbles)) in the
Sails.js docs.
2026-04-08 10:56:59 -05:00
Eric
aca1f0bb92
Website: update package-lock.json (#43245)
Closes: https://github.com/fleetdm/confidential/issues/15275

Changes:
- Updated website/package-lock.json by running `npm update`
2026-04-08 10:52:07 -05:00
Dan Gordon
501c6ead81
Fix filename, codeblocks, and add more md (#43198)
Fixed filename which was breaking rendering of the page. Fixed extra
spaces on code blocks. Also added more headers for cleaner reading, and
added a link to the end of the page to get to the raw text for easy
copying that can be dropped right in for AI input.
2026-04-08 10:50:19 -05:00
kitzy
dbc9959c94
Revise deployment steps for Santa at Fleet (#43239)
Removed the section on deploying the Santa osquery extension manually,
as we now include that in Fleet by default.

Slack thread for context:
https://fleetdm.slack.com/archives/C08PCMKAFTP/p1775065630945889
2026-04-08 10:10:48 -05:00
github-actions[bot]
642f98a59e
Update 1Password policy versions (#43213)
This PR automatically updates both 1Password macOS version policy and
Safari version policy for dogfood.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-04-08 10:03:52 -05:00
Noah Talerman
873d7e398d
Host details > Delete should say "Delete" instead of "Delete hosts" (#43191)
For the following bug:
- https://github.com/fleetdm/fleet/issues/43190
2026-04-08 10:55:35 -04:00
Tim Lee
aef980c76c
Add Product & Eng handbook weekly summary action (#43193) 2026-04-08 08:53:07 -06:00
Jonathan Katz
cd836ffe04
Use org.gpgtools.updater as bundle identifier for gpg-suite (#43229)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42680 
This manually modified outputs/apps.json since currently it only adds
new FMAs and cannot update existing ones from ingestion. It looks like
the install/uninstall scripts changed a bit, but I was able to install
and uninstall it successfully on a VM.
 
<img width="1150" height="48" alt="image"
src="https://github.com/user-attachments/assets/dad9f5f6-1f21-4169-aed5-33fb25cb666b"
/>

Patch policy for up to date version seems to work too.
<img width="863" height="49" alt="image"
src="https://github.com/user-attachments/assets/a706794d-885f-4a5c-abc5-b65c26ba7733"
/>
2026-04-08 09:52:11 -05:00
fleet-release
10f0c9a075
Update Fleet-maintained apps (#43230)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-04-08 09:51:53 -05:00
Noah Talerman
3776be6594
Improve 'Activities run as listed' tooltip wording (#43170)
- @noahtalerman: Learned from Victor that it's [not always 3
retries](https://github.com/fleetdm/fleet/issues/41107#issuecomment-4180535058).

For the following quick win:
- https://github.com/fleetdm/fleet/issues/41107
2026-04-08 10:49:07 -04:00
Noah Talerman
bb58452796
Update copy in Settings > Integrations: Clarify SSO v. IdP (#42681)
For the following quick win:
- https://github.com/fleetdm/fleet/issues/42737
2026-04-08 10:34:44 -04:00
Allen Houchins
0873c50a30
Make Linux wipe script safer for network filesystems (#41812)
This pull request enhances the safety of the `linux_wipe.sh` script by
ensuring that destructive file operations do not affect network-mounted
filesystems. The changes introduce checks to detect network filesystems,
prevent accidental deletion of remote data, and improve the reliability
of wipe operations by avoiding crossing filesystem boundaries.

**Network filesystem safety improvements:**

* Added a `NETWORK_FS_TYPES` variable and functions to detect and
unmount network filesystems, preventing the script from deleting data on
NFS, CIFS, SMB, SSHFS, and similar mounts.
(`ee/server/service/embedded_scripts/linux_wipe.sh`)
[[1]](diffhunk://#diff-7ac85220cbd45e63481837a405dacf198822a4fbf885b88f89b9bc870c947fccR3-R4)
[[2]](diffhunk://#diff-7ac85220cbd45e63481837a405dacf198822a4fbf885b88f89b9bc870c947fccR17-R84)
* Introduced an `unmount_network_filesystems` function called before
wiping operations to unmount all detected network filesystems.
(`ee/server/service/embedded_scripts/linux_wipe.sh`)
* Added an `is_network_mount` function to skip wiping any path residing
on a network filesystem.
(`ee/server/service/embedded_scripts/linux_wipe.sh`)

**Safe file deletion enhancements:**

* Implemented a `safe_rm` function that ensures file deletions do not
cross filesystem boundaries, using `rm --one-file-system` or `find
-xdev` as a fallback. All destructive operations now use this wrapper.
(`ee/server/service/embedded_scripts/linux_wipe.sh`)
* Updated `wipe_non_essential_data` and `wipe_system_files` to use
`safe_rm` and to skip paths on network filesystems.
(`ee/server/service/embedded_scripts/linux_wipe.sh`)

These changes significantly reduce the risk of deleting data on remote
or shared filesystems during a wipe operation.


<!-- 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
- [ ] 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: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-04-08 09:16:22 -05:00
kilo-code-bot[bot]
c5cfc52b87
Add responsibility: Triage and address vulnerabilities in the website/ code base (#43208) 2026-04-08 09:11:40 -05:00
Allen Houchins
0389d84ac1
Set osquery_policy_update_interval to 30m in dogfood (#42257)
## Changes

- Added `FLEET_OSQUERY_POLICY_UPDATE_INTERVAL` environment variable set
to `30m` in the dogfood Terraform configuration
- This configures osquery policy updates to occur every 30 minutes in
the dogfood environment
2026-04-08 09:07:58 -05:00
Lucas Manuel Rodriguez
763eca64db
Move label request/response types to server/fleet package (#43140)
For #36087

- [x] QA'd all new/changed functionality manually
2026-04-08 11:07:06 -03:00
Carlo
ef52f08bc7
Make dynamic default policy type for ApplyPolicySpecs (#43197)
Fixes #43025
2026-04-08 09:56:38 -04:00
fleet-release
a854b5a10e
Update Fleet-maintained apps (#43187)
Automated ingestion of latest Fleet-maintained app data.

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-04-08 08:56:21 -05:00
Dale Ribeiro
d37745dfd7
Update setup experience documentation for bootstrap package (#41158)
Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
2026-04-08 09:47:37 -04:00
Ashish Kuthiala
61c89ae083
Add deployment guide for Fleet on Proxmox (#43209)
Added a new deployment guide for Fleet on Proxmox.
2026-04-07 23:51:35 -05:00
Dan Gordon
630bb25448
Adjust to meet Fleet style and voice (#43201)
Made adjustments to fix violations of Fleet style, tone, and voice. Also
fixed a small version accuracy error.
2026-04-07 23:21:01 -05:00
Victor Lyuboslavsky
1e940071bc
Add Windows awaiting configuration (#43067)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42841

This change is just new columns in a table. No other functional changes.

# Checklist for submitter

## Testing

- [x] Added/updated automated tests

## Database migrations

- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration.

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

## Summary by CodeRabbit

* **New Features**
* Added tracking for Windows device enrollment configuration status,
including timestamps indicating when devices entered the
awaiting-configuration state to improve enrollment lifecycle management.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-07 20:17:16 -05:00
kilo-code-bot[bot]
f47c0e5670
Add event UTM medium codes to source channel attribution (#43150)
## Summary

- Adds 9 event-related UTM medium codes (`mc`, `rc`, `le`, `ec`, `fe`,
`pe`, `se`, `wh`, `ws`) to the marketing attribution logic in
`update-or-create-contact-and-account.js`
- Maps these codes to the `'Event'` source channel, following the same
pattern used for Digital and Organic channels
- Adds friendly name mappings for each event code (e.g., `mc` → "Major
conference (MC)", `wh` → "Fleet hosted webinar (WH)")

### UTM Medium → Source Channel Mapping

| Code | Description | Source Channel |
|------|-------------|---------------|
| `mc` | Major conference | Event |
| `rc` | Regional conference | Event |
| `le` | Local event/meetup | Event |
| `ec` | Executive community | Event |
| `fe` | Field event/workshop | Event |
| `pe` | Partner event | Event |
| `se` | Speaking engagement | Event |
| `wh` | Fleet hosted webinar | Event |
| `ws` | Sponsored webinar | Event |

### Changes

The source channel determination logic now has three branches:
1. **Digital** — `ps`, `so`, `pm`, `cs`, `em` (unchanged)
2. **Event** — `mc`, `rc`, `le`, `ec`, `fe`, `pe`, `se`, `wh`, `ws`
(new)
3. **Organic** — everything else / no UTM medium (unchanged, remains the
default fallback)

Built for [John
Jeremiah](https://fleetdm.slack.com/archives/D0AGMBRKRR9/p1775584746996929)
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-04-07 18:11:38 -05:00
RachelElysia
357371911b
Website: Reroute learn-more-about/abm-issues (#42995) 2026-04-07 18:33:06 -04:00
kilo-code-bot[bot]
829227f7d5
Document retry attempts for different actions in Fleet (#43159) 2026-04-07 18:26:31 -04:00
Dale Ribeiro
64439dd8bf
Remove MDM migration reassignment warning (#43055)
Removed warning about MDM migration reassignment.
2026-04-07 18:01:22 -04:00
kilo-code-bot[bot]
cfd72e62b8
Add quarterly GTM ops placard update responsibility and ritual (#43171)
## Summary

- Adds a new "Update GTM ops placard" responsibility to the Finance
handbook page describing the quarterly process where Sam Pfluger and
Tina Ong meet live (30 min) to update placard and thermometer guidelines
using numbers from the operating model.
- Adds a corresponding quarterly ritual entry in `finance.rituals.yml`
with `autoIssue` enabled, starting on 2026-07-15, with `sampfluger88` as
DRI.

Built for [Sam
Pfluger](https://fleetdm.slack.com/archives/C08BTMFTUCR/p1775591570135929?thread_ts=1775586762.346599&cid=C08BTMFTUCR)
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: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
2026-04-07 16:54:15 -05:00
Magnus Jensen
bc32339526
Clear passcode frontend (#43084)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42369 

# 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. **Done in backend task for whole story**

- [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**
* Added "Clear passcode" action for iOS and iPad hosts in the host
actions menu, accessible only to Premium tier users with appropriate
permissions.
  * Added confirmation modal for clearing device passcodes.
* Passcode clearing activity now appears in the activity feed with actor
information.
* Action is conditionally disabled during specific device states (Lost
Mode, pending wipe) with contextual tooltips.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-07 16:36:03 -05:00
Victor Lyuboslavsky
36ad83f611
Android Wi-Fi profile withheld until cert installed on device (#42877)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42405

Demo video: https://www.youtube.com/watch?v=F3nfFvwdj-c

# 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

* **New Features**
* Android Wi‑Fi configuration profiles that reference client
certificates are withheld until the certificate is installed or reaches
a terminal state.
* Host OS settings now show the specific pending reason in the detail
column when Android profiles are waiting on certificate installation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-07 16:26:09 -05:00
Dan Gordon
6e3648a7d1
Add marketing ai-writing instructions (#43167)
Adding my AI-writing instructions for Fleet style and voice so that
others can use it and make PRs on it too.
2026-04-07 16:11:46 -05:00
melpike
52f888a0d2
[Activity] Document rotated recovery lock password activity (#43178)
Added documentation for rotated recovery lock password activity,
including fields and example.
To fix some lost changes:
https://github.com/fleetdm/fleet/issues/37498#issuecomment-4201936975

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #37498
2026-04-07 15:52:27 -05:00
Martin Angers
896f71a33b
DDMVars: DB migration (#43163)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43046 

# 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

## Database migrations

- [x] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
- [x] Ensured the correct collation is explicitly set for character
columns (`COLLATE utf8mb4_unicode_ci`).

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-07 16:51:36 -04:00
kilo-code-bot[bot]
99b0241a0f
Update handbook: AEs shadow SVP Global Sales instead of CEO (#43105)
## Summary

- Updates the CEO shadow program section in the handbook so that Account
Executives (AEs) complete their shadow program with the SVP Global Sales
instead of the CEO.
- Adds a note to the onboarding checklist in
`handbook/company/communications.md` clarifying the AE exception.

## Changes

**`handbook/company/leadership.md`**: Added a callout under the CEO
shadow program description noting that AEs complete their shadow program
with the SVP Global Sales instead.

**`handbook/company/communications.md`**: Updated the onboarding
contributor experience training checklist to note that AEs shadow the
SVP Global Sales rather than the CEO.

---

Built for [Isabell
Reedy](https://fleetdm.slack.com/archives/D0AEGJCGJR0/p1775558368006279)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-04-07 21:29:57 +01:00
Magnus Jensen
6a9d394e62
Implement clear passcode backend (#43072)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42368 

# 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. For the overall story

- [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
2026-04-07 15:23:59 -05:00
Magnus Jensen
3371b48373
accept 89 error on RemoveProfile as valid (#43172)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42103 

# 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

* **Bug Fixes**
* Improved profile removal handling: Fleet now successfully removes host
OS setting entries even when the removal command encounters a "profile
not found" error from the device.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-07 15:23:37 -05:00
Allen Houchins
82b6614b2b
Re-add Zoom patch policies (#43175) 2026-04-07 15:22:54 -05:00
Allen Houchins
a62f318d2e
Re-add Zoom FMAs (#43173) 2026-04-07 15:09:02 -05:00
RachelElysia
ee207d79af
Fleet UI: Fix software table bookmarkability for pages (#43166) 2026-04-07 15:59:48 -04:00