Table of Contents

Class AttachmentDownloadSettings

Namespace
MailFathom.Application.EmailContent.Attachments
Assembly
MailFathom.Application.dll

Where an attachment download link points, and how long one stays redeemable.

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

Remarks

The address is declared rather than derived. A URL composed from a request's Host header would let whoever called the tool decide where the link it receives points, which turns a capability this deployment issued into one an attacker addressed. A deployment that declares none issues no link at all, which is the state CanIssueLinks reports and the tool result publishes.

It arrives with the download route already on it, composed by the composition root that owns both the declared address and the route. That keeps the one place a URL path is written the same place it is mapped, so the address a link points at and the address the process answers cannot drift apart.

The lifetime is the whole of a link's revocation model, so the bounds on it are the product's rather than the operator's: a window measured in minutes makes a leaked URL usually already dead, and one measured in days would make it a durable credential written into proxy logs, browser history, and chat transcripts by software nobody here controls. The host validates a configured value against a stated floor and ceiling before this record is built.

Constructors

AttachmentDownloadSettings(Uri?, TimeSpan)

Where an attachment download link points, and how long one stays redeemable.

Properties

DownloadAddressPrefix

The absolute address a capability is appended to, already ending in a slash, or null when this deployment declares no public address.

LinkLifetime

How long a minted link stays redeemable.