Interface IAuthorizationRefusalTelemetry
- Namespace
- MailFathom.Application.Observability
- Assembly
- MailFathom.Application.dll
Records that a caller reached something its grant does not carry, which is the only place that boundary is visible.
public interface IAuthorizationRefusalTelemetry
Remarks
A refusal on the MCP surface tells the caller nothing — a tool it may not reach is absent from the listing, and a call naming one is answered exactly as a call naming a tool that does not exist — so an operator diagnosing a client that stopped working has this record or nothing at all. On the administrative surface the caller is told the permission that would have sufficed, and the record is still what turns one operator's refusal into a rate somebody can alert on: a credential that starts asking for what it was never granted is the signal, rather than any single failure.
What counts as a refusal is a call or a route refused for want of a permission. A tool omitted from a listing is not one: nothing was refused, every narrowed caller would report one on every listing, and the omission has no operation to partition by — so the thing worth alerting on would sit under the steady state.
The operation a refusal names is MailFathom's own name for what was refused and never a value a caller chose. A dimension whose values a caller picks is a time series per value, so a boundary reduces a name that arrived on a request to one this repository publishes before it reaches here.
Methods
- RecordRefusal(ProtectedSurface, string, MailFathomPermission, string?)
Records one refusal, on both the counted channel and the one an operator reads.