Plugins
Challenge Providers
Edge actions provider-agnostic via ChallengeProvider
Edge Actions e ChallengeProvider
Edge actions (block / challenge / rate-limit em CDN/WAF) são
provider-agnostic via trait ChallengeProvider, espelhando o padrão do
LlmProvider. Isso permite trocar de Cloudflare para AWS WAF, Fastly,
Bunny… sem mudar o ActionKind, as regras ou o filtro de verdict.
Como funciona
O tipo ChallengeAction (em sentry-core) faz o filtro de verdict
(Block/Challenge/RateLimit) e delega ao provider. O provider só
implementa apply(ip, verdict, opts). A lógica de "qual veredito vira
action" fica no core; o provider só executa no edge.
Config canonical
[[action]]
type = "challenge"
provider = "cloudflare" # extensible: aws_waf, fastly, ...
[action.options]
mode = "managed_challenge" # block | js_challenge | managed_challenge | rate_limit
ttl_secs = 86400
O alias legacy type = "cloudflare" (sem provider) é mantido por
compatibilidade e é equivalente.
Adicionar um novo provider de edge (AWS WAF, Fastly, Bunny…)
- Crie a crate
sentry-action-<nome>implementandoChallengeProvider. - Adicione-a a
sentry-cli/Cargo.toml. - Adicione um braço no
matchdedaemon::build_challenge_action.
Sem mudar ActionKind, regras, ou filtro de verdict.
Cloudflare (provider padrão)
- Tokens via env (
SENTRY_CF_TOKEN,SENTRY_CF_ZONE). - Cache local de IPs já desafiados (TTL configurável) para não bombardear a API.
- Modos:
block,js_challenge,managed_challenge,rate_limit. - Importante: na fase 1 o Sentry é read-only + Cloudflare action.
Não há inline proxy. Inline é fase futura (
sentry-proxy).