fleet/docs/Contributing
Lucas Manuel Rodriguez 29475ab55e
API endpoints for Linux setup experience (#32493)
For #32040.

---

Backend changes to unblock the development of the orbit and frontend
changes.

New GET and PUT APIs for setting/getting software for Linux Setup
Experience:
```
curl -k -X GET -H "Authorization: Bearer $TEST_TOKEN" https://localhost:8080/api/latest/fleet/setup_experience/linux/software?team_id=8&per_page=3000
curl -k -X PUT -H "Authorization: Bearer $TEST_TOKEN" https://localhost:8080/api/latest/fleet/setup_experience/linux/software -d '{"team_id":8,"software_title_ids":[3000, 3001, 3007]}'
```

New setup_experience/init API called by orbit to trigger the Linux setup
experience on the device:
```
curl -v -k -X POST -H "Content-Type: application/json" "https://localhost:8080/api/fleet/orbit/setup_experience/init" -d '{"orbit_node_key": "ynYEtFsvv9xZ7rX619UE8of1I28H+GCj"}'
```

Get status API to call on "My device":
```
curl -v -k -X POST "https://localhost:8080/api/latest/fleet/device/7d940b6e-130a-493b-b58a-2b6e9f9f8bfc/setup_experience/status"
```

---

- [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] 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)

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

## New Fleet configuration settings

- [X] Verified that the setting is exported via `fleetctl
generate-gitops`
- [X] 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)
- [X] 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)

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

## Summary by CodeRabbit

- New Features
  - Added Linux support for Setup Experience alongside macOS.
- Introduced platform-specific admin APIs to configure and retrieve
Setup Experience software (macOS/Linux).
- Added device API to report Setup Experience status and an Orbit API to
initialize Setup Experience on non-macOS devices.
- Setup Experience now gates policy queries on Linux until setup is
complete.
- New activity log entry when Setup Experience software is edited
(includes platform and team).

- Documentation
- Updated audit logs reference to include the new “edited setup
experience software” event.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-04 12:58:47 -03:00
..
adr ADR-0005: Standardize on OpenTelemetry for observability (#31864) 2025-08-18 18:31:24 -05:00
architecture Fix a few broken references (#31640) 2025-08-21 12:13:45 -05:00
assets SCIM Entra ID support (#28832) 2025-05-08 13:02:49 -05:00
getting-started Running Fleet locally: Building MDM features (#31829) 2025-08-13 09:27:27 -05:00
guides Update design-qa-considerations.md (#31837) 2025-08-13 09:31:53 -05:00
product-groups 31167: SUSP api (#32163) 2025-08-26 11:31:06 -04:00
reference API endpoints for Linux setup experience (#32493) 2025-09-04 12:58:47 -03:00
research Lightweight push notification simulator (SSE-based) (#31310) 2025-07-29 07:29:56 +02:00
responsibilities Organize contributor docs and establish ADR process and template (#29101) 2025-05-17 15:03:52 -05:00
rituals Adding stub for additional ritual documentation to help add clarity but not overwhelm the handbook with too many details (#31872) 2025-08-25 13:52:53 -05:00
workflows Update release notes template (#31014) 2025-07-23 12:05:10 -06:00
README.md Update contrib docs headers to sentence case (#29276) 2025-05-20 11:26:35 -05:00

Fleet Contributor Documentation

Welcome to the Fleet contributor documentation! This documentation is designed to help you contribute to the Fleet project.

Documentation structure

The documentation is organized into the following sections:

Product groups

Fleet is organized into three main product groups:

  • MDM - Mobile Device Management
  • Orchestration - Device orchestration using osquery
  • Software - Software inventory, vulnerability management, and software installation

Contributing

If you're new to Fleet, we recommend starting with the Getting Started section to set up your development environment.

Once you're set up, you can explore the Guides section to learn how to contribute to specific areas of the project.

Architectural Decision Records (ADRs)

We use Architectural Decision Records to document significant architectural decisions. If you're making a significant architectural change, please create an ADR to document your decision.