Class MailboxMutationAuditTrailRetention
- Namespace
- MailFathom.Application.Mail.Mutations.Audit
- Assembly
- MailFathom.Application.dll
Ages one account's audit trail out at the window that account configured.
public sealed class MailboxMutationAuditTrailRetention
- Inheritance
-
MailboxMutationAuditTrailRetention
- Inherited Members
Remarks
A trail that is never pruned is a store of derived personal data growing without an end anybody undertook to hold it to, which is the storage-limitation half of what enabling the trail commits an operator to. The window is the account's own, so a deployment holding one mailbox for accountability and another for convenience answers for each separately.
It runs on the account's own synchronization run rather than on a worker of its own, for the reason convergence does: an account already has a loop that comes round, and a second schedule would be a second thing to configure, watch, and reason about for work that is one bounded delete.
The window is read from the account's current configuration rather than from the entries. Retention is a decision about what the deployment is willing to keep now, unlike the enablement an in-flight mutation carries with it, and an operator who shortens it means the entries already written as much as the ones still to come.
Constructors
- MailboxMutationAuditTrailRetention(IMailboxMutationAuditSettingsReader, IMailboxMutationAuditEntryStore, TimeProvider)
Initializes the retention pass from the account's settings and the trail it erases from.
Fields
- MaximumEntriesErasedPerPass
The greatest number of entries one pass erases.
Methods
- EraseExpiredAsync(MailAccountId, CancellationToken)
Erases everything in one account's trail that has outlived the window it configured.