Napa
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 implementation using OpenZiti is 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 SDK C version number displayed in the device service log is incorrect; it should be 3.1.0, not 3.0.2. https://github.com/edgexfoundry/device-sdk-c/issues/497
The Device SDK C and C Device Services don't support new URI for files features:
The C Device Services may crash during the Device deletion if the auto events are running.
https://github.com/edgexfoundry/device-sdk-c/issues/494
Changelogs
Core, Supporting and Security Services Changelog
Go Device Service SDK Changelog
C Device Service SDK Changelog
App Service Configurable Changelog
Device Services:
EdgeX User Interface Changelog