Table of Contents

Class PersonalDataAnalyzerProfile

Namespace
MailFathom.Infrastructure.SensitiveContent.PersonalData
Assembly
MailFathom.Infrastructure.dll

Where the personal-data analyzer is, what language it is asked in, and what a finding it produced is attributed to.

public sealed record PersonalDataAnalyzerProfile : IEquatable<PersonalDataAnalyzerProfile>
Inheritance
PersonalDataAnalyzerProfile
Implements
Inherited Members

Remarks

The analyzer is expected to be deployment-local. The whole point of scanning is that content is inspected before it leaves the trust boundary, so an address on the public internet defeats the feature: the mail is then handed to a third party in order to find out whether it may be handed to a third party. Nothing here prevents it, because a deployment may legitimately run one analyzer for several services inside its own network, and no rule about addresses could tell the two cases apart.

The language belongs here rather than beside the categories because it is a property of the analyzer's own configuration: the shipped image loads one model, and asking it in a language it has none for is refused rather than answered. It is part of the detector revision for the same reason the mapping is — the same text asked in two languages is two results, and a consumer that stored one has to be able to say which.

The confidence floor is part of that revision too, and the line between what belongs in it and what does not is which side of the boundary applies the value. The floor travels on the request and the analyzer enforces it, so a finding below it never crosses the boundary and two deployments differing only there were not asked the same question. The categories and the suppressions are what stay out: the plan applies those here, over an answer both deployments received in full.

Fields

TransportName

The name of the outbound client every call to the analyzer is made through.

Properties

Detector

Gets the identity and revision every finding this scanner produces carries.

Endpoint

Gets the analyzer's base address.

Language

Gets the language every request states, as a two-letter code.

MinimumConfidence

Gets how sure the analyzer must be before a finding is reported, from 0 to 1.

Methods

Create(Uri, string, double)

Composes the profile a configured analyzer is reached under.

ToString()

Returns a string that represents the current object.