Zoom
UI-wired M&A discovery engine for Zoom Video Communications.
What it does
Implements the 7 discovery-hook rule-set on top of DiscoveryModuleBase V3: query - validates + acquires OAuth token scan - fetches paginated entity pages for each entity type parse - normalises raw Zoom API records into M&A data rows map - classifies license SKUs, compliance posture, SSO/SAML, storage validate - enforces required fields and data-shape constraints report - emits structured output CSV + JSON + UI-sidecar log cleanup - resets state when requested The UI log (ui_log_file) contains line-delimited JSON status events that the orchestrator tails and forwards to the FOC dashboard / real-time UI. Each entry carries: ts, phase, status, entity, count, message, error. M&A output schema (per SPEC-130): - UserLicenses : email, display_name, license_type (Pro/Business/Enterprise), created, last_login, status - ActiveMeetings : meeting_id, topic, host, start_time, duration_min, participant_count - DataResidency : region, data_center, recording_storage_region - SSOSaml : sso_enabled, saml_enabled, mapping_version - RecordingStorage : total_storage_mb, used_mb, retention_days, storage_region - Rooms : room_id, name, device_type, firmware, status, location - Groups : group_id, name, member_count, description Auth: Zoom Server-to-Server OAuth (account_id + client_id + client_secret) Requires: ZoomEventTypes.psm1, ZoomStateManager.psm1, DiscoveryBase.psm1
How the app exposes it
The module runs through the ACQI discovery orchestrator and writes its rows into a dedicated results view. From there, conflicts, dependencies, and readiness scores feed the deal-wide consolidation layer.
/discovered/zoom Outputs
Each module emits a normalised CSV keyed by entity ID with readiness and risk scores, evidence-source counts, and last-seen timestamps. The exact column set varies by module — the app's results view shows the live schema.