TenantAtlas/app/Services/Graph
ahmido 32c3a64147 feat(112): LIST $expand parity + Entra principal names (#136)
Implements LIST `$expand` parity with GET by forwarding caller-provided, contract-allowlisted expands.

Key changes:
- Entra Admin Roles scan now requests `expand=principal` for role assignments so `principal.displayName` can render.
- `$expand` normalization/sanitization: top-level comma split (commas inside balanced parentheses preserved), trim, dedupe, allowlist exact match, caps (max 10 tokens, max 200 chars/token).
- Diagnostics when expands are removed/truncated (non-prod warning, production low-noise).

Tests:
- Adds/extends unit coverage for Graph contract sanitization, list request shaping, and the EntraAdminRolesReportService.

Spec artifacts included under `specs/112-list-expand-parity/`.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #136
2026-02-25 23:54:20 +00:00
..
AssignmentFetcher.php Spec 094: Assignment ops observability hardening (#113) 2026-02-15 14:08:14 +00:00
AssignmentFilterResolver.php Spec 094: Assignment ops observability hardening (#113) 2026-02-15 14:08:14 +00:00
GraphClientInterface.php feat(112): LIST $expand parity + Entra principal names (#136) 2026-02-25 23:54:20 +00:00
GraphContractRegistry.php feat(112): LIST $expand parity + Entra principal names (#136) 2026-02-25 23:54:20 +00:00
GraphErrorMapper.php feat: TenantPilot v1 - Complete implementation (Phases 1-12) 2025-12-12 02:27:54 +01:00
GraphException.php feat: TenantPilot v1 - Complete implementation (Phases 1-12) 2025-12-12 02:27:54 +01:00
GraphLogger.php Intune RBAC: graceful unsupported-account handling, health-check fixes, tests and docs updates 2025-12-13 01:25:06 +01:00
GraphResponse.php Intune RBAC: graceful unsupported-account handling, health-check fixes, tests and docs updates 2025-12-13 01:25:06 +01:00
GroupResolver.php Spec 094: Assignment ops observability hardening (#113) 2026-02-15 14:08:14 +00:00
MicrosoftGraphClient.php feat(112): LIST $expand parity + Entra principal names (#136) 2026-02-25 23:54:20 +00:00
NullGraphClient.php Intune RBAC: graceful unsupported-account handling, health-check fixes, tests and docs updates 2025-12-13 01:25:06 +01:00
ScopeTagResolver.php Spec 081: Provider connection cutover (#98) 2026-02-08 11:28:51 +00:00