TestimoX

API Reference

Class

TestimoConfiguration

Namespace TestimoX.Configuration
Assembly TestimoX
Modifiers static

Provides configuration settings for TestimoX.

Inheritance

  • Object
  • TestimoConfiguration

Methods

public static Void ApplyVerbosityLevel(VerbosityLevel level) #
Returns: Void

Applies a verbosity preset, mapping it to the corresponding OutputChannels flags.

Parameters

level TestimoX.Configuration.VerbosityLevel requiredposition: 0
public static Void Load(String[] args = null) #
Returns: Void

Loads configuration from all registered providers.

Parameters

args System.String[] = null optionalposition: 0
public static Void RegisterCommonModules(params String[] modules) #
Returns: Void

Registers one or more common modules.

Parameters

modules System.String[] requiredposition: 0
public static Void RegisterProvider(IConfigurationProvider provider) #
Returns: Void

Registers a configuration provider used to load settings.

Parameters

provider TestimoX.Configuration.Providers.IConfigurationProvider requiredposition: 0

Properties

public static ComplianceDisplayMode MsbDocsMode { get; set; } #

Display mode for Microsoft Security Baseline recommendations. Default: Brief.

public static ComplianceDisplayMode StigDocsMode { get; set; } #

Display mode for DISA STIG recommendations. Default: Brief.

public static ComplianceDisplayMode CisDocsMode { get; set; } #

Display mode for CIS recommendations. Fixed to Off (identifiers only).

public static ComplianceDisplayMode PingCastleDocsMode { get; set; } #

Display mode for PingCastle indicators. Fixed to Off (coverage only).

public static ComplianceDisplayMode PurpleKnightDocsMode { get; set; } #

Display mode for Purple Knight indicators. Fixed to Off (coverage only).

public static ColorMode ColorModeSetting { get; set; } #

Current console color mode selection.

public static Boolean UseEmojiSourceIcons { get; set; } #

When true, the live progress view uses emoji icons for the source column (C# vs PowerShell). Emoji have inconsistent cell widths across terminals and fonts, so we default to ASCII tokens ("C#"/"PS") for alignment stability. Set env TESTIMOX_EMOJI_ICONS=1 to force emoji.

public static VerbosityLevel VerbosityLevel { get; set; } #

Single knob controlling verbosity. Mapping: Quiet -> TaskLifecycle Normal -> TaskLifecycle | ErrorsFull Detailed -> TaskLifecycle | MethodLifecycle | TestLifecycle | ErrorsFull Debug -> All

public static Int32 MaxRetryAttempts { get; set; } #

Maximum number of retry attempts for failed rule executions. Default is 2 (original attempt + 2 retries = 3 total attempts).

public static Int32 PowerShellTransientRetryAttempts { get; set; } #

Alias for MaxRetryAttempts tailored to transient PowerShell/LDAP errors. Override via TESTIMOX_TRANSIENT_RETRY_ATTEMPTS or through typed configuration.

public static PreflightMode Preflight { get; set; } #

Controls how LDAP preflight behaves. Enforce: preflight failure skips all domain tasks; Soft: log a warning and continue; Off: disable preflight.

public static Int32 PreflightTimeoutMs { get; set; } #

Timeout for preflight probes in milliseconds.

Fields

public static Boolean IsPowerShellModule #

True when running inside the PowerShell module host.

public static Boolean ForceAscii #

Force ASCII-only output (no Unicode box drawing or glyphs).

public static OutputChannels Verbosity #

Controls which optional messages are emitted. Internally derived from VerbosityLevel unless explicitly overridden by hosts.

public static Boolean ShowPlanningSummary #

Controls whether the engine prints the single-line planning summary (rules/domains/DCs/planned tasks). Defaults to false to reduce noise. Can be enabled via TESTIMOX_SHOW_PLANNING_SUMMARY=1|true.

public static Boolean ShowRuleList #

Controls whether the engine prints the full "Rules to process" list. Defaults to false; can be enabled via TESTIMOX_SHOW_RULE_LIST=1|true.

public static Boolean PreferRichProgress #
Obsolete("PreferRichProgress is deprecated. Use ConsoleView/ProgressMode instead.")

Prefer rich interactive progress UI when possible. Deprecated: use ConsoleView/ProgressMode instead.

public static Int32 DefaultConsoleWidth #

Default width used when the console window width cannot be determined.

public static TestimoStatus DefaultStatusTrue #

Default status used when a boolean test evaluates to true.

public static TestimoStatus DefaultStatusFalse #

Default status used when a boolean test evaluates to false.

public static readonly List<String> CommonRequiredModules #

Modules required by most rules. These will be loaded automatically. Keep this list minimal; in most environments it is preferable to let individual rules declare their own RequiredModules so that failures are scoped to rules that actually need them.

public static Boolean AllowPowerShellModuleInstall #

When true, TestimoX may attempt to install missing PowerShell modules (e.g., from PSGallery) during execution. This can trigger interactive prompts in some environments, so it is disabled by default. Enable via env var TESTIMOX_ALLOW_MODULE_INSTALL=1|true.

public static Int32 PowerShellModuleImportTimeoutMs #

Timeout in milliseconds for Import-Module/Get-Module operations issued by the engine. Defaults to 15000ms. Override via TESTIMOX_PS_IMPORT_TIMEOUT_MS.

public static Int32 PowerShellModuleInstallTimeoutMs #

Timeout in milliseconds for Install-Module operations (only used when AllowPowerShellModuleInstall=true). Defaults to 60000ms. Override via TESTIMOX_PS_INSTALL_TIMEOUT_MS.

public static Int32 HtmlMaxRowsPerRule #

Maximum number of rows shown in HTML per rule results table (to keep reports responsive on large environments). Set to 0 to disable clamping.

public static Boolean ProgressHideCompleted #

When true, the interactive progress view hides completed rows to avoid rendering thousands of lines for very large runs. The Summary row still shows totals for Completed/Remaining.

public static Int32 ProgressMaxVisibleRows #

Soft cap for visible progress rows. Currently used as guidance only; with ProgressHideCompleted=true, the visible rows naturally stay close to the number of active tasks. Hosts can raise/lower this in advance of a run.

public static Int32 ProgressRecentWindowSize #

Number of recently completed tasks to pin in the progress view, even when completed rows are hidden. Helps keep context on large runs.

public static Int32 LargeDomainUserThreshold #

Heuristic threshold to switch Users rules to targeted LDAP queries instead of full in-memory staging.

public static Int32 InitialRetryDelayMilliseconds #

Initial delay for the first retry attempt in milliseconds. Default is 5000ms (5 seconds). Subsequent retries use exponential backoff.

public static Double RetryBackoffMultiplier #

Multiplier for exponential backoff between retry attempts. Default is 3.0, so delays are: 5s, 15s, 45s, etc.

public static Int32 MaxRetryDelayMilliseconds #

Maximum delay between retry attempts in milliseconds. Default is 60000ms (60 seconds) to prevent extremely long delays.

public static Boolean EnableRetries #

Whether to enable retry logic for failed rule executions.

public static Int32 SysvolProbeTimeoutMs #

Timeout (ms) for SYSVOL availability probe.

public static Int32 SysvolNegativeCacheTtlSeconds #

Negative cache TTL for SYSVOL probe failures (seconds).

public static Boolean SysvolNoFallbackOnExplicitDc #

When true, do not fall back from an explicitly chosen DC to alternates.

public static Boolean SysvolFallbackToDomainDfs #

When true, allow fallback to domain DFS referrals for SYSVOL.

public static Int32 RuleTimeoutSeconds #

Maximum wall-clock time per rule task (seconds) before the engine marks it as timed out. This is a safety net for environments with half-dead DCs or unexpected long-running operations.

public static Int32 WorkQueueTimeoutSeconds #

Optional timeout for a single work item execution (seconds). When set to 0 or a negative value, no timeout is applied and the engine will wait until the work item finishes. Defaults to 0 (no timeout). Can be overridden via TESTIMOX_WORKQUEUE_TIMEOUT_SECONDS.

public static Int32 HtmlReportTimeoutSeconds #

Optional timeout for HTML report generation (seconds). When set to 0 or a negative value, no timeout is applied and the engine will wait until the report finishes. Defaults to 0 (no timeout). Can be overridden via TESTIMOX_HTML_REPORT_TIMEOUT_SECONDS.

public static Int32 WordReportTimeoutSeconds #

Optional timeout for Word report generation (seconds). When set to 0 or a negative value, no timeout is applied and the engine will wait until the report finishes. Defaults to 0 (no timeout). Can be overridden via TESTIMOX_WORD_REPORT_TIMEOUT_SECONDS.

public static Int32 WordMaxRowsPerRule #

Maximum number of rows shown in Word per rule results table (to keep documents compact on large environments). Set to 0 to disable clamping. Defaults to the same as HTML unless overridden via TESTIMOX_WORD_MAX_ROWS_PER_RULE.

public static Int32 WordMaxColumnsPerTable #

Maximum number of columns rendered for Word tables. When a dataset has more columns, only the first N are shown and a note is added below the table. Override via TESTIMOX_WORD_MAX_COLUMNS_PER_TABLE.

public static Int32 WordMaxCellChars #

Soft cap for characters per cell to avoid pathological document sizes when rules emit large JSON blobs or base64 content. The renderer trims values and appends an ellipsis when exceeded. Override via TESTIMOX_WORD_MAX_CELL_CHARS.

public static Int32 StagingUsersTimeoutSeconds #

Timeout for Users staging warm-up (seconds).

public static Int32 StagingComputersTimeoutSeconds #

Timeout for Computers staging warm-up (seconds).

public static Int32 StagingMaxAlternateAttempts #

Maximum number of alternate attempts when staging returns zero results.

public static Boolean StagingRetryWithBasicOnZero #

When true, if staging yields zero rows, retry once with Basic property set to ensure at least identity rows are warmed.

public static readonly HashSet<String> IncludeDomainControllers #

Optional allow/deny lists to control which DCs the engine may use. When non-empty, discovery prefers DCs present in IncludeDomainControllers and excludes any in ExcludeDomainControllers. Values are case-insensitive and should be DNS hostnames.

public static readonly HashSet<String> ExcludeDomainControllers #

List of DC hostnames to exclude from use.

public static Boolean BreakOnFirstError #

When true, rethrows rule execution errors after logging to ease debugging. Default is false. Can be enabled via env var TESTIMOX_BREAK_ON_ERROR=1.