# Orion Configuration
# All values shown are defaults. Uncomment and modify as needed.
# Environment variables override file values using ORION_SECTION__KEY format.
[server]
# host = "0.0.0.0"
# port = 8080
# workers = <num_cpus> # Defaults to number of CPU cores
[storage]
# url = "sqlite:orion.db" # Database URL (sqlite:, postgres://, mysql://)
# max_connections = 10 # Connection pool max connections
# busy_timeout_ms = 5000 # SQLite busy timeout in milliseconds (ignored for other backends)
# acquire_timeout_secs = 5 # Connection pool acquire timeout in seconds
[ingest]
# max_payload_size = 1048576 # Maximum payload size in bytes (1 MB)
[engine]
# health_check_timeout_secs = 2 # Timeout for engine read lock in health checks
# reload_timeout_secs = 10 # Timeout for engine write lock during reload
[queue]
# workers = 4 # Concurrent async job workers
# buffer_size = 1000 # Channel buffer for pending jobs
# shutdown_timeout_secs = 30 # Timeout for in-flight jobs during shutdown
[kafka] # Requires the `kafka` feature flag
# enabled = false
# brokers = ["localhost:9092"]
# group_id = "orion"
[rate_limit]
# enabled = false # Enable request rate limiting
# default_rps = 100 # Default requests per second
# default_burst = 50 # Default burst allowance
# [rate_limit.endpoints]
# admin_rps = 50 # Rate limit for admin routes
# data_rps = 200 # Rate limit for data routes
# Per-channel rate limits are configured via the channel's config_json in the DB.
# Example: POST /api/v1/admin/channels with config.rate_limit.requests_per_second
[logging]
# level = "info" # trace, debug, info, warn, error
# format = "pretty" # pretty or json
[metrics]
# enabled = false
[tracing] # Requires the `otel` feature flag
# enabled = false # Enable OpenTelemetry trace export
# otlp_endpoint = "http://localhost:4317" # OTLP gRPC endpoint
# service_name = "orion" # Service name in traces
# sample_rate = 1.0 # 0.0 (none) to 1.0 (all)