29 lines
1.4 KiB
Markdown
29 lines
1.4 KiB
Markdown
# Quickstart — Graph Contracts: LIST `$expand` Parity Fix
|
|
|
|
## Goal
|
|
Verify that LIST requests can forward explicit, allowlisted `$expand`, and that the Entra Admin Roles report requests `principal` so it can render real principal display names.
|
|
|
|
## Run tests (focused)
|
|
From repo root (Sail-first):
|
|
- `vendor/bin/sail artisan test --compact tests/Unit/GraphContractRegistryTest.php`
|
|
- `vendor/bin/sail artisan test --compact tests/Unit/MicrosoftGraphClientListPoliciesSelectTest.php`
|
|
- `vendor/bin/sail artisan test --compact --filter=EntraAdminRoles`
|
|
|
|
## Manual verification (developer)
|
|
- Ensure the `entraRoleAssignments` contract includes `allowed_expand => ['principal']`.
|
|
- Ensure the role assignment LIST request includes `$expand=principal` when explicitly requested.
|
|
|
|
## Usage examples
|
|
When listing a policy type where the contract allowlists `principal`:
|
|
- `listPolicies('entraRoleAssignments', [..., 'expand' => 'principal'])`
|
|
- `listPolicies('entraRoleAssignments', [..., 'expand' => ['principal']])`
|
|
|
|
Normalization behavior:
|
|
- `expand` string input is split on top-level commas only (commas inside balanced parentheses are not separators) and trimmed.
|
|
- Values not in the contract allowlist are dropped.
|
|
- Max 10 allowlisted expansions are sent; extras are dropped.
|
|
|
|
## Notes
|
|
- No expansions are sent by default. Callers must pass `expand` explicitly.
|
|
- Diagnostics are emitted when requested expands are removed or truncated.
|