Struct SensitiveContentDerivationStamp
- Namespace
- MailFathom.Application.SensitiveContent.Derivation
- Assembly
- MailFathom.Application.dll
Identifies the sensitive-content configuration one piece of derived data was written under.
public readonly record struct SensitiveContentDerivationStamp : IEquatable<SensitiveContentDerivationStamp>
- Implements
- Inherited Members
Remarks
Derived data outlives the configuration that produced it. A chunk cut before the secret scanner was switched on was cut from unredacted text and stays that way, and a chunk cut before a category was added is under-redacted against the set the deployment now runs. Neither fact is readable from the text itself, so the row records what produced it — the same statement EmbeddingProfileFingerprint makes about a vector.
Everything that decides what a redaction leaves behind is in the digest: which scanners ran, the corpus revision or analyzer profile each ran under, the categories each looked for, the rules suppressed inside them, and the analyzed ceiling. The ceiling is there because on this path it is not a cost control at all: a redaction returns the text cut at it, and what is returned is what is stored, chunked, and embedded — so lowering it truncates every message derived afterwards, and raising it back has to leave those rows readably stale rather than silently short.
The per-call timeout and the concurrency limit are out, because neither changes one character of what a scan that finished produced. Those are the tuning a deployment does against its own load, and folding them in would mark a whole mailbox stale for a change that altered nothing it stored.
The digest names no mail. It is computed over a deployment's own configured names and MailFathom's own revisions, so unlike a chunk's content hash it identifies nothing personal and is safe in a log, a metric, and a stored column.
Fields
- Length
The number of characters a hexadecimal SHA-256 digest occupies.
Properties
- Value
Gets the digest as sixty-four lowercase hexadecimal characters.
Methods
- Compute(SensitiveContentPlan, IEnumerable<ISensitiveContentScanner>)
Computes the stamp of a deployment with at least one scanner switched on.
- Create(string)
Reads back a stamp that was written earlier.
- ToString()
Returns the fully qualified type name of this instance.