Table of Contents

Class IntegrityReport

Namespace
Typhon.Engine
Assembly
Typhon.Engine.dll

The product of a scan: what was looked at, what is wrong, what a repair would cost, and what could not be seen.

public sealed class IntegrityReport
Inheritance
IntegrityReport
Inherited Members

Remarks

This is also the interface the crash suite consumes. It needs no shadow model, so it can be asserted after any chaos cell — including ones whose correct final state the harness cannot compute.

Constructors

IntegrityReport()

public IntegrityReport()

Fields

ReportVersion

Schema version of this report's JSON form. Bumped on any breaking shape change.

public const int ReportVersion = 1

Field Value

int

Properties

CompletedUtc

UTC instant the scan completed.

public DateTime CompletedUtc { get; init; }

Property Value

DateTime

Depth

How much work was done.

public required ScanDepth Depth { get; init; }

Property Value

ScanDepth

Duration

Wall-clock duration of the scan.

public TimeSpan Duration { get; init; }

Property Value

TimeSpan

ExitCode

Process exit code carrying the verdict, so typhon check drops into a cron job or a CI gate without anyone parsing anything. Distinct codes for Divergent and DataLoss matter: the first is "schedule a repair", the second is "stop and think".

public int ExitCode { get; }

Property Value

int

Findings

Every finding, severity-ranked.

public required IReadOnlyList<IntegrityFinding> Findings { get; init; }

Property Value

IReadOnlyList<IntegrityFinding>

Identity

Identity of the scanned database.

public required DatabaseIdentity Identity { get; init; }

Property Value

DatabaseIdentity

IsSound

Whether the database is free of correctness problems (leaks and advisories do not count).

public bool IsSound { get; }

Property Value

bool

Limits

What the scan could not have detected. Never null.

public required ScanLimits Limits { get; init; }

Property Value

ScanLimits

LossSummary

Aggregate loss across every finding, grouped by archetype and component.

public IReadOnlyList<LossEstimate> LossSummary { get; }

Property Value

IReadOnlyList<LossEstimate>

Mode

How the pages were reached.

public required ScanMode Mode { get; init; }

Property Value

ScanMode

Source

Identity of the source that was scanned, from Describe().

public required string Source { get; init; }

Property Value

string

Totals

What the scan looked at.

public required ScanTotals Totals { get; init; }

Property Value

ScanTotals

Verdict

The one-word answer, derived from the most severe finding.

public IntegrityVerdict Verdict { get; }

Property Value

IntegrityVerdict