Commit Graph
23469 Commits
Author SHA1 Message Date
Ashish Kuthialaandkiloconnect[bot] 61391e4634 Add Ashish Kuthiala to leadership team (#43692)
Added Ashish Kuthiala's profile with headshot and bio.

Built for
[mikermcneil](https://fleetdm.slack.com/archives/D0AFASLRHNU/p1776402094006379)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-04-17 00:18:34 -05:00
Dan Gordon 9f8050d3e2 Add blog publishing instructions to marketing page (#43691)
Added detailed how-to instructions for publishing blog articles to the
marketing handbook page.
2026-04-16 20:43:37 -05:00
Dan Gordon e55ad5a044 Add 9 problems article (#43690) 2026-04-16 19:47:34 -05:00
Eric c10142aec3 Website: Update note blocks on docs pages to use tip-block mixin (#43686)
Changes:
- Updated the notes on the vital-details, policy-details, and
query-details template pages to use the tip-block mixin

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

## Summary by CodeRabbit

* **Style**
* Refined styling consistency across documentation pages while
maintaining visual appearance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-16 17:27:53 -05:00
Noah TalermanandIrena Reedy 1e969d460c Roadmap preview: April 2026 (#43472)
DONE: @noahtalerman:
- ~~Record video~~
- ~~Video is here:
https://drive.google.com/file/d/1AM3zExMHOE3-xCkAbYKUxsViI8vBeyX1/view?usp=sharing~~
- ~~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~~

@noahtalerman: For the following issues:
- https://github.com/fleetdm/fleet/issues/43023

---------

Co-authored-by: Irena Reedy <irena@fleetdm.com>
2026-04-16 17:37:02 -04:00
Eric 26c288263c Website: Add mixins for checklists and cta buttons (#43682)
Changes:
- Created checklist.less, a file that contains two mixins for checklists
(`.checklist()` and `.article-checklist()`), and updated stylesheets to
use the mixins.
- Added a mixin for CTA buttons (`.cta-button()`), and updated
stylesheets to use the mixin.

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

## Summary by CodeRabbit

* **Style**
* Standardized call-to-action button styling across all pages with a
unified design system approach.
* Consolidated checklist styling for improved visual consistency
throughout articles and landing pages.
  * Refined button hover effects for a more cohesive user experience.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-16 15:26:35 -05:00
Adam BaaliandClaude 2e631491c2 claude/fix-cis-shebang-NTw1M (#43681)
When importing CIS benchmark content for multiple OS versions into a
single
Fleet team via GitOps, users encounter several hard validation failures
because
Fleet enforces uniqueness on script basenames, mobileconfig
PayloadDisplayName /
PayloadIdentifier, and policy name fields.

Changes (all confined to docs/solutions/cis/):
- Fix #!/usr/bin/env bash shebang in CIS_2.6.7.sh (macOS 13/14/15) ->
#!/bin/bash
- Prefix script filenames with OS slug (macos13-, macos14-, macos15-,
win10-,
  win11-, win11-intune-) to prevent basename collisions
- Prefix mobileconfig PayloadDisplayName with OS tag ([macOS 13] etc.),
which
  is the field Fleet uses for identity
- Prefix mobileconfig PayloadIdentifier with an OS slug so identifiers
stay
  unique across versions
- Prefix every policy name: field with the OS tag; preserve original
YAML
formatting (plain, single-quoted with '' escapes, and folded block
scalars)
- Rename Windows XML profiles with win10-, win11-, and win11-intune-
prefixes

None of these changes affect the security logic or coverage of the
benchmarks.
They only make the content importable without manual intervention.

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-16 15:37:31 -04:00
Noah Talerman 5df1e0fdf5 Renaming: fleetctl apply (#43581)
For the following issue:
- https://github.com/fleetdm/fleet/issues/41419
2026-04-16 13:25:14 -05:00
Rachael Shaw c783ac75b5 Simplify explanation of fleet-level user permissions (#43676) 2026-04-16 11:53:56 -05:00
Victor Lyuboslavsky e6894ebaa2 Added Qodo configuration (#43668) 2026-04-16 11:31:05 -05:00
Rachael Shaw b51cd89ecd Permissions: Fix stray reference to "queries" (#43674) 2026-04-16 11:14:46 -05:00
5a660613db Add and document fallback script for wiping Windows devices (#42230)
Add fallback wipe script for Windows hosts (#34994)

When Fleet's built-in Windows wipe action fails (MDM command returns
status 500, device not wiped), there is no documented fallback. This PR
adds a script that can be run via Fleet to wipe the device when the
native wipe fails.

## Changes

- `docs/solutions/windows/scripts/wipe-windows-device.ps1` - Fallback
wipe script
- `articles/lock-wipe-hosts.md` - Reference to fallback script added
under Windows wipe section

## What the script does

1. Validates and repairs WinRE if disabled (confirmed root cause of wipe
failures in #34994)
2. Checks Component Store integrity via DISM
3. Suspends BitLocker for one reboot cycle
4. Triggers wipe via WMI-to-CSP bridge (`doWipeProtected`, falls back to
`doWipe`), bypassing the MDM command queue

Fully unattended. No user interaction required. Exits 0 on success, 1 on
failure.

## Context

Every fully unattended Windows wipe method uses the same RemoteWipe CSP.
There is no alternative Windows API. This script adds value by fixing
the root causes before calling the wipe, and by bypassing the MDM
command queue where server-side failures (DB timeouts, auth errors) can
occur.

Closes #34994

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

* **New Features**
* Added an administrator-only Windows device wipe utility that performs
staged system checks (recovery environment, system health, and disk
protection), attempts to suspend drive protection for a reboot, invokes
multiple local wipe triggers with fallbacks, creates a timestamped audit
log of actions, and provides clear success/failure summaries with likely
causes and suggested next steps.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Marko Lisica <83164494+marko-lisica@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
2026-04-16 11:49:53 -04:00
Rachael ShawandEric 62c41fa5b2 Website: Update callout box to use styles from the product, and update bubble component for displaying role types (#43651)
+ Update bubble component to use for displaying roles in REST API docs
+ Update callout box to reflect styles in the product, and create a new
mixin for consistent styling

(Adding the actual bubbles to the REST API docs will be done in a
separate PR, figured we could get these changes merged in first since it
might take awhile to verify that the role permissions are documented
accurately.)

#### Screenshot of style changes in the REST API docs:
<img width="1057" height="444" alt="Screenshot 2026-04-15 at 5 59 44 PM"
src="https://github.com/user-attachments/assets/1478b4d0-f610-4f87-a72f-2b08af917484"
/>


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

* **New Features**
* Role bubbles can be clickable links for specific roles and show hover
interactions.

* **Style**
* Redesigned bubble visuals (typography, padding, border, radius,
colors) with distinct role variants.
  * Added hover transition for role-linked bubbles.
* Consolidated "tip" block styling across the site for consistent layout
and spacing.
  * Minor spacing tweak for bubbles in documentation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2026-04-16 10:38:38 -05:00
Juan Fernandez f791f4b309 Allow the creation of API-only users (#43440)
**Related issues:** 
- Resolves #42882 
- Resolves #42880 
- Resolves #42884 

# Changes

- Added POST /users/api_only endpoint for creating API-only users.
- Added PATCH /users/api_only/{id} for updating existing API-only users.
- Updated `fleetctl user create --api-only` removing email/password
field requirements.
2026-04-16 11:11:39 -04:00
fleet-releaseandmostlikelee 19a1a1044e Update Fleet-maintained apps (#43663)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

## Release Notes

* **Chores**
* Updated version metadata for Egnyte Desktop to support version 1.16.0
  * Updated version metadata for Keka to support version 1.6.3

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

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-04-16 10:08:31 -05:00
Adam BaaliandClaude 6d708ef67e Migrate CIS benchmarks to docs/solutions/cis/ with production-ready profiles, scripts, and policies (#43657)
## Summary

Migrates CIS benchmark files from `ee/cis/` to `docs/solutions/cis/` in
Fleet GitOps-compatible format, with configuration profiles, remediation
scripts, and policy queries for macOS 13/14/15, Windows 10/11, and
Windows 11 Intune.

**The original AI-generated content (commits 1–4) contained critical
errors that would cause silent deployment failures.** Commits 5–10 are a
systematic review that validates every CSP path, Apple payload key, and
script against official vendor documentation — fixing 30+ issues.

---

## What was wrong and why

### 1. Windows XML profiles used wrong SyncML format (would be rejected
by Fleet)

The AI generated full SyncML protocol envelopes
(`<SyncML><SyncBody><CmdID>…<Final/>`), but Fleet expects flat
`<Replace><Item>…</Item></Replace>` blocks — the same format used in
[`docs/solutions/windows/configuration-profiles/`](https://github.com/fleetdm/fleet/tree/main/docs/solutions/windows/configuration-profiles).
Every production Fleet profile (e.g., [`enforce device password and lock
requirements –
[Bundle].xml`](https://github.com/fleetdm/fleet/blob/main/docs/solutions/windows/configuration-profiles/enforce%20device%20password%20and%20lock%20requirements%20%E2%80%93%20%5BBundle%5D.xml))
uses this flat format. This is the same class of error [reported by
@AdamBaali in
#42748](https://github.com/fleetdm/fleet/issues/42748#issuecomment-4223794562)
when testing the `numa` AI-generated security baseline.

**Fix:** Rewrote all 13 XML files to match Fleet's expected format.

### 2. Six Audit CSP names were fabricated (`LogonLogoff_` prefix
doesn't exist)

The AI used `Audit/LogonLogoff_AuditLogon` etc., but the [Microsoft
Audit Policy CSP
documentation](https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-audit)
specifies the prefix `AccountLogonLogoff_` — e.g.,
`Audit/AccountLogonLogoff_AuditLogon`. Using the wrong prefix returns
HTTP 500 from the MDM server.

**Fix:** Corrected all 6 across 3 platform variants (18 replacements).

### 3. Three Apple Intelligence profiles used fabricated payload keys

The AI invented keys that don't exist in [Apple's device-management
reference](https://github.com/apple/device-management/blob/release/mdm/profiles/com.apple.applicationaccess.yaml):

| Profile | AI-generated (fabricated) | Correct per Apple reference |
|---------|--------------------------|----------------------------|
| Extensions | `allowIntelligenceExtensions` |
`allowExternalIntelligenceIntegrations` |
| Mail | `com.apple.mail` / `allowMailIntelligence` |
`com.apple.applicationaccess` / `allowMailSmartReplies` +
`allowMailSummary` |
| Notes | `com.apple.mobilenotes` / `allowNotesIntelligence` |
`com.apple.applicationaccess` / `allowNotesTranscription` +
`allowNotesTranscriptionSummary` |

These profiles would deploy silently but enforce nothing — the keys
would be ignored by macOS. The corresponding policy SQL queries also
referenced the fabricated keys, so compliance checks would never pass
even with the profile applied.

**Fix:** Corrected keys, domains, and the corresponding policy SQL
queries so compliance checks match what the profiles actually enforce.

### 4. Firewall CSP used wrong URI prefix

AI used `./Device/Vendor/MSFT/Firewall/MdmStore/…` but [Microsoft's
Firewall CSP
documentation](https://learn.microsoft.com/en-us/windows/client-management/mdm/firewall-csp)
and Fleet's own production profiles use
`./Vendor/MSFT/Firewall/MdmStore/…`.

**Fix:** Updated all firewall URIs across 3 platform variants.

### 5. Wrong SIDs in user rights deny policies

CIS 2.2.16 (Deny access from network) and 2.2.20 (Deny RDP logon)
require denying both **Guests** (`S-1-5-32-546`) and **Local account**
(`S-1-5-113`). The AI only included Guests. This is the same error
[identified by @AdamBaali in
#42748](https://github.com/fleetdm/fleet/issues/42748#issuecomment-4223794562)
where the `numa` baseline used `S-1-2-0` (wrong SID entirely).

**Fix:** Added `S-1-5-113` to both XML profiles and PS1 scripts.

### 6. macOS scripts had runtime-breaking bugs

Scripts copied from `ee/cis/` originals contained issues that would
cause failures when deployed via Fleet:

| Issue | Scripts affected | Impact |
|-------|-----------------|--------|
| Hardcoded `<username>` placeholder | CIS_6.1.1, CIS_6.3.6, CIS_2.11.1,
CIS_2.6.2 | Shell error — `<username>` parsed as redirect |
| Missing `chmod 0440` on sudoers drop-ins | CIS_5.4, CIS_5.5 | macOS
sudo silently ignores files without 0440 perms |
| `sudo IFS=$'\n'` doesn't set IFS in current shell | CIS_5.1.5,
CIS_5.1.6, CIS_5.1.7 | Word splitting breaks on paths with spaces |
| Unsafe temp files (`./tmp.txt` in CWD) | CIS_3.2, CIS_3.3, CIS_3.4 |
Race condition, fails in read-only CWD |
| Missing shebang | CIS_2.6.1.2 | May use wrong shell interpreter |
| `not_always_working` scripts with `<password>` | CIS_2.10.1,
CIS_2.10.2 | Could never work in automated deployment |

**Fix:** Rewrote scripts with dynamic user enumeration, `mktemp`, proper
IFS, `visudo` validation. Removed `not_always_working` scripts.

### 7. Policy YAML formatting bugs and spelling

- **Computer Browser policy** (win-10, win-11): `resolution: |` was on
the same line as description text, causing YAML to swallow the entire
resolution into the description — no remediation steps shown.
- **Set Time and Date policy** (macOS 13/14/15): Empty `description:`
parsed as `null`.
- 14 spelling errors across macOS and Windows YAML (`existance`,
`Extention` ×8, `recomendation`, `bellow`, `enableds`, `addess` ×2,
etc.)
- Filename inconsistencies: `on-device-dictiation-enabled` (typo),
`2.8.1.disable` (dots vs dashes)

---

## Verification methodology

Every CSP OMA-URI and Apple payload key was validated against official
vendor documentation:

| Category | Count | Source | Result |
|----------|-------|--------|--------|
| [Audit
CSP](https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-audit)
| 27 | Microsoft docs | 6 corrected |
| [UserRights
CSP](https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-userrights)
| 27 | Microsoft docs | All verified correct |
| [LocalPoliciesSecurityOptions
CSP](https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-localpoliciessecurityoptions)
| 27 | Microsoft docs | 1 format corrected |
| [Firewall
CSP](https://learn.microsoft.com/en-us/windows/client-management/mdm/firewall-csp)
| 14 | Microsoft docs | All correct (after path fix) |
| [Defender
CSP](https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-defender)
| 9 | Microsoft docs | All verified correct |
| [Apple
applicationaccess](https://github.com/apple/device-management/blob/release/mdm/profiles/com.apple.applicationaccess.yaml)
| 13 profiles | Apple device-management repo | 3 corrected |
| Fleet GitOps YAML | 1,857 policies | [Fleet GitOps
docs](https://fleetdm.com/docs/configuration/yaml-files) | 2 format bugs
fixed |
| Fleet XML format | 13 files |
[`docs/solutions/windows/`](https://github.com/fleetdm/fleet/tree/main/docs/solutions/windows/configuration-profiles)
| Reformatted to match |
| Fleet blocked CSPs | — | `server/fleet/windows_mdm.go` | No conflicts
|
| [#43598](https://github.com/fleetdm/fleet/issues/43598) glob bug | 305
files | Filename scan | No `*`, `?`, `[`, `{` in any filename |

## Commits

1. `89d9418` — Copy CIS benchmarks to docs/solutions/cis/ in
GitOps-compatible format
2. `bbabb13` — Restructure with policies/, configuration-profiles/,
scripts/ subdirs
3. `00004f4` — Promote test artifacts, add Contents to READMEs
4. `786591f` — Add configuration profiles and scripts to all CIS
benchmark platforms
5. `0a47a53` — Fix macOS scripts (username placeholders, sudoers perms,
IFS, temp files, shebang, dictation typo, remove broken scripts)
6. `4efbd40` — Reformat all 13 Windows XML profiles to Fleet's flat
Replace/Item format, fix Firewall CSP paths, fix SIDs
7. `f0abb66` — Fix 6 Audit CSP names: `LogonLogoff_` →
`AccountLogonLogoff_`
8. `bfb0f95` — Fix `SmartCardRemovalBehavior` format type (`int` →
`chr`)
9. `4cbb33e` — Fix 3 Apple Intelligence profiles (fabricated keys → real
Apple keys), fix YAML formatting bugs
10. `d3a0031` — Fix spelling (14 corrections), naming conventions,
policy-profile key alignment

## Current state

| Platform | Policies | Config Profiles | Scripts |
|----------|----------|-----------------|---------|
| macOS 13 | 1 YAML (111 policies) | 46 .mobileconfig | 43 .sh |
| macOS 14 | 1 YAML (111 policies) | 47 .mobileconfig | 43 .sh |
| macOS 15 | 1 YAML (113 policies) | 43 .mobileconfig | 44 .sh |
| Windows 10 | 1 YAML (510 policies) | 4 SyncML XML | 5 .ps1 |
| Windows 11 | 1 YAML (555 policies) | 4 SyncML XML | 5 .ps1 |
| Windows 11 Intune | 3 YAML (457 policies) | 5 SyncML XML | 2 .ps1 |

The source files in `ee/cis/` are intentionally left untouched.

https://claude.ai/code/session_01DUqJK6iJ8MWMdz2d25ZTNW

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-16 16:16:22 +02:00
EricandCopilot be14f7c10d Website: Add webinar article template page. (#43627)
Changes:
- Added support for a new article category: `webinar`.
- Added a template page for webinar articles.
- Added an additional route for webinar articles that users are taken to
to watch the webinar recording.
- Added `deliver-webinar-access-request`, an action that updates CRM
records when users fill out the form on the webinar template page.
- Updated the accepted `intentSignal` values in the
create-historical-event helper.
- Added an article for the "Beyond the hype, practical AI for device
management" webinar.

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

* **New Features**
* Public webinar pages (/webinars/:slug and /watch) with optional
embedded video and a new page template, script, and styles.
* Sidebar signup form (first name, last name, work email) with prefill
for signed-in users and improved scroll behavior.
* POST API to request webinar access: validates email domain, records a
webinar-request event, triggers background CRM sync, and returns a watch
view on success.
* Static-site build now recognizes webinar articles and enforces
embedded-video URL validation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-16 09:14:28 -05:00
fleet-releaseandallenhouchins 0cf1ea7ca8 Update Fleet-maintained apps (#43662)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated version metadata for 12 managed applications to reflect their
latest releases: Adobe DNG Converter, Claude, Connect Fonts, Dialpad,
Google Chrome, Google Drive, Keka, Lens, Opera, WhatsApp, Windsurf, and
Zed. Updates include version numbers, installer artifacts, and
verification checksums.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-04-16 08:56:44 -05:00
fleet-releaseandmostlikelee ac76d8da36 Update Fleet-maintained apps (#43636)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

## Release Notes

* **Chores**
* Updated supported versions for multiple applications: Cursor, Dialpad,
GitKraken, Google Chrome, JetBrains Toolbox, Notion, OneDrive, Signal,
Spotify, and Yubico Authenticator. Newer versions of these applications
are now available for download and installation.

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

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-04-16 08:44:34 -05:00
Rakkfalen 3ef0a3f289 Fix typo in intent signals processing section (#43619) 2026-04-15 15:16:18 -05:00
melpike 13ec5674f6 Missed AMB UI instances (#43506)
Missed a few AMB UI instances as part of [Rename Apple Business Manager
(ABM) to Apple Business (AB) in
UI](https://github.com/fleetdm/fleet/issues/42512)

<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:**
https://github.com/fleetdm/fleet/issues/42512#issuecomment-4238323552

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

## Summary by CodeRabbit

* **Documentation**
* Updated user-facing text and messaging across Apple Business Manager
integration pages, including modal titles, instructional content, and
setup guides
* Refined terminology, formatting, and punctuation throughout tooltip
content, administrative configuration descriptions, and user guidance
* Adjusted messaging and instructional text in Apple Business Manager
and VPP settings pages

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-15 13:52:14 -06:00
Noah Talerman 1fe982a7ed Move APNs instructions out of UI and into guides (#43434)
- @noahtalerman: For the following quick win:
  - https://github.com/fleetdm/fleet/issues/43435
2026-04-15 14:44:34 -05:00
Allen Houchins 7980b636a0 Update workstations.yml (#43620) 2026-04-15 11:41:52 -05:00
Allen Houchins a4019b08ce Update patch-fleet-maintained-apps.yml (#43618) 2026-04-15 10:46:12 -05:00
Allen Houchins e6bc0d0b95 Update patch-fleet-maintained-apps.yml (#43617) 2026-04-15 10:39:26 -05:00
Allen Houchins f6087a3998 Update patch-fleet-maintained-apps.yml (#43615) 2026-04-15 10:24:09 -05:00
Allen Houchins 6ba08e2bc0 Update patch-fleet-maintained-apps.yml (#43614) 2026-04-15 10:18:09 -05:00
Allen Houchins 2b8f67a072 Revert "Temporarily disable FMA patch policies" (#43612)
Reverts fleetdm/fleet#43611
2026-04-15 09:53:51 -05:00
Allen Houchins 31e8300670 Temporarily disable FMA patch policies (#43611)
Comment out the patch-fleet-maintained-apps.yml entries for macOS and
Windows in it-and-security/fleets/workstations.yml. This temporarily
disables the FMA patch policies (kept as commented lines with a TEMP
note) to allow re-establishing the Fleet Maintained Apps software state.
2026-04-15 09:49:53 -05:00
Allen Houchins f0bdd0498f Remove several x86 Windows apps, labels and policies (#43608)
Remove several x86-only Fleet-maintained Windows applications and their
associated dynamic labels and patch policies. Changes touch:

- it-and-security/fleets/workstations.yml: removed fleet app entries for
Brave, Docker Desktop, GitHub Desktop, Postman, Sublime Text, Spotify,
Figma, Google Drive, and Cursor.
-
it-and-security/lib/all/labels/windows-with-fleet-maintained-apps-installed.yml:
removed the matching x86 dynamic labels.
- it-and-security/lib/windows/policies/patch-fleet-maintained-apps.yml:
removed the corresponding patch policies for those apps.

This cleans up configuration related to x86-only Windows apps (labels
previously filtered on arch NOT LIKE 'ARM%').
2026-04-15 09:26:38 -05:00
johnjeremiah 2d4501af58 Adding Video Hosting details (#43532)
Added details about adding a video to the hosting platform
2026-04-15 09:19:24 -05:00
johnjeremiah 94f2033bb4 Fixing a few typos in the Alternatives to jamf blog (#43436)
fixing a couple of typos on the blog
2026-04-15 09:19:07 -05:00
fleet-releaseandallenhouchins 73352f7811 Update Fleet-maintained apps (#43603)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated version information and installer resources for multiple
maintained applications, including Claude, Cursor, GitHub Desktop, Loom,
Notion, Postman, Sketch, Telegram, Visual Studio Code, WhatsApp, and
Zeplin across Windows and macOS platforms.

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-04-15 09:01:59 -05:00
dependabot[bot] f814d46320 Bump follow-redirects from 1.15.11 to 1.16.0 (#43562) 2026-04-15 08:51:21 -05:00
fleet-releaseandmostlikelee 19962d53c4 Update Fleet-maintained apps (#43588)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated Microsoft Office for macOS to version 16.108 across all
applications including Excel, OneNote, PowerPoint, and Word. All
applications now include new installer packages with updated security
checksums and enhanced installation verification mechanisms. These
updates preserve existing functionality and maintain system
compatibility while ensuring proper installation integrity and security
standards.

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

Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
2026-04-15 08:33:57 -05:00
johnjeremiah d78e788432 Adding PitchDeck and Webinar Recordings (#43535)
Adding both the new pitch deck and the links to the webinar recordings.
2026-04-15 08:24:57 -05:00
Victor Lyuboslavsky 67d0c576b1 Reset verified certificates to pending during Android host re-enrollment (#43443)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #42600

Unreleased bug:
https://github.com/fleetdm/fleet/issues/42600#issuecomment-4220428519

# Checklist for submitter

## Testing

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

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

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


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

* **Bug Fixes**
* Re-enrolling devices now fully reset certificate templates: templates
return to pending (install retained), retry counts and delivery metadata
are cleared to avoid stale state.

* **Behavior**
* Re-enrollment explicitly deletes prior device certificate entries
before creating fresh pending templates to prevent duplicates and stale
data.

* **Tests**
* Added tests covering Android re-enrollment to verify templates are
recreated and metadata is cleared.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-15 07:36:45 -05:00
Victor Lyuboslavsky bc6e7311e4 Android agent: retry DNS (#43464)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #43462 

During review, Hide whitespace.

Fixed Android agent to retry DNS resolution failures when waking from
Doze mode, and to defer remaining certificates in a batch to the next
enrollment cycle when a DNS failure persists.

The fix does not eliminates DNS errors from the logs, it just handles
them better.

# 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**
* Improved DNS resilience: automatic retries with backoff for DNS
resolution failures (e.g., after device sleep), upfront validation of
the configured server URL, and clearer failure reporting when retries
are exhausted.
* Certificate enrollment aborts a batch on terminal DNS failures and
defers remaining certificates until connectivity is restored.

* **Tests**
* Added a unit test validating batch abort behavior on DNS resolution
failure.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-15 07:36:09 -05:00
Gray Williams f1c2e46bcc Update FAQ for Linux disk encryption (#43530)
Adds information for disk encryption enforcement support to the notes
under supported operating systems.
2026-04-15 08:28:05 +01:00
Mike McNeil 6aa2dd904a Update go-to-market-operations.md (#43594) 2026-04-14 20:47:40 -05:00
03959758ce Add 'Why Claude Teams?' section to why-this-way handbook page (#43487)
## Summary

- Adds a new "Why Claude Teams?" section to the "Why this way?" handbook
page explaining why Fleet uses the Claude Team plan with automatic
overages instead of individual Max ($200/month) plans.
- Covers the $100/month engineering tier, 5-hour usage reset windows,
automatic overages for uninterrupted work, cost savings vs Max plans,
and the 150-employee threshold for moving to Enterprise.

Built for [Luke
Heath](https://fleetdm.slack.com/archives/C09861YJUJ2/p1776106266096629?thread_ts=1776102426.771259&cid=C09861YJUJ2)
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: Luke Heath <luke@fleetdm.com>
2026-04-14 16:27:18 -05:00
fleet-releaseandallenhouchins fbfc7c375c Update Fleet-maintained apps (#43579)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
  * Updated managed-app metadata for Claude desktop to version 1.2581.0
  * Updated managed-app metadata for Connect Fonts to version 28.1.1
  * Updated managed-app metadata for Dropbox to version 248.4.3576
* Updated version detection and installer references for each
application to ensure proper deployment compatibility

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-04-14 15:42:45 -05:00
RachelElysia f3976c96fa FE: Add dark mode view to storybook (#43469) 2026-04-14 15:31:07 -05:00
Allen Houchins 94674f28da Re-add iMazing Profile Editor as a macOS FMA (#43574)
Register iMazing Profile Editor as a Fleet-maintained app: add input
metadata, add app entry to outputs/apps.json, and add darwin-specific
version/installer info with install/uninstall scripts and checks. Update
frontend icon mapping to include the human-readable name, and adjust
fleet configs (workstations self-service slug, dynamic label bundle
identifier, and macOS patch policy) to reference the new
imazing-profile-editor/darwin slug and
com.DigiDNA.iMazingProfileEditorMac bundle ID.
2026-04-14 15:29:40 -05:00
Eric bbdb13b356 Remove empty resolution attributes from two policies (#43576)
Changes:
- Removed the `resolution` attribute from the two policies added in
#43415 to fix the website's failing deploy workflow

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

## Summary by CodeRabbit

* **Documentation**
* Removed resolution information from two Linux policies in the standard
query library: "Ubuntu GNOME password policy" and "Ubuntu GNOME lock
screen after 5 minutes."

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-14 15:26:17 -05:00
Allen Houchins 86b5eaf4a9 Rename iMazing Profile Editor to iMazing in the FMA library (#43555)
Replace the fleet-maintained app record for "iMazing Profile Editor"
with the full "iMazing" app. Deleted the old input file and added a new
input for imazing; renamed output paths and updated app metadata (bundle
identifier, slug, categories). Bumped version to 3.5.2 and updated
installer URL, install/uninstall script refs and SHA256. Updated
frontend icon mapping and website routes to point to the new imazing
slug, and adjusted fleet configs: workstation software slug, dynamic
label query, and macOS patch policy to reference imazing/darwin and the
new bundle identifier.

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

## Summary by CodeRabbit

* **New Features**
* iMazing application (v3.5.2) now replaces iMazing Profile Editor with
improved capabilities and enhanced functionality.
* Application category updated from Developer tools to Utilities for
better organization and discoverability.

* **Updates**
* Updated deployment configurations, system routes, and management
policies to support iMazing across all managed environments and
platforms.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-14 14:57:24 -05:00
dependabot[bot] 26c920f716 Bump grunt from 1.0.4 to 1.5.3 in /ee/fleet-agent-downloader (#43250)
Bumps [grunt](https://github.com/gruntjs/grunt) from 1.0.4 to 1.5.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gruntjs/grunt/releases">grunt's
releases</a>.</em></p>
<blockquote>
<h2>v1.5.3</h2>
<ul>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1745">#1745</a>
from gruntjs/fix-copy-op 572d79b</li>
<li>Patch up race condition in symlink copying.  58016ff</li>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1746">#1746</a>
from JamieSlome/patch-1 0749e1d</li>
<li>Create SECURITY.md  69b7c50</li>
</ul>
<p><a
href="https://github.com/gruntjs/grunt/compare/v1.5.2...v1.5.3">https://github.com/gruntjs/grunt/compare/v1.5.2...v1.5.3</a></p>
<h2>v1.5.2</h2>
<ul>
<li>Update Changelog  7f15fd5</li>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1743">#1743</a>
from gruntjs/cleanup-link b0ec6e1</li>
<li>Clean up link handling  433f91b</li>
</ul>
<p><a
href="https://github.com/gruntjs/grunt/compare/v1.5.1...v1.5.2">https://github.com/gruntjs/grunt/compare/v1.5.1...v1.5.2</a></p>
<h2>v1.5.1</h2>
<ul>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1742">#1742</a>
from gruntjs/update-symlink-test ad22608</li>
<li>Fix symlink test  0652305</li>
</ul>
<p><a
href="https://github.com/gruntjs/grunt/compare/v1.5.0...v1.5.1">https://github.com/gruntjs/grunt/compare/v1.5.0...v1.5.1</a></p>
<h2>v1.5.0</h2>
<ul>
<li>Updated changelog  b2b2c2b</li>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1740">#1740</a>
from gruntjs/update-deps-22-10 3eda6ae</li>
<li>Update testing matrix  47d32de</li>
<li>More updates  2e9161c</li>
<li>Remove console log  04b960e</li>
<li>Update dependencies, tests...  aad3d45</li>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1736">#1736</a>
from justlep/main fdc7056</li>
<li>support .cjs extension  e35fe54</li>
</ul>
<p><a
href="https://github.com/gruntjs/grunt/compare/v1.4.1...v1.5.0">https://github.com/gruntjs/grunt/compare/v1.4.1...v1.5.0</a></p>
<h2>v1.4.1</h2>
<ul>
<li>Update Changelog  e7625e5</li>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1731">#1731</a>
from gruntjs/update-options 5d67e34</li>
<li>Fix ci install  d13bf88</li>
<li>Switch to Actions  08896ae</li>
<li>Update grunt-known-options  eee0673</li>
<li>Add note about a breaking change  1b6e288</li>
</ul>
<p><a
href="https://github.com/gruntjs/grunt/compare/v1.4.0...v1.4.1">https://github.com/gruntjs/grunt/compare/v1.4.0...v1.4.1</a></p>
<h2>v1.4.0</h2>
<ul>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1728">#1728</a>
from gruntjs/update-deps-changelog 63b2e89</li>
<li>Update changelog and util dep  106ed17</li>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1727">#1727</a>
from gruntjs/update-deps-apr 49de70b</li>
<li>Update CLI and nodeunit  47cf8b6</li>
<li>Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1722">#1722</a>
from gruntjs/update-through e86db1c</li>
<li>Update deps  4952368</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/gruntjs/grunt/blob/main/CHANGELOG">grunt's
changelog</a>.</em></p>
<blockquote>
<p>v1.5.3
date: 2022-04-23
changes:
- Patch up race condition in symlink copying.
v1.5.2
date: 2022-04-12
changes:
- Unlink symlinks when copy destination is a symlink.
v1.5.1
date: 2022-04-11
changes:
- Fixed symlink destination handling.
v1.5.0
date: 2022-04-10
changes:
- Updated dependencies.
- Add symlink handling for copying files.
v1.4.1
date: 2021-05-24
changes:
- Fix --preload option to be a known option
- Switch to GitHub Actions
v1.4.0
date: 2021-04-21
changes:
- Security fixes in production and dev dependencies
- Liftup/Liftoff upgrade breaking change. Update your scripts to use
--preload instead of --require. Ref: <a
href="https://github.com/js-cli/js-liftoff/commit/e7a969d6706e730d90abb4e24d3cb4d3bce06ddb">https://github.com/js-cli/js-liftoff/commit/e7a969d6706e730d90abb4e24d3cb4d3bce06ddb</a>.
v1.3.0
date: 2020-08-18
changes:
- Switch to use <code>safeLoad</code> for loading YML files via
<code>file.readYAML</code>.
- Upgrade legacy-log to ~3.0.0.
- Upgrade legacy-util to ~2.0.0.
v1.2.1
date: 2020-07-07
changes:
- Remove path-is-absolute dependency.
(PR: <a
href="https://redirect.github.com/gruntjs/grunt/pull/1715">gruntjs/grunt#1715</a>)
v1.2.0
date: 2020-07-03
changes:
- Allow usage of grunt plugins that are located in any location that
is visible to Node.js and NPM, instead of node_modules directly
inside package that have a dev dependency to these plugins.
(PR: <a
href="https://redirect.github.com/gruntjs/grunt/pull/1677">gruntjs/grunt#1677</a>)
- Removed coffeescript from dependencies. To ease transition, if
coffeescript is still around, Grunt will attempt to load it.
If it is not, and the user loads a CoffeeScript file,
Grunt will print a useful error indicating that the
coffeescript package should be installed as a dev dependency.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gruntjs/grunt/commit/82d79b803798f2a5f19662df9e12bef977dfa189"><code>82d79b8</code></a>
1.5.3</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/572d79b08767dd22ecc162b8d41825f9f8238fef"><code>572d79b</code></a>
Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1745">#1745</a>
from gruntjs/fix-copy-op</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/58016ffac5ed9338b63ecc2a63710f5027362bae"><code>58016ff</code></a>
Patch up race condition in symlink copying.</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/0749e1da0d8f88c5137c4eb4e9531e1b7498760e"><code>0749e1d</code></a>
Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1746">#1746</a>
from JamieSlome/patch-1</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/69b7c506cbf430e06bfe1a81050351e607c30380"><code>69b7c50</code></a>
Create SECURITY.md</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/ac667b24cabfff77cf769f9dbf9ddba9576b3dc2"><code>ac667b2</code></a>
1.5.2</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/7f15fd5ad9fb33ca0fe4680af7bce84d69deb673"><code>7f15fd5</code></a>
Update Changelog</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/b0ec6e12426fc8d5720dee1702f6a67455c5986c"><code>b0ec6e1</code></a>
Merge pull request <a
href="https://redirect.github.com/gruntjs/grunt/issues/1743">#1743</a>
from gruntjs/cleanup-link</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/433f91b78df99d83daa6f56a5505ead743627c30"><code>433f91b</code></a>
Clean up link handling</li>
<li><a
href="https://github.com/gruntjs/grunt/commit/d5969eccf2493c2c579c55a617c70cab48dc12d3"><code>d5969ec</code></a>
1.5.1</li>
<li>Additional commits viewable in <a
href="https://github.com/gruntjs/grunt/compare/v1.0.4...v1.5.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-14 14:47:11 -05:00
RachelElysia 2ba3bf27a6 Fleet UI: Consistent CTA button location (#43499) 2026-04-14 14:45:53 -05:00
fleet-releaseandallenhouchins ce4640adca Update Fleet-maintained apps (#43554)
Automated ingestion of latest Fleet-maintained app data.

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

## Summary by CodeRabbit

* **Chores**
* Updated Microsoft Outlook macOS application support to version 16.108
  * Refined Thunderbird Windows detection logic for improved accuracy
  * Updated Todoist macOS application support to version 9.27.1

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

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
2026-04-14 14:44:40 -05:00
Victor Lyuboslavsky 41d8cf4741 Minor fixes for public Autopilot docs. (#43399) 2026-04-14 14:33:19 -05:00