Skip to content

Common Configuration

The tables in each of the tabs below document configuration properties that are common to all services in the EdgeX Foundry platform. Service-specific properties can be found on the respective documentation page for each service.

Configuration Properties

Edgex 2.0

For EdgeX 2.0 the Logging and Startup sections have been removed. Startup has been replaced with the EDGEX_STARTUP_DURATION (default is 60 secs) and EDGEX_STARTUP_INTERVAL (default is 1 sec) environment variables.

Property Default Value Description
entries in the Writable section of the configuration can be changed on the fly while the service is running if the service is running with the -cp/--configProvider flag
LogLevel INFO log entry severity level. Log entries not of the default level or higher are ignored.
InsecureSecrets --- This section a map of secrets which simulates the SecretStore for accessing secrets when running in non-secure mode. All services have a default entry for Redis DB credentials called redisdb

Edgex 2.0

For EdgeX 2.0 the Writable.InsecureSecrets configuration section is new.

Property Default Value Description
Interval 30s The interval in seconds at which to report the metrics currently being collected and enabled. Value of 0s disables reporting.
PublishTopicPrefix "edgex/telemetry" The base topic in which to publish (report) metrics currently being collected and enabled. /<service-name>/<metric-name> will be added to this base topic prefix.
Metrics Boolean map of service metrics that are being collected. The boolean flag for each indicates if the metric is enabled for reporting. i.e. EventsPersisted = true. The metric name must match one defined by the service.
SecuritySecretsRequested = false Enable/Disable reporting of number of secrets requested
SecuritySecretsStored = false Enable/Disable reporting of number of secrets stored
SecurityConsulTokensRequested = false Enable/Disable reporting of number of Consul token requested
SecurityConsulTokenDuration = false Enable/Disable reporting of duration for obtaining Consul token
<Service dependent>= false Enable/Disable reporting of service defined metric
Tags <Service dependent> String map of arbitrary tags to be added to every metric that is reported for the service. i.e. Gateway="my-iot-gateway". The tag names are arbitrary.

Edgex 2.2/2.3

Service Metrics have been added in EdgeX 2.2 and expanded in EdgeX 2.3.

Property Default Value Description
HealthCheckInterval 10s The interval in seconds at which the service registry(Consul) will conduct a health check of this service.
Host localhost Micro service host name
Port --- Micro service port number (specific for each service)
ServerBindAddr '' (empty string) The interface on which the service's REST server should listen. By default the server is to listen on the interface to which the Host option resolves (leaving it blank). A value of 0.0.0.0 means listen on all available interfaces. App & Device service do not implement this setting
StartupMsg --- Message logged when service completes bootstrap start-up
MaxResultCount 1024* Read data limit per invocation. *Default value is for core/support services. Application and Device services do not implement this setting.
MaxRequestSize 0 Defines the maximum size of http request body in kilbytes. 0 represents default to system max.
RequestTimeout 5s Specifies a timeout duration for handling requests

Edgex 2.0

For EdgeX 2.0 Protocol and BootTimeout have been removed. CheckInterval and Timeout have been renamed to HealthCheckInterval and RequestTimeout respectively. MaxRequestSize was added for all services.

Edgex 2.2

For EdgeX 2.2 Service MaxRequestSize has been implemented to all services, and the unit is kilobyte.

Property Default Value Description
The settings of controling CORS http headers
EnableCORS false Enable or disable CORS support.
CORSAllowCredentials false The value of Access-Control-Allow-Credentials http header. It appears only if the value is true.
CORSAllowedOrigin "https://localhost" The value of Access-Control-Allow-Origin http header.
CORSAllowedMethods "GET, POST, PUT, PATCH, DELETE" The value of Access-Control-Allow-Methods http header.
CORSAllowedHeaders "Authorization, Accept, Accept-Language, Content-Language, Content-Type, X-Correlation-ID" The value of Access-Control-Allow-Headers http header.
CORSExposeHeaders "Cache-Control, Content-Language, Content-Length, Content-Type, Expires, Last-Modified, Pragma, X-Correlation-ID" The value of Access-Control-Expose-Headers http header.
CORSMaxAge 3600 The value of Access-Control-Max-Age http header.

Edgex 2.1

New for EdgeX 2.1 is the ability to enable CORS access to EdgeX microservices through configuration.

To understand more details about these HTTP headers, please refer to MDN Web Docs, and refer to CORS enabling to learn more.

Property Default Value Description
configuration that govern database connectivity and the type of database to use. While not all services require DB connectivity, most do and so this has been included in the common configuration docs.
Host localhost DB host name
Port 6379 DB port number
Name ---- Database or document store name (Specific to the service)
Timeout 5000 DB connection timeout
Type redisdb DB type. Redis is the only supported DB

Edgex 2.0

For EdgeX 2.0 mongodb has been remove as a supported DB. The credentials username and password have been removed and are now in the Writable.InsecureSecrets.DB section.

Property Default Value Description
this configuration only takes effect when connecting to the registry for configuration info
Host localhost Registry host name
Port 8500 Registry port number
Type consul Registry implementation type
Property Default Value Description
Each service has it own collect of Clients that it uses
Protocol http The protocol to use when building a URI to local the service endpoint
Host localhost The host name or IP address where the service is hosted
Port 598xx The port exposed by the target service
UseMessageBus false indicate whether to use Messaging version of client
Topics holds the MessageBus Topics used by the client to communicate to the service
CommandRequestTopicPrefix = edgex/core/command/request for publishing the internal command request
CommandResponseTopic = edgex/core/command/response/# for subscribing the internal command response
QueryRequestTopic = edgex/core/commandquery/request for publishing the internal command query request
QueryResponseTopic = edgex/core/commandquery/response for subscribing the internal command query response

Edgex 2.0

For EdgeX 2.0 the map keys have changed to be the service's service-key, i.e. Metadata changed to core-metadata

Edgex 2.3

The UseMessageBus and Topics fields are only viable for Command client

Property Default Value Description
these config values are used when security is enabled and SecretStore service access is required for obtaining secrets, such as database credentials
Type vault The type of the SecretStore service to use. Currenly only vault is supported.
Host localhost The host name or IP address associated with the SecretStore service
Port 8200 The configured port on which the SecretStore service is listening
Path <service-key>/ The service-specific path where the secrets are kept. This path will differ according to the given service.
Protocol http The protocol to be used when communicating with the SecretStore service
RootCaCertPath blank Default is to not use HTTPS
ServerName blank Not needed for HTTP
TokenFile /tmp/edgex/secrets/<service-key>/secrets-token.json Fully-qualified path to the location of the service's SecretStore access token. This path will differ according to the given service.
SecretsFile blank Fully-qualified path to the location of the service's JSON secrets file contains secrets to seed at start-up. See Seeding Service Secrets section for more details on seed a service's secrets.
DisableScrubSecretsFile false Controls if the secrets file is scrubbed (secret data remove) and rewritten after importing the secrets.
Authentication AuthType X-Vault-Token A header used to indicate how the given service will authenticate with the SecretStore service

Edgex 2.0

For EdgeX 2.0 the Protocol default has changed to HTTP which no longer requires RootCaCertPath and ServerName to be set. Path has been reduce to the sub-path for the service since the based path is fixed. TokenFile default value has changed and requires the service-key be used in the path.

Writable vs Readable Settings

Within a given service's configuration, there are keys whose values can be edited and change the behavior of the service while it is running versus those that are effectively read-only. These writable settings are grouped under a given service key. For example, the top-level groupings for edgex-core-data are:

  • /edgex/core/2.0/edgex-core-data/Writable
  • /edgex/core/2.0/edgex-core-data/Service
  • /edgex/core/2.0/edgex-core-data/Clients
  • /edgex/core/2.0/edgex-core-data/Databases
  • /edgex/core/2.0/edgex-core-data/MessageQueue
  • /edgex/core/2.0/edgex-core-data/Registry
  • /edgex/core/2.0/edgex-core-data/SecretStore

Any configuration settings found in a service's Writable section may be changed and affect a service's behavior without a restart. Any modifications to the other settings (read-only configuration) would require a restart.