Discovery Module Base
Foundational patterns shared by every ACQI discovery module: initialisation, output shaping, error handling.
What it does
Provides base functionality and common patterns for discovery modules. This module serves as a foundation for all discovery operations including standardized initialization, error handling, logging, and result formatting to ensure consistent behavior across all discovery modules in the suite. RECORDCOUNT PATTERN: All discovery modules should set the RecordCount property on the result object to track the total number of primary discovery records. This provides consistent counting across all modules for UI display and reporting. Standard pattern: - Success case: $result.RecordCount = @($discoveryData.PrimaryDataType).Count - Error case: RecordCount defaults to 0 (handled by base module) - Metadata: RecordCount is also stored in $result.Metadata["TotalRecords"] Example: $result.RecordCount = @($discoveryData.ConditionalAccessPolicies).Count $result.Metadata["TotalRecords"] = $result.RecordCount
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.
/discovered/discovery-module-base 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.