Configuration Reference

Configuration reference for propeller.toml.

Config Values Description
SendTestPayload true/false Periodically sends a test payload on the client channel. Useful for testing.
SendTestPayloadToTopic true/false Periodically sends a test payload when a client subscribes to a custom topic. Useful for testing.
ClientHeader string The metadata header key which is used to identify a client.
EnableDeviceSupport true/false If enabled, a client can create a channel through multiple devices. Backend can send events targeting specific devices of a client.
DeviceHeader string The metadata header key which is used to identify a device of a client.
DeviceAttributeHeaders list of strings (Optional) metadata header keys for attributes of a devices. They are listed when active devices for a client are fetched from the backend.
EnableProfilingHandlers true/false Enable pprof related /debug handlers for profiling
broker.broker redis/nats The broker to be used.
broker.persistence true/false If the broker should persist events in case the client is not connected and deliver them later when the client connects
broker.nats string NATS address.
broker.nats.EmbeddedServer true/false If enabled, an embedded NATS server is started. Useful for testing
broker.redis string Redis address.
broker.redis.Password string Redis password for authentication.
broker.redis.TLSEnabled true/false If TLS should be enabled while connecting to Redis.
broker.redis.ClusterModeEnabled true/false If cluster mode is enabled on Redis or not. Cluster mode helps with scalability by sharding keys.
grpc.Address string gRPC server port to bind.
grpc.PingIntervalInSec integer gRPC keepalive configuration. Reference
grpc.PingResponseTimeoutInSec integer gRPC keepalive configuration. Reference
grpc.EnableReflection true/false If server refection should be enabled for gRPC server
Logger.type dev/prod prod logger prints logs in JSON while dev logger prints in human-friendly format.
Http.Port integer HTTP port to bind for websockets and prometheus metrics endpoint.
Features.<name> string Feature flag for a new named feature.
Features.<name>.Enabled true/false If the feature should be enabled or not.
Features.<name>.RolloutPercentage integer (0-100) Percentage rollout of the feature.

Environment Variables Support

Propeller also supports reading configuration parameters like passwords etc. from environment variables. The environment variables have to be prefixed with PROPELLER_ followed by the toml config fields concatenated by _. For example, broker.redis.Password in propeller.toml can be overridden by PROPELLER_BROKER_REDIS_PASSWORD environment variable.