Minnesota

Release Date:  May 31, 2023

Code Freeze: May 10, 2023

Namers:  Brett Preston (Linux Foundation - former and original LF project director)

The Minnesota release is version 3.0 (the 12th overall release and the third major release behind the Edinburgh and Ireland releases).  Due to API and other tech debt changes, Minnesota is NOT backward compatible with the EdgeX 1.x or EdgeX 2.x releases. The release is not an LTS release. Jakarta (2.1) remain an LTS release.  It is anticipated that the community will create its second LTS on top of Minnesota in the fall or 2023 (the Napa 3.1 release),

Release Major Themes

  • Common and Simplified Configuration of the EdgeX services
    • This is the new ability to now configure key settings of EdgeX in a single configuration location rather than needing to apply settings across multiple microservice manually
    • Configuration settings here include logging, telemetry config, the host address, security credentials, database and message bus settings, etc
    • Previously each EdgeX microservice loaded its own configuration and therefore the user was required to change settings in multiple places for it to affect all services. This was time consuming and error prone
    • The new common configuration approach provides a layered strategy, where in one place, users can configure settings common to all services or those that should only apply to the application or device services 
    • Configuration settings can be loaded via a new core-common-config-bootstrapper service or via a file referenced by a new command line option 
    • See here for full details https://docs.edgexfoundry.org/3.0/microservices/configuration/CommonConfiguration/
  • Simplify the file formats used for EdgeX configuration
    • In EdgeX v2, different services were configured by different means: app services via TOML or JSON, device services via TOML or JSON, device profiles via YAML or JSON, provision watchers by JSON. 
    • To reduce confusion and the learning curve for the user, better to consolidate where possible. JSON can be derived from YAML, therefore EdgeX TSC decided to drop TOML
    • EdgeX V3 has replaced usage of TOML in app services and device services configuration with YAML, with TOML removed from EdgeX
  • V3 APIs  
    • This is a major release bump so the APIs are updated to v3. This includes minor changes: TODO
  • Microservice authentication with Vault JSON Web Tokens (JWT)
    • When run in secure mode, the EdgeX microservices will now require an authentication token before they will respond to requests issued over the REST API
    • The EdgeX Secret Store (Vault) now provides the tokens for each service to invoke authenticated outgoing requests to the other EdgeX services
    • Previously authentication was provided by the API Gateway which meant that internal requests from the local microservices were unauthenticated 
    • See here for full details: https://docs.edgexfoundry.org/3.0/security/Ch-Authenticating/
    • Another positive result of this work is the replacement of the Kong API Gateway with the lighter-wright NGINX API Gateway. Static and run-time memory is reduced as a result
  • Removal of much technical debt from EdgeX V2 including complete removal of ZeroMQ, SecretPath to SecretName refactoring, removal of dead code in the API Gateway flows, and many more

Additional Features/updates/project improvements

Known Bugs

Changelogs

Core, Supporting and Security Services Changelog

Go Device Service SDK Changelog

C Device Service SDK Changelog

App Functions SDK Changelog

App Service Configurable Changelog

CoAP Device Service Changelog

Modbus Device Service Changelog

MQTT Device Service Changelog

REST Device Service Changelog

SNMP Device Service Changelog

Virtual Device Service Changelog

EdgeX User Interface Changelog