feat(112): LIST $expand parity + Entra principal names #136

Merged
ahmido merged 1 commits from 112-list-expand-parity into dev 2026-02-25 23:54:21 +00:00
Owner

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/.

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/`.
ahmido added 1 commit 2026-02-25 23:48:45 +00:00
ahmido merged commit 32c3a64147 into dev 2026-02-25 23:54:21 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: ahmido/TenantAtlas#136
No description provided.