Available environment variables

February 4, 2023 ยท View on GitHub

Server

Environment VariableDescriptionDefaultRequired
PLUMBER_SERVER_NODE_IDUnique ID that identifies this plumber nodeplumber1true
PLUMBER_SERVER_CLUSTER_IDID of the plumber cluster (has to be the same across all nodes)aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaatrue
PLUMBER_SERVER_GRPC_LISTEN_ADDRESSHost:port that the gRPC server will bind to127.0.0.1:9090false
PLUMBER_SERVER_AUTH_TOKENAll gRPC requests require this auth token to be setstreamdaltrue
PLUMBER_SERVER_INITIAL_CLUSTERInitialCluster should contain comma separated list of key=value pairs of host:port entries for ALL peers in the cluster. (Example: server1=http://192.168.1.10:2380plumber1=http://127.0.0.1:2380true
PLUMBER_SERVER_ADVERTISE_PEER_URLAddress of this plumber instance etcd server interface. Example: http://local-ip:2380http://127.0.0.1:2380false
PLUMBER_SERVER_ADVERTISE_CLIENT_URLAddress of this plumber instance etcd client interface. Example: http://local-ip:2379http://127.0.0.1:2379true
PLUMBER_SERVER_LISTENER_PEER_URLAddress that this plumber instance etcd server should listen on. Example: http://local-ip:2380http://127.0.0.1:2380false
PLUMBER_SERVER_LISTENER_CLIENT_URLAddress that this plumber instance etcd client should listen on. Example: http://local-ip:2379http://127.0.0.1:2379false
PLUMBER_SERVER_PEER_TOKENSecret token that ALL cluster members should use/share. This node will NOT be able to join the cluster IF this token does not match on one of the plumber instances.secretfalse

Relay

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_HTTP_LISTEN_ADDRESSWhat address to bind the built-in HTTP server tolocalhost:9191false
PLUMBER_RELAY_TOKENSecret collection tokentrue
PLUMBER_RELAY_BATCH_SIZEHow many messages to send in a single batch1000false
PLUMBER_RELAY_BATCH_MAX_RETRYHow many times plumber will try re-sending a batch3false
PLUMBER_RELAY_NUM_WORKERS10false
PLUMBER_RELAY_GRPC_ADDRESSAlternative collector to relay events togrpc-collector.streamdal.com:9000false
PLUMBER_RELAY_GRPC_DISABLE_TLSWhether to use TLS with collectorfalsefalse
PLUMBER_RELAY_GRPC_TIMEOUTHow long to wait before giving up talking to the gRPC collector5false

Backends

AQS SNS

Environment VariableDescriptionDefaultRequired
AWS_DEFAULT_REGIONtrue
AWS_ACCESS_KEY_IDtrue
AWS_SECRET_ACCESS_KEYtrue

AWS SQS

Environment VariableDescriptionDefaultRequired
AWS_DEFAULT_REGIONtrue
AWS_ACCESS_KEY_IDtrue
AWS_SECRET_ACCESS_KEYtrue
PLUMBER_RELAY_SQS_QUEUE_NAMEQueue namefalse
PLUMBER_RELAY_SQS_REMOTE_ACCOUNT_IDRemote AWS account IDfalse
PLUMBER_RELAY_SQS_MAX_NUM_MESSAGESMax number of messages to read1false
PLUMBER_RELAY_SQS_RECEIVE_REQUEST_ATTEMPT_IDAn id to identify this read request byplumber/relayfalse
PLUMBER_RELAY_SQS_AUTO_DELETEAuto-delete read/received message(s)false
PLUMBER_RELAY_SQS_WAIT_TIME_SECONDSNumber of seconds to wait for messages (not used when using --continuous)5false

Azure Event Hub

Environment VariableDescriptionDefaultRequired
EVENTHUB_CONNECTION_STRINGConnection stringtrue

Azure Service Bus

Environment VariableDescriptionDefaultRequired
SERVICEBUS_CONNECTION_STRINGConnection stringtrue
PLUMBER_RELAY_AZURE_QUEUE_NAMEQueue nametrue
PLUMBER_RELAY_AZURE_TOPIC_NAMETopic nametrue
PLUMBER_RELAY_AZURE_SUBSCRIPTIONSubscription nametrue

Google Cloud PubSub

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_GCP_PROJECT_IDProject IDtrue
PLUMBER_RELAY_GCP_CREDENTIALSGCP Credentials in JSON formatfalse
GOOGLE_APPLICATION_CREDENTIALSPath to GCP credentials JSON filefalse
PLUMBER_RELAY_GCP_SUBSCRIPTION_IDSubscription IDtrue
PLUMBER_RELAY_GCP_ACK_MESSAGEWhether to acknowledge message receivetruefalse

Kafka

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_KAFKA_ADDRESSKafka broker address (you may specify this flag multiple times)localhost:9092true
PLUMBER_RELAY_TIMEOUT_SECONDSConnect timeout10false
PLUMBER_RELAY_USE_TLSEnable TLS usagefalse
PLUMBER_RELAY_KAFKA_INSECURE_TLSAllow insecure TLS usagefalse
PLUMBER_RELAY_KAFKA_SASL_TYPESASL authentication type (options: none plain scram)nonefalse
PLUMBER_RELAY_KAFKA_USERNAMESASL Usernamefalse
PLUMBER_RELAY_KAFKA_PASSWORDSASL Password. You will be prompted for the password if omittedfalse
PLUMBER_RELAY_KAFKA_TOPICTopic(s) to readtrue
PLUMBER_RELAY_KAFKA_READ_OFFSETSpecify what offset the consumer should read from (only works if --use-consumer-group is false)0false
PLUMBER_RELAY_KAFKA_USE_CONSUMER_GROUPWhether plumber should use a consumer grouptruefalse
PLUMBER_RELAY_KAFKA_GROUP_IDSpecify a specific group-id to use when reading from kafkaplumberfalse
PLUMBER_RELAY_KAFKA_MAX_WAITHow long to wait for new data when reading batches of messages5false
PLUMBER_RELAY_KAFKA_MIN_BYTESMinimum number of bytes to fetch in a single kafka request (throughput optimization)1048576false
PLUMBER_RELAY_KAFKA_MAX_BYTESMaximum number of bytes to fetch in a single kafka request (throughput optimization)1048576false
PLUMBER_RELAY_KAFKA_COMMIT_INTERVALHow often to commit offsets to broker (0 = synchronous)5false
PLUMBER_RELAY_KAFKA_REBALANCE_TIMEOUTHow long a coordinator will wait for member joins as part of a rebalance5false
PLUMBER_RELAY_KAFKA_QUEUE_CAPACITYInternal library queue capacity (throughput optimization)1000false

KubeMQ Queue

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_KUBEMQ_QUEUE_ADDRESSDial string for KubeMQ serverlocalhost:50000true
PLUMBER_RELAY_KUBEMQ_QUEUE_AUTH_TOKENClient JWT authentication tokenfalse
PLUMBER_RELAY_KUBEMQ_QUEUE_TLS_CLIENT_CERTKubeMQ client cert filefalse
PLUMBER_RELAY_KUBEMQ_QUEUE_CLIENT_IDKubeMQ client IDplumberfalse
PLUMBER_RELAY_KUBEMQ_QUEUE_QUEUEKubeMQ queue namefalse

Mongo

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_CDCMONGO_DSNDial string for mongo server (Ex: mongodb://localhost:27017)mongodb://localhost:27017false
PLUMBER_RELAY_CDCMONGO_DATABASEDatabase namefalse
PLUMBER_RELAY_CDCMONGO_COLLECTIONCollection namefalse
PLUMBER_RELAY_CDCMONGO_INCLUDE_FULL_DOCInclude full document in update in update changes (default - return deltas only)false

Mqtt

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_MQTT_TLS_CA_CERTCA cert (only needed if addr is ssl://)false
PLUMBER_RELAY_MQTT_TLS_CLIENT_CERTClient cert file (only needed if addr is ssl://)false
PLUMBER_RELAY_MQTT_TLS_CLIENT_KEYClient key file (only needed if addr is ssl://)false
PLUMBER_RELAY_MQTT_SKIP_VERIFY_TLSWhether to verify server certificatefalse
PLUMBER_RELAY_MQTT_ADDRESSMQTT addresstcp://localhost:1883true
PLUMBER_RELAY_MQTT_CONNECT_TIMEOUTHow long to attempt to connect for5false
PLUMBER_RELAY_MQTT_CLIENT_IDClient id presented to MQTT brokerplumberfalse
PLUMBER_RELAY_MQTT_QOSQoS level to use for pub/sub (options: at_most_onceat_most_oncefalse
PLUMBER_RELAY_MQTT_TOPICTopic to read message(s) fromtrue
PLUMBER_RELAY_MQTT_READ_TIMEOUT_SECONDSHow long to attempt to read message(s)0false

NATS

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_NATS_DSNDial string for NATS server (Ex: nats://localhost:4222)nats://localhost:4222true
PLUMBER_RELAY_NATS_CREDENTIALSContents of NATS .creds file to authenticate withfalse
PLUMBER_RELAY_NATS_SUBJECTSubject to read from. Ex: foo.bar.*false
PLUMBER_RELAY_NATS_USE_TLSForce TLS connection. (Ignored if DSN begins with "tls://")falsefalse
PLUMBER_RELAY_NATS_TLS_CA_CERTCA file (only used for TLS connections)false
PLUMBER_RELAY_NATS_TLS_CLIENT_CERTClient cert file (only used for TLS connections)false
PLUMBER_RELAY_NATS_TLS_CLIENT_KEYClient key file (only used for TLS connections)false

NATS Streaming

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_NATS_STREAMING_DSNDial string for NATS server (Ex: nats://localhost:4222)nats://localhost:4222true
PLUMBER_RELAY_NATS_STREAMING_CLUSTER_IDCluster IDCluster ID of the Nats servertrue
PLUMBER_RELAY_NATS_STREAMING_CHANNELChannel nameChannel name to subscribe totrue
PLUMBER_RELAY_NATS_STREAMING_DURABLE_SUBSCRIPTION_NAMECreate a durable subscription with this name for the given channelfalse
PLUMBER_RELAY_NATS_STREAMING_USE_TLSForce TLS connection. (Ignored if DSN begins with "tls://")falsefalse
PLUMBER_RELAY_NATS_STREAMING_TLS_CA_CERTCA file (only used for TLS connections)false
PLUMBER_RELAY_NATS_STREAMING_TLS_CLIENT_CERTClient cert file (only used for TLS connections)false
PLUMBER_RELAY_NATS_STREAMING_TLS_CLIENT_KEYClient key file (only used for TLS connections)false
PLUMBER_RELAY_NATS_STREAMING_SKIP_VERIFY_TLSWhether to verify server certificatefalse
PLUMBER_RELAY_NATS_STREAMING_READ_LASTDeliver starting with last published messagefalsefalse
PLUMBER_RELAY_NATS_STREAMING_READ_SEQUENCEDeliver messages starting at this sequence number0false
PLUMBER_RELAY_NATS_STREAMING_READ_SINCEDeliver messages in last interval (e.g. 1s, 1h)false
PLUMBER_RELAY_NATS_STREAMING_READ_ALLDeliver all available messagesfalsefalse

NATS JetStream

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_NATS_JETSTREAM_DSNDial string for NATS server (Ex: nats://localhost:4222)nats://localhost:4222true
PLUMBER_RELAY_NATS_JETSTREAM_CLIENT_IDUser specified client ID to connect withplumberfalse
PLUMBER_RELAY_NATS_JETSTREAM_STREAMStream name to read fromtrue
PLUMBER_RELAY_NATS_JETSTREAM_USE_TLSForce TLS connection. (Ignored if DSN begins with "tls://")falsefalse
PLUMBER_RELAY_NATS_JETSTREAM_TLS_CA_CERTCA file (only used for TLS connections)false
PLUMBER_RELAY_NATS_JETSTREAM_TLS_CLIENT_CERTClient cert file (only used for TLS connections)false
PLUMBER_RELAY_NATS_JETSTREAM_TLS_CLIENT_KEYClient key file (only used for TLS connections)false
PLUMBER_RELAY_NATS_JETSTREAM_SKIP_VERIFY_TLSWhether to verify server certificate (only needed using TLS)false
PLUMBER_RELAY_NATS_JETSTREAM_CONSUMER_NAMEConsumer name (has no effect if create_durable_consumer or existing_durable_consumer is not set)false
PLUMBER_RELAY_NATS_JETSTREAM_CREATE_DURABLE_CONSUMERWhether to create a durable consumer (setting this will cause plumber to create a pull consumer)false
PLUMBER_RELAY_NATS_JETSTREAM_KEEP_CONSUMERWhether to delete the consumer after usefalse
PLUMBER_RELAY_NATS_JETSTREAM_CONSUMER_START_SEQUENCEWhere in the stream the consumer should start reading (NOTE: If set, consumer deliver policy will be set to DeliverByStartSequence)false
PLUMBER_RELAY_NATS_JETSTREAM_CONSUMER_START_TIMEAt what time in the stream should the consumer begin reading (NOTE: If set, consumer deliver policy will be set to DeliverByStartTime)false
PLUMBER_RELAY_NATS_JETSTREAM_CONSUMER_FILTER_SUBJECTOnly receive a subset of messages from the Stream based on the subjectfalse

Nsq

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_NSQ_NSQD_ADDRESSAddress of NSQ server (Ex: localhost:4150)localhost:4150false
PLUMBER_RELAY_NSQ_LOOKUPD_ADDRESSAddress of LookupD server (Ex: localhost:4161)false
PLUMBER_RELAY_NSQ_USE_TLSEnable TLS usagefalse
PLUMBER_RELAY_NSQ_SKIP_VERIFY_TLSWhether to verify server certificatefalse
PLUMBER_RELAY_NSQ_TLS_CA_CERTCA filefalse
PLUMBER_RELAY_NSQ_TLS_CLIENT_CERTClient cert filefalse
PLUMBER_RELAY_NSQ_TLS_CLIENT_KEYClient key filefalse
PLUMBER_RELAY_NSQ_AUTH_SECRETAuthentication secretfalse
PLUMBER_RELAY_NSQ_CLIENT_IDClient ID to identify asplumberfalse
PLUMBER_RELAY_NSQ_TOPICNSQ topic to read fromtrue
PLUMBER_RELAY_NSQ_CHANNELOutput channeltrue

Postgres

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_CDCPOSTGRES_HOSTNAMEPostgres server hostnametrue
PLUMBER_RELAY_CDCPOSTGRES_USERNAMEPostgres port5432true
PLUMBER_RELAY_CDCPOSTGRES_USERNAMEPostgres usernametrue
PLUMBER_RELAY_CDCPOSTGRES_PASSWORDPostgres server passwordfalse
PLUMBER_RELAY_CDCPOSTGRES_DATABASEPostgres server database nametrue
PLUMBER_RELAY_CDCPOSTGRES_USE_TLSEnable TLS usagefalse
PLUMBER_RELAY_CDCPOSTGRES_SKIP_VERIFY_TLSWhether to verify server certificatefalse
PLUMBER_RELAY_CDCPOSTGRES_SLOTCDC replication slot nametrue
PLUMBER_RELAY_CDCPOSTGRES_PUBLISHERCDC publisher nametrue

Rabbit

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_RABBIT_ADDRESSDestination host address (full DSN)amqp://localhosttrue
PLUMBER_RELAY_RABBIT_USE_TLSForce TLS usage (regardless of DSN)false
PLUMBER_RELAY_RABBIT_SKIP_VERIFY_TLSWhether to verify server TLS certificatefalse
PLUMBER_RELAY_RABBIT_EXCHANGEName of the exchangetrue
PLUMBER_RELAY_RABBIT_QUEUEName of the queue where messages will be routed totrue
PLUMBER_RELAY_RABBIT_ROUTING_KEYBinding key for topic based exchangestrue
PLUMBER_RELAY_RABBIT_QUEUE_EXCLUSIVEWhether plumber should be the only one using the queuefalse
PLUMBER_RELAY_RABBIT_QUEUE_DECLAREWhether to create/declare the queue (if it does not exist)truefalse
PLUMBER_RELAY_RABBIT_QUEUE_DURABLEWhether the queue should survive after disconnectfalse
PLUMBER_RELAY_RABBIT_AUTOACKAutomatically acknowledge receipt of read/received messagestruefalse
PLUMBER_RELAY_CONSUMER_TAGHow to identify the consumer to RabbitMQplumberfalse
PLUMBER_RELAY_RABBIT_QUEUE_AUTO_DELETEWhether to auto-delete the queue after plumber has disconnectedtruefalse
PLUMBER_RELAY_RABBIT_BINDING_KEY_EXCLUDE_REGEXExclude messages with routing key matching regexfalse

Redis PubSub

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_REDIS_PUBSUB_ADDRESSAddress of redis serverlocalhost:6379false
PLUMBER_RELAY_REDIS_PUBSUB_USERNAMEOptional username to auth with (redis >= v6.0.0)false
PLUMBER_RELAY_REDIS_PUBSUB_PASSWORDOptional password to auth with (redis >= v6.0.0)false
PLUMBER_RELAY_REDIS_PUBSUB_DATABASEDatabase (0-16)false
PLUMBER_RELAY_REDIS_PUBSUB_CHANNELSComma separated list of channels to read fromtrue

Redis Streams

Environment VariableDescriptionDefaultRequired
PLUMBER_RELAY_REDIS_STREAMS_ADDRESSAddress of redis serverlocalhost:6379true
PLUMBER_RELAY_REDIS_STREAMS_USERNAMEUsername (redis >= v6.0.0)false
PLUMBER_RELAY_REDIS_STREAMS_PASSWORDPassword (redis >= v6.0.0)false
PLUMBER_RELAY_REDIS_PUBSUB_DATABASEDatabase (0-16)false
PLUMBER_RELAY_REDIS_STREAMS_CREATE_STREAMSCreate the streams if creating a new consumer groupfalse
PLUMBER_RELAY_REDIS_STREAMS_RECREATE_CONSUMER_GROUPRecreate this consumer group if it does not existfalse
PLUMBER_RELAY_REDIS_STREAMS_START_IDWhat offset to start reading at (options: latest oldest)latesttrue
PLUMBER_RELAY_REDIS_STREAMS_STREAMSStreams to read fromtrue
PLUMBER_RELAY_REDIS_STREAMS_CONSUMER_GROUPConsumer group nameplumberfalse
PLUMBER_RELAY_REDIS_STREAMS_CONSUMER_NAMEConsumer nameplumber-consumer-1false
PLUMBER_RELAY_REDIS_STREAMS_COUNTNumber of records to read from stream(s) per read10false