mirror of
https://github.com/fleetdm/fleet
synced 2026-05-15 21:18:29 +00:00
Fixes #30473 # Checklist for submitter - [x] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. - [x] Added/updated automated tests - [ ] Manual QA for all new/changed functionality <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added support for TPM-backed host identity certificates enabling hardware-backed HTTP signature authentication for hosts. * Introduced HTTP signature verification middleware for API requests, applied conditionally for premium licenses. * Hosts presenting identity certificates must authenticate with matching HTTP message signatures during enrollment and authentication. * Added SCEP-based certificate issuance for secure host identity management. * Updated enrollment endpoints to use standardized request/response contract types. * **Bug Fixes** * Enhanced authentication logic to verify consistency between host identity certificates and host records, preventing duplicate or mismatched identities. * **Chores** * Updated dependencies and test infrastructure to support HTTP signature verification and host identity certificate workflows. * Added comprehensive integration and datastore tests for host identity certificate issuance, storage, and authentication. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|---|---|---|
| .. | ||
| orbit.go | ||
| osquery.go | ||
| README.md | ||
| scim.go | ||
| sessions.go | ||
📦 contract Package
This package contains the request and response structs used by the HTTP API.
Keeping these in a separate package makes the code:
- Easier to maintain — the shape of API data is defined in one place
- Clearer — shows exactly what the API expects and returns
- Reusable — the same types can be used by handlers, tests, or clients
This package should only define data structures — no business logic.
🔄 Note: Some request/response structs may still live in the server/service packages. Move them here as needed to keep API contracts organized and consistent.