Skip to content

Bunch of docs changes to clarify Fleet enrollment - #555

Merged
tashian merged 8 commits into
mainfrom
docs/eff-334-fleet-osquery-enrollment
Oct 12, 2026
Merged

tashian merged 8 commits into
mainfrom
docs/eff-334-fleet-osquery-enrollment

Conversation

@tashian

@tashian tashian commented Sep 8, 2026 •

Copy link
Copy Markdown
Member

Describe your changes:

Follow-up to EFF-334.

Fleet tutorial (tutorials/connect-fleet-dm-to-smallstep.mdx)

  • Linux and Windows agent steps: describe enrollment and how it relates to Fleet osquery inventory sync.
  • Replace the "pre-register via API" approval pointer. Devices synced from Fleet need admin approval by default. Auto-approval is a setting that the console does not expose, so both platform sections now include API curl examples.

Enrollment guide (platform/enrollment-guide.mdx)

  • Recommend osquery-based enrollment for Fleet-managed Linux and Windows hosts.
  • Device API links and the curl example move from the 2025-01-01 to the 2026-05-01 API version.

Agent guide (platform/smallstep-agent.mdx)

  • Add Fleet to the MDM tutorial list

Troubleshooting guide (platform/troubleshooting-agent.mdx)

  • New symptom under "Device approval and attestation" for unprocessable entity / duplicate-registration prompt on a device that already exists in inventory, with the fix and cleanup steps.

Related links/other PRs/issues:

🤖 Generated with Claude Code

https://claude.ai/code/session_017MzPzeUonmnLSsg2KvYgAK

…path

Hosts that Fleet syncs to Smallstep with the osquery extension already
exist in inventory. Running `step-agent register` on them creates a
conflicting device entry and fails with `unprocessable entity`. Say so
in the Fleet tutorial (Linux and Windows), add the symptom to the
troubleshooting guide, and reframe self-registration and API
pre-registration in the agent guide and enrollment guide as the paths
for devices Smallstep can't sync from an MDM.

Also replace the Linux approval pointer in the Fleet tutorial: devices
synced from Fleet need admin approval by default, and auto-approval is
set through the Device Enrollment Policy API, not by adding the device
via API.

Fixes EFF-334.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017MzPzeUonmnLSsg2KvYgAK
@tashian
tashian requested a review from a team as a code owner September 8, 2026 16:04
tashian and others added 2 commits September 8, 2026 09:39
The API docs site keys operations by PascalCase operationId
(PutDeviceEnrollmentPolicy) and the 2026-05-01 version is current.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017MzPzeUonmnLSsg2KvYgAK
…al curl

- Enrollment guide: add an osquery-based enrollment section for Fleet, and
  move the device API examples to the 2026-05-01 API version.
- Fleet tutorial: describe Linux enrollment as ACME Device Attestation with
  the TPM, and show the curl flow for adding Fleet to autoApproveSources via
  the Device Enrollment Policy API, since the console doesn't expose it.
- Agent guide and troubleshooting: tighten the wording around
  pre-registration and the duplicate-registration symptom.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017MzPzeUonmnLSsg2KvYgAK
@tashian tashian changed the title docs: don't register Fleet-synced hosts; clarify when to use the API path Bunch of docs changes to clarify Fleet enrollment Sep 8, 2026
@tashian
tashian enabled auto-merge September 8, 2026 18:30
@tashian
tashian requested a review from hslatman September 8, 2026 23:09
Comment thread platform/enrollment-guide.mdx Outdated
tashian and others added 4 commits September 24, 2026 16:47
The Smallstep osquery extension is required for Fleet enrollment on
macOS too, not only Linux and Windows. Describe what the extension
reports per platform.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
hslatman
hslatman previously approved these changes Oct 7, 2026

When the agent starts, it attests with the endpoint's TPM. Smallstep matches the attestation to the inventory data you just synced. By default, devices synced from Fleet need admin approval: if the host shows as `pending` in the [Smallstep console](https://smallstep.com/app/?next=/devices), approve it there.

To approve Fleet-synced devices automatically, add `Fleet` to `autoApproveSources` in your team's device enrollment policy. This setting isn't exposed in the Smallstep console. Use the [Device Enrollment Policy API](https://gateway.smallstep.com/v2026-05-01/operations/PutDeviceEnrollmentPolicy) with an [API token](https://smallstep.com/app/?next=/settings/api/tokens/add) that has the `get-device-enrollment-policy` and `put-device-enrollment-policy` scopes. The `PUT` replaces the whole policy, so fetch the current policy first and resubmit it with `Fleet` added to `autoApproveSources`:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May be good to add UI for this in the console.

systemctl enable --now step-agent
```

When the agent starts, it attests with the endpoint's TPM. Smallstep matches the attestation to the inventory data you just synced. By default, devices synced from Fleet need admin approval: if the host shows as `pending` in the [Smallstep console](https://smallstep.com/app/?next=/devices), approve it there.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like auto-approve being off is the case, but I'm curious if this was changed recently? I don't remember adding the MDM using the API myself.

@hslatman hslatman Oct 7, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like we actually have a fallback with defaults, but that currently doesn't include Fleet atm.

I'll open a PR with that change. After that gets merged, one would not have to call the API anymore, unless they need customization.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My thought about the fallback seems to be wrong; it's a different knob.

Still don't remember having had to use the API myself to add Fleet to auto-approve, though.

@tashian
tashian merged commit e542d26 into main Oct 12, 2026
4 checks passed
@tashian
tashian deleted the docs/eff-334-fleet-osquery-enrollment branch October 12, 2026 18:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants