Cloudflare Rate Limiting
Edge rate limiting rules on the Cloudflare network.
- Provider
- cloudflare
- Kind
- Rate limiter
- Category
- Edge
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| action | enum | block | challenge | log | no | block | inherited |
| algorithm | enum | token-bucket | leaky-bucket | sliding-window | fixed-window | adaptive | no | token-bucket | ▸ fixed-window |
| atomicOps | boolean | — | no | true | inherited |
| distributed | boolean | — | no | false | ▸ true |
| failMode | enum | open | closed | no | open | inherited |
| managed | boolean | — | no | false | ▸ true |
| placement | enum | edge | gateway | sidecar | in-process | no | gateway | ▸ edge |
| scope | enum | global | user | ip | api-key | concurrency | no | user | ▸ ip |
Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.
No rule reads this kind yet. That is a gap, not a guarantee.
nodes:
- { id: "rate-limiting", component: "cloudflare-rate-limiting" }# yaml-language-server: $schema=../../schema/component.schema.json # Cloudflare Rate Limiting: managed at the edge, fixed counting periods keyed by IP by default, blocks when exceeded. schemaVersion: "1" type: "component" id: "cloudflare-rate-limiting" kind: "rate-limiter" provider: "cloudflare" docs: "https://developers.cloudflare.com/waf/rate-limiting-rules/" defaults: managed: true algorithm: "fixed-window" scope: "ip" placement: "edge" distributed: true properties: action: type: "enum" values: ["block", "challenge", "log"] default: "block"