---
# System prepended metadata

title: EdgeHub Release Note v2.3
tags: [Documentation]

---

---
title: 'EdgeHub Release Note v2.3'
disqus: hackmd
---

:memo:EdgeHub Release Note
===

## Version: 2.3.11.2 (2025/02/17)

### Device Management

#### [Update]

* LoRaWAN Worker
  * Not update the WISE-2200 configuration result after the configuration message is timeout

#### [Fix]

* LoRaWAN
  * [#40188] [DPM] The Modbus/RTU setting will show error but the length is not larger than 128
  * [#40261] [DPM] Suggest to unify the names of LoRaWAN Configure function on DPM and device configuration on WISE Studio page
  * [#40253] [DPM] WISE-6610 will send config of WISE-2200 per minute because of the re-send request of EdgeHub
  * [#40342] [DPM] The 'Start Address' and 'Scan Interval' in Modbus/RTU configuration of WISE-2200 cannot be set to 65535.

* Others
  * [#40152] [DPM] Error occurred if save or dispatch in ADAM IO configure page
  * [#40079] [DPM] Suggest to add tag name info in the event rule editing page
  * [#40263] [DPM] Some discrete tags cannot be set an alarm rule value


## Version: 2.3.11 (2025/01/17)

### Device Management

#### [New]

* For LoRaWAN child devices(WISE-2200-M)
  * Add the device configuration: Reboot
  * Add the feature to trigger child devices to upload their device configurations:
    * When the DPM receives a message from the WISE-6610 and detects that the WISE-6610 has new child devices.
    * When the user clicks the child device page.
  * Add the update time of the device configuration
  * For RS-485 configurations:
    * Remove the 7 bit option in the data bit since WISE-2200-M does not support it
    * Add the Protocol field: Modbus/RTU mode, Transparent mode(only for switching to Modbus/RTU mode)

* Center API
  * Add the proxy for the following SSO APIs:
    * Send the forget user's password email
    * Input the auth code from the forget password email
    * Reset the user's password
    * Activate the inactive user's account

* DPM API
  * Increase the lease TTL value for the etcd connection

#### [Update]

* For LoRaWAN child devices
  * For the Modbus/RTU configuration, improve the rule check method

* Tag Event rule
  * Allow the string input in the event rule setting when the tag type is Text.

#### [Fix]

* LoRaWAN
  * [#40033] [DPM] The UI keep loading when delete a WISE-6610 and press Add buton to create LoRaWAN
  * [#40070] [DPM] User can't clear all selected items after select all on Node devices

* Others
  * [#39905] [DPM] Use 1M size to do device task, but it show only support 3000 devices

### Data Management
#### [Update]
- #### Core
  - [Subscription] Update trial agreement to v5.1
  - [Dataworker] update efk log format
  - [Dispatcher] Add POST API Trigger for Excessive Device Usage
  - [Notification] Email notify tenant admin about the device' data count exceeds the threshold 

#### [Fix]
- #### Core
  - [#39925][Alarm][DM] Complex alarms with string data type parameters are triggered/recovered repeatedly.
  - [#40016][evaluator][DM] TimeMatch('everyyear','1m1d0s','+08:00') will triger too many tme
  
- #### Data management
  - [#39809][Parameter][DM] The first created parameter can't be seen until move the scroll bar on right hand side parameter list
  - [#39899][DM] The data of group address will be error when use 127 length

- #### User management
  - [api-portal] sync ifp tenant user roles must filter from default roles
  
- #### Command center
  - [#39926][CC] There is no S-Type field(Cannot select DPM/DM data source) in SaaS Composer if the tenant is new created.
  - [#39530][DM] The data source option items are disappear on "Advantech Ene Dashboard Switch" panel.



## Version: 2.3.10 (2025/01/03)

### Device Management

#### [New]

* For LoRaWAN child devices
  * Add following device configurations for WISE-2200-M:
    * Data update interval
    * System ACK
    * RS-485
    * Modbus/RTU rules

#### [Update]

* For LoRaWAN child devices
  * In the Info tab, add LoRaWAN device class and firmware version fields

* Center API
  * Add the SSO token refresh API

#### [Fix]

* Event Alarm
  * [#39715] [DPM] Alarm Status can't be edited after be acked
  * [#39585] [DPM] The event of parameter won't refresh when switch 2 event page of Edgelink
  * [#36978] [DPM] The "acknowledge alarm" report rule is different in DM & DPM

* Others
  * [#39872] [DPM] The max size is 5M but it will show error when upload almost 5M size file on batch task and mass deploy

### Data Management
#### [Update]
- #### Core
  - [worker] Support iSensingMQTT: Sensor config
  - [worker] Support iSensingMQTT: multiple rule indexes in one modbusserver_config 
  - [event-dispatcher] Support disabling a device when its data count exceeds the threshold.
#### [Fix]
- #### Core
  - [#39895][dbcreator][DM] User can't create new plugin list
  - [subscribe] Deduction points calculation error
  
- #### Data management
  - [#39876][DM] It will fail when import object template csv file
  - [#39841][DM] It will show error when import template on profile management

- #### Command center
  - [#39909][CC] Cannot export alarm report in dashboard alarm panel.


## Version: 2.3.9 (2024/12/20)

### Device Management

#### [Update]

* For Device Group:
  * In the Monitor tab, change the name of Parameters event to Tags event.

* Security improvement for all K8s Pods
  * Execute applications as non-root user

#### [Fix]

* Others
  * [#39340] [DPM] WISE-4012 AI Channel Settings should be disabled when channel is in AI average mode

### Data Management
#### [Update]
- #### Core
  - [Portal] Update EdgeHub start SOP file (2.0 -> 3.0)
  - [Subscribe] change default quota of free trial to '30 devices'
- #### Data management
  - [Parameter] String parameter support complex alarm


#### [Fix]
- #### Core
  - [Evaluator] Non-data thread might crash while receive JSON message with bad format
  - [dbcreator]  'add column OutputId' command error.
- #### Data management
  - [#39846][DM] It will show error when save the profile with alarm setting
  - [#39841][DM] It will show error when import template on profile management


  

## Version: 2.3.8 (2024/12/06)

### Device Management

#### [Update]

* For LoRaWAN Batch create child devices
  * Add one Tab for the display of batch creation log
* In the Tag tab of My Device, remove the Parameter field.
* For My Device and Device Group:
  * In the Event tab, change the tab name of the Parameters to Tags.
* For EdgeLink Project in the File Management
  * The dispatch of project file is not allowed when the device is offline
  * Extend the max length of Project name to 32
  * Extend the max length of File name to 64

#### [Fix]

* Others
  * [#39631] [DPM] The translation of Firmware is not the same on Simplified Chinese
  * [#39174] [DPM] Some message aren't translated to Mandarin
  * [#39647] [DPM] The warning message of Simplified Chinese is not easy to understand
  * [#39144] [DPM] There is no process bar or other information when doing WISE-2200-M batch import
  * [#39692] [DPM] There is no deive on device list when use the retry function of file management

### Data Management
#### [Update]
- #### Core
  - [Worker] handle isensing general config
  - [Evaluator] Update description of parameter 'ObjectType' of TotalObjects
#### [Fix]
- #### Core
  - [Worker] amqp consumer close not reconnect
  - [profile-server] When deploying a new environment, some tables failed to be created successfully.
- #### User management
  - [#39584][UM] The role 'Engineer' of user will be removed if disable the user.
  - [#39578][UM] The role permissions of Engineer isn't correct.
  - [#39559][UM] There is no any function icon when use the view permission of DPM

- #### Command center
  - [#39760][CC] Dashboard ene alarm panel and switch panel are not found.

## Version: 2.3.7 (2024/11/22)

### Device Management


#### [Update]

* For LoRaWAN devices
  * In the child device list, update the display of parent device according to the UI design

* Web pages
  * In My Devices, modify the Tags tab:
    * Hide the Parameter sub tab since parameters will be automatically generated when tags are created
    * Add one field: Event rule
    * If Data management is installed, hide the field of recording rate.
    * Update the display according to the UI design
  * In My Devices, modify the display of mode in the device list and the result in the batch task.

* Management Portal
  * For EdgeLink firmware version, add a new format that contains four digital (ex: 2.8.3.1, 2.8.3.r1).

#### [Fix]

* LoRaWAN
  * [#39494] [DPM] The device mode of WISE-2200 cannot be set and view in My device
  * [#39524] [DPM] There should show true/false on Enable field of WISE-6610 config setting log
  * [#39527] [DPM] The comments field of config log can be removed

* Others
  * [#38804] [DPM] There is a enough quota to upload the WISE config file (3/6), but popup a exceed to limit warming message
  * [#39174] [DPM] Some message aren't translated to Madarin

### Data Management
#### [Update]
- #### Core
  - [api-portal] Child devices are excluded from the device license quota.

#### [Fix]
- #### Core
  - [api-subscribe] Changing the region in the `Apply Free Trial form` has no effect.
  - [#39170][api-plugin][DM] Plug in will continue to send even the related calculation parameter is deleted
- #### Data management
  - [#39513][DM] The search result is empty in "Data archiving/parameter page" if switch to page two first. 
- #### Command center
  - [Dashboard datasource] Cannot display RT data while the source switch to `EdgeHub-device-management`
  
## Version: 2.3.6 (2024/11/08)

### Device Management

#### [New]

* For LoRaWAN devices
  * Add device configurations for WISE-6610:
    * Radio setting, OS reboot, NTP server setting, Report interval setting
  * For configuration OTA, add parameters in the MQTT message to notify WISE-6610 not to overwrite the settings of EdgeHub or the network

#### [Update]

* For LoRaWAN devices
  * In Device Info tab, update IP address display for WISE-6610
  * Update the status display of add/delete child devices according to the UI design
  * Limit the max number of child devices within 500 devices
  * For child devices, add the Event sub tab

#### [Fix]

* LoRaWAN
  * [#39227] [DPM] The limit child devices of WISE-6610 is 500
  * [#39203] [DPM] 'Use platform timestamp' cannot be set to 'No' at WISE-6610 setting page.
  * [#39199] [DPM] The 'Edit device page' of WISE-6610 from device group is not correct
  * [#39380] [DPM] There should be a description that the quota of sytem config is 6 and the quota of database config is 6

* Others
  * [#39291] [DPM] The decimal precision will be changed to 2 if parameter alarm is set
  * [#39379] [DPM] The file name version of Edgelink project is 4 digits, but only can input 3 digits
  * [#39174] [DPM] Some message aren't translated to Madarin
  * [#39339] [DPM] The Enable Config button should be gray when WISE-4012 AI Average Modei s be set
  * [#39448] [DPM] There is no data on OTA history when doing FOTA

### Data Management
#### [Update]
- #### Command center
  - [Dashboard Panel] EdgeHub switch panel supports `EdgeHub-device-management` source.
  
#### [Fix]
- #### Core
  - [#39342][Alarm-service][DM] Error occurred if report alarm status from ack to any other status after alarm service restart.
  - [#39391][Worker][DM] Edgelink isn't on line when device is re-build
  - [#39294][evaluator][DM] It should return error when the value of calculation parameter is out of range
- #### Data management
  - [#39196][DM] The permission of plugin is admin but can't edit
  - [#35952][DM] The list of tag is not correct when doing import object from device


## Version: 2.3.5 (2024/10/25)

### Device Management

#### [New]

* For LoRaWAN devices
  * Add Configuration OTA for WISE-6610
    * There are two types of configuration files: System, Database
    * Configuration files must match the model name with part number(ex: WISE-6610-NB)
    * Support COTA for one single device and Device Group
  * In Device Info tab, add firmware version for WISE-6610

#### [Update]

* In My Device page, change the style of device amount according to new UI design.

* DPM API
  * Prevent the modification of device owner for LoRaWAN child devices.
  * Improve the connect reestablishment of the etcd service

* X.509 Cert Rotation Notify
  * Remove unused queues in the RabbitMQ server

#### [Fix]

* LoRaWAN
  * [#39111] [DPM] The title of LoRaWAN "Radio Profile" should be the same
  * [#39110] [DPM] some items of LoRaWAN function aren't translated to Madarin
  * [#39107] [DPM] Add LoRaWAN Device button didn't work
  * [#39145] [DPM] The field name of OOTA mode should be the upper case
  * [#39200] [DPM] All device model can "Add Nodes"
  * [#39201] [DPM] Suggest to add firmware version field of WISE-6610 at device info page
  * [#39202] [DPM] It will cost about 1 min 30s to finish deleting WISE-2200-M device.
  * In Management Portal, user could not delete firmware file of WISE-6610

* Others
  * [#38491] [DPM] The WISE-4012 Universal Input can't be set
  * [#39288] [DPM] If edit the alert status, an error message will pop up

### Data Management
#### [Update]
- #### Core
  - [UI] Remove the node-sass package and update to Dart sass package
  - [api-portal] remove `Welcome email` for user registration
  - [datasource creator][Devops] use datasource-creator job to handle `Dashboard-plugins`, `Dashboard datasource` and `SaaS Composer datsource` installation
  - [datasource creator] Update `SaaS Composer datasource` for each sc org

- #### Data management
  - [Plugin] Check if plugin’s output names are duplicated with the plugin name or other output names
  
- #### Command center
  - [Dashboard wizard] Replace Dashboard template's default datasource name to `Edgehub-SimpleJson`
  
#### [Fix]
- #### Core
  - [DataWorker] publish #MSYS_EdgeStatus multiple time when isensing device upload config
  - [#39183][Notification][DM] The alarm notification(Line/Mail/WeCom) doesn't work even if the alarm have been triggered.

- #### Data management
  - [#39178][DM] The layout of 'Alarm rule name' column is messed up.

- #### Command center
  - [#39187][Datasource][DM] Dashboard panel data source will be changed when switching page from 'Visualization' to 'Queries'.
  - [#39186][Dashboard Plugin][DM] The 'ene alarm panel' is not updated to the latest version by dashboard-datasource-creator app.
  
## Version: 2.3.4 (2024/10/11)

### Device Management

#### [New]

* For LoRaWAN devices
  * Auto creation of child devices(WISE-2200-M) according to the MQTT messages sent from WISE-6610
  * Add device edit feature for WISE-2200-M
  * Add Power Source field in the child device list

#### [Update]

* For LoRaWAN devices
  * Change model name from WISE-6610-NB to WISE-6610
  * Add model name field in Information Tab of WISE-6610
  * Hide X.509 setting when creating WISE-6610
  * Add progress bar when Firmware OTA is in progress
  * Update search feature in the LoRaWAN child device list:
    * Search fields: Device name and deviceAddr/deviceEUI

#### [Fix]

* Multi-Languages
  * [#38711] [DPM] Manage list of device group aren't translate to Madarin
  * [#38936] [DPM] some items of schedule function on device group aren't translated to Madarin

* Others
  * [#39109] [DPM] The sub device(WISE-2200-M) can't be create when re-create the device(WISE-6610)
  * [#38821] [DPM] The file name of config file should can use "-" and "_"

### Data Management
#### [Update]
- #### Core
  - [Alarm] Update alarm state change logic
  - [api-portal] Device object's parameters migration
    - Delete all Constant/Primitive/Calculation parameters that was created by user
    - Create parameters with the same names as the tags.
  - [Evaluator] When adding / updating calculation parameters, the calculations will no longer be performed immediately but will wait until the next calculation cycle.
  
- #### Data management
  - [Plugin] Add permission control for `Plugin` functionality
  - [Calculation Parameter] Add permission control for plugins in Calculation parameter setting

- #### User management
  - [Role] Add `Plugin` scope

- #### Command Center
  - [Dashboard Panel] Update the alarm state change logic within the ene-alarm-panel.
  - [Dashboard datasource] change `EdgeHub-device` source name to `EdgeHub-device-management`
  - [SaaSComposer datasource] change `EdgeHub-device` source name to `EdgeHub-device-management`

#### [Fix]
- #### Core
  - [api-portal] The first name and last name were missing when creating the SSO user.
  - [Worker] If a worker crashes during multi-instance distribution, the distribution will stop.
  - [Worker] After shutting down MongoDB for 1 hour, abnormal data backfilling occurs every 5 minutes.
  - [Event-dispatcher] A panic occurs when the worker instance size is 0.
  - [Event-dispatcher] When the worker instance size changes from 0 to 1, the consumer is not created.
  - [#39092][DM] Worker OOM causes alarm cannot be triggered.
  - [#39013][DM] Alarm can be directly set to "In Process" or "Processed" from "Open" status.

- #### Data management
  - [#39142][DM] The '#' char should be keep when creating the parameter
  - [#39089][DM] The alarm rule value cannot be set to float type.
  - [#39101][DM] There is no Input description when click the custom formula
  - [#39083][DM] Custom function can't create
  - 

## Version: 2.3.3 (2024/09/27)

### Device Management

#### [New]

* Add Support for LoRaWAN devices
  * Supported models: WISE-6610 v2, WISE-2200-M
  * Supported features:
    * Manual device creation of WISE-6610 and WISE-2200-M
    * Display the parent/child relation between WISE-6610 and WISE-2200-M
    * Display LoRaWAN related information in the child device list
    * Firmware OTA for WISE-6610 and WISE-2200-M
    * CSV Batch create devices for WISE-6610 and WISE-2200-M

#### [Fix]

* Others
  * [#38941] [DPM] The UI of device list on Schedule could be re layout

### Data Management
#### [Update]
- #### Core
  - [plugin] Handling Mapping Keys and Values with/without Double Quotes
  - [forwarding] Handling Mapping Keys and Values with/without Double Quotes
  - [api-portal] custom function with defaultValue
  - [api-portal] add TENANT_NAME_REPEAT err message
  - [import-export-service] support new log format
  - [dbmaster] support multi-instance
- #### Data management
  - [Parameter] custom function with defaultValue
  - [Object] While create object from device, show gateway list with lazy loading to improve performance.
  - [Object] While create object from device, if the device tag's type equals to `Unknown`, give a default type `Number` as parameter's data type.
  - [plugin, forwarding] plugin/forwarding bearer auth token string with length limitation as 2041

- #### User management
  - [Role] Update roles list item name and sort
    - `System setting` -> `Advanced settings`
    - `Others (organizer)` -> `General`
#### [Fix]
- #### Core

- #### Data management
  - [#33805][DM] The tenant with 10,000 devices, it would take over 50 seconds to load data when add object from device
  - [#32452][DM] When importing a non-existent device tag, the error message is unclear.

- #### User management
  - [#34934][UM] The "General" sub-page permission in System setting page is undefined.

## Version: 2.3.2 (2024/09/13)

### Device Management

#### [New]

* Web page
  * In the Device Group, add group description in the device group list

#### [Update]

* Web page
  * For Configuration file OTA in My Device and Device Group, only list the corresponding model's configuration files.
  * In Device Group, add a timer to refresh the progress/result of firmware OTA and configuration OTA
  * In My Device list and Device Group, the refresh timer will not be triggered until the previous refresh operation is finished

* Backend services
  * For following services, use internal host(ex: Database services) first if internal host exists in the environment varialbe:
    * DPM Cleaner, DPM Cert Notify,BS Worker, BS Write Worker

* Center API
  * Add the device delete API
  * Add error codes in the device create API:
    * Duplicate MAC address
    * Duplicate device name
    * Device Quota is reached

#### [Fix]

* Device IO Configuration
  * [#38491] [DPM] The WISE-4012 Universal Input can't be set
  * [#38543] [DPM] The AI field title of WISE-4012E is not the same with WISE utility
  * [#38599] [DPM] The AI field title of WISE-4010LAN is not the same with WISE utility
  * [#38598] [DPM] WISE-4012E Min. High/Low Signal Width could't be edited on Counter mode
  * [#38601] [DPM] Alarm Value can't be set when set high/Low Alarm Value to point

* Multi-Languages
  * [#38627] [DPM] The translation of config OTA should be the same
  * [#38626] [DPM] Some items of config OTA aren't translate to Mandarin
  * [#38646] [DPM] The result of OTA should bo translate to Mandarin

* Others
  * [#38370] [DPM] The process of OTA won't be auto refresh when doing OTA on device group
  * [#38676] [DPM] The behavior are not the same at page number input feature
  * [#38677] [DPM] The error message to SCADA/Edgelink devices be set to "Construction" mode in Device groups
  * [#38683] [DPM] The offline Edgelink device shouldn't do File management function
  * [#38777] [DPM] [DM/DPM] The web page will be in loading status if deleting a device with binded parameter.
  * [#38364] [DPM] Schedule list should be removed when related device is remoced from device group

### Data Management
#### [Update]
- #### Core
  - [Evaluator] Refactor the queuing logic for calculation tasks.
  - [Cleaner] Update the versions of the Jettison, RabbitMQ, and MongoDB drivers to fix the vulnerabilities detected on Harbor. 
  - [Worker] update handle tag add/update reload data
  - [api-portal] replace 'tagValChange' with 'reloadData' property in mqtt
  - [api-portal] add DEVICE_BOUND err code
  - [api-portal] Add format validation for the following functions: `avg2`, `getGroupParamSum`, and `TotalObjects`.
  - [Packer] Reduce the frequency of checking whether hour/day blob data needs to be deleted.
  - [Archiver] When writing rawdata, check the index before each bulk-write.
  - [Archiver-restore] When writing rawdata, check the index before each bulk-write.
  - [Subscribe] If an expired `Custom` tenant’s expiration date is manually extended, its status will be changed to enable.
  - [Subscribe][API] For free trial RESTFul API, verify if the tenant owner is existed or not.
  - [api-portal][API] Add error status code for create device APIs
  - [Evaluator] When writing rawdata, check the index before each write.
  - [Evaluator] Parameters that fail to compile the formula will still record RAWData with quality=bad.
  - [Evaluator] Update the parameter description text for `ValidateParam` function.
  - [api-portal] add /device/move/{devid} api for moving device to other tenant.
  
- #### Data management
  - [Agreement] Update Trial and Subscribe Agreement Version 4.0
  - [Plugin] plugin auth name / plugin name blur with loading UI

- #### User management
  - [Group User] Hide user list when access authentication is missing; add "Join Group" button and "Cannot access group" description


#### [Fix]
- #### Core
  - [#37948][Evaluator][DM] There are 2 record log when update the setting of cal parameter
  - [Cleaner] A lot of unnecessary debug messages contain: `state should be: writes is not an empty list`.
  - [Dispatcher] support graceful shutdown
  - [Dispatcher] disable device failed because too many postgres connection
  - [Worker] Value of #MSYS_EdgeStatus wrongly updated by tag value change
  - [#38801][Worker] Wrongly handle array tag data that cause alarmCode alarm cannot be triggered.
  - [Worker] reload data true should not save raw data if tag type is calculation
  - [#38968][Worker][DM] String type of constant parameter not be shown value after creating
  - [Worker] While missing device during worker instances distribution, should find the device from db and add it back
  - [#38985][api-portal][DM] Some users can't chage the tenant role
  - [#38984][api-portal][DM] User can't be disable
  - [DBCreator] Extend the length of ForwardingAuthInfo.AuthUri & PluginAuthInfo.AuthUri from 1024 to 2048 
  - [Subscribe] EdgeHub will send an unnecessary `D-5 days trial expiration notice` email to subscribed tenant users.
  - [Subscribe] Subscribed tenant becomes disabled on the due day and recovers after the deduction.
  - [Archiver-restore] After the restore, there will be an issue with duplicate notifications to Packer.
  - [Archiver-restore] After the restore, there will be an issue with missing certain date data in Redis.
  - [Packer] If the restore start time and end time are not on the same day, only the start time’s day will be processed.
  - [Forwarding] The total count displayed from the search is incorrect.
  - [Plugin] The total count displayed from the search is incorrect.
  - [Import-export] remove `<br>` from import error message
  - [Packer]  Disable the remove function but still remove the backed-up data from MongoDB.
  - [DataWorker] Error handling for WISE-PaaS MQTT config uploaded in multiple messages.
  - [#38538][DataWorker] Some WISE devices lost tags of Ipaddr, macid, name, and status
  - [config-loader] Error handling for WISE-PaaS MQTT config uploaded in multiple messages.

- #### Data management
  - [#38753][DM] The length of token string should larger than 1024
  - [Parameter] the custom function help is not visible at low resolution window.
  - [Parameter] the `default value change` is not submitted if the user only edits the alarm.
  - [Tenant management] Prevent text overflow in switch status dialog
  - [Tenant management] Disable confirm button of switch status dialog when status is not changed
  - [Alarm group] Add/Edit AlarmGroup page cannot scroll at low resolution window.
  - [Parameter] The `!=` in the formula is not correctly validated.  
  - [Parameter] In the parameter alarm, after adding an alarm and switching the tab to ‘basic,’ then switching back to ‘alarm,’ the alarm disappears.
  - [Tenant management] When the parent tenant's available quota is negative, an error occurs where the current level tenant cannot return the quota.
  - [Tenant management] the width of "Tenant name" is not initialization when the page is visited for the first time.
  - [Parameter] When adding a constant parameter, cannot use submit button.

- #### Command center
  - [#38673][DM] There is a "timeserie" item on the panelType droupbox when create a dashboard
  - [#37889][CC] Command center can't show the same parameters of group via reportGroupInfo function


## Version: 2.3.1 (2024/08/16)

### Device Management

#### [New]

* Web pages
  * In My Device/Device Group/File Mangement, add page number input feature for the pagination.

#### [Update]

* Mass Device Deployment
  * Modify the max CSV file length from 20 to 32 characters

* Playbook(Scheduling)
  * Remove unused queues in the RabbitMQ

* Bootstrap Worker(Mass Device Deployment)
  * Remove unused queues in the RabbitMQ

* Batch Create Device
  * Add Update time field in detail log page

* Center API
  * Device List API: Add ip address for ADAM modules
  * Add APIs for ADAM/WISE modules to perform Firmware/Configuration file OTA

#### [Fix]

* Multi-Languages
  * [#38240] [DPM] Some iBMC function are't translated to Madarin
  * [#38369] [DPM] Some File management function are't translate to Madarin
  * [#38379] [DPM] The result of file magement should be translated to Madarin
  * [#38365] [DPM] Some device group function are't translate to Madarin
  * [#38380] [DPM] Some device batch task function of WISE isn't translated to Madarin
  * [#38381] [DPM] The language of mass deploy is not the same
  * [#38372] [DPM] Some CFG OTA function translation can be modified
  * [#38366] [DPM] Some device group function translation can be modified
  * [#38476] [DPM] Some items of config OTA of WISE device aren't translate to Mandarin
  * [#38475] [DPM] Some items aren't translate to Mandarin when add Computer device
  * [#38375] [DPM] Some COTA function of WISE isn't translated to Madarin
  * [#38401] [DPM] The language of device patch task warning msg is not correct

* Others
  * [#38307] [DPM] The drop down UI can be adjusted when select "Shared with me" on device group
  * [#38315] [DPM] The parent group can access the info of sub-group in "Event" page.
  * [#38278] [DPM] The create date of device batch task aren't changed
  * [#38419] [DPM] User can't get the device list when add device on new device group
  * [#38402] [DPM] UI suggestion of group OTA
  * [#38314] [DPM] The SCADA/Edgelink devices can be set to "Construction" mode in Device groups

### Data Management
#### [New]
- #### Core
  - [api-portal] Support root tenant quota from license server
  - [Packer] Support blob data restore (Fully support of Constant / Primitive / Calculation parameters)

- #### Data management
  - [Plugin] Support plugins migrate to tenant level
    - Plugins from different groups will be relocate to left side menu.
    - Plugins with the same name are not allowed to be used by calculation parameter. Will notice user to rename first.
    - Calculation parameters that were using plugins will not be affected by this migration.
  - [import-export] Support plugins by tenant level

- #### Command center
  - [SaaS Composer] Datasouce support DPM_ONLY environment 
 
#### [Update]
- #### Core
  - [Dataworker] update log for efk monitoring
  - [Dataworker] support LoRaWAN server/child device data
  - [Dataworker] support restore device tag info from postgres
  - [Dataworker] Set minimum notification interval to 1 min
  - [Dataworker] Reconnet Azure IoTHub when err occurs
  - [api-portal] device APIs (GraphQL, RESTFul) add parentId
  - [api-portal] when update root group name or set tenant ,sync sc org
  - [api-portal] dashboard/sc org name = tenant name, no more sequence number behind org name
  - [api-portal] update signin error msg; distinguish invalid username or password
  - [api-portal] root tenant admin = dashboard main org Admin, otherwise, give viewer
  - [api-portal] update health check route `livez`
  - [Evaluator] performance enhancement for the formula of plugin
  - [Evaluator] Send system issue notification while liveness prove failed
  - [Evaluator] If source tag `#EdgeStatus` without any value, use `0` as default value for calculation.
  - [api-subscribe] Check tenant name with spectial special characters: ` `, `-`, `_`
  - [api-subscribe] update log format
  - [alarm-service] set event center api path from env
  - [Packer] Add daily blob backup report
  - [Packer] Add statistics api for diagnostic

- #### Data management
  - [Portal] Invalidate the old freeTrial route
  - [Portal] Allow scroll on first column of table:
    - tenant table of Tenant management
    - role table of Role management
    - permissions table of the Edit Role
- #### Command Center
  - [Datasource] Rename dashboard datasource to `EdgeHub-SimpleJson`


#### [Fix]
- #### Core
  - [#38266][api-portal][DM] The quota of sub tenant can be used again when delete the object
  - [Dataworker] Change the value #MSYS_EdgeStatus tag incorrectly
  - [Dataworker] Missing isNumber attribute of #MSYS_EdgeStatus tag while adding device
  - [Dataworker] Missing default value of #MSYS_EdgeStatus tag while adding device
  - [Dataworker] redis disconnect will lost data if message process not finish
  - [Dataworker] re-upload config, the sub-device id will not be updated
  - [Dataworker] dispatcher and worker after reconnect to the etcd, the auto scale functionality are not working
  - [Evaluator] Create `rawdata` collection without adding index
  - [Archiver] create `min` collection without adding index
  - [Archiver-restore] Create `min` collection without adding index
  - [Archiver-restore] RAWData data time incorrect may cause the restore process to excessively restore data.
  - [Profile] Import profile with empty statetxt may cause error
  - [Packer] If the start time and end time of the restore job are not on the same day, only process the data in the day of the start time
  
- #### Data management
  - [#38498][Channel setting][DM] The event setting of email can't be set to disable
  - [Tenant management] the width of "Tenant name" is not initialization when the page is visited
  - [Parameter] duplicated error message in DataType field
  - [Forwarding] After adding `Bearer Auth`, didn't display the result immediately
  - [Forwarding] Switch token type may cause save Auth failed
  - [api-subscribe] Subscribed tenant will get trial expiration email
  - [api-subscribe] Quota sync incurrectly while version migration 


## Version: 2.3.0 (2024/07/19)

### Device Management

#### [New]

* Web page
  * Add support for WISE IoT Desk environment (Keep support for EdgeHub)
    * Use the Desk web header and hide original DPM's header
    * Support Language change in the Desk header menu
    * Add CORS support for the Desk environment
  * The DPM menu
    * Show the DPM menu if the user's screen width is bigger or equal to 1440 px
    * When the DPM menu is displayed, the menu occupies the width of other elements
    * Add 'Alarm Setting' when the query of alarm setting graphQL is successful
  * In My Device page, remove the 'Last Connected' field in the device list
  * The Tags tab in My Device
    * In the Desk environment, use the new UI design  otherwise use the original UI design
      * Add the Recording rate field
      * Add the Event rule field and it's edit page
      * Hide the Parameter sub tab
  * The Event tab
    * Rename the Parameter sub tab to Tags sub tab in the Desk environment

* DPM API
  * Add support for the application registration method in WISE IoT Desk environment
  * Add edition field in the system capability API

#### [Fix]

* None

### Data Management
#### [New]
- #### Tenant Management
  - [UI] Tenant Search / Filter
  - [UI] Log
  - [UI] Delete tenant
  - [Backend] Support weekly tenant report by email to PM list

- #### Core
  - [Packer] Support blob data restore (not include calculation parameters)

- #### WISE IoT Desk environment integration
  - [UI] App registration for Desk
  - [UI] Desk header integration
    - Support Language change 
    - support hamburger menu button 
  - [Backend] Support Dashboard org and SaaS composer org which are created by tenant service
  - [Backend] SI console quota change allgnment
  
- #### DPM decoupling integeation
  - [Backend] Support EdgeHub installation without Data management and Command center
  - [Backend] Support Device data APIs
  - [Backend] Support Device data datasouce of Dashboard
  - [UI] Alarm setting UI for Device management
    - Level & category
    - Event & actions

#### [Update]
- #### Core
  - [Packer] Blob data in millisecond
  - [Worker] Worker support multi-instance configuration
  - [Worker] Integrate device sentry into worker
  - [Worker] worker will process all config without validating message data time
  - [Worker] worker will process hbt, conn, desc and other non data message if these messages is after the last data time 
  - [Evaluator] Support K8S liveness / readiness probe
  - [Archiver] Support K8S liveness / readiness probe
  - [Archiver] system issue notification to PM list
  - [Archiver-restore] Support K8S liveness / readiness probe
  - [Archiver-restore] system issue notification to PM list
  - [api-portal] system issue notification to PM list
  - [Subscribe] Update error message code form 404 to 400  
  - [Subscribe] Update free trial email template

- #### Data management
  - [Parameter] Button of `Edit parameter` in Parameter name column
  - [Parameter] Click parameter name to edit parameter page 
  - [Parameter] Click parameter row to show drawer
  - [Parameter] Parameter details in drawer
  - [Parameter] Parameter log in drawer
  - [Parameter] The boundry of TimeMatch will be check
  - [Parameter] Lazy loading of parameter list in edit object page
  - [Object] While create object from device, load discrete tag's descriptor to new parameter automatically.

#### [Fix]
- #### Core
  - [Worker] system tag not have online offline state in the device tag info
  - [Worker] device sentry should use last active time to check if device is not sending message and over hbt
  - [Config-loader job] DO tag should not be read only
  - [Alarm] Alarm log API may deadlock that will cause API timeout
  - [Evaluator] TotalObjects may not find some parameters to calculate
  - [Evaluator] timestamp with negative time zone may cause parsing error


---
###### tags: `Documentation`

