Table of Contents

Class MailboxMutationAuditEntry

Namespace
MailFathom.Domain.Mutations.Audit
Assembly
MailFathom.Domain.dll

States one change MailFathom finished making to a mailbox, in the form that outlives the mail it changed.

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

Remarks

This is the opposite artifact from MailboxMutationRecord and shares nothing but its source. The record exists to make a mutation correct — it carries the idempotency identity, the stage a retry resumes from, and the provenance that stops a rule reacting to its own effect — and its useful life ends when the mutation reaches a terminal stage. This is written once at exactly that moment, read by nothing the mechanism depends on, and kept for as long as its account's retention says.

It names the email by StoredEmailId and holds every folder as a path rather than as a binding, which is what lets it survive the email's deletion — including when the mutation recorded was that deletion. Inheriting the mail's deletion path would erase the record that MailFathom deleted it, which removes exactly the entry an audit of deletions exists to hold.

It holds no mail content: no subject, no address, no body fragment, no filename. A folder path, a UIDVALIDITY, a UID, a mutation name, and a requester identity are the server's own or MailFathom's own names for things. It is still derived personal data — it says where a person's mail has been, when, and at whose instruction — which is why it is written only for an account whose operator turned the trail on.

Properties

AccountId

Gets the account whose mailbox was changed.

CompletedAt

Gets when the change reached the ending this entry records.

DesiredSeenState

Gets which way a \Seen change was asked for, and null for every other mutation.

DestinationFolderPath

Gets the remote path of the folder a relocation or a copy named, and null for every other mutation.

Failure

Gets the code of the failure an abandoned change was given up on for, and null for one that was performed.

Id

Gets what addresses this entry, independently of the mutation record it was written from.

Mutation

Gets the change that was made.

MutationRecordId

Gets the mutation record this entry was written from.

Outcome

Gets how the change ended.

Placement

Gets where the destination folder put the email, as far as the server said.

RequestedAt

Gets when the change was written down, which is when somebody asked for it.

Requester

Gets the authored act that asked, whose identity carries a rule's revision where a rule asked.

SourceFolderPath

Gets the remote path of the folder the email was in when the change was asked for.

SourceUid

Gets the UID the email carried in that folder.

SourceUidValidity

Gets the UIDVALIDITY that folder reported when the change was asked for.

StoredEmailId

Gets the local email the change was about.

Methods

Of(MailboxMutationAuditEntryId, MailboxMutationRecord, MailFolderResolution, DateTimeOffset)

Writes the entry one finished mutation leaves behind.