This PR completes Feature 014 (Enrollment & Autopilot). Adds normalization for: Autopilot deployment profiles (windowsAutopilotDeploymentProfile) Enrollment Status Page / ESP (windowsEnrollmentStatusPage) Enrollment Restrictions (enrollmentRestriction, restore remains preview-only) Improves settings readability: Autopilot OOBE settings are expanded into readable key/value entries Enrollment restriction platform restrictions are shown as explicit fields (with sensible defaults) Array/list values render as badges (avoids Blade rendering crashes on non-string values) Fixes enrollment configuration type collisions during sync: Canonical type resolution prevents enrollmentRestriction from “claiming” ESP items Safe reclassification updates existing wrong rows instead of skipping Enhances reclassification command: Can detect ESP even if a policy has no local versions (fetches snapshot from Graph) Dry-run by default; apply with --write Tests Added/updated unit + Filament feature tests for normalization and UI rendering. Preview-only enforcement for enrollment restrictions is covered. Targeted test suite and Pint are green. Co-authored-by: Ahmed Darrazi <ahmeddarrazi@adsmac.local> Reviewed-on: #20
1.5 KiB
1.5 KiB
Tasks: Enrollment & Autopilot (014)
Branch: 014-enrollment-autopilot | Date: 2026-01-01
Input: spec.md, plan.md
Phase 1: Contracts Review
- T001 Verify
config/graph_contracts.phpentries for:windowsAutopilotDeploymentProfilewindowsEnrollmentStatusPageenrollmentRestriction(resource, type_family, create/update methods, assignment paths/payload keys)
- T002 Verify
config/tenantpilot.phpentries and restore modes:- Autopilot/ESP =
enabled - Enrollment restrictions =
preview-only
- Autopilot/ESP =
Phase 2: UI Normalization
- T003 Add an
EnrollmentAutopilotPolicyNormalizer(or equivalent) that produces readable normalized settings for the three policy types. - T004 Register the normalizer in the app container/provider (tag
policy-type-normalizers).
Phase 3: Restore Safety
- T005 Add a feature test verifying
enrollmentRestrictionrestore is preview-only and skipped on execution (no Graph apply calls).
Phase 3b: Enrollment Configuration Type Collisions
- T005b Fix ESP vs enrollment restriction collision on
deviceEnrollmentConfigurationssync (canonical type resolution + safe reclassification).
Phase 4: Tests + Verification
- T006 Add unit tests for normalized output (shape + stability) for the three policy types.
- T007 Add Filament render tests for “Normalized settings” tab for the three policy types.
- T008 Run targeted tests.
- T009 Run Pint (
./vendor/bin/pint --dirty).
Open TODOs (Follow-up)
- None.