emqx_gateway_schema { dtls_listener_acceptors.desc: """Size of the acceptor pool.""" dtls_listener_dtls_opts.desc: """DTLS socket options""" gateway_common_authentication.desc: """Default authentication configs for all the gateway listeners. For per-listener overrides see authentication in listener configs""" gateway_common_clientinfo_override.desc: """ClientInfo override.""" gateway_common_clientinfo_override_clientid.desc: """Template for overriding clientid.""" gateway_common_clientinfo_override_password.desc: """Template for overriding password.""" gateway_common_clientinfo_override_username.desc: """Template for overriding username.""" gateway_common_enable.desc: """Whether to enable this gateway""" gateway_common_enable_stats.desc: """Whether to enable client process statistic""" gateway_common_idle_timeout.desc: """The idle time of the client connection process. It has two purposes: 1. A newly created client process that does not receive any client requests after that time will be closed directly. 2. A running client process that does not receive any client requests after this time will go into hibernation to save resources.""" gateway_common_listener_access_rules.desc: """The access control rules for this listener. See: https://github.com/emqtt/esockd#allowdeny""" gateway_common_listener_bind.desc: """The IP address and port that the listener will bind.""" gateway_common_listener_enable.desc: """Enable the listener.""" gateway_common_listener_enable_authn.desc: """Set true (default) to enable client authentication on this listener. When set to false clients will be allowed to connect without authentication.""" gateway_common_listener_max_conn_rate.desc: """Maximum connections per second.""" gateway_common_listener_max_connections.desc: """Maximum number of concurrent connections.""" gateway_mountpoint.desc: """When publishing or subscribing, prefix all topics with a mountpoint string. The prefixed string will be removed from the topic name when the message is delivered to the subscriber. The mountpoint is a way that users can use to implement isolation of message routing between different listeners. For example if a client A subscribes to `t` with `listeners.tcp.\.mountpoint` set to `some_tenant`, then the client actually subscribes to the topic `some_tenant/t`. Similarly, if another client B (connected to the same listener as the client A) sends a message to topic `t`, the message is routed to all the clients subscribed `some_tenant/t`, so client A will receive the message, with topic name `t`. Set to `""` to disable the feature. Supported placeholders in mountpoint string:
- ${clientid}: clientid
- ${username}: username
- ${endpoint_name}: endpoint name""" listener_name_to_settings_map.desc: """A map from listener names to listener settings.""" ssl_listener_options.desc: """SSL Socket options.""" tcp_listener_acceptors.desc: """Size of the acceptor pool.""" tcp_listener_proxy_protocol.desc: """Enable the Proxy Protocol V1/2 if the EMQX cluster is deployed behind HAProxy or Nginx. See: https://www.haproxy.com/blog/haproxy/proxy-protocol/""" tcp_listener_proxy_protocol_timeout.desc: """Timeout for proxy protocol. EMQX will close the TCP connection if proxy protocol packet is not received within the timeout.""" tcp_listener_tcp_opts.desc: """Setting the TCP socket options.""" tcp_listeners.desc: """Settings for the TCP listeners.""" tcp_udp_listeners.desc: """Settings for the listeners.""" udp_listener_active_n.desc: """Specify the {active, N} option for the socket. See: https://erlang.org/doc/man/inet.html#setopts-2""" udp_listener_buffer.desc: """Size of the user-space buffer for the socket.""" udp_listener_recbuf.desc: """Size of the kernel-space receive buffer for the socket.""" udp_listener_reuseaddr.desc: """Allow local reuse of port numbers.""" udp_listener_sndbuf.desc: """Size of the kernel-space send buffer for the socket.""" udp_listener_udp_opts.desc: """Settings for the UDP sockets.""" udp_listeners.desc: """Settings for the UDP listeners.""" fields_ws_opts_path.desc: """WebSocket's MQTT protocol path. So the address of EMQX Broker's WebSocket is: ws://{ip}:{port}/mqtt""" fields_ws_opts_path.label: """WS MQTT Path""" fields_ws_opts_piggyback.desc: """Whether a WebSocket message is allowed to contain multiple MQTT packets.""" fields_ws_opts_piggyback.label: """MQTT Piggyback""" fields_ws_opts_compress.desc: """If true, compress WebSocket messages using zlib.
The configuration items under deflate_opts belong to the compression-related parameter configuration.""" fields_ws_opts_compress.label: """Ws compress""" fields_ws_opts_idle_timeout.desc: """Close transport-layer connections from the clients that have not sent MQTT CONNECT message within this interval.""" fields_ws_opts_idle_timeout.label: """WS idle timeout""" fields_ws_opts_max_frame_size.desc: """The maximum length of a single MQTT packet.""" fields_ws_opts_max_frame_size.label: """Max frame size""" fields_ws_opts_fail_if_no_subprotocol.desc: """If true, the server will return an error when the client does not carry the Sec-WebSocket-Protocol field.
Note: WeChat applet needs to disable this verification.""" fields_ws_opts_fail_if_no_subprotocol.label: """Fail if no subprotocol""" fields_ws_opts_supported_subprotocols.desc: """Comma-separated list of supported subprotocols.""" fields_ws_opts_supported_subprotocols.label: """Supported subprotocols""" fields_ws_opts_check_origin_enable.desc: """If true, origin HTTP header will be validated against the list of allowed origins configured in check_origins parameter.""" fields_ws_opts_check_origin_enable.label: """Check origin""" fields_ws_opts_allow_origin_absence.desc: """If false and check_origin_enable is true, the server will reject requests that don't have origin HTTP header.""" fields_ws_opts_allow_origin_absence.label: """Allow origin absence""" fields_ws_opts_check_origins.desc: """List of allowed origins.
See check_origin_enable.""" fields_ws_opts_check_origins.label: """Allowed origins""" fields_ws_opts_proxy_port_header.desc: """HTTP header used to pass information about the client port. Relevant when the EMQX cluster is deployed behind a load-balancer.""" fields_ws_opts_proxy_port_header.label: """Proxy port header""" fields_ws_opts_proxy_address_header.desc: """HTTP header used to pass information about the client IP address. Relevant when the EMQX cluster is deployed behind a load-balancer.""" fields_ws_opts_proxy_address_header.label: """Proxy address header""" }