M365 ● Sealed v1.0

Exchange

Discovers Exchange Online mailboxes, plans, and usage statistics.

What it does

Uses Microsoft Graph to enumerate mailbox-capable users in the tenant. Outputs ExchangeMailboxes.csv with migration-useful columns: stable ids (ObjectId/Id), names (DisplayName/UPN/Mail), relationships (ManagerId), proxy addresses, license/plan signals, timestamps. Root cause fix (prove 20260716-100352): local Get-GraphPage only inspected PSObject property names and returned @() for Graph SDK 2.x Hashtable responses (Keys/Values, not NoteProperty 'value') — silent empty SUCCESS with no CSV. Now uses DiscoveryBase Invoke-GraphAPIWithPaging.

How the app exposes it

The module feeds into the ACQI app's dedicated results view. From there, conflicts, dependencies, and readiness scores roll up into the deal workspace.

Route in app:
/discovered/exchange

Outputs

Each module produces a CSV with readiness and risk scores, evidence-source counts, and last-seen timestamps. The exact columns vary by module — the app's results view shows the live schema.