Geneva Release
Code Freeze: Apr 22, 2020
Release: May 13, 2020
The Geneva release will be a minor release (1.2) with a focus on testing, a few but important key features such as automated device provisioning and a replacement for the final Java service - the rules engine.
Geneva Release Overview
Release Themes and Objectives
Improved Security
Interoperability testing
Dynamic device provisioning/on-boarding
Alternate messaging support (to 0MQ)
Archive of Export Services - in favor of Application Services which was implemented with the Edinburgh and Fuji releases
DevOps Jenkins Pipelines
Provide an alternate local analytics service (archiving the Java-based rules engine service)
Deprecating the following:
Logging service
MongoDB support
General
Move to Go 1.13
Redis as default DB
Implement with username/password protection.
0MQ Alternate between core and app services
Should help with Windows dev (long standing backlog)
Separate the configuration and registry APIs
Establish a document template for API information
Used to better define the Swagger documents
Use of Dependency Injection in Go services found in edgex-go
Core/Supporting Services
Combine/reduce UIs
Blacklist/whitelist of devices (w/ DS WG)
As part of auto provisioning
Alternate message bus provider (w/ App WG)
Allowing data from Core Data to be pushed to multiple channels / topics and how to deal with marking an event/reading as pushed in that circumstances
Application Services and App Functions SDK
Export Service archive/deprecation
Application services should provide for batch and send modes
Rules Engine Replacement (w/ Core WG)
JSON Logic and/or EMQX Kuiper implementation
Create a design and implement a means for application services to feed data back into core data
Support Cloud Event import (device service) and export (if not supporting Cloud Events model throughout) – stretch goal
Device Services and Device Service SDKs
Automatic/dynamic device provisioning capability
Array of data types (w/ Core WG)
Data filter design between DS and Core Data
Provide a design about how to implement this before implementing.
If possible, can the filter functions be shared across App Services and D.S. (w/ App WG)
System Management
Open Horizon “Walk phase” (TBD)
Security
Create a hardware secret storage design
HW secure storage abstraction layer
How to protect the Vault Master Key
Create and use a per service Vault token in the security services
Service token revocation and rotation
Blackbox tests of APIs through the API gateway
Design work
How to implement HTTPS in EdgeX (that is, how to protect all service endpoints with HTTPS)
How to implement role-based security across our all EdgeX services.
Test/QA
Device Service testing – complete testing for current set of EdgeX Device Service (w/ DS WG)
New blackbox tests to support V2 API changes on new Robot-based Test Automation Framework
Documentation – move all API definitions to Swagger (w/ all WG assistance)
Documentation – move from RST to Markdown
Explore documentation versioning – stretch goal
System integration / interoperability tests - Device Service read data -> Core Data -> Rules Engine or Application/Export Service -> Command
Implement enough performance testing in order to be able to answer key performance measures – extend existing Robot perf test summary suite developed during Fuji
Add unit tests/testing for global libraries. (w/ DevOps help) – stretch goal
DevOps
Move to Jenkins Pipeline
Requires the use of Github.org Plugin for Jenkins
Apply Synk scan to other services and images (w/ all WG input)
Synk can’t do ARM images
Certification
Planning and design work toward certification and self-assessment for when LTS hits.
Vertical Solutions WG
China Project Team in place
Additional Release Notes
Geneva will not be LTS. While no specific future release is pinpointed for LTS, the general hope is that the Ireland release will be a bug fix only, minor release that might be our best opportunity for an LTS.
Export services are removed from the Geneva release. This required the approval of a backward compatibility exception for Geneva since it is no longer a major release.