BrainBlast/_software_lib/nanomq-0.22.10/config/nanomq_old.conf

1514 lines
40 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NanoMQ Configuration 0.18.0
##============================================================
## NanoMQ Broker
##============================================================
## url
## Connect with the host and port
##
## Value: nmq-tcp://host:port
url=nmq-tcp://0.0.0.0:1883
## daemon
## Run the NanoMQ broker in a daemon mode
##
## Value: true | false
daemon=false
## num_taskq_thread
## Use a specified number of taskq threads
##
## Value: 1-255, Obtain automatically if 0
num_taskq_thread=0
## max_taskq_thread
## Use a specified maximunm number of taskq threads
##
## Value: 1-255, Obtain automatically if 0
max_taskq_thread=0
## parallel
## Handle a specified maximum number of outstanding requests
##
## Value: 1-255, Obtain automatically if 0
parallel=0
## Property_size
## The max size for a MQTT user property
##
## Hot updatable
## Value: 1-infinity
property_size=32
## The max packet size of NanoMQ (Kbytes)
## Defines the max size of a packet that NanoMQ could accept
##
## Hot updatable
## Value: 1 KByte-266240 KByte (260 Mb)
max_packet_size=10240
## The default max packet size of each client (Kbytes)
## Defines the default max size limit of sending packet to each client
## Will be overwrite if client set its own max size limit
##
## Hot updatable
## Value: 1 KByte-266240 KByte (260 Mb)
client_max_packet_size=10240
## msq_len
## The queue length in-flight window
## This is essential for performance and memory consumption
##
## Hot updatable
## Value: 1-infinity
msq_len=2048
## qos_duration (s)
## The nano qos duration which also controls timer interval of each pipe
##
## Hot updatable
## Value: 1-infinity
qos_duration=10
## The backoff for MQTT keepalive timeout.
## broker will discolse client when there is no activity for
## 'Keepalive * backoff * timeout.
##
## Hot updatable
## Value: Float > 0.5
keepalive_backoff=1250
## anonymous
## allow anonymous login
##
## Hot updatable
## Value: true | false
allow_anonymous=true
## enable internal IPC server
## allow IPC server
##
## This is for CMD parsing & Gateway/Plugins control
## Value: true | false
enable_ipc_internal=false
## enable or disable ACL function
##
## Value: true | false
acl_enable=true
## Allow or deny if no ACL rules matched.
##
## Value: allow | deny
acl_nomatch=allow
## Whether to enable ACL cache.
##
## If enabled, ACLs roles for each client will be cached in the memory
##
## Value: on | off
enable_acl_cache=on
## The maximum count of ACL entries can be cached for a client.
##
## Value: Integer greater than 0
## Default: 32
acl_cache_max_size=32
## The time after which an ACL cache entry will be deleted
##
## Value: Duration
## Default: 1 minute
acl_cache_ttl=1m
## The action when acl check reject current operation
##
## Value: ignore | disconnect
## Default: ignore
acl_deny_action=ignore
## ACL Rules
## Format:
## acl.rule.<No>=<Spec>
## Allow MQTT client using username "dashboard" to subscribe to "$SYS/#" topics
# acl.rule.1={"permit": "allow", "username": "dashboard", "action": "subscribe", "topics": ["$SYS/#"]}
## Allow users with IP address "127.0.0.1" to publish/subscribe to topics "$SYS/#", "#"
# acl.rule.2={"permit": "allow", "ipaddr": "127.0.0.1", "action": "pubsub", "topics": ["$SYS/#", "#"]}
## Deny "All Users" subscribe to "$SYS/#" "#" Topics
# acl.rule.3={"permit": "deny", "username": "#", "action": "subscribe", "topics": ["$SYS/#", "#"]}
## Allow any other publish/subscribe operation
# acl.rule.4={"permit": "allow"}
## -------------------- SQLite Config -------------------- ##
## Enable sqlite cache
## Whether to enable sqlite
##
## Value: boolean
sqlite.enable=false
## Max message limitation for caching
## ( 0 means ineffective )
## Value: 1-infinity
sqlite.disk_cache_size=102400
## Mounted file path
##
## Value: path
#sqlite.mounted_file_path=/tmp/
## The threshold of flushing messages to flash.
##
## Hot updatable
## Value: 1-infinity
sqlite.flush_mem_threshold=100
## Resend interval (ms)
## The interval for resending the messages after failure recovered. (not related to trigger)
##
## Value: 1-infinity
sqlite.resend_interval=5000
##============================================================
## TLS/SSL
##============================================================
## enable tls
##
## Value: true | false
tls.enable=false
## tls url
##
## Value: "tls+nmq-tcp://host:port"
tls.url=tls+nmq-tcp://0.0.0.0:8883
## tls key password
## String containing the user's password. Only used if the private keyfile
## is password-protected.
## Quote "" is not needed
##
## Value: String
## tls.key_password=yourpass
## tls keyfile
## Path to the file containing the user's private PEM-encoded key.
##
## Value: File
tls.keyfile=/etc/certs/key.pem
## tls cert file
## Path to a file containing the user certificate.
##
## Value: File
tls.certfile=/etc/certs/cert.pem
## tls ca cert file
## Path to the file containing PEM-encoded CA certificates. The CA certificates
## are used during server authentication and when building the client certificate chain.
##
## Value: File
tls.cacertfile=/etc/certs/cacert.pem
## A server only does x509-path validation in mode verify_peer,
## as it then sends a certificate request to the client (this
## message is not sent if the verify option is verify_none).
## You can then also want to specify option fail_if_no_peer_cert.
##
## Value: true: verify_peer | false: verify_none
tls.verify_peer=false
## Used together with {verify, verify_peer} by an SSL server. If set to true,
## the server fails if the client does not have a certificate to send, that is,
## sends an empty certificate.
##
## Value: true | false
tls.fail_if_no_peer_cert=false
##============================================================
## WebSocket
##============================================================
## allow websocket
##
## Value: true | false
websocket.enable=true
## websocket url
##
## Value: "nmq-ws://host:port/path"
websocket.url=nmq-ws://0.0.0.0:8083/mqtt
## websocket tls url
##
## Value: "nmq-wss://host:port/path"
websocket.tls_url=nmq-wss://0.0.0.0:8084/mqtt
##============================================================
## Http server
##============================================================
## allow http server
##
## Value: true | false
http_server.enable=false
## http server port
##
## Value: 0 - 65535
http_server.port=8081
## parallel for http server
## Handle a specified maximum number of outstanding requests
##
## Value: 1-infinity
http_server.parallel=32
## http server username
##
## Value: String
http_server.username=admin
## http server password
##
## Value: String
http_server.password=public
## http server auth type
## If set auth_type=jwt, make sure you have built JWT dependency with `-DENABLE_JWT=ON` first.
##
## Value: basic | jwt
http_server.auth_type=basic
## http server jwt public key file
## Used together with 'http_server.auth_type=jwt',
## Path to the file containing the user's private key.
##
## Value: File
http_server.jwt.public.keyfile=/etc/certs/jwt/jwtRS256.key.pub
## http server jwt private key file
## Used together with 'http_server.auth_type=jwt',
## Path to the file containing the user's publick key.
##
## Value: File
http_server.jwt.private.keyfile=/etc/certs/jwt/jwtRS256.key
## ------------------ Logging Config ------------------ ##
## Where to emit the logs.
##
## - file: write logs to file
## - console: write logs to standard I/O
## - syslog: write logs to syslog
## Value: file | console | syslog
## Example: file,console,syslog
log.to=file,console
## The log severity level.
##
## Value: trace | debug | info | warn | error | fatal
##
## Note: Only the messages with severity level higher than or equal to
## this level will be logged.
##
## Default: warn
log.level=info
## The dir for log files.
##
## Value: Folder
log.dir=/tmp
## The log filename for logs of level specified in "log.level".
##
## Value: String
## Default: nanomq.log
log.file=nanomq.log
## Maximum size of each log file.
##
## Value: Number
## Default: 10M
## Supported Unit: KB | MB | GB
log.rotation.size=10MB
## Maximum rotation count of log files.
##
## Value: Number
## Default: 5
log.rotation.count=5
##============================================================
## Authorization
##============================================================
##auth.1.login = admin
##auth.1.password = public
##auth.2.login = client
##auth.2.password = public
##--------------------------------------------------------------------
## HTTP Authorization
##--------------------------------------------------------------------
## Enable Authentication/ACL with HTTP API
##
## Value: true | false
auth.http.enable = false
## HTTP URL API path for Auth Request
##
## Value: URL
##
## Examples: http://127.0.0.1:80/mqtt/auth, https://[::1]:80/mqtt/auth
auth.http.auth_req.url = http://127.0.0.1:80/mqtt/auth
## HTTP Request Method for Auth Request
##
## Value: post | get
auth.http.auth_req.method = post
## HTTP Request Headers for Auth Request, Content-Type header is configured by default.
## The possible values of the Content-Type header: application/x-www-form-urlencoded, application/json
##
## Examples: auth.http.auth_req.headers.accept = */*
auth.http.auth_req.headers.content-type = application/x-www-form-urlencoded
## Parameters used to construct the request body or query string parameters
## When the request method is GET, these parameters will be converted into query string parameters
## When the request method is POST, the final format is determined by content-type
##
## Available Variables:
## - %u: username
## - %c: clientid
## - %a: ipaddress
## - %r: protocol
## - %P: password
## - %p: sockport of server accepted
## - %C: common name of client TLS cert
## - %d: subject of client TLS cert
##
## Value: <K1>=<V1>,<K2>=<V2>,...
auth.http.auth_req.params = clientid=%c,username=%u,password=%P
## HTTP URL API path for SuperUser Request
##
## Value: URL
##
## Examples: http://127.0.0.1:80/mqtt/superuser, https://[::1]:80/mqtt/superuser
# auth.http.super_req.url = http://127.0.0.1:80/mqtt/superuser
## Time-out time for the request.
##
## Value: Duration
## -h: hour, e.g. '2h' for 2 hours
## -m: minute, e.g. '5m' for 5 minutes
## -s: second, e.g. '30s' for 30 seconds
##
## Default: 5s
auth.http.timeout = 5s
## Connection time-out time, used during the initial request,
## when the client is connecting to the server.
##
## Value: Duration
## -h: hour, e.g. '2h' for 2 hours
## -m: minute, e.g. '5m' for 5 minutes
## -s: second, e.g. '30s' for 30 seconds
##
## Default: 5s
auth.http.connect_timeout = 5s
## Connection process pool size
##
## Value: Number
auth.http.pool_size = 32
##============================================================
## WebHook
##============================================================
## Enable web hook
##
## Value: boolean
web.hook.enable=false
## Webhook URL
##
## Value: String
web.hook.url=http://127.0.0.1:80
## HTTP Headers
##
## Example:
## 1. web.hook.headers.content-type=application/json
## 2. web.hook.headers.accept=*
##
## Value: String
web.hook.headers.content-type=application/json
## The encoding format of the payload field in the HTTP body
## The payload field only appears in the on_message_publish and on_message_delivered actions
##
## Value: plain | base64 | base62
web.hook.body.encoding_of_payload_field=plain
##--------------------------------------------------------------------
## PEM format file of CA's
##
## Value: File
## web.hook.ssl.cacertfile =<PEM format file of CA's>
## Certificate file to use, PEM format assumed
##
## Value: File
## web.hook.ssl.certfile=<Certificate file to use>
## Private key file to use, PEM format assumed
##
## Value: File
## web.hook.ssl.keyfile=<Private key file to use>
## Turn on peer certificate verification
##
## Value: true | false
## web.hook.ssl.verify=false
## If not specified, the server's names returned in server's certificate is validated against
## what's provided `web.hook.url` config's host part.
## Setting to 'false' will make NanoMQ ignore unmatched server names.
## If set with a host name, the server's names returned in server's certificate is validated
## against this value.
##
## Value: true | false
## web.hook.ssl.server_name_indication=false
## Connection process pool size
##
## Value: Number
web.hook.pool_size=32
## Hook Rules
## These configuration items represent a list of events should be forwarded
##
## Format:
## web.hook.rule.<HookName>.<No>=<Spec>
#web.hook.rule.client.connect.1={"action": "on_client_connect"}
#web.hook.rule.client.connack.1={"action": "on_client_connack"}
#web.hook.rule.client.connected.1={"action": "on_client_connected"}
#web.hook.rule.client.disconnected.1={"action": "on_client_disconnected"}
#web.hook.rule.client.subscribe.1={"action": "on_client_subscribe"}
#web.hook.rule.client.unsubscribe.1={"action": "on_client_unsubscribe"}
#web.hook.rule.session.subscribed.1={"action": "on_session_subscribed"}
#web.hook.rule.session.unsubscribed.1={"action": "on_session_unsubscribed"}
#web.hook.rule.session.terminated.1={"action": "on_session_terminated"}
#web.hook.rule.message.publish.1={"action": "on_message_publish"}
#web.hook.rule.message.delivered.1={"action": "on_message_delivered"}
#web.hook.rule.message.acked.1={"action": "on_message_acked"}
##====================================================================
## MQTT Broker Bridge
##====================================================================
##--------------------------------------------------------------------
## NanoMQ supports multi-channels of MQTT bridging.
##
## Format:
## bridge.mqtt.{name}.{item} = {value}
## Example:
## 1:
## bridge.mqtt.emqx.address = mqtt-tcp://{host}:{port}
## bridge.mqtt.emqx.bridge_mode = true
## bridge.mqtt.emqx.username = admin
## bridge.mqtt.emqx.password = public
## bridge.mqtt.emqx.<item> = {value}
##
## 2:
## bridge.mqtt.aliyun.address = mqtt-tcp://{host}:{port}
## bridge.mqtt.aliyun.bridge_mode = true
## bridge.mqtt.aliyun.username = admin
## bridge.mqtt.aliyun.password = public
## bridge.mqtt.aliyun.<item> = {value}
## Whether to enable bridge mode for mqtt bridge
##
## This option is prepared for the mqtt broker which does not
## support bridge_mode such as the mqtt-plugin of the rabbitmq
##
## Value: boolean
bridge.mqtt.emqx.bridge_mode=false
## Bridge address: host:port .
##
## Value: String
## Example: mqtt-tcp://127.0.0.1:1883
## tls+mqtt-tcp://127.0.0.1:8883
## mqtt-quic://54.75.171.11:14567
bridge.mqtt.emqx.address=mqtt-tcp://broker.emqx.io:1883
## Protocol version of the bridge.
##
## Value: Enum
## - 5: mqttv5
## - 4: mqttv311
## - 3: mqttv31
bridge.mqtt.emqx.proto_ver=4
##--------------------------------------------------------------------
## The following config params only effective when set QUIC as the
## transport layer of bridging connection (mqtt-quic://{host}:{port})!
##
## Ping: interval of a sending keepalive packet via QUIC transport.
##
## Value: Duration
## Default: 120 seconds
bridge.mqtt.emqx.quic_keepalive=120
## Idle Timeout: How long a connection can go idle before it is gracefully shut down.
## 0 to disable timeout, which may lost disconnect event msg.
## Value: Duration
## Default: 120 seconds
bridge.mqtt.emqx.quic_idle_timeout=120
## Disconnect Timeout: How long to wait for an ACK before declaring
## a path dead and disconnecting, This affects stream living time.
## Value: Duration
## Default: 20 seconds
bridge.mqtt.emqx.quic_discon_timeout=20
## Handshake Timeout: the Max time NanoMQ waits for establishing QUIC connection
## How long a handshake can idle before it is discarded
## Value: Duration
## Default: 60 seconds
bridge.mqtt.emqx.quic_handshake_timeout=60
## Send Idle Timeout: Reset congestion control after being idle `SendIdleTimeout`
## Value: Duration
## Default: 60 seconds
bridge.mqtt.emqx.quic_send_idle_timeout=2
## Initial RTT: Initial RTT estimate. (ms)
## RTT: round trip time
## Default: 800ms
bridge.mqtt.emqx.quic_initial_rtt_ms=800
## Max Ack Delay: How long to wait after receiving data before sending an ACK.
## Value: Duration
## Default: 100ms
bridge.mqtt.emqx.quic_max_ack_delay_ms=100
## congestion_control: pick an algorithm from bbr or cubic
##
## Value: String
## Default: cubic
bridge.mqtt.emqx.quic_congestion_control=cubic
## Hybrid bridging: enable or disable the hybrid bridging mode
## Recommend to enable it when you want to take advantage of QUIC
## but not sure if the public network support QUIC.
## Value: true/false
## Default: false
bridge.mqtt.emqx.hybrid_bridging=false
## multi-stream: enable or disable the multi-stream bridging mode
## Still a feature WIP, but basic func is ready
## Value: true/false
## Default: false
bridge.mqtt.emqx.quic_multi_stream=false
## qos_priority: send QoS 1/2 msg in high prority
## QoS 0 messages remain as same
## Value: true/false
## Default: true
bridge.mqtt.emqx.quic_qos_priority=true
## QUIC 0RTT: enable or diable 0RTT, 0RTT is a feature of QUIC to re-establish
## connection quickly.
## Value: true/false
## Default: true
bridge.mqtt.emqx.quic_0rtt=true
##
##--------------------------------------------------------------------
## The ClientId of a remote bridge.
## Default random string.
##
## Value: String
#bridge.mqtt.emqx.clientid=bridge_client
## Ping: interval of a downward bridge.
##
## Value: Duration
## Default: 10 seconds
bridge.mqtt.emqx.keepalive=60
## The maximum backoff timeout.
## Reconnect after no more than backoff_max when bridge connection lost.
##
## Value: Duration
## Default: 60 seconds
bridge.mqtt.emqx.backoff_max=60
## The Clean start flag of a remote bridge.
##
## Value: boolean
## Default: false
##
## NOTE: Some IoT platforms require clean_start
## must be set to 'true'
bridge.mqtt.emqx.clean_start=false
## The username for a remote bridge.
## Quote "" is not needed
##
## Value: String
bridge.mqtt.emqx.username=username
## The password for a remote bridge.
##
## Value: String
bridge.mqtt.emqx.password=passwd
## Topics that need to be forward to IoTHUB
##
## The topic in msg send to remote will not be changed
## if nothing is filled in after the =
## Like this `bridge.mqtt.emqx.forwards.1.remote_topic=`
##
## Value: String
bridge.mqtt.emqx.forwards.1.remote_topic=fwd/topic1
bridge.mqtt.emqx.forwards.1.local_topic=topic1
## Override flag for retain
## Override the retain flag in the msg is about to forward
## with this option. (0|1) stand for override the retain flag with (0|1).
## 2 stands for keeping retain flag as it is.
##
## Value: Number (0|1|2)
bridge.mqtt.emqx.forwards.1.retain=2
## Need to subscribe to remote broker topics
##
## The topic in msg send to local will not be changed
## if nothing is filled in after the =
## Like this `bridge.mqtt.emqx.subscription.1.local_topic=`
##
## Value: String
bridge.mqtt.emqx.subscription.1.remote_topic=cmd/topic1
bridge.mqtt.emqx.subscription.1.local_topic=topic1
## Override flag for retain
## Override the retain flag in the msg is about to distribute to clients
## with this option. (0|1) stand for override the retain flag with (0|1).
## 2 stands for keeping retain flag as it is.
##
## Value: Number (0|1|2)
bridge.mqtt.emqx.subscription.1.retain=2
## Need to subscribe to remote topics QoS.
## Please set QoS for each subscription topic
## otherwise topic is invalid, NanoMQ won't sub to any topic
## Value: Number
bridge.mqtt.emqx.subscription.1.qos=1
## Need to subscribe to remote broker topics
##
## Value: String
bridge.mqtt.emqx.subscription.2.remote_topic=cmd/topic2
bridge.mqtt.emqx.subscription.2.local_topic=topic2
## Override flag for retain
##
## Value: Number (0|1|2)
bridge.mqtt.emqx.subscription.2.retain=2
## Need to subscribe to remote topics QoS.
##
## Value: Number
bridge.mqtt.emqx.subscription.2.qos=2
## parallel
## Handle a specified maximum number of outstanding requests
##
## Value: 1-infinity
bridge.mqtt.emqx.parallel=2
## max send queue length
## Handle a specified maximum number of message send queue length
##
## Value: 1-infinity
bridge.mqtt.emqx.max_send_queue_len=32
## max receive queue length
## Handle a specified maximum number of message receive queue length
##
## Value: 1-infinity
bridge.mqtt.emqx.max_recv_queue_len=128
# # Resend interval (ms)
# # The interval for resending the messages after failure recovered. (not related to trigger)
# # move from cache to bridge since 0.22.8
# # Value: 1-infinity (uint64)
bridge.mqtt.emqx.resend_interval=5000
# # Resend wait time (ms)
# # The waiting time for resending the messages after it is publiushed.
# # Tips: set it longer than keepalive if you dont want too much duplicated msg
# # Value: 1-infinity (uint64)
bridge.mqtt.emqx.resend_wait = 3000
# # max Ack wait time for each QoS msg (ms)
# # The waiting time for Acknowledgment of every QoS msg. Does not affect normal sending.
# # Tips: QoS msg requries a delivered ack, which occupies an AIO.
# # set a max timeout time to cancel the ack action.
# # once it is canceled, there is no more retrying of this msg.
# # Value: 1-infinity (uint64)
bridge.mqtt.emqx.cancel_timeout = 10000
## MQTT V5 Property for Connection ##
# # Maximum Packet Size
# #
# # If the Maximum Packet Size is not present, no limit on the packet size is imposed beyond
# # the limitations in the protocol as a result of the remaining length encoding and the protocol header sizes.
# # Value: 1 ~ 4294967295
# bridge.mqtt.emqx.connect.properties.maximum_packet_size=0
# # Receive Maximum
# #
# # The Client uses this value to limit the number of QoS 1 and QoS 2 publications that it is willing to process concurrently.
# # There is no mechanism to limit the QoS 0 publications that the Server might try to send.
# # The value of Receive Maximum applies only to the current Network Connection.
# # If the Receive Maximum value is absent then its value defaults to 65,535.
# #
# # Value: 1 ~ 65535
# bridge.mqtt.emqx.connect.properties.receive_maximum=65535
# # Topic Alias Maximum
# #
# # If the Topic Alias Maximum property is absent, the default value is 0.
# # This value indicates the highest value that the Client will accept as a Topic Alias sent by the Server.
# # The Client uses this value to limit the number of Topic Aliases that it is willing to hold on this Connection.
# # Default: 0
# # Value: 0 ~ 65535
# bridge.mqtt.emqx.connect.properties.topic_alias_maximum=0
# # Request Problem Information
# #
# # If the Request Problem Information is absent, the value of 1 is used.
# # The Client uses this value to indicate whether the Reason String or User Properties are sent in the case of failures.
# # If the value of Request Problem Information is 0, the Server MAY return a Reason String or User Properties on a CONNACK or DISCONNECT packet,
# # but MUST NOT send a Reason String or User Properties on any packet other than PUBLISH, CONNACK, or DISCONNECT.
# # If the value is 0 and the Client receives a Reason String or User Properties in a packet other than PUBLISH, CONNACK, or DISCONNECT,
# # it uses a DISCONNECT packet with Reason Code 0x82 (Protocol Error) as described in section 4.13 Handling errors.
# # If this value is 1, the Server MAY return a Reason String or User Properties on any packet where it is allowed.
# #
# # Default: 1
# # Value: 0 | 1
# bridge.mqtt.emqx.connect.properties.request_problem_infomation=0
# # Request Response Information
# #
# # If the Request Response Information is absent, the value of 0 is used.
# # The Client uses this value to request the Server to return Response Information in the CONNACK.
# # A value of 0 indicates that the Server MUST NOT return Response Information.
# # If the value is 1 the Server MAY return Response Information in the CONNACK packet.
# #
# # Default: 0
# # Value: 0 | 1
# bridge.mqtt.emqx.connect.properties.request_response_infomation=1
# # Session Expiry Interval
# #
# # If the Session Expiry Interval is absent the value 0 is used.
# # If it is set to 0, or is absent, the Session ends when the Network Connection is closed.
# # If the Session Expiry Interval is 4294967295 (UINT_MAX), the Session does not expire.
# #
# # Value: 0 ~ 4294967295
# bridge.mqtt.emqx.connect.properties.session_expiry_interval=0
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# # Value: Json string: key(String) - value(String)
# bridge.mqtt.emqx.connect.properties.user_property={"key1":"value1","key2":"value2"}
## MQTT V5 Property for Subscription ##
# # Subscription Identifier
# #
# # The Subscription Identifier can have the value of 1 to 268,435,455.
# # It is a Protocol Error if the Subscription Identifier has a value of 0.
# # It is a Protocol Error to include the Subscription Identifier more than once.
# # The Subscription Identifier is associated with any subscription created or modified as the result of this SUBSCRIBE packet.
# # If there is a Subscription Identifier, it is stored with the subscription.
# # If this property is not specified, then the absence of a Subscription Identifier is stored with the subscription.
# #
# # Value: 1 ~ 268,435,455
# bridge.mqtt.emqx.subscription.properties.identifier=1
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# # Value: Json string: key(String) - value(String)
# bridge.mqtt.emqx.subscription.properties.user_property={"key1":"value1","key2":"value2"}
# # Will topic
bridge.mqtt.emqx.will.topic=will_topic
# # Will qos
bridge.mqtt.emqx.will.qos=2
# # Will retain
bridge.mqtt.emqx.will.retain=false
# # Will payload
bridge.mqtt.emqx.will.payload=will_message
## MQTT V5 Property for Will ##
# # Payload Format Indicator
# #
# # 0 (0x00) Byte Indicates that the Will Message is unspecified bytes,
# # which is equivalent to not sending a Payload Format Indicator.
# #
# # 1 (0x01) Byte Indicates that the Will Message is UTF-8 Encoded Character Data.
# #
# # Default: 0
# # Value: 0 | 1
bridge.mqtt.emqx.will.properties.payload_format_indicator=0
# # Message Expiry Interval
# #
# # If present, the Four Byte value is the lifetime of the Will Message in seconds
# # and is sent as the Publication Expiry Interval when the Server publishes the Will Message.
# #
# # If absent, no Message Expiry Interval is sent when the Server publishes the Will Message.
bridge.mqtt.emqx.will.properties.message_expiry_interval=100
# # Content Type
# # The value of the Content Type is defined by the sending and receiving application.
# bridge.mqtt.emqx.will.properties.content_type=
# # Response Topic
# # The presence of a Response Topic identifies the Will Message as a Request.
# bridge.mqtt.emqx.will.properties.response_topic=
# # Correlation Data
# # The Correlation Data is used by the sender of the Request Message to identify which request
# # the Response Message is for when it is received.
# bridge.mqtt.emqx.will.properties.correlation_data=
# # Will Delay Interval
# #
# # If the Will Delay Interval is absent, the default value is 0 and there is no delay
# # before the Will Message is published.
# #
# # The Server delays publishing the Clients Will Message until the Will Delay Interval
# # has passed or the Session ends, whichever happens first.
# # If a new Network Connection to this Session is made before the Will Delay Interval has passed, the Server MUST NOT send the Will Message
bridge.mqtt.emqx.will.properties.will_delay_interval=30
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# # Value: Map[key(String) - value(String)]
bridge.mqtt.emqx.will.properties.user_property={"key1":"value1","key2":"value2"}
## enable tls
##
## Value: true | false
bridge.mqtt.emqx.tls.enable=false
## tls key password
## String containing the user's password. Only used if the private keyfile
## is password-protected.
##
## Value: String
## bridge.mqtt.emqx.tls.key_password=yourpass
## tls keyfile
## Path of the file containing the client's private key.
##
## Value: File
## bridge.mqtt.emqx.tls.keyfile=/etc/certs/key.pem
## tls cert file
## Path of the file containing the client certificate.
##
## Value: File
## bridge.mqtt.emqx.tls.certfile=/etc/certs/cert.pem
## tls ca cert file
## Path of the file containing the server's root CA certificate.
##
## This certificate is used to identify the Emqx IoT server and is publicly
## available.
##
## Value: File
## bridge.mqtt.emqx.tls.cacertfile=/etc/certs/cacert.pem
##--------------------------------------------------------------------
## Next bridge configuration
##
## bridge.mqtt.<name>.address=mqtt-tcp://{host}:{port}
## bridge.mqtt.<name>.bridge_mode=true
## bridge.mqtt.<name>.username=admin
## bridge.mqtt.<name>.password=public
## bridge.mqtt.<name>.<item>={value}
##
##--------------------------------------------------------------------
## SQLite Config ##
## Enable sqlite cache
## Whether to enable sqlite
##
## Value: boolean
bridge.sqlite.enable=false
## Max message limitation for caching
## ( 0 means ineffective )
## Value: 1-infinity
bridge.sqlite.disk_cache_size=102400
## Mounted file path
##
## Value: path
#bridge.sqlite.mounted_file_path=/tmp/
## The threshold of flushing messages to flash.
##
## Value: 1-infinity
bridge.sqlite.flush_mem_threshold=100
##====================================================================
## AWS IoT Core Bridge
##====================================================================
##--------------------------------------------------------------------
## NanoMQ supports multiple aws bridging.
##
## Format:
## aws.bridge.mqtt.{name}.{item} = {value}
## aws endpoint
##
## Value: String
aws.bridge.mqtt.aws.host=localhost
## aws mqtt port
##
## Value: String
aws.bridge.mqtt.aws.port=8883
## Protocol version of the bridge.
##
## Value: Enum
## - 5: mqttv5
## - 4: mqttv311
aws.bridge.mqtt.aws.proto_ver=4
## Whether to enable bridge mode for mqtt bridge
##
## This option is prepared for the mqtt broker which does not
## support bridge_mode such as the mqtt-plugin of the rabbitmq
##
## Value: boolean
aws.bridge.mqtt.aws.bridge_mode=false
## The ClientId of a remote bridge.
## Default random string.
##
## Value: String
aws.bridge.mqtt.aws.clientid=aws_bridge_client
## Ping interval of a down bridge.
##
## Value: Duration
## Default: 10 seconds
aws.bridge.mqtt.aws.keepalive=60
## The Clean start flag of a remote bridge.
##
## Value: boolean
## Default: true
##
## NOTE: Some IoT platforms require clean_start
## must be set to 'true'
aws.bridge.mqtt.aws.clean_start=true
## The username for a remote bridge.
##
## Value: String
# aws.bridge.mqtt.aws.username=username
## The password for a remote bridge.
##
## Value: String
# aws.bridge.mqtt.aws.password=passwd
## Topics that need to be forward to IoTHUB
##
## Value: String
aws.bridge.mqtt.aws.forwards.1.remote_topic=fwd/topic1
aws.bridge.mqtt.aws.forwards.1.local_topic=topic1
## Override flag for retain
##
## Value: Number (0|1|2)
aws.bridge.mqtt.aws.forwards.1.retain=2
## Need to subscribe to remote broker topics
##
## Value: String
aws.bridge.mqtt.aws.subscription.1.remote_topic=cmd/topic1
aws.bridge.mqtt.aws.subscription.1.local_topic=topic1
## Override flag for retain
##
## Value: Number (0|1|2)
aws.bridge.mqtt.aws.subscription.1.retain=2
## Need to subscribe to remote topics QoS.
##
## Value: Number
aws..mqtt.aws.subscription.1.qos=1
## Need to subscribe to remote broker topics
##
## Value: String
aws.bridge.mqtt.aws.subscription.2.remote_topic=cmd/topic2
aws.bridge.mqtt.aws.subscription.2.local_topic=topic2
## Need to subscribe to remote topics QoS.
##
## Value: Number
aws.bridge.mqtt.aws.subscription.2.qos=2
## parallel
## Handle a specified maximum number of outstanding requests
##
## Value: 1-infinity
aws.bridge.mqtt.aws.parallel=2
## tls config ##
## enable tls
##
## Value: true | false
aws.bridge.mqtt.aws.tls.enable=true
## tls key password
## String containing the user's password. Only used if the private keyfile
## is password-protected.
##
## Value: String
## aws.bridge.mqtt.aws.tls.key_password=yourpass
## tls keyfile
## Path of the file containing the client's private key.
##
## Value: File
aws.bridge.mqtt.aws.tls.keyfile=/etc/certs/key.pem
## tls cert file
## Path of the file containing the client certificate.
##
## Value: File
aws.bridge.mqtt.aws.tls.certfile=/etc/certs/cert.pem
## tls ca cert file
## Path of the file containing the server's root CA certificate.
##
## This certificate is used to identify the AWS IoT server and is publicly
## available.
##
## Value: File
aws.bridge.mqtt.aws.tls.cacertfile=/etc/certs/cacert.pem
## A server only does x509-path validation in mode verify_peer,
## as it then sends a certificate request to the client (this
## message is not sent if the verify option is verify_none).
## You can then also want to specify option fail_if_no_peer_cert.
##
## Value: true: verify_peer | false: verify_none
aws.bridge.mqtt.aws.tls.verify_peer=false
## Used together with {verify, verify_peer} by an SSL server. If set to true,
## the server fails if the client does not have a certificate to send, that is,
## sends an empty certificate.
##
## Value: true | false
aws.bridge.mqtt.aws.tls.fail_if_no_peer_cert=false
##============================================================
## MQTT Rule Engine
##============================================================
## Rule engine option, when persistence with
## rule engine, this option is must be ON.
##
## Value: ON | OFF
rule_option=ON
## Rule engine plugins option
## Choose a plugin to enable
##
## Value: enable/disable
rule_option.sqlite=enable
## Rule engine plugins option
## Choose a plugin to enable
##
## Value: enable/disable
rule_option.repub=enable
## Rule engine plugins option
## Choose a plugin to enable
##
## Value: enable/disable
rule_option.mysql=enable
##====================================================================
## MQTT Rule Engine for Sqlite
##====================================================================
## Hot updatable
## Rule engine option SQLite3 database path
## Rule engine db path, default is exec path.
##
## Value: File
rule.sqlite.path=/tmp/sqlite_rule.db
## Rule engine option SQLite3 database table name
## Rule engine db table name.
##
## Value: String
rule.sqlite.1.table=broker
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.sqlite.event.publish.1.sql="SELECT payload.x.y as y, payload.z as z FROM "#" WHERE y > 10 and z != 'str'"
## Rule engine option SQLite3 database table name
## Rule engine db table name.
##
## Value: String
rule.sqlite.2.table=broker1
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.sqlite.event.publish.2.sql="SELECT * FROM "abc""
## Rule engine option SQLite3 database table name
## Rule engine db table name.
##
## Value: String
rule.sqlite.3.table=broker2
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.sqlite.event.publish.3.sql="SELECT payload, qos FROM "#" WHERE qos > 0"
##====================================================================
## MQTT Rule Engine for Repub
##====================================================================
## Repub address: host:port .
##
## Value: String
## Example: mqtt-tcp://127.0.0.1:1883
rule.repub.1.address=mqtt-tcp://localhost:1883
## Repub topic .
##
## Value: String
## Example: topic/repub
rule.repub.1.topic=topic/repub1
## Protocol version of the Repub.
##
## Value: Enum
## - 5: mqttv5
## - 4: mqttv311
## - 3: mqttv31
rule.repub.1.proto_ver=4
## The ClientId of a Repub client.
## Default random string.
##
## Value: String
rule.repub.1.clientid=repub_client1
## Ping interval of a Repub client.
##
## Value: Duration
## Default: 10 seconds
rule.repub.1.keepalive=60
## The Clean start flag of a Repub client.
##
## Value: boolean
## Default: true
##
## NOTE: Some IoT platforms require clean_start
## must be set to 'true'
rule.repub.1.clean_start=true
## The username for a Repub client.
##
## Value: String
rule.repub.1.username=username
## The password for a Repub.
##
## Value: String
rule.repub.1.password=passwd
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.repub.event.publish.1.sql="SELECT payload.x.y as y, payload.z as z FROM "#" WHERE y > 10 and z != 'str'"
## Repub address: host:port .
##
## Value: String
## Example: mqtt-tcp://127.0.0.1:1883
rule.repub.2.address=mqtt-tcp://localhost:1885
## Repub topic .
##
## Value: String
## Example: topic/repub
rule.repub.2.topic=topic/repub2
## Protocol version of the Repub.
##
## Value: Enum
## - 5: mqttv5
## - 4: mqttv311
## - 3: mqttv31
rule.repub.2.proto_ver=4
## The ClientId of a Repub client.
## Default random string.
##
## Value: String
rule.repub.2.clientid=repub_client2
## Ping interval of a Repub client.
##
## Value: Duration
## Default: 10 seconds
rule.repub.2.keepalive=60
## The Clean start flag of a Repub client.
##
## Value: boolean
## Default: true
##
## NOTE: Some IoT platforms require clean_start
## must be set to 'true'
rule.repub.2.clean_start=true
## The username for a Repub client.
##
## Value: String
rule.repub.2.username=username
## The password for a Repub.
##
## Value: String
rule.repub.2.password=passwd
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.repub.event.publish.2.sql="SELECT topic, payload FROM "abc""
## Repub address: host:port .
##
## Value: String
## Example: mqtt-tcp://127.0.0.1:1883
rule.repub.3.address=mqtt-tcp://broker.emqx.io:1883
## Repub topic .
##
## Value: String
## Example: topic/repub
rule.repub.3.topic=topic/repub3
## Protocol version of the Repub.
##
## Value: Enum
## - 5: mqttv5
## - 4: mqttv311
## - 3: mqttv31
rule.repub.3.proto_ver=4
## The ClientId of a Repub client.
## Default random string.
##
## Value: String
rule.repub.3.clientid=repub_client3
## Ping interval of a Repub client.
##
## Value: Duration
## Default: 10 seconds
rule.repub.3.keepalive=60
## The Clean start flag of a Repub client.
##
## Value: boolean
## Default: true
##
## NOTE: Some IoT platforms require clean_start
## must be set to 'true'
rule.repub.3.clean_start=true
## The username for a Repub client.
##
## Value: String
rule.repub.3.username=username
## The password for a Repub.
##
## Value: String
rule.repub.3.password=passwd
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.repub.event.publish.3.sql="SELECT * FROM "#" "
##====================================================================
## MQTT Rule Engine for Mysql
##====================================================================
## Rule engine option mysql database name
## Rule engine db path, default is exec path.
##
## Value: File
rule.mysql.name=mysql_rule.db
## Rule engine option mysql database table name
## Rule engine db table name.
##
## Value: String
rule.mysql.1.table=broker
## The host for a mqsql client.
##
## Value: String
rule.mysql.1.host=localhost
## The username for a mqsql client.
##
## Value: String
rule.mysql.1.username=username
## The password for a Repub.
##
## Value: String
rule.mysql.1.password=password
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.mysql.event.publish.1.sql="SELECT payload.x.y as y, payload.z as z FROM "#" WHERE y > 10 and z != 'str'"
## Rule engine option mysql database table name
## Rule engine db table name.
##
## Value: String
rule.mysql.2.table=broker1
## The host for a mqsql client.
##
## Value: String
rule.mysql.2.host=localhost
## The username for a mqsql client.
##
## Value: String
rule.mysql.2.username=username
## The password for a Repub.
##
## Value: String
rule.mysql.2.password=password
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.mysql.event.publish.2.sql="SELECT * FROM "abc""
## Rule engine option mysql database table name
## Rule engine db table name.
##
## Value: String
rule.mysql.3.table=broker2
## The host for a mqsql client.
##
## Value: String
rule.mysql.3.host=localhost
## The username for a mqsql client.
##
## Value: String
rule.mysql.3.username=username
## The password for a Repub.
##
## Value: String
rule.mysql.3.password=password
## Rule engine option sql
## Rule engine sql clause.
##
## Value: String
rule.mysql.event.publish.3.sql="SELECT payload, qos FROM "#" WHERE qos > 0"