Download OpenAPI specification:
EMQX Dedicated REST API
List all currently banned client IDs, usernames and IP addresses.
Filters are supported. Since filters are mutually exclusive, only one filter is allowed in a query.
page | integer >= 1 Default: 1 Example: page=1 Page number of the results to fetch. |
limit | integer [ 1 .. 10000 ] Default: 100 Example: limit=50 Results per page |
clientid | string Query the banning rules with an exact client ID. |
username | string Query the banning rules with an exact username. |
peerhost | string Example: peerhost=127.0.0.1 Query the banning rules with an exact IP address. |
like_clientid | string Fuzzy query banning rules with a regular expression for client ID. |
like_username | string Fuzzy query banning rules with a regular expression for username. |
like_peerhost | string Example: like_peerhost=127.0.0.1 Fuzzy query banning rules with a regular expression for IP address. |
like_peerhost_net | string Example: like_peerhost_net=192.1.0.0/16 Fuzzy query banning rules with a regular expression for CIDR. |
{- "data": [
- {
- "as": "username",
- "at": "2021-10-25T21:48:47+08:00",
- "by": "mgmt_api",
- "reason": "Too many requests",
- "until": "2030-11-11T10:24:00+08:00",
- "who": "Banned name"
}
], - "meta": {
- "count": 0,
- "hasnext": true,
- "limit": 50,
- "page": 1
}
}
Add a client ID, username or IP address to the blacklist.
as required | string Enum: "clientid" "username" "peerhost" "clientid_re" "username_re" "peerhost_net" Ban method, which can be exact client ID, client ID regular expression, exact username, username regular expression, |
integer or string The start time of the ban, the format is rfc3339, the default is the time when the operation was initiated. | |
by | string Initiator of the ban. |
reason | string Ban reason, record the reason why the current object was banned. |
(integer or string) or string Default: "infinity" The end time of the ban, the format is rfc3339, the default is the time when the operation was initiated + 1 year. | |
who required | string Ban object, specific client ID, username or IP address. |
{- "as": "username",
- "at": "2021-10-25T21:48:47+08:00",
- "by": "mgmt_api",
- "reason": "Too many requests",
- "until": "2030-11-11T10:24:00+08:00",
- "who": "Banned name"
}
{- "data": [
- {
- "as": "username",
- "at": "2021-10-25T21:48:47+08:00",
- "by": "mgmt_api",
- "reason": "Too many requests",
- "until": "2030-11-11T10:24:00+08:00",
- "who": "Banned name"
}
]
}
Remove a client ID, username or IP address from the blacklist.
as required | string Enum: "clientid" "username" "peerhost" "clientid_re" "username_re" "peerhost_net" Example: username Ban method, which can be exact client ID, client ID regular expression, exact username, username regular expression, |
who required | string Example: Badass Ban object, specific client ID, username or IP address. |
{- "code": "NOT_FOUND",
- "message": "string"
}
Unsubscribe bulk
clientid required | string |
topic | string Topic name |
[- {
- "topic": "testtopic/#"
}
]
{- "code": "CLIENTID_NOT_FOUND",
- "message": "string"
}
Subscribe
clientid required | string |
nl | integer Default: 0 No local |
qos | integer [ 0 .. 2 ] Default: 0 QoS |
rap | integer Default: 0 Retain as published |
rh | integer Default: 0 Retain handling |
topic required | string Topic name |
{- "nl": 0,
- "qos": 0,
- "rap": 0,
- "rh": 0,
- "topic": "testtopic/#"
}
{- "clientid": "emqx_clientid_xx128cdhfc",
- "durable": false,
- "nl": 0,
- "node": "emqx@127.0.0.1",
- "qos": 0,
- "rap": 0,
- "rh": 0,
- "topic": "testtopic/1"
}
Get clients info by client ID
clientid required | string |
{- "listener": "tcp:default",
- "subscriptions_max": "infinity",
- "send_cnt": 4,
- "mailbox_len": 0,
- "port": 52571,
- "inflight_cnt": 0,
- "send_msg.dropped": 0,
- "clean_start": true,
- "mqueue_max": 1000,
- "recv_cnt": 4,
- "expiry_interval": 0,
- "mqueue_len": 0,
- "proto_ver": 5,
- "send_msg": 0,
- "send_pkt": 4,
- "send_msg.dropped.expired": 0,
- "is_bridge": false,
- "send_msg.qos2": 0,
- "mqueue_dropped": 0,
- "awaiting_rel_cnt": 0,
- "awaiting_rel_max": 100,
- "enable_authn": true,
- "send_msg.qos1": 0,
- "heap_size": 610,
- "is_persistent": false,
- "keepalive": 60,
- "recv_msg.dropped.await_pubrel_timeout": 0,
- "connected_at": "2024-01-01T12:34:56.789+08:00",
- "send_msg.dropped.too_large": 0,
- "recv_msg.qos1": 0,
- "send_msg.qos0": 0,
- "proto_name": "MQTT",
- "recv_msg.qos2": 0,
- "recv_oct": 49,
- "clientid": "01",
- "recv_msg.dropped": 0,
- "send_oct": 31,
- "durable": false,
- "connected": true,
- "recv_msg.qos0": 0,
- "peerport": 52571,
- "recv_msg": 0,
- "mountpoint": "null",
- "recv_pkt": 4,
- "inflight_max": 32,
- "subscriptions_cnt": 1,
- "username": null,
- "node": "emqx@127.0.0.1",
- "reductions": 6836,
- "created_at": "2024-01-01T12:34:56.789+08:00",
- "send_msg.dropped.queue_full": 0,
- "ip_address": "127.0.0.1"
}
List clients
page | integer >= 1 Default: 1 Example: page=1 Page number of the results to fetch. |
node | string Example: node=emqx@127.0.0.1 Node name |
limit | integer [ 1 .. 10000 ] Default: 100 Example: limit=50 Results per page |
username | Array of strings User name of client when connecting |
ip_address | string Example: ip_address=127.0.0.1 Client's IP address |
conn_state | string Enum: "connected" "idle" "disconnected" The current connection status of the client, the possible values are connected,idle,disconnected |
clean_start | boolean Indicate whether the client is using a brand new session |
proto_ver | string Protocol version |
like_clientid | string Fuzzy search |
like_username | string Fuzzy search |
integer or string Search client session creation time by greater than or equal method, rfc3339 or timestamp(millisecond) | |
integer or string Search client session creation time by less than or equal method, rfc3339 or timestamp(millisecond) | |
integer or string Search client connection creation time by greater than or equal method, rfc3339 or timestamp(epoch millisecond) | |
integer or string Search client connection creation time by less than or equal method, rfc3339 or timestamp(epoch millisecond) | |
clientid | Array of strings Client ID |
Array of strings or string Default: "all" Comma separated list of client fields to return in the response |
{- "data": [
- {
- "listener": "tcp:default",
- "subscriptions_max": "infinity",
- "send_cnt": 4,
- "mailbox_len": 0,
- "port": 52571,
- "inflight_cnt": 0,
- "send_msg.dropped": 0,
- "clean_start": true,
- "mqueue_max": 1000,
- "recv_cnt": 4,
- "expiry_interval": 0,
- "mqueue_len": 0,
- "proto_ver": 5,
- "send_msg": 0,
- "send_pkt": 4,
- "send_msg.dropped.expired": 0,
- "is_bridge": false,
- "send_msg.qos2": 0,
- "mqueue_dropped": 0,
- "awaiting_rel_cnt": 0,
- "awaiting_rel_max": 100,
- "enable_authn": true,
- "send_msg.qos1": 0,
- "heap_size": 610,
- "is_persistent": false,
- "keepalive": 60,
- "recv_msg.dropped.await_pubrel_timeout": 0,
- "connected_at": "2024-01-01T12:34:56.789+08:00",
- "send_msg.dropped.too_large": 0,
- "recv_msg.qos1": 0,
- "send_msg.qos0": 0,
- "proto_name": "MQTT",
- "recv_msg.qos2": 0,
- "recv_oct": 49,
- "clientid": "01",
- "recv_msg.dropped": 0,
- "send_oct": 31,
- "durable": false,
- "connected": true,
- "recv_msg.qos0": 0,
- "peerport": 52571,
- "recv_msg": 0,
- "mountpoint": "null",
- "recv_pkt": 4,
- "inflight_max": 32,
- "subscriptions_cnt": 1,
- "username": null,
- "node": "emqx@127.0.0.1",
- "reductions": 6836,
- "created_at": "2024-01-01T12:34:56.789+08:00",
- "send_msg.dropped.queue_full": 0,
- "ip_address": "127.0.0.1"
}
], - "meta": {
- "count": 1,
- "hasnext": false,
- "limit": 50,
- "page": 1
}
}
Get client subscriptions
clientid required | string |
[- {
- "clientid": "emqx_clientid_xx128cdhfc",
- "durable": false,
- "nl": 0,
- "node": "emqx@127.0.0.1",
- "qos": 0,
- "rap": 0,
- "rh": 0,
- "topic": "testtopic/1"
}
]
Unsubscribe
clientid required | string |
topic | string Topic name |
{- "topic": "testtopic/#"
}
{- "code": "CLIENTID_NOT_FOUND",
- "message": "string"
}
Get client mqueue messages
clientid required | string |
payload | string Default: "base64" Enum: "none" "base64" "plain" Client's inflight/mqueue messages payload encoding. |
max_payload_bytes | string Default: "1MB" Example: max_payload_bytes=32MB Client's inflight/mqueue messages payload limit. The total payload size of all messages in the response will not exceed this value. Messages beyond the limit will be silently omitted in the response. The only exception to this rule is when the first message payload is already larger than the limit, in this case, the first message will be returned in the response. |
string or string or string Example: position=none An opaque token that can then be in subsequent requests to get the next chunk of results: | |
limit | integer [ 1 .. 10000 ] Default: 100 Example: limit=50 Results per page |
{- "data": [
- {
- "from_clientid": "mqttx_59ac0a87",
- "from_username": "test-user",
- "mqueue_priority": 0,
- "msgid": "000611F460D57FA9F44500000D360002",
- "payload": "eyJmb28iOiAiYmFyIn0=",
- "publish_at": 1709055346487,
- "qos": 0,
- "topic": "t/test"
}
], - "meta": {
- "count": 100,
- "last": "1710785444656449826_10"
}
}
Subscribe bulk
clientid required | string |
nl | integer Default: 0 No local |
qos | integer [ 0 .. 2 ] Default: 0 QoS |
rap | integer Default: 0 Retain as published |
rh | integer Default: 0 Retain handling |
topic required | string Topic name |
[- {
- "nl": 0,
- "qos": 0,
- "rap": 0,
- "rh": 0,
- "topic": "testtopic/#"
}
]
[- {
- "clientid": "emqx_clientid_xx128cdhfc",
- "durable": false,
- "nl": 0,
- "node": "emqx@127.0.0.1",
- "qos": 0,
- "rap": 0,
- "rh": 0,
- "topic": "testtopic/1"
}
]
Get client in-flight messages
clientid required | string |
payload | string Default: "base64" Enum: "none" "base64" "plain" Client's inflight/mqueue messages payload encoding. |
max_payload_bytes | string Default: "1MB" Example: max_payload_bytes=32MB Client's inflight/mqueue messages payload limit. The total payload size of all messages in the response will not exceed this value. Messages beyond the limit will be silently omitted in the response. The only exception to this rule is when the first message payload is already larger than the limit, in this case, the first message will be returned in the response. |
string or string or string Example: position=none An opaque token that can then be in subsequent requests to get the next chunk of results: | |
limit | integer [ 1 .. 10000 ] Default: 100 Example: limit=50 Results per page |
{- "data": [
- {
- "from_clientid": "mqttx_59ac0a87",
- "from_username": "test-user",
- "msgid": "000611F460D57FA9F44500000D360002",
- "payload": "eyJmb28iOiAiYmFyIn0=",
- "publish_at": 1709055346487,
- "qos": 0,
- "topic": "t/test"
}
], - "meta": {
- "count": 100,
- "last": "1710785444656449826"
}
}
Start connector on all nodes in the cluster.
id required | string Example: http:my_http_connector The connector id. Must be of format {type}:{name}. |
operation required | string Value: "start" Example: start Operation can be one of: 'start'. |
{- "code": "BAD_REQUEST",
- "message": "string"
}
Test creating a new connector.
bridge_kafka.auth_gssapi_kerberos (object) or bridge_kafka.auth_username_password (object) or string or string Default: "none" Authentication configs. | |
bootstrap_hosts required | string A comma separated list of Kafka |
connect_timeout | string Default: "5s" Maximum wait time for TCP connection establishment (including authentication time if enabled). |
description | string Default: "" Descriptive text. |
enable | boolean Default: true Enable (true) or disable (false) this connector. |
metadata_request_timeout | string Default: "5s" Maximum wait time when fetching topic metadata. |
min_metadata_refresh_interval | string Default: "3s" Minimum time interval the client has to wait before refreshing Kafka broker and topic metadata. Setting too small value may add extra load on Kafka. |
name required | string The name of the connector. |
object (bridge_kafka.connector_resource_opts) | |
object (bridge_kafka.socket_opts) | |
object (bridge_kafka.ssl_client_opts) | |
tags | Array of strings Tags to annotate this config entry. |
type required | string Value: "kafka_consumer" The type of the connector. |
{- "authentication": {
- "password": "******",
- "username": "root"
}, - "connect_timeout": "15s",
- "description": "My example elasticsearch connector",
- "enable": true,
- "enable_pipelining": 100,
- "name": "elasticsearch_connector",
- "pool_size": 8,
- "pool_type": "random",
- "server": "127.0.0.1:9200",
- "ssl": {
- "enable": false
}, - "type": "elasticsearch"
}
{- "code": "TEST_FAILED",
- "message": "string"
}
Enable or Disable connector on all nodes in the cluster.
id required | string Example: http:my_http_connector The connector id. Must be of format {type}:{name}. |
enable required | boolean Example: true Whether to enable this connector. |
{- "code": "NOT_FOUND",
- "message": "string"
}
Get a connector by id.
id required | string Example: http:my_http_connector The connector id. Must be of format {type}:{name}. |
{- "actions": [
- "my_action"
], - "authentication": {
- "password": "******",
- "username": "root"
}, - "connect_timeout": "15s",
- "description": "My example elasticsearch connector",
- "enable": true,
- "enable_pipelining": 100,
- "name": "elasticsearch_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "pool_type": "random",
- "server": "127.0.0.1:9200",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "elasticsearch"
}
Update a connector by id.
id required | string Example: http:my_http_connector The connector id. Must be of format {type}:{name}. |
bridge_kafka.auth_gssapi_kerberos (object) or bridge_kafka.auth_username_password (object) or string or string Default: "none" Authentication configs. | |
bootstrap_hosts required | string A comma separated list of Kafka |
connect_timeout | string Default: "5s" Maximum wait time for TCP connection establishment (including authentication time if enabled). |
description | string Default: "" Descriptive text. |
enable | boolean Default: true Enable (true) or disable (false) this connector. |
metadata_request_timeout | string Default: "5s" Maximum wait time when fetching topic metadata. |
min_metadata_refresh_interval | string Default: "3s" Minimum time interval the client has to wait before refreshing Kafka broker and topic metadata. Setting too small value may add extra load on Kafka. |
object (bridge_kafka.connector_resource_opts) | |
object (bridge_kafka.socket_opts) | |
object (bridge_kafka.ssl_client_opts) | |
tags | Array of strings Tags to annotate this config entry. |
{- "authentication": {
- "password": "******",
- "username": "root"
}, - "connect_timeout": "15s",
- "description": "My example elasticsearch connector",
- "enable": true,
- "enable_pipelining": 100,
- "name": "elasticsearch_connector",
- "pool_size": 8,
- "pool_type": "random",
- "server": "127.0.0.1:9200",
- "ssl": {
- "enable": false
}, - "type": "elasticsearch"
}
{- "actions": [
- "my_action"
], - "authentication": {
- "password": "******",
- "username": "root"
}, - "connect_timeout": "15s",
- "description": "My example elasticsearch connector",
- "enable": true,
- "enable_pipelining": 100,
- "name": "elasticsearch_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "pool_type": "random",
- "server": "127.0.0.1:9200",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "elasticsearch"
}
[- {
- "actions": [
- "my_action"
], - "authentication": {
- "password": "******",
- "username": "root"
}, - "connect_timeout": "15s",
- "description": "My example elasticsearch connector",
- "enable": true,
- "enable_pipelining": 100,
- "name": "elasticsearch_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "pool_type": "random",
- "server": "127.0.0.1:9200",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "elasticsearch"
}, - {
- "actions": [
- "my_action"
], - "description": "My example oracle connector",
- "name": "oracle_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "oracle",
- "pool_size": 8,
- "resource_opts": {
- "health_check_interval": "15s",
- "start_timeout": "5s"
}, - "server": "127.0.0.1:1521",
- "service_name": "XE",
- "sid": "XE",
- "status": "connected",
- "type": "oracle",
- "username": "system"
}, - {
- "actions": [
- "my_action"
], - "database": "test",
- "description": "My example sqlserver connector",
- "driver": "ms-sql",
- "name": "sqlserver_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "pool_size": 8,
- "resource_opts": {
- "health_check_interval": "20s"
}, - "server": "127.0.0.1:1433",
- "status": "connected",
- "type": "sqlserver",
- "username": "sa"
}, - {
- "actions": [
- "my_action"
], - "description": "My example hstreamdb connector",
- "grpc_timeout": "30s",
- "name": "hstreamdb_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "resource_opts": {
- "health_check_interval": "15s",
- "start_timeout": "5s"
}, - "ssl": {
- "enable": false,
- "verify": "verify_peer"
}, - "status": "connected",
- "type": "hstreamdb",
}, - {
- "actions": [
- "my_action"
], - "description": "My example tdengine connector",
- "enable": true,
- "name": "tdengine_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "pool_size": 8,
- "server": "127.0.0.1:6041",
- "status": "connected",
- "type": "tdengine",
- "username": "root"
}, - {
- "actions": [
- "my_action"
], - "description": "My example rocketmq connector",
- "enable": true,
- "name": "rocketmq_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "resource_opts": {
- "health_check_interval": "15s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "servers": "127.0.0.1:9876",
- "status": "connected",
- "type": "rocketmq"
}, - {
- "actions": [
- "my_action"
], - "authentication": {
- "password": "******",
- "username": "root"
}, - "connect_timeout": "15s",
- "description": "My example iotdb connector",
- "enable": true,
- "enable_pipelining": 100,
- "iotdb_version": "v1.3.x",
- "name": "iotdb_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "pool_type": "random",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "iotdb"
}, - {
- "actions": [
- "my_action"
], - "description": "My example influxdb connector",
- "enable": true,
- "name": "influxdb_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "bucket": "example_bucket",
- "influxdb_type": "influxdb_api_v2",
- "org": "examlpe_org",
- "token": "example_token"
}, - "pool_size": 8,
- "server": "127.0.0.1:8086",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "influxdb"
}, - {
- "description": "My redis sentinel connector",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "database": 1,
- "password": "******",
- "pool_size": 8,
- "redis_type": "sentinel",
- "sentinel": "myredismaster",
- "servers": "127.0.0.1:6379,127.0.0.2:6379",
- "username": "test"
}, - "ssl": {
- "enable": false
}, - "status": "connected"
}, - {
- "actions": [
- "my_action"
], - "aws_access_key_id": "root",
- "aws_secret_access_key": "******",
- "description": "My example dynamo connector",
- "enable": true,
- "name": "dynamo_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "region": "us-west-2",
- "resource_opts": {
- "health_check_interval": "15s",
- "start_timeout": "5s"
}, - "status": "connected",
- "type": "dynamo",
}, - {
- "actions": [
- "my_action"
], - "database": "emqx_data",
- "enable": true,
- "name": "my_timescale_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "public",
- "pool_size": 8,
- "server": "127.0.0.1:5432",
- "ssl": {
- "ciphers": [ ],
- "depth": 10,
- "enable": false,
- "hibernate_after": "5s",
- "log_level": "notice",
- "reuse_sessions": true,
- "secure_renegotiate": true,
- "verify": "verify_peer",
- "versions": [
- "tlsv1.3",
- "tlsv1.2"
]
}, - "status": "connected",
- "type": "timescale",
- "username": "postgres"
}, - {
- "description": "My connector",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "resource_opts": {
- "health_check_interval": "45s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "server": "couchbase:8093",
- "ssl": {
- "enable": true
}, - "status": "connected",
- "username": "admin"
}, - {
- "description": "My connector",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 3,
- "proto_ver": "v5",
- "resource_opts": {
- "health_check_interval": "45s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "server": "127.0.0.1:1883",
- "status": "connected"
}, - {
- "actions": [
- "my_action"
], - "description": "My example mongodb_rs connector",
- "name": "mongodb_rs_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "database": "mqtt",
- "enable": true,
- "password": "******",
- "pool_size": 8,
- "srv_record": false,
- "username": "myuser"
}, - "status": "connected",
- "type": "mongodb_rs"
}, - {
- "description": "My redis single connector",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "database": 1,
- "password": "******",
- "pool_size": 8,
- "redis_type": "single",
- "server": "127.0.0.1:6379",
- "username": "test"
}, - "ssl": {
- "enable": false
}, - "status": "connected"
}, - {
- "actions": [
- "my_action"
], - "dbname": "example_db",
- "description": "My example greptimedb connector",
- "enable": true,
- "local_topic": "local/topic/#",
- "name": "demo",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "resource_opts": {
- "batch_size": 100,
- "batch_time": "20ms"
}, - "server": "127.0.0.1:4001",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "greptimedb",
- "username": "example_username"
}, - {
- "access_key_id": "ACCESS",
- "description": "My S3 connector",
- "enable": true,
- "host": "s3.eu-east-1.amazonaws.com",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "port": 443,
- "secret_access_key": "SECRET",
- "status": "connected",
- "transport_options": {
- "connect_timeout": "1s",
- "enable_pipelining": 1,
- "max_retries": 1,
- "pool_size": 4,
- "request_timeout": "60s",
- "ssl": {
- "enable": true,
- "verify": "verify_peer"
}
}
}, - {
- "actions": [
- "my_action"
], - "database": "mqtt",
- "description": "My example clickhouse connector",
- "name": "clickhouse_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "pool_size": 8,
- "status": "connected",
- "type": "clickhouse",
- "username": "default"
}, - {
- "actions": [
- "my_action"
], - "connect_timeout": "15s",
- "description": "my connector",
- "enable": true,
- "max_retries": 2,
- "name": "my_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pipelining": 100,
- "pool_size": 8,
- "resource_opts": {
- "health_check_interval": "30s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "service_account_json": {
- "client_email": "test@myproject.iam.gserviceaccount.com",
- "client_id": "123812831923812319190",
- "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test%40myproject.iam.gserviceaccount.com",
- "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQI...",
- "private_key_id": "kid",
- "project_id": "myproject",
- "type": "service_account"
}, - "status": "connected",
- "type": "gcp_pubsub_producer"
}, - {
- "account_key": "******",
- "account_name": "my_account_name",
- "description": "My connector",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "resource_opts": {
- "health_check_interval": "45s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "status": "connected"
}, - {
- "actions": [
- "my_action"
], - "description": "My example rabbitmq connector",
- "enable": true,
- "heartbeat": "30s",
- "name": "rabbitmq_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "pool_size": 8,
- "port": 5672,
- "server": "127.0.0.1",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "timeout": "5s",
- "type": "rabbitmq",
- "username": "guest",
- "virtual_host": "/"
}, - {
- "access_key_id": "12345",
- "description": "My connector",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "request_timeout": "10s",
- "resource_opts": {
- "health_check_interval": "45s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "s3_client": {
- "transport_options": {
- "connect_timeout": "1s",
- "enable_pipelining": 1,
- "max_retries": 1,
- "pool_size": 4,
- "request_timeout": "60s",
- "ssl": {
- "enable": true,
- "verify": "verify_peer"
}
}
}, - "s3tables_arn": "arn:aws:s3tables:sa-east-1:123456789012:bucket/mybucket",
- "secret_access_key": "******",
- "status": "connected"
}, - {
- "actions": [
- "my_action"
], - "description": "My example cassandra connector",
- "keyspace": "mqtt",
- "name": "cassandra_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "pool_size": 8,
- "servers": "127.0.0.1:9042",
- "status": "connected",
- "type": "cassandra",
- "username": "root"
}, - {
- "ack_mode": "no_ack",
- "ack_timeout": "10s",
- "actions": [
- "my_action"
], - "enable": true,
- "name": "syskeeper_forwarder",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 16,
- "server": "127.0.0.1:9092",
- "status": "connected",
- "type": "syskeeper_forwarder"
}, - {
- "actions": [
- "my_action"
], - "description": "My example mongodb_sharded connector",
- "name": "mongodb_sharded_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "database": "mqtt",
- "enable": true,
- "password": "******",
- "pool_size": 8,
- "srv_record": false,
- "username": "myuser"
}, - "status": "connected",
- "type": "mongodb_sharded"
}, - {
- "acceptors": 16,
- "actions": [
- "my_action"
], - "enable": true,
- "handshake_timeout": "16s",
- "listen": "127.0.0.1:9092",
- "name": "syskeeper_proxy",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "status": "connected",
- "type": "syskeeper_proxy"
}, - {
- "connect_timeout": "15s",
- "enable": true,
- "enable_pipelining": 100,
- "headers": {
- "content-type": "application/json"
}, - "name": "my_http_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 1,
- "pool_type": "hash",
- "status": "connected",
- "type": "http",
}, - {
- "account": "myorg-myaccount",
- "description": "My connector",
- "dsn": "snowflake",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "pool_size": 8,
- "resource_opts": {
- "health_check_interval": "45s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "server": "myorg-myaccount.snowflakecomputing.com",
- "status": "connected",
- "username": "admin"
}, - {
- "actions": [
- "my_action"
], - "connect_timeout": "10s",
- "enable": true,
- "max_retries": 2,
- "name": "my_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pipelining": 100,
- "pool_size": 8,
- "resource_opts": {
- "request_ttl": "60s"
}, - "service_account_json": {
- "client_email": "test@myproject.iam.gserviceaccount.com",
- "client_id": "123812831923812319190",
- "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test%40myproject.iam.gserviceaccount.com",
- "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQI...",
- "private_key_id": "kid",
- "project_id": "myproject",
- "type": "service_account"
}, - "status": "connected",
- "type": "gcp_pubsub_producer"
}, - {
- "actions": [
- "my_action"
], - "description": "My example influxdb connector",
- "enable": true,
- "name": "influxdb_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "database": "example_database",
- "influxdb_type": "influxdb_api_v1",
- "password": "******",
- "username": "example_username"
}, - "pool_size": 8,
- "server": "127.0.0.1:8086",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "influxdb"
}, - {
- "actions": [
- "my_action"
], - "description": "My example datalayers connector",
- "enable": true,
- "name": "datalayers_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "database": "example_database",
- "password": "******",
- "username": "example_username"
}, - "pool_size": 8,
- "server": "127.0.0.1:8361",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "datalayers"
}, - {
- "actions": [
- "my_action"
], - "authentication": "none",
- "connect_timeout": "5s",
- "description": "My example pulsar connector",
- "enable": true,
- "name": "pulsar_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "servers": "pulsar://127.0.0.1:6650",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "pulsar"
}, - {
- "actions": [
- "my_action"
], - "description": "My example mongodb_single connector",
- "name": "mongodb_single_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "database": "mqtt",
- "enable": true,
- "password": "******",
- "pool_size": 8,
- "srv_record": false,
- "username": "myuser"
}, - "status": "connected",
- "type": "mongodb_single"
}, - {
- "actions": [
- "my_action"
], - "aws_access_key_id": "your_access_key",
- "aws_secret_access_key": "aws_secret_key",
- "description": "My example kinesis connector",
- "max_retries": 2,
- "name": "kinesis_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "status": "connected",
- "type": "kinesis"
}, - {
- "actions": [
- "my_action"
], - "database": "emqx_data",
- "enable": true,
- "name": "my_pgsql_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "public",
- "pool_size": 8,
- "server": "127.0.0.1:5432",
- "ssl": {
- "ciphers": [ ],
- "depth": 10,
- "enable": false,
- "hibernate_after": "5s",
- "log_level": "notice",
- "reuse_sessions": true,
- "secure_renegotiate": true,
- "verify": "verify_peer",
- "versions": [
- "tlsv1.3",
- "tlsv1.2"
]
}, - "status": "connected",
- "type": "pgsql",
- "username": "postgres"
}, - {
- "actions": [
- "my_action"
], - "authentication": {
- "mechanism": "plain",
- "password": "******",
- "username": "username"
}, - "bootstrap_hosts": "localhost:9092",
- "connect_timeout": "5s",
- "enable": true,
- "metadata_request_timeout": "4s",
- "min_metadata_refresh_interval": "3s",
- "name": "my_kafka_producer_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "socket_opts": {
- "nodelay": true,
- "recbuf": "1024KB",
- "sndbuf": "1024KB",
- "tcp_keepalive": "none"
}, - "status": "connected",
- "type": "kafka_producer"
}, - {
- "actions": [
- "my_action"
], - "database": "test",
- "description": "My example mysql connector",
- "name": "mysql_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "pool_size": 8,
- "resource_opts": {
- "health_check_interval": "20s"
}, - "server": "127.0.0.1:3306",
- "status": "connected",
- "type": "mysql",
- "username": "root"
}, - {
- "description": "My redis cluster connector",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "password": "******",
- "pool_size": 8,
- "redis_type": "cluster",
- "servers": "127.0.0.1:6379,127.0.0.2:6379",
- "username": "test"
}, - "ssl": {
- "enable": false
}, - "status": "connected"
}, - {
- "actions": [
- "my_action"
], - "authentication": {
- "password": "******"
}, - "bootstrap_hosts": "xyz.sa-east1.gcp.confluent.cloud:9092",
- "connect_timeout": "5s",
- "enable": true,
- "metadata_request_timeout": "4s",
- "min_metadata_refresh_interval": "3s",
- "name": "my_confluent_producer_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "socket_opts": {
- "nodelay": true,
- "recbuf": "1024KB",
- "sndbuf": "1024KB",
- "tcp_keepalive": "none"
}, - "ssl": {
- "enable": true,
- "server_name_indication": "auto",
- "verify": "verify_none",
- "versions": [
- "tlsv1.3",
- "tlsv1.2"
]
}, - "status": "connected",
- "type": "confluent_producer"
}, - {
- "database": "test",
- "description": "My connector",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "******",
- "pool_size": 8,
- "resource_opts": {
- "health_check_interval": "45s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "server": "doris-fe:9030",
- "status": "connected",
- "username": "root"
}, - {
- "actions": [
- "my_action"
], - "database": "emqx_data",
- "enable": true,
- "name": "my_matrix_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "password": "public",
- "pool_size": 8,
- "server": "127.0.0.1:5432",
- "ssl": {
- "ciphers": [ ],
- "depth": 10,
- "enable": false,
- "hibernate_after": "5s",
- "log_level": "notice",
- "reuse_sessions": true,
- "secure_renegotiate": true,
- "verify": "verify_peer",
- "versions": [
- "tlsv1.3",
- "tlsv1.2"
]
}, - "status": "connected",
- "type": "matrix",
- "username": "postgres"
}, - {
- "actions": [
- "my_action"
], - "authentication": {
- "password": "******"
}, - "bootstrap_hosts": "namespace.servicebus.windows.net:9093",
- "connect_timeout": "5s",
- "enable": true,
- "metadata_request_timeout": "4s",
- "min_metadata_refresh_interval": "3s",
- "name": "my_azure_event_hub_producer_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "socket_opts": {
- "nodelay": true,
- "recbuf": "1024KB",
- "sndbuf": "1024KB",
- "tcp_keepalive": "none"
}, - "ssl": {
- "enable": true,
- "server_name_indication": "auto",
- "verify": "verify_none",
- "versions": [
- "tlsv1.3",
- "tlsv1.2"
]
}, - "status": "connected",
- "type": "azure_event_hub_producer"
}, - {
- "access_key_id": "******",
- "access_key_secret": "******",
- "actions": [
- "my_action"
], - "description": "My example tablestore connector",
- "enable": true,
- "instance_name": "myinstance",
- "name": "tablestore_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "status": "connected",
- "storage_model_type": "timeseries",
- "type": "tablestore"
}, - {
- "actions": [
- "my_action"
], - "description": "My example opents connector",
- "enable": true,
- "name": "opents_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "status": "connected",
- "type": "opents"
}, - {
- "description": "My connector",
- "enable": true,
- "filepath": "/tmp/my_log",
- "max_file_number": 7,
- "max_file_size": "10MB",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "resource_opts": {
- "health_check_interval": "45s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "status": "connected"
}, - {
- "bootstrap_hosts": "kafka.emqx.net:9092",
- "name": "my_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "resource_opts": {
- "health_check_interval": "30s",
- "start_after_created": true,
- "start_timeout": "5s"
}, - "status": "connected",
- "type": "kafka_consumer"
}
]
Create a new connector by type and name.
bridge_kafka.auth_gssapi_kerberos (object) or bridge_kafka.auth_username_password (object) or string or string Default: "none" Authentication configs. | |
bootstrap_hosts required | string A comma separated list of Kafka |
connect_timeout | string Default: "5s" Maximum wait time for TCP connection establishment (including authentication time if enabled). |
description | string Default: "" Descriptive text. |
enable | boolean Default: true Enable (true) or disable (false) this connector. |
metadata_request_timeout | string Default: "5s" Maximum wait time when fetching topic metadata. |
min_metadata_refresh_interval | string Default: "3s" Minimum time interval the client has to wait before refreshing Kafka broker and topic metadata. Setting too small value may add extra load on Kafka. |
name required | string The name of the connector. |
object (bridge_kafka.connector_resource_opts) | |
object (bridge_kafka.socket_opts) | |
object (bridge_kafka.ssl_client_opts) | |
tags | Array of strings Tags to annotate this config entry. |
type required | string Value: "kafka_consumer" The type of the connector. |
{- "authentication": {
- "password": "******",
- "username": "root"
}, - "connect_timeout": "15s",
- "description": "My example elasticsearch connector",
- "enable": true,
- "enable_pipelining": 100,
- "name": "elasticsearch_connector",
- "pool_size": 8,
- "pool_type": "random",
- "server": "127.0.0.1:9200",
- "ssl": {
- "enable": false
}, - "type": "elasticsearch"
}
{- "actions": [
- "my_action"
], - "authentication": {
- "password": "******",
- "username": "root"
}, - "connect_timeout": "15s",
- "description": "My example elasticsearch connector",
- "enable": true,
- "enable_pipelining": 100,
- "name": "elasticsearch_connector",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "pool_size": 8,
- "pool_type": "random",
- "server": "127.0.0.1:9200",
- "ssl": {
- "enable": false
}, - "status": "connected",
- "type": "elasticsearch"
}
List all rules
enable | boolean Filter enable/disable rules |
from | string Filter rules by from(topic), exact match |
like_id | string Filter rules by id, Substring matching |
like_from | string Filter rules by from(topic), Substring matching |
like_description | string Filter rules by description, Substring matching |
match_from | string Filter rules by from(topic), Mqtt topic matching |
action | Array of strings Filters rules that contain any of the given action id(s). When used in conjunction with source id filtering, the rules must contain sources and actions that match some of the criteria. |
source | Array of strings Filters rules that contain any of the given source id(s). When used in conjunction with action id filtering, the rules must contain sources and actions that match some of the criteria. |
page | integer >= 1 Default: 1 Example: page=1 Page number of the results to fetch. |
limit | integer [ 1 .. 10000 ] Default: 100 Example: limit=50 Results per page |
{- "data": [
- {
- "action_details": [
- {
- "name": "string",
- "status": "string",
- "type": "string"
}
], - "actions": [
- "webhook:my_webhook",
- {
- "args": {
- "payload": "${payload}",
- "topic": "t/1"
}, - "function": "republish"
}, - {
- "function": "console"
}
], - "created_at": "2021-12-01T15:00:43.153+08:00",
- "description": "Some description",
- "enable": true,
- "from": "t/#",
- "id": "293fb66f",
- "last_modified_at": "2021-12-24T15:00:44.153+08:00",
- "metadata": { },
- "name": "foo",
- "sql": "SELECT * FROM \"test/topic\" WHERE payload.x = 1"
}
], - "meta": {
- "count": 0,
- "hasnext": true,
- "limit": 50,
- "page": 1
}
}
Create a new rule using given Id
Array of rule_engine.user_provided_function (object) or rule_engine.builtin_action_console (object) or rule_engine.builtin_action_republish (object) or strings Default: [] A list of actions of the rule. | |
description | string Default: "" The description of the rule |
enable | boolean Default: true Enable or disable the rule |
metadata | object Rule metadata, do not change manually |
name | string Default: "" The name of the rule |
sql required | string SQL query to transform the messages. |
{- "actions": [
- "webhook:my_webhook",
- {
- "args": {
- "payload": "${payload}",
- "topic": "t/1"
}, - "function": "republish"
}, - {
- "function": "console"
}
], - "description": "Some description",
- "enable": true,
- "metadata": { },
- "name": "foo",
- "sql": "SELECT * FROM \"test/topic\" WHERE payload.x = 1"
}
{- "action_details": [
- {
- "name": "string",
- "status": "string",
- "type": "string"
}
], - "actions": [
- "webhook:my_webhook",
- {
- "args": {
- "payload": "${payload}",
- "topic": "t/1"
}, - "function": "republish"
}, - {
- "function": "console"
}
], - "created_at": "2021-12-01T15:00:43.153+08:00",
- "description": "Some description",
- "enable": true,
- "from": "t/#",
- "id": "293fb66f",
- "last_modified_at": "2021-12-24T15:00:44.153+08:00",
- "metadata": { },
- "name": "foo",
- "sql": "SELECT * FROM \"test/topic\" WHERE payload.x = 1"
}
Get a rule by given Id
id required | string Example: my_rule_id |
{- "action_details": [
- {
- "name": "string",
- "status": "string",
- "type": "string"
}
], - "actions": [
- "webhook:my_webhook",
- {
- "args": {
- "payload": "${payload}",
- "topic": "t/1"
}, - "function": "republish"
}, - {
- "function": "console"
}
], - "created_at": "2021-12-01T15:00:43.153+08:00",
- "description": "Some description",
- "enable": true,
- "from": "t/#",
- "id": "293fb66f",
- "last_modified_at": "2021-12-24T15:00:44.153+08:00",
- "metadata": { },
- "name": "foo",
- "sql": "SELECT * FROM \"test/topic\" WHERE payload.x = 1"
}
Update a rule by given Id to all nodes in the cluster
id required | string Example: my_rule_id |
Array of rule_engine.user_provided_function (object) or rule_engine.builtin_action_console (object) or rule_engine.builtin_action_republish (object) or strings Default: [] A list of actions of the rule. | |
description | string Default: "" The description of the rule |
enable | boolean Default: true Enable or disable the rule |
metadata | object Rule metadata, do not change manually |
name | string Default: "" The name of the rule |
sql required | string SQL query to transform the messages. |
{- "actions": [
- "webhook:my_webhook",
- {
- "args": {
- "payload": "${payload}",
- "topic": "t/1"
}, - "function": "republish"
}, - {
- "function": "console"
}
], - "description": "Some description",
- "enable": true,
- "metadata": { },
- "name": "foo",
- "sql": "SELECT * FROM \"test/topic\" WHERE payload.x = 1"
}
{- "action_details": [
- {
- "name": "string",
- "status": "string",
- "type": "string"
}
], - "actions": [
- "webhook:my_webhook",
- {
- "args": {
- "payload": "${payload}",
- "topic": "t/1"
}, - "function": "republish"
}, - {
- "function": "console"
}
], - "created_at": "2021-12-01T15:00:43.153+08:00",
- "description": "Some description",
- "enable": true,
- "from": "t/#",
- "id": "293fb66f",
- "last_modified_at": "2021-12-24T15:00:44.153+08:00",
- "metadata": { },
- "name": "foo",
- "sql": "SELECT * FROM \"test/topic\" WHERE payload.x = 1"
}
Apply a rule with the given message and environment
id required | string Example: my_rule_id |
rule_engine.ctx_unsub (object) or rule_engine.ctx_sub (object) or rule_engine.ctx_schema_validation_failed (object) or rule_engine.ctx_message_transformation_failed (object) or rule_engine.ctx_pub (object) or rule_engine.ctx_dropped (object) or rule_engine.ctx_delivered (object) or rule_engine.ctx_acked (object) or rule_engine.ctx_delivery_dropped (object) or rule_engine.ctx_disconnected (object) or rule_engine.ctx_connected (object) or rule_engine.ctx_connack (object) or rule_engine.ctx_check_authz_complete (object) or rule_engine.ctx_check_authn_complete (object) or rule_engine.ctx_alarm_deactivated (object) or rule_engine.ctx_alarm_activated (object) or rule_engine.ctx_bridge_mqtt (object) Default: {} The context of the event for testing | |
stop_action_after_template_rendering | boolean Default: true Set this to true if the action should be stopped after its template has been rendered (default is true). |
{- "context": { },
- "stop_action_after_template_rendering": true
}
{- "code": "BAD_REQUEST",
- "message": "string"
}
Get a rule's metrics by given Id
id required | string Example: my_rule_id |
{- "id": "293fb66f",
- "metrics": {
- "actions.discarded": 0,
- "actions.failed": 0,
- "actions.failed.out_of_service": 0,
- "actions.failed.unknown": 0,
- "actions.success": 0,
- "actions.total": 0,
- "failed": 0,
- "failed.exception": 0,
- "failed.unknown": 0,
- "matched": 0,
- "matched.rate": 0,
- "matched.rate.last5m": 0,
- "matched.rate.max": 0,
- "passed": 0
}, - "node_metrics": [
- {
- "actions.discarded": 0,
- "actions.failed": 0,
- "actions.failed.out_of_service": 0,
- "actions.failed.unknown": 0,
- "actions.success": 0,
- "actions.total": 0,
- "failed": 0,
- "failed.exception": 0,
- "failed.unknown": 0,
- "matched": 0,
- "matched.rate": 0,
- "matched.rate.last5m": 0,
- "matched.rate.max": 0,
- "node": "emqx@127.0.0.1",
- "passed": 0
}
]
}
[- {
- "connector": "elasticsearch_connector",
- "description": "My example elasticsearch action",
- "enable": true,
- "name": "elasticsearch_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "action": "create",
- "doc": "${payload.doc}",
- "index": "${payload.index}",
- "overwrite": true
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "elasticsearch"
}, - {
- "connector": "oracle_connector",
- "description": "My example oracle action",
- "enable": true,
- "name": "oracle_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "sql": "insert into t_mqtt_msgs(msgid, topic, qos, payload) values (${id}, ${topic}, ${qos}, ${payload})"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "oracle"
}, - {
- "connector": "sqlserver_connector",
- "description": "My example sqlserver action",
- "enable": true,
- "name": "sqlserver_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "sql": "insert into t_mqtt_msg(msgid, topic, qos, payload) values ( ${id}, ${topic}, ${qos}, ${payload} )"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "sqlserver"
}, - {
- "connector": "hstreamdb_connector",
- "description": "My example hstreamdb action",
- "enable": true,
- "name": "hstreamdb_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "aggregation_pool_size": 8,
- "partition_key": "hej",
- "record_template": "${payload}",
- "stream": "mqtt_message",
- "writer_pool_size": 8
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "hstreamdb"
}, - {
- "connector": "tdengine_connector",
- "description": "My example tdengine action",
- "enable": true,
- "name": "tdengine_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "database": "mqtt",
- "sql": "insert into t_mqtt_msg(ts, msgid, mqtt_topic, qos, payload, arrived) values (${ts}, '${id}', '${topic}', ${qos}, '${payload}', ${timestamp})"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "tdengine"
}, - {
- "connector": "rocketmq_connector",
- "description": "My example rocketmq action",
- "enable": true,
- "name": "rocketmq_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "refresh_interval": "3s",
- "send_buffer": "1024KB",
- "sync_timeout": "3s",
- "template": "",
- "topic": "TopicTest"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "rocketmq"
}, - {
- "connector": "iotdb_connector",
- "description": "My example iotdb action",
- "enable": true,
- "name": "iotdb_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "data": [
- {
- "data_type": "BOOLEAN",
- "measurement": "status",
- "timestamp": "now",
- "value": "${st}"
}
], - "device_id": "my_device",
- "is_aligned": false
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "iotdb"
}, - {
- "connector": "dynamo_connector",
- "description": "My example dynamo action",
- "enable": true,
- "name": "dynamo_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "hash_key": "clientid",
- "table": "mqtt_msg",
- "template": ""
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "dynamo"
}, - {
- "connector": "my_connector",
- "enable": true,
- "name": "my_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "sql": "INSERT INTO client_events(clientid, event, created_at)VALUES (\n ${clientid},\n ${event},\n TO_TIMESTAMP((${timestamp} :: bigint))\n)"
}, - "resource_opts": {
- "batch_size": 1,
- "batch_time": "50ms",
- "inflight_window": 100,
- "max_buffer_bytes": "256MB",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected",
- "type": "timescale"
}, - {
- "connector": "my_connector",
- "description": "my action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "sql": "insert into mqtt (key, value) values (${.id}, ${.payload})"
}, - "resource_opts": {
- "health_check_interval": "30s",
- "inflight_window": 100,
- "query_mode": "sync",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected"
}, - {
- "connector": "mqtt_connector",
- "description": "My example mqtt action",
- "enable": true,
- "name": "mqtt_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "payload": "${.payload}",
- "qos": 2,
- "retain": false,
- "topic": "remote/topic"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "mqtt"
}, - {
- "connector": "greptimedb_connector",
- "description": "My example greptimedb action",
- "enable": true,
- "name": "greptimedb_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "precision": "ms",
- "write_syntax": "${topic},clientid=${clientid} payload=${payload},${clientid}_int_value=${payload.int_key}i,uint_value=${payload.uint_key}u,bool=${payload.bool}"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "greptimedb"
}, - {
- "connector": "my_s3_connector",
- "description": "My upload action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "acl": "public_read",
- "bucket": "${clientid}",
- "content": "${payload}",
- "key": "${topic}",
- "mode": "direct"
}, - "resource_opts": {
- "inflight_window": 10,
- "query_mode": "sync"
}, - "status": "connected"
}, - {
- "connector": "my_connector",
- "description": "my action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "blob": "${.payload.blob}",
- "container": "${.payload.container}",
- "content": "${.payload}",
- "mode": "direct"
}, - "resource_opts": {
- "batch_size": 1,
- "batch_time": "0ms",
- "health_check_interval": "30s",
- "inflight_window": 100,
- "query_mode": "sync",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected"
}, - {
- "connector": "my_connector",
- "description": "my action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "aggregation": {
- "max_records": 100000,
- "time_interval": "120s"
}, - "namespace": "my.ns",
- "table": "my_table"
}, - "resource_opts": {
- "batch_size": 10000,
- "batch_time": "60s",
- "health_check_interval": "30s",
- "inflight_window": 100,
- "query_mode": "sync",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected"
}, - {
- "connector": "clickhouse_connector",
- "description": "My example clickhouse action",
- "enable": true,
- "name": "clickhouse_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "batch_value_separator": ", ",
- "sql": "INSERT INTO messages(data, arrived) VALUES ('${payload}', ${timestamp})"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "clickhouse"
}, - {
- "connector": "my_connector",
- "description": "my action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "aggregation": {
- "container": {
- "column_order": [
- "a",
- "b"
], - "type": "csv"
}, - "max_records": 10000,
- "time_interval": "4s"
}, - "blob": "${action}/${node}/${datetime.rfc3339}/${sequence}",
- "container": "mycontainer",
- "mode": "aggregated"
}, - "resource_opts": {
- "batch_size": 100,
- "batch_time": "10ms",
- "health_check_interval": "30s",
- "inflight_window": 100,
- "query_mode": "sync",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected"
}, - {
- "connector": "influxdb_connector",
- "description": "My example influxdb action",
- "enable": true,
- "name": "influxdb_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "precision": "ms",
- "write_syntax": "${topic},clientid=${clientid} payload=${payload},${clientid}_int_value=${payload.int_key}i,bool=${payload.bool}"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "influxdb"
}, - {
- "connector": "my_connector_name",
- "description": "My action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "command_template": [
- "LPUSH",
- "MSGS",
- "${payload}"
]
}, - "resource_opts": {
- "batch_size": 1
}, - "status": "connected"
}, - {
- "connector": "my_s3_connector",
- "description": "My aggregated upload action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "acl": "public_read",
- "aggregation": {
- "max_records": 100000,
- "time_interval": "15m"
}, - "bucket": "mqtt-aggregated",
- "container": {
- "column_order": [
- "clientid",
- "topic",
- "publish_received_at"
], - "type": "csv"
}, - "key": "${action}/${node}/${datetime.rfc3339utc}_N${sequence}.csv",
- "mode": "aggregated"
}, - "resource_opts": {
- "health_check_interval": "10s",
- "inflight_window": 100,
- "query_mode": "async"
}, - "status": "connected"
}, - {
- "connector": "rabbitmq_connector",
- "description": "My example rabbitmq action",
- "enable": true,
- "name": "rabbitmq_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "delivery_mode": "non_persistent",
- "exchange": "test_exchange",
- "payload_template": "${.payload}",
- "publish_confirmation_timeout": "30s",
- "routing_key": "/",
- "wait_for_publish_confirmations": true
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "rabbitmq"
}, - {
- "connector": "cassandra_connector",
- "description": "My example cassandra action",
- "enable": true,
- "name": "cassandra_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "cql": "insert into mqtt_msg(msgid, topic, qos, payload, arrived) values (${id}, ${topic}, ${qos}, ${payload}, ${timestamp})"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "cassandra"
}, - {
- "connector": "syskeeper_forwarder",
- "enable": true,
- "name": "syskeeper_forwarder",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "target_topic": "${topic}",
- "template": "${payload}"
}, - "resource_opts": {
- "worker_pool_size": 16
}, - "status": "connected",
- "type": "syskeeper_forwarder"
}, - {
- "connector": "my_http_connector",
- "enable": true,
- "name": "my_http_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "body": "${.}",
- "headers": { },
- "method": "post",
- "path": "/room/${room_no}"
}, - "resource_opts": {
- "health_check_interval": "15s",
- "query_mode": "async",
- "worker_pool_size": 16
}, - "status": "connected",
- "type": "http"
}, - {
- "connector": "my_connector",
- "description": "my action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "aggregation": {
- "container": {
- "type": "csv"
}, - "max_records": 1000,
- "time_interval": "60s"
}, - "connect_timeout": "15s",
- "database": "testdatabase",
- "max_retries": 3,
- "mode": "aggregated",
- "pipe": "testpipe",
- "pipe_user": "pipeuser",
- "pipelining": 100,
- "pool_size": 16,
- "private_key": "file:///path/to/secret.pem",
- "schema": "public",
- "stage": "teststage"
}, - "resource_opts": {
- "batch_size": 10000,
- "batch_time": "60s",
- "health_check_interval": "30s",
- "inflight_window": 100,
- "query_mode": "sync",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected"
}, - {
- "connector": "my_connector_name",
- "description": "My action",
- "enable": true,
- "local_topic": "local/topic",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "attributes_template": [
- {
- "key": "${payload.attrs.k}",
- "value": "${payload.attrs.v}"
}
], - "ordering_key_template": "${payload.ok}",
- "payload_template": "${payload}",
- "pubsub_topic": "mytopic"
}, - "resource_opts": {
- "batch_size": 5
}, - "status": "connected"
}, - {
- "connector": "mongodb_connector",
- "description": "My example mongodb action",
- "enable": true,
- "name": "mongodb_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "collection": "mycol"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "mongodb"
}, - {
- "connector": "datalayers_connector",
- "description": "My example datalayers action",
- "enable": true,
- "name": "datalayers_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "precision": "ms",
- "write_syntax": "${topic},clientid=${clientid} payload=${payload},${clientid}_int_value=${payload.int_key}i,bool=${payload.bool}"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "datalayers"
}, - {
- "connector": "pulsar_connector",
- "description": "My example pulsar action",
- "enable": true,
- "name": "pulsar_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "message": {
- "key": "${.clientid}",
- "value": "${.}"
}, - "pulsar_topic": "test_topic",
- "sync_timeout": "5s"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "pulsar"
}, - {
- "connector": "kinesis_connector",
- "description": "My example kinesis action",
- "enable": true,
- "name": "kinesis_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "partition_key": "any_key",
- "payload_template": "${.}",
- "stream_name": "my_stream"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "kinesis"
}, - {
- "connector": "my_connector",
- "enable": true,
- "name": "my_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "sql": "INSERT INTO client_events(clientid, event, created_at)VALUES (\n ${clientid},\n ${event},\n TO_TIMESTAMP((${timestamp} :: bigint))\n)"
}, - "resource_opts": {
- "batch_size": 1,
- "batch_time": "50ms",
- "inflight_window": 100,
- "max_buffer_bytes": "256MB",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected",
- "type": "pgsql"
}, - {
- "connector": "my_kafka_producer_connector",
- "enable": true,
- "local_topic": "mqtt/local/topic",
- "name": "my_kafka_producer_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "buffer": {
- "memory_overload_protection": true,
- "mode": "hybrid",
- "per_partition_limit": "2GB",
- "segment_bytes": "10MB"
}, - "compression": "no_compression",
- "kafka_ext_headers": [
- {
- "kafka_ext_header_key": "clientid",
- "kafka_ext_header_value": "${clientid}"
}, - {
- "kafka_ext_header_key": "topic",
- "kafka_ext_header_value": "${topic}"
}
], - "kafka_header_value_encode_mode": "none",
- "kafka_headers": "${pub_props}",
- "max_batch_bytes": "896KB",
- "max_inflight": 10,
- "max_linger_bytes": "10MB",
- "max_linger_time": "5ms",
- "message": {
- "key": "${.clientid}",
- "timestamp": "${.timestamp}",
- "value": "${.}"
}, - "partition_count_refresh_interval": "60s",
- "partition_strategy": "random",
- "partitions_limit": "all_partitions",
- "required_acks": "all_isr",
- "topic": "kafka-topic"
}, - "resource_opts": {
- "health_check_interval": "32s"
}, - "status": "connected",
- "type": "kafka_producer"
}, - {
- "connector": "mysql_connector",
- "description": "My example mysql action",
- "enable": true,
- "name": "mysql_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "sql": "insert into t_mqtt_msg(msgid, topic, qos, payload, arrived) values (${id}, ${topic}, ${qos}, ${payload}, FROM_UNIXTIME(${timestamp}/1000))"
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "mysql"
}, - {
- "connector": "my_confluent_producer_connector",
- "enable": true,
- "local_topic": "mqtt/local/topic",
- "name": "my_confluent_producer_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "buffer": {
- "memory_overload_protection": true,
- "mode": "hybrid",
- "per_partition_limit": "2GB",
- "segment_bytes": "100MB"
}, - "kafka_ext_headers": [
- {
- "kafka_ext_header_key": "clientid",
- "kafka_ext_header_value": "${clientid}"
}, - {
- "kafka_ext_header_key": "topic",
- "kafka_ext_header_value": "${topic}"
}
], - "kafka_header_value_encode_mode": "none",
- "kafka_headers": "${.pub_props}",
- "max_batch_bytes": "896KB",
- "max_inflight": 10,
- "max_linger_bytes": "10MB",
- "max_linger_time": "5ms",
- "message": {
- "key": "${.clientid}",
- "value": "${.}"
}, - "partition_count_refresh_interval": "60s",
- "partition_strategy": "random",
- "required_acks": "all_isr",
- "topic": "topic"
}, - "status": "connected",
- "type": "confluent_producer"
}, - {
- "connector": "my_connector",
- "description": "my action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "sql": "insert into t_mqtt_msg(msgid, topic, qos, payload, arrived) values (${id}, ${topic}, ${qos}, ${payload}, FROM_UNIXTIME(${timestamp}/1000))"
}, - "resource_opts": {
- "batch_size": 1,
- "batch_time": "0s",
- "health_check_interval": "30s",
- "inflight_window": 100,
- "query_mode": "sync",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected"
}, - {
- "connector": "my_connector",
- "enable": true,
- "name": "my_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "sql": "INSERT INTO client_events(clientid, event, created_at)VALUES (\n ${clientid},\n ${event},\n TO_TIMESTAMP((${timestamp} :: bigint))\n)"
}, - "resource_opts": {
- "batch_size": 1,
- "batch_time": "50ms",
- "inflight_window": 100,
- "max_buffer_bytes": "256MB",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected",
- "type": "matrix"
}, - {
- "connector": "my_azure_event_hub_producer_connector",
- "enable": true,
- "local_topic": "mqtt/local/topic",
- "name": "my_azure_event_hub_producer_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "buffer": {
- "memory_overload_protection": true,
- "mode": "hybrid",
- "per_partition_limit": "2GB",
- "segment_bytes": "100MB"
}, - "kafka_ext_headers": [
- {
- "kafka_ext_header_key": "clientid",
- "kafka_ext_header_value": "${clientid}"
}, - {
- "kafka_ext_header_key": "topic",
- "kafka_ext_header_value": "${topic}"
}
], - "kafka_header_value_encode_mode": "none",
- "kafka_headers": "${.pub_props}",
- "max_batch_bytes": "896KB",
- "max_inflight": 10,
- "max_linger_bytes": "10MB",
- "max_linger_time": "5ms",
- "message": {
- "key": "${.clientid}",
- "value": "${.}"
}, - "partition_count_refresh_interval": "60s",
- "partition_strategy": "random",
- "required_acks": "all_isr",
- "topic": "topic"
}, - "status": "connected",
- "type": "azure_event_hub_producer"
}, - {
- "connector": "tablestore_connector",
- "description": "My example tablestore action",
- "enable": true,
- "name": "tablestore_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "data_source": "${data_source}",
- "fields": [
- {
- "column": "${column}",
- "isint": true,
- "value": "${value}"
}
], - "measurement": "${measurement}",
- "meta_update_model": "MUM_IGNORE",
- "storage_model_type": "timeseries",
- "table_name": "table_name",
- "tags": {
- "tag1": "${tag1}",
- "tag2": "${tag2}"
}
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "tablestore"
}, - {
- "connector": "opents_connector",
- "description": "My example opents action",
- "enable": true,
- "name": "opents_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "data": [
- {
- "metric": "${metric}",
- "tags": "${tags}",
- "value": "${value}"
}
]
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "opents"
}, - {
- "connector": "my_connector",
- "description": "my action",
- "enable": true,
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "template": "${.}",
- "write_mode": "sync"
}, - "resource_opts": {
- "batch_size": 10000,
- "batch_time": "60s",
- "health_check_interval": "30s",
- "inflight_window": 100,
- "query_mode": "sync",
- "request_ttl": "45s",
- "worker_pool_size": 16
}, - "status": "connected"
}
]
Create a new bridge by type and name.
connector required | string Name of the connector specified by the action, used for external resource selection. |
description | string Default: "" Descriptive text. |
enable | boolean Default: true Enable (true) or disable (false) this action. |
Array of actions_and_sources.fallback_action_republish (object) or actions_and_sources.fallback_action_reference (object) Default: [] List of fallback actions that will be triggered if a query to this action fails. | |
local_topic | string MQTT topic or topic filter as data source (action input). If rule action is used as data source, this config should be left empty, otherwise messages will be duplicated in the remote system. |
name required | string |
required | object (action_disk_log.action_parameters) |
object (actions_and_sources.action_resource_opts) | |
tags | Array of strings Tags to annotate this config entry. |
type required | string Value: "disk_log" |
{- "connector": "elasticsearch_connector",
- "description": "My example elasticsearch action",
- "enable": true,
- "name": "elasticsearch_action",
- "parameters": {
- "action": "create",
- "doc": "${payload.doc}",
- "index": "${payload.index}",
- "overwrite": true
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "type": "elasticsearch"
}
{- "connector": "elasticsearch_connector",
- "description": "My example elasticsearch action",
- "enable": true,
- "name": "elasticsearch_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "action": "create",
- "doc": "${payload.doc}",
- "index": "${payload.index}",
- "overwrite": true
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "elasticsearch"
}
[- {
- "created_at": 1736512728666,
- "enable": true,
- "last_modified_at": 1736512728666,
- "name": "myAction",
- "node_status": [
- {
- "node": "emqx@127.0.0.1",
- "status": "connected",
- "status_reason": ""
}
], - "rules": [
- "rule1",
- "rule2"
], - "status": "connected",
- "status_reason": "",
- "type": "action_type"
}
]
Lists the available action types.
[- "http",
- "rabbitmq",
- "cassandra",
- "rocketmq",
- "syskeeper_forwarder",
- "mongodb",
- "azure_event_hub_producer",
- "iotdb",
- "kafka_producer",
- "greptimedb",
- "hstreamdb",
- "confluent_producer",
- "sqlserver",
- "pulsar",
- "gcp_pubsub_producer",
- "influxdb",
- "opents",
- "redis",
- "datalayers",
- "s3",
- "s3tables",
- "doris",
- "kinesis",
- "mqtt",
- "tdengine",
- "snowflake",
- "couchbase",
- "oracle",
- "timescale",
- "clickhouse",
- "azure_blob_storage",
- "tablestore",
- "disk_log",
- "matrix",
- "elasticsearch",
- "pgsql",
- "mysql",
- "dynamo"
]
Enable or Disable bridge on all nodes in the cluster.
id required | string Example: http:my_http_action The bridge id. Must be of format {type}:{name}. |
enable required | boolean Example: true Whether to enable this bridge. |
{- "code": "NOT_FOUND",
- "message": "string"
}
Start bridge on all nodes in the cluster.
id required | string Example: http:my_http_action The bridge id. Must be of format {type}:{name}. |
operation required | string Value: "start" Example: start Operation can be one of: 'start'. |
{- "code": "BAD_REQUEST",
- "message": "string"
}
Delete a bridge by id.
id required | string Example: http:my_http_action The bridge id. Must be of format {type}:{name}. |
also_delete_dep_actions | boolean Default: false Whether to cascade delete dependent actions. |
{- "code": "BAD_REQUEST",
- "message": "string",
- "rules": [
- "string"
]
}
Get a bridge by id.
id required | string Example: http:my_http_action The bridge id. Must be of format {type}:{name}. |
{- "connector": "elasticsearch_connector",
- "description": "My example elasticsearch action",
- "enable": true,
- "name": "elasticsearch_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "action": "create",
- "doc": "${payload.doc}",
- "index": "${payload.index}",
- "overwrite": true
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "elasticsearch"
}
Update a bridge by id.
id required | string Example: http:my_http_action The bridge id. Must be of format {type}:{name}. |
connector required | string Name of the connector specified by the action, used for external resource selection. |
description | string Default: "" Descriptive text. |
enable | boolean Default: true Enable (true) or disable (false) this action. |
Array of actions_and_sources.fallback_action_republish (object) or actions_and_sources.fallback_action_reference (object) Default: [] List of fallback actions that will be triggered if a query to this action fails. | |
local_topic | string MQTT topic or topic filter as data source (action input). If rule action is used as data source, this config should be left empty, otherwise messages will be duplicated in the remote system. |
required | object (action_disk_log.action_parameters) |
object (actions_and_sources.action_resource_opts) | |
tags | Array of strings Tags to annotate this config entry. |
{- "connector": "elasticsearch_connector",
- "description": "My example elasticsearch action",
- "enable": true,
- "parameters": {
- "action": "create",
- "doc": "${payload.doc}",
- "index": "${payload.index}",
- "overwrite": true
}, - "resource_opts": {
- "health_check_interval": "30s"
}
}
{- "connector": "elasticsearch_connector",
- "description": "My example elasticsearch action",
- "enable": true,
- "name": "elasticsearch_action",
- "node_status": [
- {
- "node": "emqx@localhost",
- "status": "connected"
}
], - "parameters": {
- "action": "create",
- "doc": "${payload.doc}",
- "index": "${payload.index}",
- "overwrite": true
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "status": "connected",
- "type": "elasticsearch"
}
Get bridge metrics by id.
id required | string Example: http:my_http_action The bridge id. Must be of format {type}:{name}. |
{- "metrics": {
- "dropped": 0,
- "dropped.other": 0,
- "dropped.queue_full": 0,
- "dropped.resource_not_found": 0,
- "dropped.resource_stopped": 0,
- "failed": 0,
- "inflight": 0,
- "matched": 0,
- "queuing": 0,
- "rate": 0,
- "rate_last5m": 0,
- "rate_max": 0,
- "received": 0,
- "retried": 0,
- "success": 0
}, - "node_metrics": [
- {
- "metrics": {
- "dropped": 0,
- "dropped.other": 0,
- "dropped.queue_full": 0,
- "dropped.resource_not_found": 0,
- "dropped.resource_stopped": 0,
- "failed": 0,
- "inflight": 0,
- "matched": 0,
- "queuing": 0,
- "rate": 0,
- "rate_last5m": 0,
- "rate_max": 0,
- "received": 0,
- "retried": 0,
- "success": 0
}, - "node": "emqx@127.0.0.1"
}
]
}
Test creating a new bridge.
connector required | string Name of the connector specified by the action, used for external resource selection. |
description | string Default: "" Descriptive text. |
enable | boolean Default: true Enable (true) or disable (false) this action. |
Array of actions_and_sources.fallback_action_republish (object) or actions_and_sources.fallback_action_reference (object) Default: [] List of fallback actions that will be triggered if a query to this action fails. | |
local_topic | string MQTT topic or topic filter as data source (action input). If rule action is used as data source, this config should be left empty, otherwise messages will be duplicated in the remote system. |
name required | string |
required | object (action_disk_log.action_parameters) |
object (actions_and_sources.action_resource_opts) | |
tags | Array of strings Tags to annotate this config entry. |
type required | string Value: "disk_log" |
{- "connector": "elasticsearch_connector",
- "description": "My example elasticsearch action",
- "enable": true,
- "name": "elasticsearch_action",
- "parameters": {
- "action": "create",
- "doc": "${payload.doc}",
- "index": "${payload.index}",
- "overwrite": true
}, - "resource_opts": {
- "health_check_interval": "30s"
}, - "type": "elasticsearch"
}
{- "code": "TEST_FAILED",
- "message": "string"
}
Enable or disable a particular transformation
name required | string Example: my_transformation Transformation name |
enable required | boolean Enable or disable transformation |
{- "code": "BAD_REQUEST",
- "message": "string"
}
Test an input against a transformation
required | object (message_transformation_http_api.dryrun_input_message) |
required | object (message_transformation.transformation) |
{- "message": {
- "client_attrs": { },
- "payload": "{}",
- "qos": 2,
- "retain": true,
- "topic": "t/u/v",
- "user_property": { }
}, - "transformation": {
- "description": "my transformation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_transformation",
- "operations": [
- {
- "key": "topic",
- "value": "concat([topic, '/', payload.t])"
}
], - "payload_decoder": {
- "type": "json"
}, - "payload_encoder": {
- "type": "json"
}, - "tags": [
- "transformation"
], - "topics": [
- "t/+"
]
}
}
{- "code": "BAD_REQUEST",
- "message": "string"
}
Lookup a transformation
name required | string Example: my_transformation Transformation name |
{- "description": "my transformation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_transformation",
- "operations": [
- {
- "key": "topic",
- "value": "concat([topic, '/', payload.t])"
}
], - "payload_decoder": {
- "type": "json"
}, - "payload_encoder": {
- "type": "json"
}, - "tags": [
- "transformation"
], - "topics": [
- "t/+"
]
}
[- {
- "description": "my transformation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_transformation",
- "operations": [
- {
- "key": "topic",
- "value": "concat([topic, '/', payload.t])"
}
], - "payload_decoder": {
- "type": "json"
}, - "payload_encoder": {
- "type": "json"
}, - "tags": [
- "transformation"
], - "topics": [
- "t/+"
]
}, - {
- "description": "my transformation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "other_transformation",
- "operations": [
- {
- "key": "topic",
- "value": "concat([topic, '/', payload.t])"
}
], - "payload_decoder": {
- "type": "json"
}, - "payload_encoder": {
- "type": "json"
}, - "tags": [
- "transformation"
], - "topics": [
- "t/+"
]
}
]
Append a new transformation to the list of transformations
description | string Default: "" Descriptive text. |
enable | boolean Default: true |
failure_action required | string Enum: "drop" "disconnect" "ignore" |
object (message_transformation.log_failure) | |
name required | string |
Array of objects (message_transformation.operation) Default: [] | |
string or string or string or string or string Default: {"type":"none"} | |
string or string or string or string or string Default: {"type":"none"} | |
tags | Array of strings Tags to annotate this config entry. |
required | Array of strings or string |
{- "description": "my transformation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_transformation",
- "operations": [
- {
- "key": "topic",
- "value": "concat([topic, '/', payload.t])"
}
], - "payload_decoder": {
- "type": "json"
}, - "payload_encoder": {
- "type": "json"
}, - "tags": [
- "transformation"
], - "topics": [
- "t/+"
]
}
{- "description": "my transformation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_transformation",
- "operations": [
- {
- "key": "topic",
- "value": "concat([topic, '/', payload.t])"
}
], - "payload_decoder": {
- "type": "json"
}, - "payload_encoder": {
- "type": "json"
}, - "tags": [
- "transformation"
], - "topics": [
- "t/+"
]
}
Update a transformation
description | string Default: "" Descriptive text. |
enable | boolean Default: true |
failure_action required | string Enum: "drop" "disconnect" "ignore" |
object (message_transformation.log_failure) | |
name required | string |
Array of objects (message_transformation.operation) Default: [] | |
string or string or string or string or string Default: {"type":"none"} | |
string or string or string or string or string Default: {"type":"none"} | |
tags | Array of strings Tags to annotate this config entry. |
required | Array of strings or string |
{- "description": "my transformation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_transformation",
- "operations": [
- {
- "key": "topic",
- "value": "concat([topic, '/', payload.t])"
}
], - "payload_decoder": {
- "type": "json"
}, - "payload_encoder": {
- "type": "json"
}, - "tags": [
- "transformation"
], - "topics": [
- "t/+"
]
}
{- "description": "my transformation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_transformation",
- "operations": [
- {
- "key": "topic",
- "value": "concat([topic, '/', payload.t])"
}
], - "payload_decoder": {
- "type": "json"
}, - "payload_encoder": {
- "type": "json"
}, - "tags": [
- "transformation"
], - "topics": [
- "t/+"
]
}
Get metrics for a particular transformation
name required | string Example: my_transformation Transformation name |
{- "metrics": {
- "failed": 1,
- "matched": 2,
- "rate": 1.23,
- "rate_last5m": 0.88,
- "rate_max": 1.87,
- "succeeded": 1
}, - "node_metrics": [
- {
- "metrics": {
- "failed": 1,
- "matched": 2,
- "rate": 1.23,
- "rate_last5m": 0.88,
- "rate_max": 1.87,
- "succeeded": 1
}, - "node": "emqx@127.0.0.1"
}
]
}
Reorder of all transformations
order required | Array of strings |
{- "order": [
- "bar",
- "foo",
- "baz"
]
}
{- "code": "BAD_REQUEST",
- "duplicated": [
- "string"
], - "message": "string",
- "not_found": [
- "string"
], - "not_reordered": [
- "string"
]
}
[- {
- "checks": [
- {
- "sql": "select payload.temp as t where t > 10",
- "type": "sql"
}
], - "description": "my validation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_validation",
- "strategy": "all_pass",
- "tags": [
- "validation"
], - "topics": [
- "t/+"
]
}, - {
- "checks": [
- {
- "schema": "my_avro_schema",
- "type": "avro"
}
], - "description": "my validation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "other_validation",
- "strategy": "all_pass",
- "tags": [
- "validation"
], - "topics": [
- "t/+"
]
}
]
Append a new validation to the list of validations
required | Array of schema_validation.check_external_http (object) or schema_validation.check_protobuf (object) or schema_validation.check_avro (object) or schema_validation.check_json (object) or schema_validation.check_sql (object) Checks that will be performed during validation. They are evaluated in the same order as defined. |
description | string Default: "" Descriptive text. |
enable | boolean Default: true |
failure_action required | string Enum: "drop" "disconnect" "ignore" How to proceed if the validation fails. |
object (schema_validation.log_failure) | |
name required | string Name |
strategy required | string Enum: "any_pass" "all_pass" Strategy |
tags | Array of strings Tags to annotate this config entry. |
required | Array of strings or string A single topic filter or list of topic filters that this validation should validate. |
{- "checks": [
- {
- "schema": "my_avro_schema",
- "type": "avro"
}
], - "description": "my validation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_validation",
- "strategy": "all_pass",
- "tags": [
- "validation"
], - "topics": [
- "t/+"
]
}
{- "checks": [
- {
- "schema": "my_avro_schema",
- "type": "avro"
}
], - "description": "my validation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_validation",
- "strategy": "all_pass",
- "tags": [
- "validation"
], - "topics": [
- "t/+"
]
}
Update a validation
required | Array of schema_validation.check_external_http (object) or schema_validation.check_protobuf (object) or schema_validation.check_avro (object) or schema_validation.check_json (object) or schema_validation.check_sql (object) Checks that will be performed during validation. They are evaluated in the same order as defined. |
description | string Default: "" Descriptive text. |
enable | boolean Default: true |
failure_action required | string Enum: "drop" "disconnect" "ignore" How to proceed if the validation fails. |
object (schema_validation.log_failure) | |
name required | string Name |
strategy required | string Enum: "any_pass" "all_pass" Strategy |
tags | Array of strings Tags to annotate this config entry. |
required | Array of strings or string A single topic filter or list of topic filters that this validation should validate. |
{- "checks": [
- {
- "sql": "select payload.temp as t where t > 10",
- "type": "sql"
}
], - "description": "my validation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_validation",
- "strategy": "all_pass",
- "tags": [
- "validation"
], - "topics": [
- "t/+"
]
}
{- "checks": [
- {
- "sql": "select payload.temp as t where t > 10",
- "type": "sql"
}
], - "description": "my validation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_validation",
- "strategy": "all_pass",
- "tags": [
- "validation"
], - "topics": [
- "t/+"
]
}
Enable or disable a particular validation
name required | string Example: my_validation Validation name |
enable required | boolean Enable or disable validation |
{- "code": "BAD_REQUEST",
- "message": "string"
}
Get metrics for a particular validation
name required | string Example: my_validation Validation name |
{- "metrics": {
- "failed": 1,
- "matched": 2,
- "rate": 1.23,
- "rate_last5m": 0.88,
- "rate_max": 1.87,
- "succeeded": 1
}, - "node_metrics": [
- {
- "metrics": {
- "failed": 1,
- "matched": 2,
- "rate": 1.23,
- "rate_last5m": 0.88,
- "rate_max": 1.87,
- "succeeded": 1
}, - "node": "emqx@127.0.0.1"
}
]
}
Reorder of all validations
order required | Array of strings |
{- "order": [
- "bar",
- "foo",
- "baz"
]
}
{- "code": "BAD_REQUEST",
- "duplicated": [
- "string"
], - "message": "string",
- "not_found": [
- "string"
], - "not_reordered": [
- "string"
]
}
Lookup a validation
name required | string Example: my_validation Validation name |
{- "checks": [
- {
- "schema": "my_avro_schema",
- "type": "avro"
}
], - "description": "my validation",
- "enable": true,
- "failure_action": "drop",
- "log_failure": {
- "level": "info"
}, - "name": "my_validation",
- "strategy": "all_pass",
- "tags": [
- "validation"
], - "topics": [
- "t/+"
]
}
List subscriptions
page | integer >= 1 Default: 1 Example: page=1 Page number of the results to fetch. |
limit | integer [ 1 .. 10000 ] Default: 100 Example: limit=50 Results per page |
node | string Example: node=emqx@127.0.0.1 Node name |
clientid | string Client ID |
qos | integer [ 0 .. 2 ] Example: qos=0 QoS |
topic | string Topic, url encoding |
match_topic | string Match topic string, url encoding |
share_group | string Shared subscription group name |
durable | boolean Filter subscriptions by durability |
[- {
- "clientid": "emqx_clientid_xx128cdhfc",
- "durable": false,
- "nl": 0,
- "node": "emqx@127.0.0.1",
- "qos": 0,
- "rap": 0,
- "rh": 0,
- "topic": "testtopic/1"
}
]
Get a schema by its name
name required | string Example: my_schema The schema name |
{- "description": "My Avro Schema",
- "name": "my_avro_schema",
- "source": "{\"type\":\"record\",\"name\":\"test\",\"fields\":[{\"type\":\"int\",\"name\":\"i\"},{\"type\":\"string\",\"name\":\"s\"}]}",
- "type": "avro"
}
Update an existing schema
name required | string Example: my_schema The schema name |
description | string Default: "" A description for this schema. |
required | object (schema_registry.external_http_params) |
type required | string Value: "external_http" Must be |
{- "description": "My Avro Schema",
- "source": "{\"type\":\"record\",\"name\":\"test\",\"fields\":[{\"type\":\"int\",\"name\":\"i\"},{\"type\":\"string\",\"name\":\"s\"}]}",
- "type": "avro"
}
{- "description": "My Avro Schema",
- "name": "my_avro_schema",
- "source": "{\"type\":\"record\",\"name\":\"test\",\"fields\":[{\"type\":\"int\",\"name\":\"i\"},{\"type\":\"string\",\"name\":\"s\"}]}",
- "type": "avro"
}
[- {
- "description": "My Avro Schema",
- "name": "my_avro_schema",
- "source": "{\"type\":\"record\",\"name\":\"test\",\"fields\":[{\"type\":\"int\",\"name\":\"i\"},{\"type\":\"string\",\"name\":\"s\"}]}",
- "type": "avro"
}
]
Register a new schema
description | string Default: "" A description for this schema. |
name required | string A name for the schema that will serve as its identifier. |
required | object (schema_registry.external_http_params) |
type required | string Value: "external_http" Must be |
{- "description": "My Avro Schema",
- "name": "my_avro_schema",
- "source": "{\"type\":\"record\",\"name\":\"test\",\"fields\":[{\"type\":\"int\",\"name\":\"i\"},{\"type\":\"string\",\"name\":\"s\"}]}",
- "type": "avro"
}
{- "description": "My Avro Schema",
- "name": "my_avro_schema",
- "source": "{\"type\":\"record\",\"name\":\"test\",\"fields\":[{\"type\":\"int\",\"name\":\"i\"},{\"type\":\"string\",\"name\":\"s\"}]}",
- "type": "avro"
}
Upload a Protobuf bundle for a new schema
bundle | string <binary> |
description | string |
name | string |
root_proto_file | string |
{- "description": "My Avro Schema",
- "name": "my_avro_schema",
- "source": "{\"type\":\"record\",\"name\":\"test\",\"fields\":[{\"type\":\"int\",\"name\":\"i\"},{\"type\":\"string\",\"name\":\"s\"}]}",
- "type": "avro"
}
Upload a Protobuf bundle for an existing schema
bundle | string <binary> |
description | string |
name | string |
root_proto_file | string |
{- "description": "My Avro Schema",
- "source": "{\"type\":\"record\",\"name\":\"test\",\"fields\":[{\"type\":\"int\",\"name\":\"i\"},{\"type\":\"string\",\"name\":\"s\"}]}",
- "type": "avro"
}
Possible HTTP response status code are:
200: All messages are delivered to at least one subscriber;
202: At least one message was not delivered to any subscriber;
400: At least one message is invalid. For example bad topic name, or QoS is out of range;
503: Failed to deliver at least one of the messages;
In case there is at lest one invalid message in the batch, the HTTP response body
is the same as for /publish
API.
Otherwise the HTTP response body is an array of JSON objects indicating the publish
result of each individual message in the batch.
clientid | string Deprecated |
payload required | string The MQTT message payload. |
payload_encoding | string Default: "plain" Enum: "plain" "base64" MQTT Payload Encoding, |
object (emqx_mgmt_api_publish.message_properties) | |
qos | integer [ 0 .. 2 ] Default: 0 MQTT message QoS |
retain | boolean Default: false A boolean field to indicate if this message should be retained. |
topic required | string Topic Name |
[- {
- "clientid": "string",
- "payload": "hello emqx api",
- "payload_encoding": "plain",
- "properties": {
- "content_type": "text/plain",
- "correlation_data": "string",
- "message_expiry_interval": 0,
- "payload_format_indicator": 0,
- "response_topic": "some_other_topic",
- "user_properties": {
- "foo": "bar"
}
}, - "qos": 0,
- "retain": false,
- "topic": "api/example/topic"
}
]
[- {
- "id": "string"
}
]
Possible HTTP status response codes are:200
: The message is delivered to at least one subscriber;202
: No matched subscribers;400
: Message is invalid. for example bad topic name, or QoS is out of range;503
: Failed to deliver the message to subscriber(s)
clientid | string Deprecated |
payload required | string The MQTT message payload. |
payload_encoding | string Default: "plain" Enum: "plain" "base64" MQTT Payload Encoding, |
object (emqx_mgmt_api_publish.message_properties) | |
qos | integer [ 0 .. 2 ] Default: 0 MQTT message QoS |
retain | boolean Default: false A boolean field to indicate if this message should be retained. |
topic required | string Topic Name |
{- "clientid": "string",
- "payload": "hello emqx api",
- "payload_encoding": "plain",
- "properties": {
- "content_type": "text/plain",
- "correlation_data": "string",
- "message_expiry_interval": 0,
- "payload_format_indicator": 0,
- "response_topic": "some_other_topic",
- "user_properties": {
- "foo": "bar"
}
}, - "qos": 0,
- "retain": false,
- "topic": "api/example/topic"
}
{- "id": "string"
}
Update user in built-in database authenticator.
user_id required | string User ID. |
is_superuser | boolean Default: false |
password required | string |
{- "password": "******"
}
{- "regular_user": {
- "summary": "Regular user",
- "value": {
- "user_id": "user1"
}
}, - "super_user": {
- "summary": "Superuser",
- "value": {
- "is_superuser": true,
- "user_id": "user2"
}
}
}
List users in built-in database authenticator.
page | integer >= 1 Default: 1 Example: page=1 Page number of the results to fetch. |
limit | integer [ 1 .. 10000 ] Default: 100 Example: limit=50 Results per page |
like_user_id | string Fuzzy search user_id (username or clientid). |
is_superuser | boolean Is superuser |
{- "data": [
- {
- "user_id": "user1"
}, - {
- "is_superuser": true,
- "user_id": "user2"
}
], - "meta": {
- "count": 300,
- "limit": 20,
- "page": 0
}
}
Create users for built-in database authenticator.
is_superuser | boolean Default: false |
password required | string |
user_id required | string |
{- "password": "******",
- "user_id": "user1"
}
{- "user_id": "user1"
}
Import users into built-in database authenticator.
type required | string Enum: "plain" "hash" Example: type=hash The import file template type, enum with |
Import body
[- {
- "is_superuser": true,
- "password": "password1",
- "user_id": "user1"
}, - {
- "is_superuser": false,
- "password": "password2",
- "user_id": "user2"
}
]
{- "failed": 0,
- "override": 0,
- "skipped": 0,
- "success": 0,
- "total": 0
}
List retained messages.
topic | string Topic filter, supports wildcards, omit this to match all messages. |
page | integer >= 1 Default: 1 Example: page=1 Page number of the results to fetch. |
limit | integer [ 1 .. 10000 ] Default: 100 Example: limit=50 Results per page |
{- "data": [
- {
- "from_clientid": "string",
- "from_username": "string",
- "msgid": "string",
- "publish_at": "string",
- "qos": 0,
- "topic": "string"
}
], - "meta": {
- "count": 0,
- "hasnext": true,
- "limit": 50,
- "page": 1
}
}
Lookup a message by a topic without wildcards.
topic required | string Topic. |
{- "from_clientid": "string",
- "from_username": "string",
- "msgid": "string",
- "payload": "string",
- "publish_at": "string",
- "qos": 0,
- "topic": "string"
}
Current monitor (statistics) data, e.g. number of connections and connection rate in the whole cluster.
{- "cluster_sessions": 0,
- "connections": 0,
- "disconnected_durable_sessions": 0,
- "dropped_msg_rate": 0,
- "license_quota": 0,
- "live_connections": 0,
- "persisted_rate": 0,
- "received_msg_rate": 0,
- "retained_msg_count": 0,
- "sent_msg_rate": 0,
- "sessions_hist_hwmark": {
- "current_value": 0,
- "peak_time": 0,
- "peak_value": 0
}, - "shared_subscriptions": 0,
- "subscriptions": 0,
- "subscriptions_durable": 0,
- "topics": 0,
- "transformation_failed_rate": 0,
- "transformation_succeeded_rate": 0,
- "validation_failed_rate": 0,
- "validation_succeeded_rate": 0
}