Configuration YAML Reference
Crate uses a YAML-based declarative configuration system at the organization level. This single schema is used by both the Managed Cloud (via the Configuration API) and the Community Edition (via local files).
Organization Schema
The top-level configuration represents a single Organization.
version: "1.0"
name: "My Organization"
plugins:
- urn: "urn:crate:plugin:auth-handler"
name: "auth-plugin"
type: "request_transform"
active: true
config:
header: "X-Auth-Token"
domains:
- host: "api.myapp.com"
details:
routing:
type: "round_robin"
destinations:
- "http://backend:8080"
routes:
- path: "/v1/users/*"
methods: ["GET", "POST"]
details:
rate_limit:
limit: 60
rate: "minute"
Field Definitions
| Field | Type | Description |
|---|---|---|
name |
string | Display name for the organization. |
domains |
array | List of domain configurations. |
details.routing |
object | Defins load balancing strategy and destinations. |
details.rate_limit |
object | Configures distributed or in-memory rate limiting. |
details.ai_shield |
object | Protects against aggressive bots and scrapers. |
details.retry_policy |
object | Configures automatic retries for specific methods. |
Routing Strategies
round_robin: Requests are distributed sequentially to each healthy upstream.weighted_round_robin: Assign more traffic to your beefier servers usingweights.waterfall: Fills targets sequentially until capacity is reached.
Destinations
A list of upstream target URLs (e.g., http://backend:8080).
- Managed Cloud: Only publicly routable addresses are allowed. Private IP ranges and
localhostare blocked by default for security. - BYOC / Community Edition: Full support for internal network routing, including
localhost,127.0.0.1, and private IP ranges (e.g.,10.x.x.x).
Rate Limiting
limit: Total tokens in the bucket.rate: Refill rate (second,minute,hour,day).identifier: The header or metadata key used to identify the user.
URNs & Smart Updates
Crate uses Uniform Resource Names (URNs) to provide stable identity for your resources. Including these URNs in your configuration allows Crate to update existing resources (preserving analytics and history) rather than recreating them.