Commit Graph
1771 Commits
Author SHA1 Message Date
Noah Talerman da36a26f23 Update what's new from WWDC 2026 w/ Fleet support + Apple IT summit (#49440)
- So customers, and Fleet's Customer Success team know where Fleet's at
with supporting new features in macOS and iOS/iPadOS 27
2026-08-03 10:39:01 -07:00
Allen Houchins f37e78f2f3 Edit image caption in Linux inventory article (#50429)
Removed unnecessary text from the image caption in the article.

<!-- 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, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] 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))
2026-08-03 07:50:50 -05:00
Allen Houchins 7abc0f6e7f Add article: Linux crossed 10% in North America, and your inventory might have missed it (#50412)
**Related issue:** NA

New thought-leadership article pegged to Statcounter's July 2026 data
showing Linux desktop share at 10.65% in North America.

The angle is deliberately honest rather than triumphant: most of the
month-over-month jump came from Statcounter reclassifying an "Unknown"
traffic bucket, not from a mass migration. That measurement problem is
the bridge into Fleet's argument, since the same blind spot that hid
Linux from web analytics hides Linux hosts from asset inventories that
discover devices through Apple and Windows enrollment channels.

Includes a Cloudflare Radar chart as a second, independent data source.
Cloudflare puts North American Linux desktop requests at 6.3% over the
trailing year, well below Statcounter's figure, but both show a step
change in the same weeks. The disagreement between the two sources
reinforces the article's point that Linux is hard to count from the
outside.

Intended for use in ads and other traffic-driving placements.

Notes for reviewers:

- Capability claims (LUKS2 enforcement on Ubuntu/Kubuntu/Fedora with
escrowed recovery keys, `.deb`/`.rpm`/`.tar.gz` and script-only
packages, vulnerability detection including CISA KEV, remote script
execution, remote lock and wipe, self-service, supported distro list)
are grounded against `website/views/pages/linux-management.ejs`. Please
confirm they are still accurate.
- The article states that encryption enforcement covers a narrower set
of distributions than the overall support list, which is intentional.
- Statcounter figures are cited via Linuxiac; a Sources section
attributes both Statcounter and Cloudflare Radar, and the chart carries
inline attribution and a capture date.
- `publishedOn` is set to `2026-08-02`. Bump if this merges later.
- Byline is set to Allen Houchins.

# Checklist for submitter

- [ ] Content reviewed for Fleet voice and style (`content-style`) and
article format (`fleet-article-formatting`)
- [ ] Capability claims verified against the Linux management page and
docs
- [ ] Source attribution confirmed for Statcounter, Linuxiac, and
Cloudflare Radar
- [ ] Article renders correctly on the website, including the chart
image
2026-08-03 00:49:10 -05:00
Dale Ribeiro bf26771ff1 Delete articles/seamless-mdm-migration.md (#49029) 2026-07-31 18:35:54 -04:00
Mitch Francese 773c162a50 Configuration profiles guide: document label scoping (#49494)
## Summary

- Adds a **Target hosts with labels** section to the Configuration
profiles guide (`articles/custom-os-settings.md`).
- Documents the three targeting modes (**Include all**, **Include any**,
**Exclude any**), that only one can be used per profile, and that
profiles are inherently platform-scoped (no label needed to keep a
profile on the right platform).
- Shows the flow across Fleet UI, GitOps (`labels_include_all` /
`labels_include_any` / `labels_exclude_any`, with a YAML example), and
the Fleet API.
- Bumps `publishedOn` to the current date. Author unchanged.

## Why

Prospects and customers hit this gap when trying to scope a profile to a
subset of hosts: the label include/exclude syntax lived only in the YAML
and REST API reference docs, with no walkthrough in the guide.

## Test plan

- [ ] Article renders correctly on the fleetdm.com preview
- [ ] All links resolve
- [ ] Meta tags present with updated `publishedOn` date
- [ ] Style guide compliance verified
2026-07-31 12:10:33 -04:00
Noah Talerman fc2b0eada1 Update link for installing custom app guide (#50194)
- Better link
2026-07-31 08:30:45 -07:00
Noah Talerman a1409c4784 Update Android MDM migration instructions (#50055)
Clarify migration steps for BYOD and company-owned Android hosts,
including unenrollment and QR code scanning.
2026-07-30 08:00:52 -07:00
Allen HouchinsandMike Thomas 7f07651f97 Add Hawx case study (#50152)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** N/A

# Checklist for submitter

This PR adds one markdown file under `articles/` (a customer case study)
— no product code, so most of the template below doesn't apply.

## What changed

Adds `articles/hawx.md`, a case study on Hawx Pest Control.

**The story:** Hawx is a technology-first pest control company whose
field technicians can't be dispatched without a provisioned phone.
Hiring ramps up hard every summer, so onboarding and offboarding run
constantly. With Jamf, phones sat on the MDM screen until the technician
logged in, nobody remembered their credentials, and the helpdesk got
flooded from personal phones every season. Identifying which device
belonged to which technician took 5 to 10 minutes per call, 5 to 10
calls a day. Hawx now drives Fleet entirely through the API, paired with
Tines and Okta, so a device lands in the right fleet with the correct
profiles, policies, and apps the moment the technician verifies their
identity. Offboarding wipes or locks based on role. Migration took a
month.

**Source:** the 2026-07-20 customer interview with Loren Farr, IT
Manager at Hawx. Loren confirmed on the call that Fleet may use the
company name and his name and title, and was told nothing publishes
without his approval.

**Format:** drafted against the proposed `fleet-case-study-formatting`
skill in #49917 and the `content-style` skill:

- Three-act narrative (the challenge → why Fleet → the solution → the
results), headings in sentence case.
- Four `attribution-quote` divs spaced through the narrative rather than
clustered.
- A `checklist` div for the headline results.
- Full endmatter including the build-enforced `summaryChallenge` /
`summarySolution` / `summaryKeyResults` (semicolon-separated) plus the
company and hero-quote tags.
- "About Hawx" lives in `companyInfo` / `companyInfoLineTwo` rather than
the body, matching every published case study.

## Why

Hawx is a strong story in a segment Fleet's published case studies don't
yet cover: iOS-only, a small IT team (3 people, ~500 devices), a
seasonal workforce, and an API-only usage pattern where the customer
never touches the Fleet UI. It's also a clean Jamf migration narrative
with a quantified helpdesk result.

## ⚠️ Blockers before this can be published

This is a **draft PR on purpose**. Two items must be resolved first:

1. **The quotes are not verbatim yet.** The interview record is bullet
notes, not a transcript, so the four quotes are faithful reconstructions
of what Loren described, not transcribed speech. The case-study skill's
rule is that quotes are verbatim and never reconstructed. **Loren needs
to approve these as his words before merge.** Reviewers should not treat
them as citable until he has.
2. **Both image assets are missing.** There is no Hawx logo and no Loren
Farr headshot in `website/assets/images/`. `companyLogoFilename` and
`quoteAuthorImageFilename` are deliberately stubbed with `TODO-`
prefixes so the website build fails loudly rather than shipping broken
image references. Real files are needed following the
`{descriptor}-{css-width}x{css-height}@2x.{ext}` convention.

## Open questions for reviewers

- **The "more than 90%" figure was dropped.** An earlier draft said
credentials were forgotten in more than 90% of cases. That number isn't
in the interview notes (the notes say "nobody knew their username or
password"), so it's omitted. If Loren sourced it, it can go back in.
- **The warehoused-device problem is omitted.** The notes describe
devices offline more than 30 days needing a reset, currently a 30-minute
call, listed as a *current* problem. That would fit a "Looking ahead"
section if Fleet is the plan for it, but it doesn't belong in results as
an achieved outcome.
- **Hero quote choice.** `quoteContent` uses the "slam dunk ... control
over the phone itself" quote because it names the differentiator.
Loren's closer, "As long as you're not shy about getting into the code,
this is a fantastic platform," is arguably the more trustworthy line for
Fleet's audience. Easy swap if marketing prefers it.
- **Follow-up, not in this PR:** the pull quote could be added to
`handbook/company/testimonials.yml` for the `/customers` carousel. Left
alone since that file is curated by marketing.

- [ ] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`. — N/A, website content
only, not a product change

## Testing

- [ ] Added/updated automated tests — N/A, markdown content only
- [x] QA'd manually: cross-checked the structure, custom div syntax, and
required meta tags against the published case studies
(`articles/fastly.md`, `articles/primo.md`) and against the validation
logic in `website/scripts/build-static-content.js`; confirmed
`summaryKeyResults` is semicolon-separated; confirmed `articleTitle`
matches the H1 exactly; grepped `website/assets/images/` and confirmed
both referenced image files are absent (hence the `TODO-` stubs).

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-07-30 11:03:23 +09:00
daed574428 Update MDM commands documentation with usage details (#49657)
Added note about MDM command limitations and usage of fleetctl.

---------

Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-07-29 11:23:29 -06:00
Harrison RavazzoloandAllen Houchins b7654a55a0 Custom windows update article (#49961)
Co-authored-by: Allen Houchins <allenhouchins@mac.com>
2026-07-29 09:48:55 -05:00
Luke Heath 699bdb50ac Prepare to archive fleet-gitops repo (#50134) 2026-07-29 08:04:35 -05:00
Gray Williams c1dde775d8 Update deploying-crowdstrike-with-fleet.md for exe support (#50040)
Updates the article to improve the instructions for deploying
CrowdStrike using the .exe.

Moves the exe part to a separate section, and includes the
install/uninstall script.

- Closes #49397
2026-07-29 06:54:29 +01:00
210b716d20 Add guide: Speeding up your GitOps runs in Fleet (#46516)
## Summary

- Adds a new guide article covering three strategies to reduce Fleet
GitOps run times: path-based `include` references, Fleet-maintained apps
(FMAs), and ETag-based conditional downloads for custom packages.
- Aimed at Fleet users managing large deployments who want to optimize
their CI/CD pipeline performance.

## Changes

- New file: `articles/speeding-up-your-gitops-runs-in-fleet.md`

---

Built for [Mike
McNeil](https://fleetdm.slack.com/archives/C04K44UAPB9/p1780119889099049?thread_ts=1779840298.690529&cid=C04K44UAPB9)
by [Kilo for Slack](https://kilo.ai/slack)

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-07-28 16:51:06 +01:00
Rajendra Kadamandmelpike 6e4b913a00 Add scripts and configuration profiles steps to downgrade guide (#50038)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** NA

## Description

Improves the [downgrade
guide](https://fleetdm.com/guides/downgrade-fleet) instead of changing
product behavior, per product design's direction.

The guide told users to move fleet-level **reports** and **policies** to
the global level before downgrading, but omitted **scripts** and
**configuration profiles**. Both are scoped per fleet and become
inaccessible once fleets are deleted during the downgrade, so users lose
them with no warning.

Adds two sections — "Move all fleet-level scripts to Unassigned" and
"Move all fleet-level configuration profiles to Unassigned" — placed
before the fleet-deletion step so users move them while the fleets still
exist. Unlike reports/policies (which move to the global level), scripts
and configuration profiles have no global bucket — they live under a
fleet or **Unassigned** — so the steps direct users to re-add them under
**Unassigned**, which remains available on Fleet Free.

> **Draft — pending wording pass.** The steps use "Unassigned" to match
the label in the Controls dropdown. Flagging for @Mel for a wording
review before this goes out.

## Testing

- [ ] N/A — documentation only.

# Checklist for submitter

- [x] Documentation change only; no code, tests, or migrations.

---------

Co-authored-by: melpike <79950145+melpike@users.noreply.github.com>
2026-07-28 21:05:26 +05:30
Noah Talerman 2726da1d62 Why macOS managed admin accounts are only created during setup (#50008) 2026-07-27 15:05:01 -07:00
Rachael Shaw 9e680854f4 Guide: Clarify which policy automations are premium & fleet-level (#49993)
Also clarified language about continuous retries, and moved section
about retrying on policy automation failure to a spot that made more
sense.

Re:
[discussion](https://macadmins.slack.com/archives/C0214NELAE7/p1784951700300179)
in Mac Admins Slack > #fleet
2026-07-27 10:30:41 -07:00
Jorge Falcon eb99e3fd44 Article with instructions to restore a Fleet database using Fleet terraform (#49862)
- Adds a new article walking administrators through an RDS Aurora MySQL
restore, from a snapshot or a point in time, using Fleet terraform
2026-07-23 22:51:58 -04:00
Noah Talerman 3511e037f9 Windows Fleet-maintained apps: Fleet provides machine scope (#49834) 2026-07-23 21:01:33 -05:00
Marko LisicaandNoah Talerman 375a03e065 Update rollback instructions for app versions (#49729)
Clarify rollback steps and update section title.

---------

Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
2026-07-23 20:36:19 +02:00
Magnus Jensen f7f0cfa98e test case and doc to ensure bootstrap package comes before profiles (#49808)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #49750 

# 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. (Already a part of something else, this is just
further solidifying the current behaviour)

- [ ] 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.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] 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

* **Tests**
* Added coverage to verify the command sequence during Apple device
enrollment.
* Ensures the fleet management agent installation happens first,
followed by the bootstrap package, and then configuration profile and
management commands.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-23 19:21:11 +02:00
Noah Talerman e5db01e0f1 Quarterly roadmap blog post (#48440)
- Add July 2027: https://github.com/fleetdm/fleet/issues/46888
- Revise April 2027: https://github.com/fleetdm/fleet/issues/46440
- @noahtalerman: Still TODO is post the video to YouTube and add the
embed:
  - https://github.com/fleetdm/confidential/issues/16914
2026-07-23 11:22:52 -04:00
kitzy 6fc48f4fe1 Update migration documentation to include Managed Migration Assistant details and its impact on MDM enrollment (#49766)
Resolves https://github.com/fleetdm/confidential/issues/16895
2026-07-23 06:57:50 -05:00
Steven PalmesanoandMike Thomas b202339e6e FAQ update 2026-06 (#47777)
Resolves #25198.

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-07-22 17:22:30 -05:00
Allen Houchins 70f8ce56a1 Add article: Build your own Linux self-service with script-only packages (#49605)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** NA

## What changed

Adds a new blog article,
`articles/build-your-own-linux-self-service-with-script-only-packages.md`,
published under the `articles` category.

The article is a how-to piece showing how Fleet 4.89.0's new support for
**uninstall script, pre-install query, and post-install script on
script-only packages** turns `apt-get install` / `dnf install` into a
GitOps-managed, self-service Linux software catalog, with no
`.deb`/`.rpm` to host. It ends with a small generator that emits the
install script, uninstall script, and YAML block from just a package
name.

## Why

Script-only packages became a full install/uninstall/verify lifecycle in
4.89.0. This article documents a practical pattern built on top of that
capability for teams managing Linux with Fleet.

## Notes for reviewers

- Content-only change: one new markdown file, no code.
- Technical claims were verified against the 4.89.0 `CHANGELOG.md` and
`docs/Configuration/yaml-files.md` / the deploy-software-packages guide.
In particular, script-only packages support `uninstall_script`,
`post_install_script`, and `pre_install_query` (they still do **not**
support `install_script` or automatic install via policy).
- All links point to real destinations (`fleetdm.com` routes and GitHub
paths) that were checked against `website/config/routes.js` and the
docs.
- Followed the `fleet-article-formatting` house style (dek, key
takeaways, post-takeaways CTA button, "See it live" endmatter) and
`content-style` rules.

# Checklist for submitter

- [x] QA'd all new/changed functionality manually (proofread; verified
links and technical claims against repo docs/changelog).

<sub>This change is a documentation/content-only addition; the code,
testing, database, configuration, and fleetd sections of the standard
template do not apply.</sub>
2026-07-22 12:16:57 -05:00
|@rm!n3 a980d4e2f0 Revise article on detecting and removing unwanted software (#49755)
Updated the article to improve clarity and fix minor grammatical issues
throughout the text, including prerequisites, policy creation, and
script instructions.

<!-- 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, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] 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))
2026-07-22 11:03:50 -05:00
Josh Roskos 130c5621cd Update FleetDM manifest and MSI URLs to stable version (#49753)
Updated guide to reference proper URL. 

re: https://fleetdm.slack.com/archives/C062D0THVV1/p1784730512266759
2026-07-22 11:40:33 -04:00
|@rm!n3 2bf0340abc Add guide for removing unwanted peripheral software (#49681)
Added a comprehensive guide on detecting and removing unwanted software
installed by peripherals using Fleet policies and scripts. This includes
instructions for creating detection policies, removal scripts, and
connecting them with automation.
2026-07-22 10:39:39 -04:00
Joe Grant 415cb4c652 Update navigation to Configuration profiles in Fleet (#49357)
At some point we must have renamed "Custom settings" to "Configuration profiles" and not updated the docs to match
2026-07-22 09:32:23 -05:00
Noah Talerman 3bfec52fba Downgrade guide: Rename (#49307)
- "team" => "fleet"
- "query" => "report"
2026-07-22 09:46:45 -04:00
Noah Talerman f33ce4f706 Update host vitals handling on ABM re-enrollment (#49585)
Context:
https://github.com/fleetdm/fleet/issues/48844#issuecomment-5025315076
2026-07-22 09:46:31 -04:00
Steven Palmesano f6cfd0bf01 Add details for TokenToUserMapping to Okta PSSO guide (#49678) 2026-07-22 06:31:31 -05:00
Steven Palmesano bb03697c97 Add more macOS DDM update info to Enforce OS update guide (#49679)
- Add link from this guide to our more detailed guide.
- Add info about using this in combination with `update_new_hosts`.
2026-07-22 06:31:15 -05:00
Juan Fernandez 63679a77e2 Fix Okta console navigation in Platform SSO guide
The "Deploying Platform SSO with Okta Device Access" guide pointed
readers to the wrong Okta Admin Console tab and button when generating
SCEP credentials, so they couldn't reach the "Use Okta as certificate
authority" option.

Correct both the dynamic and static SCEP sections to match Okta's
current console flow (Device integrations → Endpoint management → Add
platform):
- "Device Access" tab → "Endpoint management" tab
- "Add SCEP configuration" → "Add platform"
2026-07-22 07:21:24 -04:00
Gray Williams caaa49a548 Update enroll-hosts.md (#45366)
Updates the CLI instructions for generating .msi on silicon to use
Docker instead of Wine
2026-07-22 11:59:45 +01:00
Noah Talerman 782eb5471b Add guide: Which public resources to expose to hosts? (#48605)
- @noahtalerman: Inspired by this community request:
  - https://github.com/fleetdm/fleet/issues/48060
2026-07-22 19:55:11 +09:00
Steven Palmesano 62c2a872c4 Fix spelling error on config profiles guide (#48786) 2026-07-22 19:54:09 +09:00
kitzy 2b65b313c2 Change category meta tag from 'guides' to 'articles' (#48816) 2026-07-22 19:53:02 +09:00
Allen Houchins 133a05e93b Add Fleet-maintained apps process docs: handbook section and customer-facing article (#49520)
**Related issue:** N/A (documentation, handbook, and article changes
only)

## Details

Gives Fleet-maintained apps (FMAs) customer-facing documentation of the
process behind the catalog:

- **New handbook section** (`handbook/company/product-groups.md` >
"Fleet-maintained apps"): what FMAs are, how the catalog is kept up to
date (4-hour upstream checks, automated PRs, validation on real hosts,
human review, hourly server refresh), the freeze process, security
expectations (vendor-direct downloads, pinned SHA-256 hashes,
open-source manifests and scripts), service level objectives, and how to
request or contribute an app.
- **New article** (`articles/inside-fleet-maintained-apps.md`, publishes
to `fleetdm.com/articles/inside-fleet-maintained-apps`): a
customer-facing explainer of the same pipeline with a mermaid diagram of
the add/review/validation workflow, coverage of automatic updates,
version pinning, and patch policies, the security model, and a
contributor section highlighting the repo's `new-fma` Claude Code skill.
Follows Fleet's article format (dek, key takeaways, CTA button).
- **Cross-links** from the existing FMA guide
(`articles/fleet-maintained-apps.md`) and between the handbook section
and the article.

## Notes for reviewers

- The SLO "Publish a validated app update within 1 business day of
detection" in the handbook table is a **new public commitment**. The
other numbers (4-hour ingest checks, hourly server catalog refresh,
3-business-day review of new app PRs) are grounded in the existing
workflows, server cron intervals, and the FMA contributor README. Please
confirm the 1-business-day target before merging.
- The article's author meta is Allen Houchins with a publish date of
2026-07-17; adjust if it should ship later or under a different author.
- All process claims were verified against the repo:
`.github/workflows/ingest-maintained-apps.yml`, `cmd/fleet/cron.go`
(hourly `maintained_apps` schedule),
`ee/server/service/maintained_apps.go` (SHA-256 verification and
`no_check` behavior), and `ee/maintained-apps/README.md` (contribution
and freeze process).

# Checklist for submitter

- [x] Documentation, handbook, and article changes only. No product code
changes, so the changes-file, testing, database migration,
configuration, and fleetd checklists don't apply.
- [x] Manually verified all links resolve (website routes, GitHub paths,
in-page anchors) and that the website renders mermaid code blocks
(`website/views/layouts/layout.ejs` loads `mermaid.min.js`; precedent in
`articles/enroll-hosts.md`).
2026-07-21 12:51:25 -05:00
EricandMike Thomas 8e97e62a22 Website: Add case study, update card links on customers page (#49448)
Changes:
- Added a case study from Primo
- Added a link to the new case study to the /customers page

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

- **New Features**
- Added a new Primo case study card to the Customers page, including its
logo, description, and navigation link.
- **Bug Fixes**
- Corrected the Customers page template block comment syntax to improve
rendering consistency.
- Updated case-study quote author images to display with a circular
shape.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-07-20 19:07:47 -05:00
Noah Talerman fd6209a86f Custom host vitals support coming soon (#49527)
- Move it up to the top
- Add specific target release
2026-07-20 10:12:35 -04:00
Nico d95ecb0974 Custom host vitals guide: add 'coming soon' notes (host name templates, Android) (#49497)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Relates to #44954

Follow-up to the custom host vitals guide (#49355). Adds two "coming
soon" notes at the top of the guide's "Known limitations and issues"
section — support for custom host vitals in host name templates, and in
Android configuration profiles.
2026-07-17 15:29:42 -03:00
Noah Talerman 128c4559fe Fleet supports non-US app store (#49490) 2026-07-17 13:16:08 -04:00
Allen Houchins 4e1b471692 Update intune-isnt-free-what-the-microsoft-365-bundle-really-costs.md (#49482)
<!-- 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, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] 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))
2026-07-17 11:07:10 -05:00
Allen Houchins 749e663547 Change published date in article metadata (#49481)
Updated the published date from July 7 to July 16, 2026.

<!-- 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, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.
- [ ] Timeouts are implemented and retries are limited to avoid infinite
loops
- [ ] 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))
2026-07-17 11:05:13 -05:00
Mitch FranceseandAllen Houchins f271e2b9d1 Add "Intune isn't free" Microsoft 365 licensing article (#49345)
**Related issue:** N/A (new article)

# 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`. — N/A, article only (no
changes file needed for articles)

## Testing

- [ ] QA'd all new/changed functionality manually (verify article
renders correctly on fleetdm.com preview, all links resolve, meta tags
valid)

## Article details

- New `articles`-category piece: "Intune isn't free: what the Microsoft
365 bundle really costs in 2026"
- Covers the July 1, 2026 Microsoft 365 price increases, the new E7
tier, bundle utilization data, and rightsizing device management with
Fleet
- All pricing sourced from Microsoft's published list prices (linked);
analyst commentary attributed to Gartner, Directions on Microsoft, and
Forrester
- Follows Fleet article house format (key takeaways, CTA, sentence case,
style guide compliance)

---------

Co-authored-by: Allen Houchins <allenhouchins@mac.com>
2026-07-17 09:50:05 -04:00
Eric 4d7ea1d4db Website: Fix spelling of name in Mollie case study (#49375)
Changes: 
- Fixed the spelling of Sam Clark's name in the Mollie case study
article.
2026-07-16 18:03:04 -05:00
Nico 01bb250741 Add custom host vitals guide (#49355)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #48811

This adds a "Use custom host vitals in scripts and configuration
profiles" guide and cross-links it from the built-in variables and
custom variables (secrets) guides.


## Testing

- [ ] QA'd all new/changed functionality manually
2026-07-16 14:17:30 -03:00
Noah Talerman 0e78132765 Release article: Fleet 4.89.0 (#49253) 2026-07-15 11:31:19 -07:00
5f1d694782 v4.89.0 doc changes (#48668)
Documentation changes for 4.89.0

---------

Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Co-authored-by: melpike <79950145+melpike@users.noreply.github.com>
Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
Co-authored-by: Carlo <1778532+cdcme@users.noreply.github.com>
Co-authored-by: Marko Lisica <83164494+marko-lisica@users.noreply.github.com>
2026-07-15 11:22:35 -07:00
Noah Talerman 5cdf270d3f Enroll hosts > Advanced > Grant full disk access to osquery (#49057)
- Link to a working profile instead of telling the user how to create
one. It's easier
- ~~This is assuming the configuration profile works. @kc9wwh is
currently testing the profile and running into issues...~~
  - UPDATE: We confirmed the profile works
2026-07-15 08:09:58 -05:00