Network ● Sealed v1.0 (treated)

NetworkDeviceInventory

Network Device Inventory for M&A Discovery Suite (S70-377).

What it does

Producer for the canonical /assets/network-devices surface (NetworkDeviceInventoryView -> useNetworkDeviceInventoryLogic). Invoked via the generic powershell:executeModule API: Import-Module 'Modules/Discovery/NetworkDeviceInventory.psm1' Get-NetworkDeviceInventory -Domain ... -Credential ... -CompanyName ... so - unlike the Invoke-*Discovery modules - it is SELF-CONTAINED (no DiscoveryBase / Start-DiscoveryModule context harness) and its parameters must exactly match the splatted hashtable the hook sends. HONEST DISCOVERY ONLY. Three real, reachable sources: 1. Local network adapters (Get-NetAdapter) 2. ARP/ND neighbour cache (Get-NetNeighbor - devices actually seen on the wire) 3. AD computer objects whose OperatingSystem identifies network gear (RSAT ActiveDirectory module; skipped with a warning when unavailable) An unreachable source contributes 0 rows + a warning - never synthetic devices. Output contract: - RETURN VALUE (JSON-serialised by PowerShellExecutionService): a single object { Success, devices[], RecordCount, Warnings[] }. The `devices` rows use the renderer's camelCase NetworkDeviceData field names because useNetworkDeviceInventoryLogic binds result.data.devices to the grid with NO PascalCase->camelCase mapping. - CSV (data lake): static filename NetworkDevices.csv (no timestamps) written to C:\DiscoveryData\<CompanyName>\Raw\ with PascalCase headers. Headers are written even for 0 rows. Skipped (with a warning) when no CompanyName is provided.

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.

Route in app:
/discovered/network-device-inventory

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.