diff --git a/go.mod b/go.mod index a8d02b18..9702b075 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/edgexfoundry/app-service-configurable go 1.18 -require github.com/edgexfoundry/app-functions-sdk-go/v3 v3.0.0-dev.11 +require github.com/edgexfoundry/app-functions-sdk-go/v3 v3.0.0-dev.15 require ( bitbucket.org/bertimus9/systemstat v0.5.0 // indirect @@ -11,10 +11,10 @@ require ( github.com/cenkalti/backoff v2.2.1+incompatible // indirect github.com/diegoholiveira/jsonlogic/v3 v3.2.6 // indirect github.com/eclipse/paho.mqtt.golang v1.4.2 // indirect - github.com/edgexfoundry/go-mod-bootstrap/v3 v3.0.0-dev.5 // indirect + github.com/edgexfoundry/go-mod-bootstrap/v3 v3.0.0-dev.7 // indirect github.com/edgexfoundry/go-mod-configuration/v3 v3.0.0-dev.2 // indirect github.com/edgexfoundry/go-mod-core-contracts/v3 v3.0.0-dev.2 // indirect - github.com/edgexfoundry/go-mod-messaging/v3 v3.0.0-dev.2 // indirect + github.com/edgexfoundry/go-mod-messaging/v3 v3.0.0-dev.3 // indirect github.com/edgexfoundry/go-mod-registry/v3 v3.0.0-dev.3 // indirect github.com/edgexfoundry/go-mod-secrets/v3 v3.0.0-dev.1 // indirect github.com/fatih/color v1.9.0 // indirect diff --git a/go.sum b/go.sum index 2cbdfa38..acc72359 100644 --- a/go.sum +++ b/go.sum @@ -45,16 +45,16 @@ github.com/diegoholiveira/jsonlogic/v3 v3.2.6 h1:EV607wRY72hT3V90ZOQw+zjXR9KIUV9 github.com/diegoholiveira/jsonlogic/v3 v3.2.6/go.mod h1:9oE8z9G+0OMxOoLHF3fhek3KuqD5CBqM0B6XFL08MSg= github.com/eclipse/paho.mqtt.golang v1.4.2 h1:66wOzfUHSSI1zamx7jR6yMEI5EuHnT1G6rNA5PM12m4= github.com/eclipse/paho.mqtt.golang v1.4.2/go.mod h1:JGt0RsEwEX+Xa/agj90YJ9d9DH2b7upDZMK9HRbFvCA= -github.com/edgexfoundry/app-functions-sdk-go/v3 v3.0.0-dev.11 h1:0TMi4ZOFssWd/WnaPZlgoJTTvUZFknZTqcSJ7WH+S9s= -github.com/edgexfoundry/app-functions-sdk-go/v3 v3.0.0-dev.11/go.mod h1:rDrEMtfZDpnDXR4ocLNi+9IowvjqpRaTGHVgkKU+WpY= -github.com/edgexfoundry/go-mod-bootstrap/v3 v3.0.0-dev.5 h1:3WMWQ0oi++KFrau/e8BOTqgzORCa3G7bLG0w/wO72Io= -github.com/edgexfoundry/go-mod-bootstrap/v3 v3.0.0-dev.5/go.mod h1:cGXMUtbbzw+npJpMcFHPlXIN+ZPF71aiimhJ6v8kaSc= +github.com/edgexfoundry/app-functions-sdk-go/v3 v3.0.0-dev.15 h1:dJnD514JgWFYKOMVFJtiwDgM34622Zdbxe/bmEC0xVw= +github.com/edgexfoundry/app-functions-sdk-go/v3 v3.0.0-dev.15/go.mod h1:Tx5zi/LgGvjElKzwCFaHWRSFYGBpVII7rOxB0BwYvvg= +github.com/edgexfoundry/go-mod-bootstrap/v3 v3.0.0-dev.7 h1:e0H7V7aFl9vC06ZUUQUzNpjqTQWs/XvdV/EKmk8zF/E= +github.com/edgexfoundry/go-mod-bootstrap/v3 v3.0.0-dev.7/go.mod h1:yW5dumg9IyfrHx4NYC5Ii0WVVB5OjTXQ/8/NkHHif5Q= github.com/edgexfoundry/go-mod-configuration/v3 v3.0.0-dev.2 h1:xp5MsP+qf/fuJxy8fT7k1N+c4j4C6w04qMCBXm6id7o= github.com/edgexfoundry/go-mod-configuration/v3 v3.0.0-dev.2/go.mod h1:1Vv4uWAo6r7k6jUlqVJW8JOL6YKVBc6sRL8Al3DrMck= github.com/edgexfoundry/go-mod-core-contracts/v3 v3.0.0-dev.2 h1:tleTxhbBISfDNn596rU71n+GOy27dMIme+v8Vl0uhpw= github.com/edgexfoundry/go-mod-core-contracts/v3 v3.0.0-dev.2/go.mod h1:7RwSq896VqelvSU7zYKs2tpZhgELVFECkiGf6XGLKfQ= -github.com/edgexfoundry/go-mod-messaging/v3 v3.0.0-dev.2 h1:bNXJHfxTo/1SzQbiJQUnySUGVP5i2FNwFsXQ+RzqR8Q= -github.com/edgexfoundry/go-mod-messaging/v3 v3.0.0-dev.2/go.mod h1:G0Vxoc8+JXwUqRH5ggyOZ/f/CIVPTswI5Ld7dI5uhIY= +github.com/edgexfoundry/go-mod-messaging/v3 v3.0.0-dev.3 h1:+el2HxEt02uFXXBmHK8gWETPklNbPg4wvYln/4/ooHo= +github.com/edgexfoundry/go-mod-messaging/v3 v3.0.0-dev.3/go.mod h1:G0Vxoc8+JXwUqRH5ggyOZ/f/CIVPTswI5Ld7dI5uhIY= github.com/edgexfoundry/go-mod-registry/v3 v3.0.0-dev.3 h1:QgZF9f70Cwpvkjw3tP1aiVGHc+yNFJNzW6hO8pDs3fg= github.com/edgexfoundry/go-mod-registry/v3 v3.0.0-dev.3/go.mod h1:2w8v0sv+i21nY+DY6JV4PFxsNTuxpGAjlNFlFMTfZkk= github.com/edgexfoundry/go-mod-secrets/v3 v3.0.0-dev.1 h1:dib+mZUuHqwVHt9pKAWC4lh60Fbc+6vKrD919LaknwI= diff --git a/res/external-mqtt-trigger/configuration.toml b/res/external-mqtt-trigger/configuration.toml index 05c2e901..9e76c52b 100644 --- a/res/external-mqtt-trigger/configuration.toml +++ b/res/external-mqtt-trigger/configuration.toml @@ -114,6 +114,9 @@ TokenFile = "/tmp/edgex/secrets/app-external-mqtt-trigger/secrets-token.json" Host = "localhost" Port = 59881 +[MessageBus] +Disabled = true + [Trigger] Type="external-mqtt" [Trigger.ExternalMqtt] diff --git a/res/functional-tests/configuration.toml b/res/functional-tests/configuration.toml index b01c7266..5c1d8be4 100644 --- a/res/functional-tests/configuration.toml +++ b/res/functional-tests/configuration.toml @@ -136,5 +136,8 @@ TokenFile = "/tmp/edgex/secrets/app-functional-tests/secrets-token.json" EndpointSocket = "/tmp/edgex/secrets/spiffe/public/api.sock" RequiredSecrets = "redisdb" +[MessageBus] +Disabled = true + [Trigger] Type="http" diff --git a/res/http-export/configuration.toml b/res/http-export/configuration.toml index 797ca4f8..169c7b58 100644 --- a/res/http-export/configuration.toml +++ b/res/http-export/configuration.toml @@ -175,36 +175,35 @@ TokenFile = "/tmp/edgex/secrets/app-http-export/secrets-token.json" Host = "localhost" Port = 59881 +[MessageBus] +Disabled = false # Set to true if not using edgex-messagebus Trigger below and don't want Metrics or Commands via MessageBus +Protocol = "redis" +Host = "localhost" +Port = 6379 +Type = "redis" +AuthMode = "usernamepassword" # required for redis messagebus (secure or insecure). +SecretName = "redisdb" + [MessageBus.Topics] + SubscribeTopics = "edgex/events/#" + [MessageBus.Optional] + # Default MQTT Specific options that need to be here to enable evnironment variable overrides of them + ClientId ="app-http-export" + Qos = "0" # Quality of Sevice values are 0 (At most once), 1 (At least once) or 2 (Exactly once) + KeepAlive = "10" # Seconds (must be 2 or greater) + Retained = "false" + AutoReconnect = "true" + ConnectTimeout = "5" # Seconds + SkipCertVerify = "false" + # Additional Default NATS Specific options that need to be here to enable evnironment variable overrides of them + Format = "nats" + RetryOnFailedConnect = "true" + QueueGroup = "" + Durable = "" + AutoProvision = "true" + Deliver = "new" + DefaultPubRetryAttempts = "2" + Subject = "edgex/#" # Required for NATS Jetstram only for stream autoprovsioning + [Trigger] Type="edgex-messagebus" - [Trigger.EdgexMessageBus] - Type = "redis" - [Trigger.EdgexMessageBus.SubscribeHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - SubscribeTopics="edgex/events/#" - [Trigger.EdgexMessageBus.PublishHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - [Trigger.EdgexMessageBus.Optional] - authmode = "usernamepassword" # required for redis messagebus (secure or insecure). - secretname = "redisdb" - # Default MQTT Specific options that need to be here to enable environment variable overrides of them - ClientId ="app-http-export" - Qos = "0" # Quality of Service values are 0 (At most once), 1 (At least once) or 2 (Exactly once) - KeepAlive = "10" # Seconds (must be 2 or greater) - Retained = "false" - AutoReconnect = "true" - ConnectTimeout = "5" # Seconds - SkipCertVerify = "false" - # Default NATS Specific options that need to be here to enable environment variable overrides of them - Format = "nats" - RetryOnFailedConnect = "true" - QueueGroup = "" - Durable = "" - AutoProvision = "true" - Deliver = "new" - DefaultPubRetryAttempts = "2" - Subject = "edgex/#" # Required for NATS JetStream only for stream auto provisioning + diff --git a/res/metrics-influxdb/configuration.toml b/res/metrics-influxdb/configuration.toml index 5e06f3a0..7a2ed3c6 100644 --- a/res/metrics-influxdb/configuration.toml +++ b/res/metrics-influxdb/configuration.toml @@ -108,32 +108,34 @@ TokenFile = "/tmp/edgex/secrets/app-metrics-influxdb/secrets-token.json" Host = "localhost" Port = 59881 +[MessageBus] +Disabled = false # Set to true if not using edgex-messagebus Trigger below and don't want Metrics or Commands via MessageBus +Protocol = "redis" +Host = "localhost" +Port = 6379 +Type = "redis" +AuthMode = "usernamepassword" # required for redis messagebus (secure or insecure). +SecretName = "redisdb" + [MessageBus.Topics] + SubscribeTopics = "edgex/telemetry/#" + [MessageBus.Optional] + # Default MQTT Specific options that need to be here to enable evnironment variable overrides of them + ClientId ="app-metrics-influxdb" + Qos = "0" # Quality of Sevice values are 0 (At most once), 1 (At least once) or 2 (Exactly once) + KeepAlive = "10" # Seconds (must be 2 or greater) + Retained = "false" + AutoReconnect = "true" + ConnectTimeout = "5" # Seconds + SkipCertVerify = "false" + # Additional Default NATS Specific options that need to be here to enable evnironment variable overrides of them + Format = "nats" + RetryOnFailedConnect = "true" + QueueGroup = "" + Durable = "" + AutoProvision = "true" + Deliver = "new" + DefaultPubRetryAttempts = "2" + Subject = "edgex/#" # Required for NATS Jetstram only for stream autoprovsioning + [Trigger] Type="edgex-messagebus" - [Trigger.EdgexMessageBus] - Type = "redis" - [Trigger.EdgexMessageBus.SubscribeHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - SubscribeTopics="edgex/telemetry/#" - [Trigger.EdgexMessageBus.Optional] - authmode = "usernamepassword" # required for redis messagebus (secure or insecure). - secretname = "redisdb" - # Default MQTT Specific options that need to be here to enable environment variable overrides of them - ClientId ="app-metrics-influxdb" - Qos = "0" # Quality of Service values are 0 (At most once), 1 (At least once) or 2 (Exactly once) - KeepAlive = "10" # Seconds (must be 2 or greater) - Retained = "false" - AutoReconnect = "true" - ConnectTimeout = "5" # Seconds - SkipCertVerify = "false" - # Default NATS Specific options that need to be here to enable environment variable overrides of them - Format = "nats" - RetryOnFailedConnect = "true" - QueueGroup = "" - Durable = "" - AutoProvision = "true" - Deliver = "new" - DefaultPubRetryAttempts = "2" - Subject = "edgex/#" # Required for NATS JetStream only for stream auto provisioning diff --git a/res/mqtt-export/configuration.toml b/res/mqtt-export/configuration.toml index d8c97fe1..59595704 100644 --- a/res/mqtt-export/configuration.toml +++ b/res/mqtt-export/configuration.toml @@ -167,36 +167,34 @@ TokenFile = "/tmp/edgex/secrets/app-mqtt-export/secrets-token.json" Host = "localhost" Port = 59881 +[MessageBus] +Disabled = false # Set to true if not using edgex-messagebus Trigger below and don't want Metrics or Commands via MessageBus +Protocol = "redis" +Host = "localhost" +Port = 6379 +Type = "redis" +AuthMode = "usernamepassword" # required for redis messagebus (secure or insecure). +SecretName = "redisdb" + [MessageBus.Topics] + SubscribeTopics = "edgex/events/#" + [MessageBus.Optional] + # Default MQTT Specific options that need to be here to enable evnironment variable overrides of them + ClientId ="app-mqtt-export" + Qos = "0" # Quality of Sevice values are 0 (At most once), 1 (At least once) or 2 (Exactly once) + KeepAlive = "10" # Seconds (must be 2 or greater) + Retained = "false" + AutoReconnect = "true" + ConnectTimeout = "5" # Seconds + SkipCertVerify = "false" + # Additional Default NATS Specific options that need to be here to enable evnironment variable overrides of them + Format = "nats" + RetryOnFailedConnect = "true" + QueueGroup = "" + Durable = "" + AutoProvision = "true" + Deliver = "new" + DefaultPubRetryAttempts = "2" + Subject = "edgex/#" # Required for NATS Jetstram only for stream autoprovsioning + [Trigger] Type="edgex-messagebus" - [Trigger.EdgexMessageBus] - Type = "redis" - [Trigger.EdgexMessageBus.SubscribeHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - SubscribeTopics="edgex/events/#" - [Trigger.EdgexMessageBus.PublishHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - [Trigger.EdgexMessageBus.Optional] - authmode = "usernamepassword" # required for redis messagebus (secure or insecure). - secretname = "redisdb" - # Default MQTT Specific options that need to be here to enable environment variable overrides of them - ClientId ="app-mqtt-export" - Qos = "0" # Quality of Service values are 0 (At most once), 1 (At least once) or 2 (Exactly once) - KeepAlive = "10" # Seconds (must be 2 or greater) - Retained = "false" - AutoReconnect = "true" - ConnectTimeout = "5" # Seconds - SkipCertVerify = "false" - # Default NATS Specific options that need to be here to enable environment variable overrides of them - Format = "nats" - RetryOnFailedConnect = "true" - QueueGroup = "" - Durable = "" - AutoProvision = "true" - Deliver = "new" - DefaultPubRetryAttempts = "2" - Subject = "edgex/#" # Required for NATS JetStream only for stream auto provisioning diff --git a/res/push-to-core/configuration.toml b/res/push-to-core/configuration.toml index 75d6cab5..cbe6ba48 100644 --- a/res/push-to-core/configuration.toml +++ b/res/push-to-core/configuration.toml @@ -81,5 +81,8 @@ TokenFile = "/tmp/edgex/secrets/app-push-to-core/secrets-token.json" EndpointSocket = "/tmp/edgex/secrets/spiffe/public/api.sock" RequiredSecrets = "redisdb" +[MessageBus] +Disabled = true + [Trigger] Type="http" \ No newline at end of file diff --git a/res/rules-engine/configuration.toml b/res/rules-engine/configuration.toml index d235c52f..f5f49767 100644 --- a/res/rules-engine/configuration.toml +++ b/res/rules-engine/configuration.toml @@ -115,38 +115,35 @@ TokenFile = "/tmp/edgex/secrets/app-rules-engine/secrets-token.json" Host = "localhost" Port = 59881 +[MessageBus] +Disabled = false # Set to true if not using edgex-messagebus Trigger below and don't want Metrics or Commands via MessageBus +Protocol = "redis" +Host = "localhost" +Port = 6379 +Type = "redis" +AuthMode = "usernamepassword" # required for redis messagebus (secure or insecure). +SecretName = "redisdb" + [MessageBus.Topics] + SubscribeTopics = "edgex/events/#" + PublishTopic="rules-events" + [MessageBus.Optional] + # Default MQTT Specific options that need to be here to enable evnironment variable overrides of them + ClientId ="app-rules-engine" + Qos = "0" # Quality of Sevice values are 0 (At most once), 1 (At least once) or 2 (Exactly once) + KeepAlive = "10" # Seconds (must be 2 or greater) + Retained = "false" + AutoReconnect = "true" + ConnectTimeout = "5" # Seconds + SkipCertVerify = "false" + # Additional Default NATS Specific options that need to be here to enable evnironment variable overrides of them + Format = "nats" + RetryOnFailedConnect = "true" + QueueGroup = "" + Durable = "" + AutoProvision = "true" + Deliver = "new" + DefaultPubRetryAttempts = "2" + Subject = "edgex/#" # Required for NATS Jetstram only for stream autoprovsioning [Trigger] Type="edgex-messagebus" - [Trigger.EdgexMessageBus] - Type = "redis" - [Trigger.EdgexMessageBus.SubscribeHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - SubscribeTopics="edgex/events/#" - [Trigger.EdgexMessageBus.PublishHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - PublishTopic="rules-events" - [Trigger.EdgexMessageBus.Optional] - authmode = "usernamepassword" # required for redis messagebus (secure or insecure). - secretname = "redisdb" - # Default MQTT Specific options that need to be here to enable environment variable overrides of them - ClientId ="app-rules-engine" - Qos = "0" # Quality of Service values are 0 (At most once), 1 (At least once) or 2 (Exactly once) - KeepAlive = "10" # Seconds (must be 2 or greater) - Retained = "false" - AutoReconnect = "true" - ConnectTimeout = "5" # Seconds - SkipCertVerify = "false" - # Default NATS Specific options that need to be here to enable environment variable overrides of them - Format = "nats" - RetryOnFailedConnect = "true" - QueueGroup = "" - Durable = "" - AutoProvision = "true" - Deliver = "new" - DefaultPubRetryAttempts = "2" - Subject = "edgex/#" # Required for NATS JetStream only for stream auto provisioning diff --git a/res/sample/configuration.toml b/res/sample/configuration.toml index 2bba3b09..0acd8042 100644 --- a/res/sample/configuration.toml +++ b/res/sample/configuration.toml @@ -261,37 +261,36 @@ TokenFile = "/tmp/edgex/secrets/app-sample/secrets-token.json" Host = "localhost" Port = 59860 +[MessageBus] +Disabled = false # Set to true if not using edgex-messagebus Trigger below and don't want Metrics or Commands via MessageBus +Protocol = "redis" +Host = "localhost" +Port = 6379 +Type = "redis" +AuthMode = "usernamepassword" # required for redis messagebus (secure or insecure). +SecretName = "redisdb" + [MessageBus.Topics] + SubscribeTopics = "edgex/events/#" + PublishTopic="sample" + [MessageBus.Optional] + # Default MQTT Specific options that need to be here to enable evnironment variable overrides of them + ClientId ="app-sample" + Qos = "0" # Quality of Sevice values are 0 (At most once), 1 (At least once) or 2 (Exactly once) + KeepAlive = "10" # Seconds (must be 2 or greater) + Retained = "false" + AutoReconnect = "true" + ConnectTimeout = "5" # Seconds + SkipCertVerify = "false" + # Additional Default NATS Specific options that need to be here to enable evnironment variable overrides of them + Format = "nats" + RetryOnFailedConnect = "true" + QueueGroup = "" + Durable = "" + AutoProvision = "true" + Deliver = "new" + DefaultPubRetryAttempts = "2" + Subject = "edgex/#" # Required for NATS Jetstram only for stream autoprovsioning + [Trigger] Type="edgex-messagebus" - [Trigger.EdgexMessageBus] - Type = "redis" - [Trigger.EdgexMessageBus.SubscribeHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - SubscribeTopics="edgex/events/#" - [Trigger.EdgexMessageBus.PublishHost] - Host = "localhost" - Port = 6379 - Protocol = "redis" - PublishTopic ="example" - [Trigger.EdgexMessageBus.Optional] - authmode = "usernamepassword" # required for redis messagebus (secure or insecure). - secretname = "redisdb" - # Default MQTT Specific options that need to be here to enable environment variable overrides of them - ClientId ="app-sample" - Qos = "0" # Quality of Service values are 0 (At most once), 1 (At least once) or 2 (Exactly once) - KeepAlive = "10" # Seconds (must be 2 or greater) - Retained = "false" - AutoReconnect = "true" - ConnectTimeout = "5" # Seconds - SkipCertVerify = "false" - # Default NATS Specific options that need to be here to enable environment variable overrides of them - Format = "nats" - RetryOnFailedConnect = "true" - QueueGroup = "" - Durable = "" - AutoProvision = "true" - Deliver = "new" - DefaultPubRetryAttempts = "2" - Subject = "edgex/#" # Required for NATS JetStream only for stream autoprovisioning +