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.