Forbidden body. The action enum exists so additional outcomes (allow, log, challenge) can be added later without restructuring the message.
Fields
The outcome to apply when the policy’s match expressions all succeed. Only
ACTION_DENY is defined today.Actions
| Action | Behavior |
|---|---|
ACTION_DENY | Rejects the request with HTTP 403 and body Forbidden. Short-circuits the whole policy chain — no downstream policies run. |
Examples
Block everything below/admin:
Observability
Every Firewall match incrementssentinel_firewall_matches_total{policy_id, action}. Denied requests do not currently produce a ClickHouse request log row — they never reach an instance, and the existing request-log pipeline gates on instance presence. Dedicated observability for firewall matches is deferred.
