en-US/about_Mgx.help.txt
|
TOPIC about_Mgx SHORT DESCRIPTION Resilient companion for Microsoft.Graph PowerShell. Adds retry, circuit breaker, rate limiting, streaming pagination, batching, and fan-out to any Graph API endpoint. LONG DESCRIPTION Mgx is a PowerShell module that extends Microsoft.Graph with production- grade resilience and performance. It reuses your existing Connect-MgGraph authentication and works alongside the Microsoft.Graph SDK, not instead of it. Key capabilities: Streaming pagination Invoke-MgxRequest returns results to the pipeline as they arrive instead of buffering the entire collection in memory. This keeps memory constant regardless of result set size. Fan-out concurrency Pipeline input with {id} template substitution dispatches multiple requests in parallel. Useful for per-entity lookups that would otherwise require an N+1 loop. Automatic batching Invoke-MgxBatchRequest bundles up to 20 requests per $batch call, reducing HTTP round-trips for bulk create, update, and delete operations. Built-in resilience Every request passes through a Polly pipeline that handles HTTP 429 throttling (with Retry-After), transient 5xx errors, circuit breaking, and token-bucket rate limiting. No configuration is required; defaults are tuned for Graph API limits. Zero-change SDK resilience Enable-MgxResilience injects the same resilience pipeline into the Microsoft.Graph SDK HTTP transport. Existing scripts that use Get-MgUser, Get-MgGroup, and other SDK cmdlets gain retry, circuit breaker, and rate limiting without any code changes. Delta sync Sync-MgxDelta performs incremental delta queries with automatic state file management, returning only changes since the last sync. JSONL export Export-MgxCollection streams paginated results directly to a JSONL file on disk, bypassing PSObject overhead. Checkpoint files allow interrupted exports to resume where they left off. Relation enrichment Expand-MgxRelation enriches Graph objects with related data via concurrent fan-out, handling both collection and singleton endpoints. CMDLETS Invoke-MgxRequest General-purpose resilient client for any Microsoft Graph endpoint. Invoke-MgxBatchRequest Bundle multiple Graph API requests into $batch calls. Export-MgxCollection Stream paginated Graph API results directly to a JSONL file. Expand-MgxRelation Enrich Graph objects with related data via concurrent fan-out. Sync-MgxDelta Incremental sync via Microsoft Graph delta queries. Enable-MgxResilience Inject Polly resilience into the Microsoft.Graph SDK HTTP transport. Disable-MgxResilience Remove Polly resilience injection from the Microsoft.Graph SDK. Get-MgxResilience Check the current state of resilience injection. Set-MgxOption Configure resilience options for all Mgx cmdlets. Get-MgxOption Display current resilience and rate limiting configuration. Get-MgxTelemetry Return accumulated session telemetry from the resilience pipeline. RESILIENCE All Mgx cmdlets share a single Polly resilience pipeline composed of four layers: Rate limiter (token bucket) Prevents outbound request bursts from triggering Graph API throttling. Default: 200 burst, 50 tokens replenished per second. Retry with exponential backoff Retries transient failures (HTTP 429, 500, 502, 503, 504) up to 7 times with exponentially increasing delays and jitter. Honors the Retry-After header when present. Circuit breaker Opens the circuit after 10% failure ratio over a 30-second sampling window (minimum 40 requests), rejecting requests for 15 seconds before retesting. Trips on 500/502/503/504; does not trip on 429. Timeout Per-attempt timeout (default 30s) and total timeout across all retries (default 300s) prevent requests from hanging indefinitely. The pipeline is shared across all cmdlet invocations within a session. Use Set-MgxOption to tune parameters at runtime. CONFIGURATION Use Get-MgxOption to inspect the current resilience settings and Set-MgxOption to change them. Only explicitly passed parameters are modified; all others retain their current values. Get-MgxOption Set-MgxOption -MaxRetryAttempts 5 -RateLimitBurst 100 Set-MgxOption -Reset Configurable parameters include rate limit burst and replenish rate, maximum retry count, circuit breaker failure ratio and sampling duration, per-request and total timeout values, and batch item pacing rate (BatchItemsPerSecond, default 20 items/sec). EXAMPLES Example 1: List all users with streaming pagination Connect-MgGraph -Scopes "User.Read.All" Import-Module Mgx Invoke-MgxRequest /users -All -Property displayName,mail Example 2: Add resilience to existing Microsoft.Graph scripts Connect-MgGraph -Scopes "User.Read.All" Import-Module Mgx Enable-MgxResilience Get-MgUser -All # now retries on 429/5xx automatically Example 3: Fan-out to get managers for multiple users $userIds | Invoke-MgxRequest '/users/{id}/manager' REQUIREMENTS PowerShell 7.5 or later (Core edition, .NET 9 runtime). Microsoft.Graph.Authentication 2.10.0 or later. SEE ALSO about_Mgx_Tuning Invoke-MgxRequest Invoke-MgxBatchRequest Export-MgxCollection Expand-MgxRelation Sync-MgxDelta Enable-MgxResilience Disable-MgxResilience Get-MgxResilience Set-MgxOption Get-MgxOption Get-MgxTelemetry |