Surface SCEP failures openspec#48841
Conversation
|
@coderabbitai full review |
|
/agentic_review |
✅ Action performedFull review finished. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (1)
WalkthroughA new metadata file, Changes
Sequence Diagram(s)Not applicable — this change adds static metadata only, with no observable runtime flow. Related issues: #45550 (Surface SCEP failures that are proxied by Fleet on Windows) Suggested labels: documentation, low-risk Suggested reviewers: None identified from the provided information 🐰 A tiny yaml, spec-driven and new, 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR adds OpenSpec artifacts (proposal, design, tasks, and a specification) for implementing improved status reporting of proxied Windows SCEP certificate profiles, including a verifying state and surfacing proxy-observed upstream SCEP failures as failed with meaningful detail.
Changes:
- Adds an OpenSpec proposal describing the problem (2xx ACK ≠ successful cert issuance) and the intended behavioral changes.
- Adds a design document and implementation task breakdown for wiring cert observation + proxy-observed failures into
host_mdm_windows_profiles.status/detail. - Adds an initial spec capturing requirements and scenarios for
verifying→verifiedvia certificate observation and proxy-observed failures →failed.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| openspec/changes/windows-scep-proxy-verification/tasks.md | Task plan for detecting proxied SCEP profiles, mapping ACKs to verifying, flipping to verified on cert ingestion, and persisting proxy-observed upstream errors. |
| openspec/changes/windows-scep-proxy-verification/specs/windows-scep-cert-verification/spec.md | Requirements/spec scenarios for Windows proxied SCEP verification and failure surfacing. |
| openspec/changes/windows-scep-proxy-verification/proposal.md | High-level motivation and intended behavior changes for Windows SCEP proxy verification. |
| openspec/changes/windows-scep-proxy-verification/design.md | Detailed design decisions, constraints, and trade-offs for implementing the behavior. |
| openspec/changes/windows-scep-proxy-verification/.openspec.yaml | Declares the OpenSpec schema and creation date for the change. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Apple is the reference model: profiles go `verifying` on ACK and reach `verified` only when osquery confirms the payload | ||
| is installed (`server/mdm/apple/profile_verifier.go`). Apple verification is event-driven (runs on host-detail ingest, | ||
| never a wall-clock cron), uses a 1-hour grace period from the profile's send time, retries a fixed number of times, then | ||
| fails. Apple does not classify errors and emits no activity for a verification failure. |
| ## Why | ||
|
|
||
| When Fleet proxies SCEP for a Windows MDM certificate profile, the device ACKs the SyncML `<Exec>` (`Install/Enroll`) |
Related issue: Resolves #45550
Checklist for submitter
If some of the following don't apply, delete the relevant line.
Changes file added for user-visible changes in
changes/,orbit/changes/oree/fleetd-chrome/changes.See Changes files for more information.
Input data is properly validated,
SELECT *is avoided, SQL injection is prevented (using placeholders for values in statements), JS inline code is prevented especially for url redirects, and untrusted data interpolated into shell scripts/commands is validated against shell metacharacters.Timeouts are implemented and retries are limited to avoid infinite loops
If paths of existing endpoints are modified without backwards compatibility, checked the frontend/CLI for any necessary changes
Testing
Added/updated automated tests
Where appropriate, automated tests simulate multiple hosts and test for host isolation (updates to one hosts's records do not affect another)
QA'd all new/changed functionality manually
For unreleased bug fixes in a release candidate, one of:
Database migrations
COLLATE utf8mb4_unicode_ci).New Fleet configuration settings
If you didn't check the box above, follow this checklist for GitOps-enabled settings:
fleetctl generate-gitopsfleetd/orbit/Fleet Desktop
runtime.GOOSis used as needed to isolate changesSummary by CodeRabbit