Release Date: Wed November 15th 2023
Code Freeze: Wed October 25th 2023
Namer: Ernesto Ojeda (EdgeX Foundry DevOps Working Group lead and TSC member)
The Napa release is EdgeX version 3.1 (the 13th overall release and the first dot release off EdgeX 3.0). It is a stabilization of the version 3 and is our current Long Term Support (LTS) release, replacing Jakarta (EdgeX 2.1) in having current LTS status.
Release Major Themes
- URI for Files
- Added support for loading EdgeX configuration files from a remote location via a URI. This includes configurations, unit of measurements, device profiles, device definitions and provision watchers
- An important benefit of this is to allow services to share more of the configuration and start-up information in a single location, rather than users needing to duplicate and have multiple sources for the same information
- See here for full details: https://docs.edgexfoundry.org/3.1/microservices/general/#uri-for-files
- Note that this feature is not yet available in the C Device Service SDK and is aimed for completion in the next release (Odessa)
- Common Configuration - Added support for C Device Services
- The Common Configuration pattern added in EdgeX 3.0 is now also supported in the C Device Service SDK meaning that all services now support this feature
- Major Documentation Improvements
- Overhaul, refactor and general improvement of the EdgeX documentation - especially as part of the V3 stabilization work
- The documentation for each service has a standard structure (e.g., purpose, getting started, configuration, API reference, source code and additional details)
- Added new tiled home page directing users to key or common parts of the documentation
- See the updated documentation here: https://docs.edgexfoundry.org/3.1/
- Data Retention Capability
- New capability for Core Data and the Support Notifications service to retain a configurable maximal number of readings with automatic data purging to maintain the configured maximum data
- See here for full details: https://docs.edgexfoundry.org/3.1/microservices/core/data/details/DataRetention/ and https://docs.edgexfoundry.org/3.1/microservices/support/notifications/details/DataRetention/
- Record and Replay Service
- Added new Record and Replay capability as an Application Service that will record EdgeX events received by the internal message bus, and replay them back to the message bus at a later time
- This is particularly useful to help test that new/existing EdgeX services receive and process EdgeX events correctly, without needing device services and real physical devices to always be present
- See here for full details: https://docs.edgexfoundry.org/3.1/microservices/application/services/AppRecordReplay/
Additional Features/updates/project improvements or changes
- Upgrade to Go 1.21
- Requirements (UCR) in place for microservice authentication based on end to end encryption in EdgeX: https://docs.edgexfoundry.org/3.1/design/ucr/Microservice-Authentication/. An ADR (design) is now in review and intended for implementation in the next release (Odessa)
- Allow for the experimentation of use of NanoMQ as the message bus within EdgeX, optionally configured within the EdgeX compose-builder utility: https://github.com/edgexfoundry/edgex-compose
- Replace the no-longer-support Gorilla/mux Go router library with the better supported Echo stack
- Continued improvements to move common code into go-mod-bootstrap
- EdgeX Snaps are no longer directly built or supported by the EdgeX community. Snaps will not be part of the LTS support listing
- More metrics for Application and Device Services
- Export error (HTTP & MQTT) for App Services
- LastConnected for Device Services
- New Device Services for both CAN and Siemens S7 PLCs have been added to the project during this cycle, although these are not ready for immediate release
- Moved reference helm charts for EdgeX to their own repository: https://github.com/edgexfoundry/edgex-helm
Known Bugs
- Insecure secrets callback does work for removed secrets: https://github.com/edgexfoundry/go-mod-bootstrap/issues/534. This applies to any map in Writable section (ASC pipeline functions, etc).
- The workaround is to restarting service after removing entry.
- This issue will be fixed in future v3.x release
- The Device C SDK is unable to correctly parse the Unicode replacement rune in the JSON payload received from the message bus. https://github.com/edgexfoundry/device-sdk-c/issues/465.
- Workaround is here: https://github.com/edgexfoundry/device-sdk-c/issues/465#issuecomment-1705827784
Changelogs
TODO