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

1514 lines
40 KiB
Plaintext
Raw Normal View History

# 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"