Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Delivery:  ~ June 2021

Namer:  Lenny Goodell and Mike Johanson (Intel)

The Ireland release is anticipated to be a bug-fix-only release; pending the delivery of the V2 APIs in Hanoi.  It should be a dot major release (2.10) on top with implementation of the Hanoi 2.0 release. While the community hesitates to specifically target a release as LTS before the release is fully scoped and planned, it is hoped this will be the first Long Term Supported version of EdgeXV2 APIs started in Hanoi completed.

Release Themes and Objectives

  • Implementation of the initial Certification program (targeting Device Service certification to start)
  • Improved documentation and example code
  • Improved integration and performance testing
  • Improve consistency across all service builds

General

  • Upgrade scripts and tools for DB and configuration migration
  • V2 API for all services
    • Includes addition of clients, TAF tests, changing all services to use V2 APIs
    • Get rid of V1
    • Decision: remove as much V1 code as we can but not focus on that until Jakarta
      • Note: this will affect code coverage metrics
  • Kong on all the time (stretch)
  • Device service to appl service via message
    • Have to deal with marked as pushed & core data not there – Lenny needs update to ADR
    • Possible race condition in app service done with it before core data gets it
  • Device service to core data via message bus
  • Archive deprecated services/infrastructure
    • Mongo (some Mongo code in sdks and edgex-go)
    • Logging (still some code in bootstrap and client)
    • Drools
  • Code clean up for backwards compatibility
    • Rip out stuff that is provided for backward compatibility that won’t be necessary
  • Address max request size check

Core/Supporting Services

  • Modifying device profiles on the fly (dynamically add resources) - stretch
  • Fix Redis names/keys (add prefix to the namespace) (#2861)
    • Will be better for ACL later
  • Improve profile validation logic (#2647) – stretch
  • Address how to get device resource info (for app services and Kuiper)
  • Add profile to Event/Reading objects
  • Change name property on Reading to resourceName
  • Add formatted alternatives to log functions (#295)
  • Structure core data’s Writable area – add structure

CLI

  • V2 API support
  • TAF testing support (at least a basic start, subject to some research to know what is possible)
  • Add support for device and application services
  • Additional API coverage (exact APIs to be determined - high priority commands not covered with version 1)

UI

  • Create a device UI “wizard” that allows adding a new device much quicker.
    • Takes a user through screens to create a new device, reference or create a device profile, add addressable, provide AutoEvent schedule, etc. and associate it to a device service
  • Add some data visualization to the UI
    • Need the ability to “click and see” the data
    • See the data in the core database
  • SMA integration
  • Link UI to Endorsement page of existing profiles
  • Use new web site branding/styles to brand the UI

Application and Analytic Services

  • Fork the pipeline & have a pipeline per topic
    • Conditionalize and be able to skip functions in pipeline (“fork the pipeline”)
    • Decisions in the pipeline to determine what gets executed
  • Integrate additional analytics framework
    • Example service (likely TensorFlow)
  • V2 API Consumption
  • Output aggregator/multiplexor? stretch
    • Have an array of export endpoints
    • Issue of what happens if one export fails (and marked as pushed) – perhaps handle via configuration
  • Batch mark/push –how to push after a big batch is sent
  • Address array of types in rules engines/analytics engines – stretch
    • Kuiper (not sure if it handles)
    • JSONLogic function doesn’t handle array types
  • Remove/Archive Drools Rules Engine associated artifacts
    • Logging, Mongo too
  • Refactoring & cleanup

DevOps

  • Repo badges for EdgeX repos
  • Automated change log creation now that conventional commits have been adopted
  • Developer enablement
    • Docs (how pipelines work)
    • Tutorials
    • Help devs become self-reliant/sufficient
    • Started in Hanoi release
  • Automation around pinning image versions in developer scripts - Stretch
  • Security bench
  • Release automation streamlining
  • Docker image naming
    • Drop “go” suffix and “docker” prefix
  • Dockerfile clean up in some services
  • Clean up DevOps wiki pages
  • Tag Docker Hub images to indicate which are out of support

Security

  • Revamp of EdgeX docker bootstrapping
    • Eliminate TLS usage and private PKI
    • Eliminate hard-coded Postgres password
  • Enable BYO Kong certificate
  • Ensure that service location data is pulled from trusted source (i.e. not Consul)
  • Secure Kong admin port
  • New secret provider abstraction (non-back)
  • Utility - refactoring proxy setup to move the post installation out to separate utility
  • Support delayed services starting after vault token expired- Stretch

TestQA

  • TAF for V2 API
    • Deprecate blackbox tests
  • Complete Modbus scalability tests
  • Polish / automate how we make performance data available to allow users to make informed decision
  • Additional Integration/Functional test cases - Stretch
    • Kuiper integration test/smoke test

Device Services

  • Consume v2 API
  • Event filtering: implementation - Stretch
  • Impl of DS to AS via message bus
  • Message bus for Device Service → Core Data – Stretch
  • Obtain security credentials from secret store
  • Check of set requests on device service against device profiles (setting above, min, max, etc.)? Small (already done in C)
    • Validation of set data against what is in the profile
  • Review and acceptance of new device services (4x)
  • Device list shouldn’t be in configuration.toml - Stretch
  • support-logging removal
  • Naming scheme changes for config.Clients (key name change)
  • This is based on issue request stemming from system management and monitoring
  • Continued refactoring for global vars – in scope; small change in SDKs
  • Remove binary representation (base64) for floating point values
  • Remove OperationalState for device services
  • Rename OperationalState values for devices (currently ENABLED/DISABLED, suggest UP/DOWN) – in scope; small
  • Archive Random Device Service

Miscellaneous

  • Standardization of units of measure
  • Support getting current log level from API (#294) – (AR - Jim to follow up)
  • Replace 0MQ library (#73)
  • Add guidance on when to use what logging level in the wiki (contribution section)
  • Revisit combing core services at least at all executables in one image
  • Naming scheme changes for config.Clients (key name change)
  • Develop a checklist for edgexfoundry-holding to edgexfoundry repo moves