37 Commits
Author SHA1 Message Date
Rachael Shaw bfa766e9b7 v4.90.0 doc changes (#48141) 2026-08-05 20:38:39 -05:00
Dante Catalfamo c9001b4e46 Document Android biometric unlock behavior on BYOD work profiles (#50265)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #49655

Documentation-only change. No server behavior changes.

## What's happening

On a personally-owned work profile (BYOD), Android applies the biometric
values of `keyguardDisabledFeatures` to the work profile lock. By
default the end user has one lock for both the work profile and the host
("Use one lock"), so there is no separate work profile lock to restrict,
and Android restricts the host's lock instead. Fingerprint and face
unlock turn off for the whole host, including the end user's personal
apps.

This is documented Android behavior, per
[`setKeyguardDisabledFeatures`](https://developer.android.com/reference/android/app/admin/DevicePolicyManager#setKeyguardDisabledFeatures(android.content.ComponentName,%20int)):

> `KEYGUARD_DISABLE_FINGERPRINT`, `KEYGUARD_DISABLE_FACE` or
`KEYGUARD_DISABLE_IRIS` which affects the managed profile challenge if
there is one, **or the parent user otherwise**.

Fleet never sets `keyguardDisabledFeatures` itself. Fleet's default
Android policy sets only `StatusReportingSettings`, and admin-authored
AMAPI policy is passed through as-is. The reason this still lands on
Fleet is that the profile in the bug report is byte-for-byte the example
Fleet publishes at
`docs/solutions/android/configuration-profiles/disable-face-and-biometrics-unlock.json`,
with no note about the BYOD side effect.

## What changed

- `articles/custom-os-settings.md`: new "Biometric unlock on
personally-owned (BYOD) hosts" subsection under "Special Android
behavior", covering the behavior and the configuration that scopes the
restriction to work.
- `docs/solutions/android/configuration-profiles/README.md`: entries for
the biometrics profile (carrying the caveat) and for the new example.
-
`docs/solutions/android/configuration-profiles/require-separate-work-profile-lock.json`:
new example using `passwordScope: SCOPE_PROFILE` and
`unifiedLockSettings: REQUIRE_SEPARATE_WORK_LOCK`.

The remedy needs no Fleet change: `passwordPolicies` is already in the
Android policy field mask
(`server/mdm/android/service/androidmgmt/policy_field_mask_test.go`), so
Fleet already delivers it.

## Testing

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

Docs-only, so no automated tests were added. Verification done:

- Both the new example profile and the combined snippet in the guide
decode into the real `androidmanagement.Policy` struct with
`DisallowUnknownFields`, confirming every key and nesting level matches
the AMAPI schema Fleet ships.
- The documented status flow (`USER_ACTION` non-compliance on
`passwordPolicies` marks the profile "Failed", then "Verified" once the
end user sets the work lock) is confirmed against
`server/mdm/android/service/pubsub_test.go`.

**Not yet verified on hardware.** I have not run the repro on a physical
BYOD Android host. Before merge, this is worth confirming:

1. On a BYOD Android host with fingerprint unlock configured and a work
profile enrolled, apply `disable-face-and-biometrics-unlock.json`.
Confirm fingerprint disappears as an unlock method device-wide.
2. Add the `passwordPolicies` block from
`require-separate-work-profile-lock.json` to that profile and re-upload.
Confirm Android prompts for a separate work profile lock, and that Fleet
shows the profile "Failed" with `USER_ACTION` on **Host > OS settings**
until the end user sets it.
3. After the end user sets the work lock, confirm the profile moves to
"Verified", fingerprint unlock works again on the personal side, and the
work profile still requires PIN/password.


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

## Summary by CodeRabbit

* **New Features**
* Added an Android configuration profile option that requires a separate
lock for the work profile.
* Applies password policy settings specifically to the work profile
scope.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-08-05 13:18:26 -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
Steven Palmesano 62c2a872c4 Fix spelling error on config profiles guide (#48786) 2026-07-22 19:54:09 +09:00
Noah Talerman dbc14b248b Add "DDM" wording for macOS declarations profiles (#48648) 2026-07-03 20:52:36 +09:00
Noah Talerman 29a0b6dd97 Add "quick start" for GitOps and remove links to archived fleet-gitops repo (#45028)
- @noahtalerman: We archived the fleetdm-gitops repo:
https://github.com/fleetdm/fleet/issues/40300
- Update links across docs/guides to point to GitOps reference instead
2026-05-12 09:17:51 -04:00
Noah Talerman 77994bcb60 Rename 'Custom OS settings' to 'Configuration profiles' (#44754) 2026-05-08 17:19:23 -04:00
Noah Talerman 84566685e1 Update custom OS settings documentation (#44537)
Clarify the availability of the 'Resend' button for Android certificates
and explain the differences in profile delivery mechanisms.
2026-05-04 09:59:25 -04:00
Rachael Shaw c9fe68b924 v4.84.0 doc changes (#40665) 2026-04-24 20:07:13 -05:00
kilo-code-bot[bot] 829227f7d5 Document retry attempts for different actions in Fleet (#43159) 2026-04-07 18:26:31 -04:00
+1 1ad8b03337 Preview of v4.83.0 doc changes (#39805)
This PR will remain in draft as a preview of upcoming documentation
changes for 4.83.0

---------

Co-authored-by: Marko Lisica <83164494+marko-lisica@users.noreply.github.com>
Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
Co-authored-by: melpike <79950145+melpike@users.noreply.github.com>
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Victor Lyuboslavsky <2685025+getvictor@users.noreply.github.com>
Co-authored-by: Scott Gress <scottmgress@gmail.com>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Co-authored-by: Jonathan Katz <44128041+jkatz01@users.noreply.github.com>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
Co-authored-by: Carlo <1778532+cdcme@users.noreply.github.com>
2026-04-01 11:21:11 -05:00
kitzyandSteven Palmesano c131c6aab7 Updates from cs offsite (#42750)
Updates to Android MDM documentation from the CS offsite.

---------

Co-authored-by: Steven Palmesano <3100993+spalmesano0@users.noreply.github.com>
2026-03-31 14:42:59 -04:00
Noah Talerman 09590bc6e2 "Teams" => "fleets", "queries" => "reports" doc changes (#39585) 2026-03-11 23:41:14 -05:00
kiloconnect[bot] 364d575a95 docs: mention SyncMLViewer for local Windows MDM testing (#40174)
- `articles/custom-os-settings.md`: Added one sentence to the Windows
section: "For local testing on Windows,
[SyncMLViewer](https://github.com/okieselbach/SyncMLViewer/releases) is
a useful GUI tool for inspecting MDM traffic."
- `website/views/pages/os-settings.ejs`: Added a matching list item to
the Windows platform section on the `fleetdm.com/os-settings` page,
mirroring the iMazing mention in the Apple section.
2026-02-20 13:22:22 -05:00
01f2ebcdf4 Update OS settings documentation for clarity (#38837)
Related to:

- #35738

---------

Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2026-02-16 10:52:12 +01:00
Marko Lisica 5e7ed01a87 Update unmanaged profiles section with Migration Assistant details for enrollment profile (#39385)
Related to:

- #38354
2026-02-06 12:52:43 -05:00
Noah Talerman 97295d33e6 Guide fix: Remove extra parenthesis (#38850) 2026-02-06 18:28:22 +09:00
Marko Lisica 082df31478 Update verification notes for Windows profiles (#39231)
Add notes about Windows configuration profile verification issues and
updates.

Related to:

- #38833
2026-02-03 10:45:47 -05:00
Noah Talerman f0be639474 Update OS settings (configuration profiles) guide (#37982)
- Main goal is to clarify "Verifying" v. "Verified" for user-scoped
Windows profiles
- Also reorganize/update the heading to improve the guides flow
- "user-scoped" and "device-scoped" get a hyphen
2026-01-27 09:19:19 -05:00
Magnus JensenandMarko Lisica b48b264157 Add note about Windows profile verification using CDATA to use escaped XML (#37282)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #33350 

This is solely a docs change, since I've verified it works by escaping
instead of using CDATA.

Could also solve/close: https://github.com/fleetdm/fleet/issues/33731

---------

Co-authored-by: Marko Lisica <83164494+marko-lisica@users.noreply.github.com>
2025-12-17 09:16:31 -04:00
Marko Lisica 34db806d56 Explain behavior of unmanaged profiles (#36416)
Related to:

- #34879
2025-12-03 18:25:02 -05:00
+3 7ed4aac2b8 Docs v4.75.0 (#34443)
Documentation changes for the 4.75 release

---------

Co-authored-by: Marko Lisica <83164494+marko-lisica@users.noreply.github.com>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Co-authored-by: Victor Lyuboslavsky <2685025+getvictor@users.noreply.github.com>
Co-authored-by: Ian Littman <iansltx@gmail.com>
Co-authored-by: Noah Talerman <noahtal@umich.edu>
Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
Co-authored-by: Magnus Jensen <magnus@fleetdm.com>
Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
Co-authored-by: Tim Lee <timlee@fleetdm.com>
Co-authored-by: Janis Watts <184028114+jmwatts@users.noreply.github.com>
Co-authored-by: Sarah Gillespie <73313222+gillespi314@users.noreply.github.com>
Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2025-10-17 17:45:52 -05:00
Noah Talerman 4de509b6af Custom OS settings: Fleet limitation not a Windows MDM limitation (#34156) 2025-10-13 12:46:57 -04:00
Marko Lisica 7315be281a Guide: Missing / (#32008)
Command to unsign profiles is missing `/`
2025-08-18 18:53:42 -04:00
Marko Lisica cb4f1e447a Guide update: custom OS settings (#31355)
We had duplicate section for user scoped profiles.

Besides that, removed the section where we mention that we'll work soon
on #30043 as we decided that we'll document that it's necessary to
re-enroll manually enrolled hosts.

Related to:
- #30043
2025-07-30 16:36:09 -04:00
0d8c099cf9 Docs v4.71.0 (#31200)
Documentation changes for 4.71.0

---------

Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
Co-authored-by: Marko Lisica <83164494+marko-lisica@users.noreply.github.com>
Co-authored-by: Lucas Manuel Rodriguez <lucas@fleetdm.com>
Co-authored-by: Ian Littman <iansltx@gmail.com>
2025-07-23 16:02:13 -06:00
Gabriel Hernandez 08b6f36db8 Chore guide deploy certs local keychain (#30031)
Related to #29322

docs for delivering config profiles to host user channels

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

* **Documentation**
* Added detailed instructions for deploying certificates to a user's
login keychain on macOS devices.
* Introduced a new section explaining how user-scoped configuration
profiles are assigned, including behavior with multiple local users and
supported profile types.
* Improved formatting and clarified existing explanations for better
readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-07 11:25:50 +01:00
Ian Littman c8e3a3b208 Clean up "here" link anchors in articles (#29755) 2025-06-09 09:48:27 -04:00
Noah Talerman 6a22631b03 Custom OS settings guide: add call out (#27975)
Doc update for the following bug: #24322

Also, remove repetitive "OS settings" from headers.
2025-04-08 12:59:51 -04:00
Noah Talerman f4c090468c Custom OS settings: how to unsign profiles (#27100)
Fleet signs profiles for you

- Add redirect for the following user story
  - #26688
2025-03-14 15:22:59 -04:00
Noah Talerman 996aa769a7 Update OS settings guide (#26941)
- Remove link to Apple docs because this applies to macOS and Windows
profiles
- Windows calls this "device level" (from docs
[here](https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-configuration-service-provider#:~:text=Policy%20scope%20is%20the%20level%20at%20which%20a%20policy%20can%20be%20configured.%20Some%20policies%20can%20only%20be%20configured%20at%20the%20device%20level%2C%20meaning%20the%20policy%20will%20take%20effect%20independent%20of%20who%20is%20logged%20into%20the%20device))
2025-03-13 15:06:39 -04:00
Noah Talerman 9d3398a1aa Fleet supports system level configuration profiles (#26923) 2025-03-06 16:37:35 -05:00
Noah Talerman 3bd5aaa8e5 Update guide: Creating Windows configuration profiles (#26027)
- Use "configuration profiles" language to be consistent with product
and other
[docs/guides](https://fleetdm.com/guides/custom-os-settings#basic-article).
- Link to Windows configuration profiles guide from the OS settings
guide
2025-02-04 11:28:19 -08:00
Marko Lisica 4e99afff3a Docs: update OS settings status explanation (#25782)
Adding additional information to the guide and
improving language to match what we're using in the product (instead of
"installed configuration profiles" -> "applied OS settings").
2025-01-31 15:12:09 -05:00
Noah Talerman 06bb4f708d Custom OS settings guide: Modify OS settings on macOS, iOS, iPadOS, and Windows (#23046)
Document interim best practice for modifying OS settings. Later Fleet
might add an "Edit" button in the UI so the IT admin doesn't have to add
a new profile and then remove the old.
2024-10-21 10:08:05 -05:00
Noah Talerman 976571b4ea Custom OS settings guide: Update language (#22822)
- Remove "device" b/c we refer to these as "configuration profiles"
everywhere else in the docs/product
2024-10-10 08:23:25 -07:00
2171544ad1 Docs quick reference optimization (#21331)
This PR closes https://github.com/fleetdm/fleet/issues/21108

@noahtalerman, I double-checked all redirects, and they are working.
Clicking through the URLs in [this
spreadsheet](https://docs.google.com/spreadsheets/d/1djVynIMuJK4pT5ziJW12CluVqcaoxxnCLaBO3VXfAt4/edit?usp=sharing)
is a pretty quick way to go through them all. Note that "Audit logs" and
"Understanding host vitals" redirect to the contributor docs on GitHub,
so they will throw a 404 until this is merged.

Some new guides benefitted from a name change, so they make more sense
as stand-alone guides, and also so that we don't have to mess around
with more redirects later. Those name changes followed [this
convention](https://fleetdm.com/handbook/company/communications#headings-and-titles),
which was recently documented in the handbook.

Have fun!

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
Co-authored-by: Noah Talerman <noahtal@umich.edu>
2024-08-16 15:30:31 -05:00