Documentation
¶
Overview ¶
Package mailgun provides a verifier for Mailgun API keys. It uses the Mailgun API GET /v3/domains endpoint with Basic auth to check key validity, retrying against the EU-region host when the US host reports the key inactive.
Index ¶
- type Verifier
- func (v *Verifier) Type() string
- func (v *Verifier) VerificationRequestBudget() int
- func (v *Verifier) Verify(ctx context.Context, raw detector.RawFinding) finding.VerificationResult
- func (v *Verifier) VerifyWithRequestGate(ctx context.Context, raw detector.RawFinding, gate verifier.RequestGate) finding.VerificationResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Verifier ¶
type Verifier struct {
// contains filtered or unexported fields
}
Verifier checks whether a Mailgun API key is active by calling the Mailgun API. It NEVER logs or persists raw key values.
func (*Verifier) VerificationRequestBudget ¶ added in v1.8.0
VerificationRequestBudget allows one initial request and one bounded HTTP 429 replay in each of Mailgun's two fixed regions.
func (*Verifier) Verify ¶
func (v *Verifier) Verify(ctx context.Context, raw detector.RawFinding) finding.VerificationResult
Verify checks if the detected Mailgun API key is valid/active. Raw contains the key value.
Mailgun keys carry no region marker, so there is no way to tell from the key alone whether it belongs to a US or EU-provisioned account. Verify therefore probes the US host first (the common case) and, only if that reports the key inactive, retries against the EU host before concluding the key is genuinely dead — otherwise a live EU key would always be misreported as inactive. A transport error or a cancelled context on the first probe is never treated as "inactive", so it is returned as-is without a second call.
func (*Verifier) VerifyWithRequestGate ¶ added in v1.8.0
func (v *Verifier) VerifyWithRequestGate( ctx context.Context, raw detector.RawFinding, gate verifier.RequestGate, ) finding.VerificationResult
VerifyWithRequestGate admits every actual regional send through the engine's global and per-provider limiters. HTTP 429 replays receive the same gate via the shared httpx context.