macOS Endpoint Enrollment Posture
Status
Implemented for OP-061. macOS endpoints can use the existing enrollment and
identity-bound telemetry runtime with agent_class=endpoint and
platform=darwin.
What Was Implemented
- Enrollment exchange accepts optional
platform=darwinandos_version. - Darwin enrollment is restricted to
agent_class=endpoint. - Agent identity responses expose platform and OS version metadata.
- Runtime-lite enrollment emits
agent.macos.enrolledalongside the genericagent.enrolledevent. - Identity-bound heartbeat normalizes darwin telemetry into the existing macOS asset posture.
- The Assets console shows enrolled agent platform/OS metadata when present.
Security / Tenant Isolation
The implementation reuses ADR-0009/OP-032R tenant-scoped enrollment tokens, CSR exchange, identity records, and OP-052 telemetry binding. Heartbeat still requires a service-account actor bound to the enrolled agent or collector. Raw CSR and token values remain out of audit/events/read models.
Validation
make validate-contracts
make typecheck-python
make lint
make test-sqlite
npm --prefix frontend run typecheck
npm --prefix frontend test -- --run
make docs-build
Known Limitations
- No standalone Go agent binary.
- No osquery/Fleet/OTel bridge.
- No remote command, SSH, patching, software deployment, or device-control behavior.
- No deployment, CI, Terraform, Helm, or AWS changes.