Network ● Sealed v1.0 (treated)

Network Device Inventory

Producer for the canonical /assets/network-devices surface

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 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/network-device-inventory

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.