--- title: 'EdgeHub Release Note' disqus: hackmd --- :memo:EdgeHub Release Note v2.2 === ## Version Release ## Version: 2.2.17 (2024/09/13) ### Device Management #### [New] * Web page * In the Device Group, add group description in the device group list #### [Update] * Web page * When the user deletes a device which is bind with data object, web page will dispaly an error message which includes the related group and object name * Center API * Add error codes in the device create API: * Device Quota is reached * Add error codes in the device delete API: * The device is bind with data object * The device is still in the Device Group #### [Fix] * Device Group * [#38713] [DPM] Suggest to remove the Refresh button in Device Group * [#38939] [DPM] The user who doesn't have the premission of device shouldn't do schedule function on this device * [#38364] [DPM] Schedule list should be removed when related device is remoced from device group * Others * [#38721] [DPM] Suggest to remove the Add member button * [#38683] [DPM] The offline Edgelink device shouldn't do File management function * [#38803] [DPM] The list of config file of WISE module is not correct * [#38777] [DPM] [DM/DPM] The web page will be in loading status if deleting a device with binded parameter. ### Data Management #### [Update] - #### Core - [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 - [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. - #### Data management - [Agreement] Update Trial Agreement Version to 5.0 - [Agreement] Update Subscribe Agreement Version to 4.0 #### [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`. - [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 - [#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. - #### 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. - #### 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.2.16 (2024/08/30) ### Device Management #### [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 for duplicate MAC address and duplicate device name for the device create API #### [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 * [#38475] [DPM] Some items aren't translate to Mandarin when add Computer device * 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 ### Data Management #### [New] - #### Core - [Login] Support login by MyAdvantech account #### [Update] - #### Core - [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. - #### User management - [Group User] Hide user list when access authentication is missing; add "Join Group" button and "Cannot access group" description #### [Fix] - #### Core - [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 - [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. ## Version: 2.2.15 (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 #### [Fix] * Multi-Languages * [#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 * [#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 #### [Update] - #### Core - [Dataworker] update log for efk monitoring - [Dataworker] support LoRaWAN server/child device data - [Dataworker] support restore device tag info from postgres - [Evaluator] performance enhancement for the formula of plugin - [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 - [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 - [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. - [Dataworker] redis disconnect will lost data if message process not finish - [Dataworker] re-upload config, the sub-device id will not be updated - [Profile] Import profile with empty statetxt may cause error - #### Data management - [#38498][Channel setting][DM] The event setting of email can't be set to disable ## Version: 2.2.14 (2024/08/02) ### Device Management #### [Update] * 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 * 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 ### Data Management #### [Update] - #### Core - [Worker] Set minimum notification interval to 1 min - [Worker] Reconnet Azure IoTHub when err occurs - [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] 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: ` `, `-`, `_` - #### [Fix] - #### Core - [#38266][api-portal][DM] The quota of sub tenant can be used again when delete the object - [Worker] Change the value #MSYS_EdgeStatus tag incorrectly - [Worker] Missing isNumber attribute of #MSYS_EdgeStatus tag while adding device - [Worker] Missing default value of #MSYS_EdgeStatus tag while adding device - #### Data management - [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.2.13 (2024/07/19) ### Device Management #### [New] * Center API * Add APIs which could be called by user's applications(ex: ADAM Utility, EdgeLink Studio). * Center API provides following features: * Create new tenant and user account for EdgeHub (integrate with subscribe API) * User login and tenant selection * Get all device list, credential and info in the tenant * Create device * EdgeLink project file * Upload/download EdgeLink project file * Perform OTA and log query * EdgeLink firmware OTA and log query #### [Update] * DPM API * Add edition field in the system capability API #### [Fix] * Others * [#38188] [DPM] The computer device can go online via "LOGIN EDGEHUB" method even if the X.509 cert has been revoked. ### Data Management #### [Update] - #### Core - [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 - [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 ## Version: 2.2.12 (2024/07/05) ### Device Management #### [Update] * Mass Device Deployment * Add heartbeat monitoring for the connection between the BS worker and RabbitMQ * DPM API * Upgrade the SDK version of Azure Iot Hub to fix the enable/disable device feature due to Azure Iot Hub upgrades to GWV2 * Web page * Use API to check if the used license exceeds quota in parent and current tenant * In the File Management page, add auto refresh of file dispatch result and adjust the width of the side page. * In the Device Group page, remove the description filed for the EdgeLink firmware OTA * Remove pprocAcls filed in the user info GraphQL query #### [Fix] * Others * [#38123] [DPM] Error occurred if GeneralPC revoke X.509 cert * [#38138] [DPM] The process of OTA won't be auto refresh * [#37915] [DPM] device group can't be deleted when other user with admin permission create a sub group under the same device group * [#37906] [DPM] The permission and alert message are not correct if parent tenant has insufficient quota. ### Data Management #### [Update] - #### Core - [Worker] Send worker issue by email/Line/WeCom - [Worker] update log format - [Alarm] update log format - [api-portal] update log format - [api-portal] While not select Object type, give default type automatically. - [archiver] Support livenessProbe and readinessProbe - [archiver-restore] Support livenessProbe and readinessProbe - [archiver] update cumulative next data over recording - [archiver-restore] update cumulative next data over recording - [api-subscribe] Get list prise of customer from marketplace - #### Data management - [Tenant management] Trial tenant can modify quota - [System notification] Add WeCom setting page - [Portal] New trial home page - [Portal] Check device quota at home page - #### Command Center - [datasource backend] Modify partial-function check to improve query time #### [Fix] - #### Core - [archiver] cumulative min incorrect - [archiver-restore] cumulative min incorrect - [#38089][Packer][DM] The raw data of constant parameter is miss from 6/12~6/27 - [#38088][Worker][DM] The constant parameter is not be record from 6/27 - [#37948][Evaluator][DM] There are 2 record log when update the setting of cal parameter - [#37394][Archiver][DM] Negative value will be ignore even use the enable negative mode - [#37947][Evaluator][DM] The value of cal parameter with primitive parameter won't be changed when primitive parameter is deleted - [#37943][Evaluator][DM] Change the source of primitive parameter, the value of calc parameter with primitive parameter won't be changed - [#37890][Evaluator][DM] The memory used by evaluator will not be released even if the calc parameters are deleted. - [Notification] notify message Org {Address} with address1 + address2 - #### Data management - [#37907][DPM] The permission and alert message are not correct if parent tenant has insufficient quota. - [#38046][Parameter][DM] User can't create a parameters on profile when the quota of Tenant is not enough - #### Command center - [#38082][Worker][CC] Controller/Control Panel cannot control/set the EdgeLink DO/AO/UserTag value. - [#37888][Worker][CC] Controller/Control Panel cannot control/set the WISE-4012E/ADAM-6024 DO/AO value ## Version: 2.2.11 (2024/06/21) ### Device Management #### [Update] * Mass Device Deployment * Improve the reconnect mechanism between the BS worker and RabbitMQ * Bootstrap device API: Use environment variable to control the maximun api call amount within one minute * Web page * Improve the device list display when the filter of device online/offline is enable * Remove the additional loading icon when entering My Device page * API * If the query of the device online status is failed, add default value in API response to prevent the page loading fail in My Device list. #### [Fix] * Others * [#37793] [DPM] It will show no data when the user wants to add more PC to do schedule * [#37941] [DPM] Devices occasionally fail to create and go online through mass deployment. ### Data Management #### [Update] - #### Core - [Worker] Support traffic limit notification - [Worker] improve etcd register reliability - [api-portal] Default parameters in GroupObject cannot be deleted - [Notification] support send system issue mail by amqp topic - [Subscribe] Set default expiration date of trial tenant as unlimited - [Datapacker] Optimize logic of deleting blob data - #### Data management - [Portal] Disable `Object type` field of GroupObject - #### Command Center - [Dashboard datasource] Change monthly alarm count column as option by adding an additional `markMonthlyCount` switch in `alarmlog_record` function. #### [Fix] - #### Core - [Worker] Fix azure iot hub next incoming id nill issue - [Worker] Cannot see historical data of Text parameter - [Evaluator] Add group with calculation parameters but didn't calculate these parameters - [Evaluator] Some calculation calculation parameters suddenly stop calculating - [Evaluator] Refresh RTData tag list buffer may add redundant data - [Evaluator] TotalObject calculation may fail - [#37976][Worker][DM] The device connection status is abnormal. - [#37924][api-portal][DM] It takes time to delete a group - [#37896][api-portal][DM] EdgeHub will be crash when import the excel without parameters info in it - [#37783][api-portal][DM] It takes time to delete a object - [#37394][Archiver][DM] Negative value will be ignore even use the enable negative mode - #### Data management - [Portal] After parameter created, didn't refresh page well - #### Command Center - [#37888][Dashboard datasource] Cannot set value by Control Panel ## Version: 2.2.10 (2024/06/07) ### Device Management #### [New] * Add model name for EdgeLink firmware OTA files * In My Device and Device Group, add the model name filter for EdgeLink firmware OTA files * In Device Management Portal, the user could add model name for EdgeLink firmware OTA files. * If the user adds the EdgeLink firmware file, the model name is required. * If the user edits the EdgeLink firmware file, the model name is optional. #### [Update] * Mass Device Deployment * For ADAM/WISE models, simplify the payload in the RESTful API and MQTT message due to the firmware limitation * Bootstrap worker: improve the RabbitMQ reconnection mechanism * Modify the tranditional Chinese name of Mass Device Deployment * Web page * Display the warning message when the used qty exceeds the license quota * In My Device, add auto refresh of Tags * Improve the iApp menu loading #### [Fix] * Mass Device Deployment * [#37658] [DPM] The first letter of English letters should be capitalized * [#37660] [DPM] Device result text in mass deployment page should be translated to mandarin * Device Group * [#37786] [DPM] It only lists 50 devices when add existing device on second times * [#37787] [DPM] The layout is changed when add 100 devices on device group * [#37784] [DPM] The device group can't be deleted * Fix: Can not create a new group in certain situation * Others * [#37761] [DPM] The add button won't be grayed out untile check the license quota is overused ### Data Management #### [Update] - #### Core - [Evaluator] Improve thread guard function - [Archiver] When processing rawdata, the second-level precision is changed to millisecond-level precision. - [Archiver-restore] When processing rawdata, the second-level precision is changed to millisecond-level precision. - [Packer] Imporving Blob folder path parsing. - [Plugin] Use service name as URL rather than full path URL - [User function] Use service name as URL rather than full path URL - #### Data management - [Parameter] Remove -1 and 0 from calculation frequency's valid value. The new range would be 1~3600 - #### Command center - [Datasource] When querying object/parameter list, you need to select at least one group, otherwise it will return empty - [Datasource] Add global error processing to prevent crashing #### [Fix] - #### Core - [Subscribe service] One tenant deduction fail will call all tenant retry (waste performance by won't cause duplicated deduction) - [Archiver-restore] Incorrect MarkFirstValue function causes incorrect day data - [#37763][Import-export][DM] Error occurred if import object with 50k calc parameter. - [#37762][Data packer][DM] datapacker OOM - [#37646][api-org][DM] ifactory pod terminated causes EdgeHub login failed. - [#37772][Dataworker][DM] String type of constant parameter not be shown value after creating - [#37711][Evaluator][DM] Some TimeMatch formula won't be recorded when recording for a while - [#37583][api-portal][DPM] Use the mass device devlop, but it met the error of device name is repeated - [#37553][Evaluator][DM] The total count of math cal parameter is not 86400 - [#37543][Evaluator][DM] The calc parameters of math function will miss the rawdata on 00:00:00 - [#36869][Evaluator][DM] Calc parameter raw data is delayed by 2 mins - #### Command center - [#37724][Data source][CC] Use the Ene dashboard switch, select 3 groups but there are only 2 groups be seen ## Version: 2.2.9 (2024/05/24) ### Device Management #### [Update] * Mass Device Deployment * Web: Change the status name from 'Succeed' to 'Success' * Web: Remove Edit action when the status is 'Failed' * ADAM/WISE modules: Due to the firmware limitation of the ADAM/WISE modules, remove the CA certificate value in the response of the device register RESTful request. * UI modification for License quota * When the used qty exceeds the license quota, the web UI is modified: * If the user has the Admin role in the user group, the user can only perform view and delete device operations. * If the user has the Viewer role in the user group, the user can only perform the view operation. #### [Fix] * Mass Device Deployment * [#37659] [DPM] Device result text change in mass deployment page * [#37582] [DPM] The quota is enough but it will popup a error message when doing mass device deploy ### Data Management #### [Update] - #### Core - [Worker] Save isensing no config tag informations into mongo - [Worker] Support WISE-PaaS MQTT config format without type definition (in spec v1.0.17) - [Evaluator] improve performance of `getGroupParamSum`, `getGroupAlarmStatus`, `getObjectAlarmStatus` functions - [Evaluator] TimeMatch on time trigger - #### Data management - [License management] Add captcha in apply free trial form - #### Command Center - [Dashboard function] reportGroupInfo function support daily records #### [Fix] - #### Core - [Worker] Redis down and without pvc may cause device info / tag list lost - [Worker] Remove duplicated index in mingodb - [All backends] Remove write log to Redis for ELK monitoring - [Evaluator] Calc parameter not showing value after created - [Archiver] RabbimtMQ queue data accumulation - [import-export] if parameter data type is descrete and the descriptor is not fill in, dc-import-export-service will crash - [Packer] redundant fields in redis - #### Data management - [Tenant management] LicensedSubtenant's quota cannot be allocated - [Parameter] Cannot scroll to bottom of Custom function help dialog ## Version: 2.2.8 (2024/05/10) ### Device Management #### [New] * Mass Device Deployment * The user adds the device's MAC address in DPM. * The device connects to the Bootstrap server to obtain device credentials and then connects to DPM automatically. #### [Update] * Batch Create Pod * Increase the speed of the device creation * My Device * Switch the position of the Operation icon and the Construction icon. #### [Fix] * Device search * [#37443] [DPM] There is no max length when serach the device via device name * [#37444] [DPM] There should be no special chatacters when serach device via device name * [#37445] [DPM] There should different error message when search device via mac address ### Data Management #### [Update] - #### Core - [Packer] Prevent to delete blob data while `savefreq` change to 0 or change primitive parameter's binding tag - [Packer] Save cold data backup history list to blob to prevent Redis data lost. - [Import-export] support import with reload data - #### Data management - [License management] skip license key to apply free trial - [Portal] Update `Timematch` function desciption #### [Fix] - #### Core - [Import-export] Handle recRate as millisecond, but it should be second. - [Import-export] Descriptor value = empty braces will cause crash - [#37452][Worker][DM] The data type will be changed when adding parameters by device - [#37288][Worker][DM] The tag type of EdgeLink device is abnormal. - [#37283][Worker][DM] The value will be changed to 10000000000000000 when setting the default value of const parameter to 9999999999999999 - [Worker] Data may not save while match save criteria (data queue full or longer than 60s) - [#37413][Evaluator][DM] The trigger of Timematch is not correct by TimeZone - [Archiver] Wrong handle of maxChangeRatePerMin for `Current` type parameter. - [Archiver] Didn't sync restored day data to Archiver correctly. - [Archiver-restore] Didn't restore day data correctly. - [DBMaster] Text parameter's logs will display more than 10 records - #### Data management - [#37403][DM] The value of max change /min will be change from 999999999 to 100 when submit - #### Command center - [Datasource] Cannot use `Table` format to display discrete parameter's descriptor. ## Version: 2.2.7 (2024/04/26) ### Device Management #### [New] * Add a search filter in My Device and Device Group * Add search of the device's MAC address * This feature does not include the search of EdgeLink Gateway ID or SCADA Node ID #### [Update] * UI Update * Modify the style of Add button and search filter in My Device, Device Group and AppHub Repo * Batch create device * Copy the device description to other languages(Traditional Chinese, Simplified Chinesel, Japanese) in addition to English. #### [Fix] * Others * [#37168] [DPM] Some text typo in 'Device Batch Task' page. ### Data Management #### [Update] - #### Core - [Portal] Add `System notification` setting in Advanced setting of Root tenant - [Portal] If a calculation formula includes `Custom function` or `Plugins`, set a minimum limit for the `calculation frequency` to 60 seconds. #### [Fix] - #### Core - [archiver-restore] Fix wrong restore of day data - [#37388][Worker][DM] If the record type of the corresponding parameter is set to cumulative, the device's tag data type will be changed to unknown. - [#37331][Worker][DM] dc-dataworker-device-sentry pod OOM after importing 50K parameter object. - [#37291][Worker][DM] Some coil/reg tags of WISE-4051 are not generated on Edgehub. - [#37287][Worker][DM] Future data from edge devices causes workers to enter traffic limits. - [#37253][Worker][DM] The last connected and last updated time is abnormal. - [#37207][Worker][DM] The SCADA device online/offline status is abnormal under 400,000 parameters loading test. - [#37238][api-portal][DM] default vaule of parameter of group can't be modified - [#37389][Evaluator][DM] TotalObject won't be trigger when set to check the value of parameter - [#37290][Evaluator][DM] calc parameter of plugin won't record by every minute - [#37284][Evaluator][DM] The vaule of TimeObject(-1) won't be changed when the amoumt of object is changed - [#37201][Evaluator][DM] It won't calculate when import calc parameters - [#37056][Evaluator][DM] The value of calc parameter will return to 0 when evaluator restart - [#36879][Evaluator][DM] TimeMatch formula will be trigger twice - [#36869][Evaluator][DM] Calc parameter raw data iis delayed by 2 mins - [#36863][Evaluator][DM] Calc parameter won't be recorded by every minute - [#36815][Evaluator][DM] The vaule of TotalObject formula won't be changed when add a new object - [#36814][Evaluator][DM] Timematch formula won't be triggered - [#36813][Evaluator][DM] The value of calc parameter within device tag is always 18 - [#36812][Evaluator][DM] Calc parameter doesn't get data value on each minutes - [#36781][Evaluator][DM] Timematch formula of everyyear won't be triggered on the date of 0229 - #### Data management - [#37220][DM] The negative quota subtenant can be created if the quota of parent tenant is full. - [#36892][DM] The object import button is enable even if the parent tenant has insufficient quota. - [#37328][Import-export][DM] The error message of import is hard to understand - [#37205][DM] child tenant can add parameters via import when parent's quota is over used ## Version: 2.2.6 (2024/04/12) ### Device Management #### [Update] * Auto refresh of the device firmware OTA status * Include the OTA status of EdgeLink, ADAM, WISE modules * Add the EdgeLink OTA stage display * When the EdgeLink OTA is in progress, display 'Downloading' or 'Upgrading' in progress bar * This feature includes firmware OTA and project file OTA #### [Fix] * Others * [DPM] Fix multi-language does not work in the table header of Batch Create Device * [#37098] [DPM] Webpage won't be refresh after enable the cert revoke * [#37168] [DPM] Some text typo in 'Device Batch Task' page. ### Data Management #### [Update] - #### Core - [Archiver] Modification to the calculation method for cumulative parameters. - [Archiver-restore] Modification to the calculation method for cumulative parameters. - [Evaluator] Performance enhancement (TotalObjects) - [Packer] Check memory status before any backup job - #### Data Management - [License] Print agreement - #### User management - [User management] Move “Device management” scope’s position - [User management] Freeze scope column #### [Fix] - #### Core - [#37208][DM] The api-portal and api-subscrbe services work abnormally, causing the EdgeHub homepage to be inaccessible. - [#37169][Notification][DM] The parameter name with colon(:) cannot be parsed in notification message. - [#37148][Worker][DM] The ai_stAVG tag name of WISE device is missing. - [#37103][Worker][DM] The constant parameter of number type won't be recorded - [#37056][Evaluator][DM] The value of calc parameter will return to 0 when evaluator restart - [#36504][Evaluator][DM] Calc parameter doesn't calculate by every minute - [#36425][Evaluator][DM] The calc parameter formula "TImematch" won't be triggered - [#36327][Evaluator][DM] The Math of calc parameter isn't be recorded - [#36326][Evaluator][DM] The formula of calc parameter isn't be recorded - [#35892][Archiver-restore][DM] archiver restore service restart (OOM) - [#37222][api-portal][DM] The expired date will be null when creating a new sub tenant on subscribe - #### Data Management - [#37237][Plugin][DM] Calc parameter of Basic Auth method can't get the value - [#37206][DM] The error message is hard to understand when adding parameters via import and the quota of tenant is full - [#37017][DM] The error message is not clearly if adding parameters (over subscribed quota) via importing object excel. - [#36882][DM] The page loading display doesn’t make sense in 2000 parameter object. - [#36922][DM] The error message is hard to understand when enter a wrong user to do retry deduction - [#36921][DM] There is no any message when retry deduction is success or fail - [#36904][DM] 'Print' button doesn't in Activate license key page. - [#36685][DM] Wish it has a scroll bar when setting group permission ## Version: 2.2.5 (2024/03/29) ### Device Management #### [Update] * Web UI modification according to UI design * Add System Setting in page header: * Advanced setting, Tenant management, Switch language, Release note * Modify Account Setting in page header: * Account setting, Switch tenant, Logout * Add Notification icon in page header: * This icon is always disabled currently. * Device Batch Task list: Remove "Result" field and change "Status" field to "Task result" field * Modify all text: Change from "Created time" to "Date created" #### [In Development] * Batch Create Device * Add a feature to accept requests from the Bootstrap server. This feature is disabled in this version. #### [Fix] * Others * [#36953] [DPM] Some text typo in Alarm/Event page * [#36958] [DPM] Suggest to add 'Reload' radio button in editing constant parameter page ### Data Management #### [Update] - #### Core - [api-portal] role name migration, The only special symbols left are " ", "-", "\_", and the rest of the special symbols will be replaced by "\_" - #### Data management - [Tenant management] partial function disabled of child tenants. - [Tenant management] handle child tenant’s expired date modification. - [Tenant management] alert on UI: insufficient quota: quota insufficient. - [Tenant management] add tenant labels. #### [Fix] - #### Core - [#37101][Archiver][DM] The wise-mplus-archiver service pod restarts many times during the performance test of 400,000 parameters loading. - [#37100][Worker][DM] The ai_AVG and ai_stAVG tag will be generated even if the ADAM device don't publish the config. - [#37023][Alarm][DM] The alarm of new created object (bound same device as old object) will be triggered even if the device is offline. - [#37001][Worker] The COM1/Modbus/RTU tags name of WISE-4051 are not correct. - [#36881][Alarm][DM] Part of parameter alarms are triggered after object excel import. - [#37102][Worker][DM] There is no realtime value when create a new constant parameter - [#36981][Worker][DM] Edgelink is continue online offline - [#37091][Worker][DM] The tags of Edgelink is upload but there is no data and Edgelink is still offline - #### Data management - [#37018][DM] The object import button is disable if the quota of parameter is full used. - [#36809][DM] user role permission of Group, object, and parameter can't set to user - [#36773][DM] Menu item will disappear when use browser to open 2 pages to login to different tenant - [#36686][DM] Set the admin permission of Dashboard & menu list, but there is no UI to show ## Version: 2.2.4 (2024/03/15) ### Device Management #### [Update] * Security Fix * Update MongoDB library and Node version to fix CVE vulnerability * Affected Pods: api-dpm, batch-device #### [In Development] * Device Management Portal * Add settings for communication with Bootstrap server. This setting is disabled in this version. * X.509 Certificate API * Add feature: the X.509 intermediate certificate of the device could be chosen by the device serial number instead of the device orgId. This feature is disabled in this version. #### [Fix] * Others * [#36889] [DPM] There is a text typo in add EdgeLink device page. ### Data Management #### [Update] - #### Core - [DBMaster][RESTFul API] Adjust parameter apis to use parameter id as input (replace objId & objParam). - [#36148][Worker] Support WISE new config format - modbusserver_config #### [Fix] - #### Core - [#36929][Worker][DM] Default value is not shown on UI - [#36881][alarm][DM] Part of parameter alarms are triggered after object excel import. - [#36871][alarm][DM] Actually 2079 alarm are triggered even if only 2000 parameter meet the alarm rule. - [#36868][Worker] The worker enter in "Trafic limit" status unexpectedly. - [#36862][Worker] The last value/quality/time of devices will be cleared after the version is updated. - [#36816][import-export][DM] Event rule setting will not be exported in "isEnable" field in object excel. - [#36808][api-portal][DM] Error occurred if import same object excel file after exporting. - - #### Data management - [#36936][DM] It can be added parameters (over subscribed quota) via importing object excel. - [#36922][DM] The error message is hard to understand when enter a wrong user to do retry deduction - [#36908][DM] The tenant management edit page may have security issues. - [#36891][DM] It can add negative number of devices and parameters in tenant management. - [#36873][DM] Cannot export alarm report from dashboard alarm panel. - [#36320][DM] The Parameter name in Variable library of Notification message is not sorted - [#36944][DM] Expired tenant shouldn't be on the list when active the license key - [#36683][DM] The admin permission of Profile management, it will show Not Found at first time to login - [#36494][DM] It will auto create code list when creating cal parameter woth ";" + space - [#36265][DM] It will take time (almost 6 seconds) to show the device list at first time when creating a primivite parameter - [#36921][DM] There is no any message when retry deduction is success or fail - [#36317][DM] Webpage error occurred if entering any character in First or Last name field in add from new alarm user page. - [#35564][DM] Dialog boxes in DM and DPM behave differently if an invalid license key is entered. ## Version: 2.2.3 (2024/03/01) ### Device Management #### [Update] * Web Page Update * Add text of minimum firmware version requirement when creating EdgeLink device #### [Fix] * Others * [#36566] [DPM] The AI unit of ADAM device is incorrect in monitor page * [#36688] [DPM] Add Group icon should be gray when use viewer permission to access ### Data Management #### [New] - #### Core - [Portal] New tenant management UI - Retry deduction #### [Update] - #### Core - [Apps] Mongoose update to fix security issue - [api-portal] Update Mongoose to v8.2.0 - [subscribe service] Update Mongoose to v8.2.0 - [api-devtool] Update Mongoose to v8.2.0 - [datasource backend] Remove Mongoose - [api-plugin]Remove Mongoose - [Subscribe service] due day, due day+30days logic change - due day: disable tenant + email notification - due day + 30 days: disable tenant / Reclaim allocated quota / email notification - [Evaluator] Optimize the performance of normal formula calculation and `TotalObjects` function #### [Fix] - #### Core - [#36730][Dataworker][DM] Edgelink devices are offline because the worker connection is break - [#36704][Dataworker][DM] The worker enter in "Traffic limit" status if 5,760,000 message upload to EdgeHub simultaneously. - [#36703][api-portal][DM] Part of alarm rule will not be enable (backend) if import object from excel. - [#36676][api-portal][DM] Alarm rule will not be disable if import object from excel. - [#36635][Dataworker][DM] The raw data will not be recorded if WISE device reconnect to edgehub. - [#36634][Dataworker][DM] The breakpoint resume function work not correctly. - [#36504][Evaluator][DM] Calc parameter doesn't calculate by every minute - [Restore] Incorrect result in Discrete parameter restore - #### Data management - [#36692][DM] Use subscribe license and click the Getting support, AE account isn't be added automatically - [#36687][DM] Set the viewer permission of Role list, it will show Insufficient permissions to view when access to user management of Root tenant - [#36680][DM] Can't set the user permission of Group, object, and parameter - [#36631][DM] Tenant owner shouldn't be selected to changed - [#36527][DM] It will show "No parameter, yet" when switch 2 object with over 50 parameters ## Version: 2.2.2 (2024/02/07) ### Device Management #### [Update] * Align user role with User Management * If user has 'Manage' permission in In-Outbound setting, user could perform all actions in DPM * If user has 'Viewer' permission in In-Outbound setting, user could only perform view actions in device, device group, AppHub repository and file management * If user has 'None' permission in In-Outbound setting, user can not enter DPM * Add 'Back' button in Activate License Key dialog #### [Fix] * Others * [#34888] [DPM] Viewer role can CRUD in DPM * [#36423] [DPM] There is a weird page if switch page from 'Repository' to 'Progress' in Applications. * [#36395] [DPM] The RS-485 tag value of WISE-4051 in Monitor page is NaN. ### Data Management #### [New] - #### Core - [Portal] New tenant management UI - New Activation agreement flow UI #### [Update] - #### Core - [Portal] Remove onProxyReq,onProxyRes to improve proxy performance - [Microservices] upgrade Node.js base image to 20.11.0-slim to prevent OOM issue in K8S 1.25.x - [Microservices] upgrade Java base image to openjdk:18.0.2 to prevent OOM issue in K8S 1.25.x - [api-portal] optimize gateways api performance - [api-portal] when parent group name change, then notify all child group - [api-portal] Add bound parameter info in tagAdd/tagUpdate mqtt message #### [Fix] - #### Core - [Archiver] Incorrect first value for hour data will cause wrong HIS_AVG of hour data - [Archiver] Archiver no response in dev site - [#35892][Archiver][DM] archiver restore service restart (OOM) - [ArchiverRestore] The waiting time between two restore tasks is too long - [ArchiverRestore] Incorrect first value for hour data will cause wrong HIS_AVG of hour data - [api-portal] wrong parameter's kept days for the parameters that is created before version 2.0.22 - [api-portal] PG connection timeout - [api-portal] User with multiple tenant roles and roles with lower privileges come first (ex. assign `Viewer` first, then add `Admin`) will cause permission denied. - [dbmaster] The field order for discrete raw data of API response (/data/CalculatedData/query) is wrong (should be "tagvalue", "quality", "datatime") - [#36325][Alarm service][DM] Actually only 1431 alarm are triggered even if 2000 parameter meet the alarm rule. - [#36482][Subscribe service] [DM] EdgeHub Login site address on email can't be accessed - #### Data management - [#35831][DM] Set 2 calc parameters to get the plugin value, there are 2 different data source but the value are the same - #### User management - [#34917][UM] Use the Command Center permission, but can't enable the anonymous login - [#34683][UM] Create a command center permission,but can't access the command center - #### Command center - [#36343][dashboard backend] api-org-wise-mplus pod will crash If more than 5,000 data(dashboard panel) are accessed. ## Version: 2.2.1 (2024/01/26) ### Device Management #### [Update] * My Device List * Adjust the width of device list to reduce the display possibility of horizontal scroll bar * ADAM/WISE IO Configuration * For Digital Input(DI) and Digital Output(DO) channel settings, add field name and valid value range in error message * Java related Microservices * Upgrade to JRE version which supports Cgroups v2 #### [Fix] * Others * [#36197] [DPM] The location of button will be shifted if select all in 'Select existing device' dialog in device group * [#36146] [DPM] Cannot auto select WISE-4000/LAN series when pasting the device info * ADAM/WISE IO Configuration: Fix Spelling error(Change from 'AI Alarm Drived' to 'AI Alarm Driven') * [#36394] [DPM] The device 'quality' in tag page is missing in certain situation ### Data Management #### [New] - #### Core - [Portal] New tenant management UI - Allocate license quota functionality - Allocate license quota in edit tenant functionality. - Change tenant status (enable/disable) - Display SIConsole/Subscribed/Manually created tenant in tenant list #### [Update] - #### Core - [Archiver] Handle the special case of HIS_AVG computation for the parameter with `cumulative` recording type: - data glitch to 0 - data glitch to 0 right after device online #### [Fix] - #### Core - [Packer] Didn't send the delete parameter notification to Cleaner, which will result in the parameter's recording rate/hour/day data not being deleted. - [Cleaner] Delete a parameter will also erase the historical data for other parameters within the same object, including recording rate / hour / day data. - [#35915][Data restore] The text format data aren't not be recorded actually after stop and restart worker on 1225 - [#35892][Data restore] archiver restore service restart (OOM) - [#36233][Worker] Edgelink device can't be connected on board - - #### Data management - [#36234][DM] Parent tenant tree shouldn't be showed if parent tenant can't be changed - [#36255][DM] Expired date can't earlier than today - [#36260][DM] The total sum of quota is not correct - [#36259][DM] Can't set the parent tenant when create a new tenant - [#35862][DM] The calculation parameter code data source list is not correct if select the descendant-group. - #### Command Center - [#36319][CC] Alarm status can't be edited on Alarm panel ## Version: 2.2.0 (2024/01/12) ### Device Management #### [New] * New add/edit device UI * New UI design for add and edit devices(ADAM, WISE, EdgeLink, SCADA, Computer) #### [Update] * My Device * Display device creator's icon in the user column of device list * Highlight device row when mouse over device list * When device's certificate is revoked, disable certificate download and copy credential in Connect tab. * X.509 Device Filter * In My Device and Device Group, add filter to search if devices use X.509 #### [Fix] * Multi-Languages * Add translation in the dialog when delete device failed ### Data Management #### [New] - #### Core - [Portal] New tenant management UI - Tenant list - Under root-tenant: Can view and manipulate complete tenant tree started from root-tenant. - Under sub-tenant: Can view and manipulate itself and child tenants - Add Tenant - Under root-tenant: Can add sub-tenant under any node of tenant tree. - Under sub-tenant: Can add sub-tenant under itself. - Update Tenant - Under root-tenant: Can update any tenant of tenant tree. - Under sub-tenant: Can update itself and child tenants - Activate license key - Root tenant's direct child tenants can activate license key in this user interface. - [Dataworker] Dataworker refactor - New architecture to support multi-instance dataworker ## Version: 2.1.18 (2024/07/05) ### Device Management #### [Update] * None #### [Fix] * None ### Data Management #### [Update] - #### Core - [Alarm] update log format - [api-portal] While not select Object type, give default type automatically. - [api-portal] For non iiot operated environment, set default expired date to null. - [archiver] Support livenessProbe and readinessProbe - [archiver-restore] Support livenessProbe and readinessProbe - [archiver] update cumulative next data over recording - [archiver-restore] update cumulative next data over recording - [Notification] notify message Org {Address} with address1 + address2 #### [Fix] - #### Core - [worker] Send C2D message failed may cause unAcked queue full and block data consume. - [archiver] cumulative min incorrect - [archiver-restore] cumulative min incorrect - [#38089][Packer][DM] The raw data of constant parameter is miss from 6/12~6/27 - [#37948][Evaluator][DM] There are 2 record log when update the setting of cal parameter - [#37394][Archiver][DM] Negative value will be ignore even use the enable negative mode - [#37947][Evaluator][DM] The value of cal parameter with primitive parameter won't be changed when primitive parameter is deleted - [#37943][Evaluator][DM] Change the source of primitive parameter, the value of calc parameter with primitive parameter won't be changed - [#37890][Evaluator][DM] The memory used by evaluator will not be released even if the calc parameters are deleted. ## Version: 2.1.17 (2024/06/21) ### Device Management #### [Update] * None #### [Fix] * None ### Data Management #### [Update] - #### Core - [api-portal] Default parameters in GroupObject cannot be deleted - [Subscribe] Set default expiration date of trial tenant as unlimited - #### Data management - [Portal] Disable `Object type` field of GroupObject - #### Command Center - [Dashboard datasource] Change monthly alarm count column as option by adding an additional markMonthlyCount switch in alarmlog_record function. #### [Fix] - #### Core - [#37896][api-portal][DM] EfgeHub will be crash when import the excel without parameters info in it - [#37394][Archiver][DM] Negative value will be ignore even use the enable negative mode - #### Data management - [Portal] After parameter created, didn't refresh page well ## Version: 2.1.16 (2024/06/07) ### Device Management #### [Update] * None #### [Fix] * Device Group * Fix: Can not create a new group in certain situation ### Data Management #### [Update] - #### Core - [Evaluator] Improve thread guard function - [Archiver] When processing rawdata, the second-level precision is changed to millisecond-level precision. - [Archiver-restore] When processing rawdata, the second-level precision is changed to millisecond-level precision. - [Packer] Imporving Blob folder path parsing. - [Plugin] Use service name as URL rather than full path URL - [User function] Use service name as URL rather than full path URL - #### Data management - [Parameter] Remove -1 and 0 from calculation frequency's valid value. The new range would be 1~3600 - #### Command center - [Datasource] When querying object/parameter list, you need to select at least one group, otherwise it will return empty - [Datasource] Add global error processing to prevent crashing #### [Fix] - #### Core - [Subscribe service] One tenant deduction fail will call all tenant retry (waste performance by won't cause duplicated deduction) - [Archiver-restore] Incorrect MarkFirstValue function causes incorrect day data - [#37763][Import-export][DM] Error occurred if import object with 50k calc parameter. - [#37762][Data packer][DM] datapacker OOM - [#37646][api-org][DM] ifactory pod terminated causes EdgeHub login failed. - [#37711][Evaluator][DM] Some TimeMatch formula won't be recorded when recording for a while - [#37583][api-portal][DPM] Use the mass device devlop, but it met the error of device name is repeated - [#37553][Evaluator][DM] The total count of math cal parameter is not 86400 - [#37543][Evaluator][DM] The calc parameters of math function will miss the rawdata on 00:00:00 - [#36869][Evaluator][DM] Calc parameter raw data is delayed by 2 mins - #### Command center - [#37724][Data source][CC] Use the Ene dashboard switch, select 3 groups but there are only 2 groups be seen ## Version: 2.1.15 (2024/05/24) ### Device Management #### [Update] * None #### [Fix] * None ### Data Management #### [Update] - #### Core - [Evaluator] improve performance of `getGroupParamSum`, `getGroupAlarmStatus`, `getObjectAlarmStatus` functions - [Evaluator] TimeMatch on time trigger - #### Command Center - [Dashboard function] reportGroupInfo function support daily records #### [Fix] - #### Core - [Evaluator] Calc parameter not showing value after created - [Archiver] RabbimtMQ queue data accumulation - [import-export] if parameter data type is descrete and the descriptor is not fill in, dc-import-export-service will crash - #### Data management - [Parameter] Cannot scroll to bottom of Custom function help dialog ## Version: 2.1.14 (2024/05/10) ### Device Management #### [Update] * Disable the device creation UI of LoRaWAN and WISE-4600 in the HPC evnironments. #### [Fix] * [#37463] [DPM] User can't create a new device on QA environment ### Data Management #### [Update] - #### Core - [Import-export] support import with reload data - #### Data management - [Portal] Update `Timematch` function desciption #### [Fix] - #### Core - [Import-export] Handle recRate as millisecond, but it should be second. - [Import-export] Descriptor value = empty braces will cause crash - [#37413][Evaluator][DM] The trigger of Timematch is not correct by TimeZone - [Archiver] Wrong handle of maxChangeRatePerMin for `Current` type parameter. - [Archiver] Didn't sync restored day data to Archiver correctly. - [Archiver-restore] Wrong handle of maxChangeRatePerMin for `Current` type parameter. - [Archiver-restore] Didn't restore day data correctly. - #### Data management - [#37403][DM] The value of max change /min will be change from 999999999 to 100 when submit - #### Command center - [Datasource] Cannot use `Table` format to display discrete parameter's descriptor. ## Version: 2.1.13 (2024/04/26) ### Device Management #### [Update] * Batch create device * Copy the device description to other languages(Traditional Chinese, Simplified Chinesel, Japanese) in addition to English. #### [Fix] * None ### Data Management #### [Update] - N/A #### [Fix] - #### Core - [#37389][Evaluator][DM] TotalObject won't be trigger when set to check the value of parameter - [#37290][Evaluator][DM] calc parameter of plugin won't record by every minute - [#37284][Evaluator][DM] The vaule of TimeObject(-1) won't be changed when the amoumt of object is changed - [#37201][Evaluator][DM] It won't calculate when import calc parameters - [#37056][Evaluator][DM] The value of calc parameter will return to 0 when evaluator restart - [#36879][Evaluator][DM] TimeMatch formula will be trigger twice - [#36869][Evaluator][DM] Calc parameter raw data iis delayed by 2 mins - [#36863][Evaluator][DM] Calc parameter won't be recorded by every minute - [#36815][Evaluator][DM] The vaule of TotalObject formula won't be changed when add a new object - [#36814][Evaluator][DM] Timematch formula won't be triggered - [#36813][Evaluator][DM] The value of calc parameter within device tag is always 18 - [#36812][Evaluator][DM] Calc parameter doesn't get data value on each minutes - [#36781][Evaluator][DM] Timematch formula of everyyear won't be triggered on the date of 0229 - #### Data management - [#37328][Import-export][DM] The error message of import is hard to understand ## Version: 2.1.12 (2024/04/12) ### Device Management #### [Update] * Auto refresh of the device firmware OTA status * Include the OTA status of EdgeLink, ADAM, WISE modules * Add the EdgeLink OTA stage display * When the EdgeLink OTA is in progress, display 'Downloading' or 'Upgrading' in progress bar * This feature includes firmware OTA and project file OTA #### [Fix] * Others * [DPM] Fix multi-language does not work in the table header of Batch Create Device * [#37168] [DPM] Some text typo in 'Device Batch Task' page. ### Data Management #### [Update] - #### Core - [Archiver] Modification to the calculation method for cumulative parameters. - [Archiver-restore] Modification to the calculation method for cumulative parameters. - [Evaluator] Performance enhancement (TotalObjects) - #### User management - [User management] Move “Device management” scope’s position - [User management] Freeze scope column #### [Fix] - #### Core - [Worker] worker restart may cause some object's savefreq = 0 - [#37208][DM] The api-portal and api-subscrbe services work abnormally, causing the EdgeHub homepage to be inaccessible. - [#37169][Notification][DM] The parameter name with colon(:) cannot be parsed in notification message. - [#37056][Evaluator][DM] The value of calc parameter will return to 0 when evaluator restart - [#36504][Evaluator][DM] Calc parameter doesn't calculate by every minute - [#36425][Evaluator][DM] The calc parameter formula "TImematch" won't be triggered - [#36327][Evaluator][DM] The Math of calc parameter isn't be recorded - [#36326][Evaluator][DM] The formula of calc parameter isn't be recorded - [#35892][Archiver-restore][DM] archiver restore service restart (OOM) - [#37222][api-portal][DM] The expired date will be null when creating a new sub tenant on subscribe - #### Data Management - [#37237][Plugin][DM] Calc parameter of Basic Auth method can't get the value - [#37206][DM] The error message is hard to understand when adding parameters via import and the quota of tenant is full - [#37017][DM] The error message is not clearly if adding parameters (over subscribed quota) via importing object excel. - [#36882][DM] The page loading display doesn’t make sense in 2000 parameter object. - [#36922][DM] The error message is hard to understand when enter a wrong user to do retry deduction - [#36921][DM] There is no any message when retry deduction is success or fail - [#36685][DM] Wish it has a scroll bar when setting group permission ## Version: 2.1.11 (2024/03/29) ### Device Management #### [Update] * Web UI modification according to UI design * Device Batch Task list: Remove "Result" field and change "Status" field to "Task result" field * Modify all text: Change from "Created time" to "Date created" #### [Fix] * Others * [#36953] [DPM] Some text typo in Alarm/Event page * [#36958] [DPM] Suggest to add 'Reload' radio button in editing constant parameter page ### Data Management #### [Update] - #### Core - [api-portal] role name migration, The only special symbols left are " ", "-", "\_", and the rest of the special symbols will be replaced by "\_" #### [Fix] - #### Core - [#37101][Archiver][DM] The wise-mplus-archiver service pod restarts many times during the performance test of 400,000 parameters loading. - [#37023][Alarm][DM] The alarm of new created object (bound same device as old object) will be triggered even if the device is offline. - [#36881][Alarm][DM] Part of parameter alarms are triggered after object excel import. - #### Data management - [#37018][DM] The object import button is disable if the quota of parameter is full used. - [#36809][DM] user role permission of Group, object, and parameter can't set to user - [#36773][DM] Menu item will disappear when use browser to open 2 pages to login to different tenant - [#36686][DM] Set the admin permission of Dashboard & menu list, but there is no UI to show ## Version: 2.1.10 (2024/03/15) ### Device Management #### [Update] * Security patch * Update MongoDB library and Node version to fix CVE vulnerability * Affected Pods: api-dpm, batch-device #### [Fix] * None ### Data Management #### [Update] - #### Core - [DBMaster][RESTFul API] Adjust parameter apis to use parameter id as input (replace objId & objParam). - [Packer] Check memory status before any backup job #### [Fix] - #### Core - [#36881][alarm][DM] Part of parameter alarms are triggered after object excel import. - [#36871][alarm][DM] Actually 2079 alarm are triggered even if only 2000 parameter meet the alarm rule. - [#36816][import-export][DM] Event rule setting will not be exported in "isEnable" field in object excel. - [#36808][api-portal][DM] Error occurred if import same object excel file after exporting. - - #### Data management - [#36936][DM] It can be added parameters (over subscribed quota) via importing object excel. - [#36873][DM] Cannot export alarm report from dashboard alarm panel. - [#36320][DM] The Parameter name in Variable library of Notification message is not sorted - [#36683][DM] The admin permission of Profile management, it will show Not Found at first time to login - [#36494][DM] It will auto create code list when creating cal parameter woth ";" + space - [#36265][DM] It will take time (almost 6 seconds) to show the device list at first time when creating a primivite parameter ## Version: 2.1.9 (2024/03/01) ### Device Management #### [Update] * Web Page Update * Add text of minimum firmware version requirement when creating EdgeLink device #### [Fix] * Others * [#36566] [DPM] The AI unit of ADAM device is incorrect in monitor page ### Data Management #### [Update] - #### Core - [Apps] Mongoose update to fix security issue - [api-portal] Update Mongoose to v8.2.0 - [subscribe service] Update Mongoose to v8.2.0 - [api-devtool] Update Mongoose to v8.2.0 - [datasource backend] Remove Mongoose - [api-plugin]Remove Mongoose - [Subscribe service] due day, due day+30days logic change - due day: disable tenant + email notification - due day + 30 days: disable tenant / Reclaim allocated quota / email notification - [Evaluator] Optimize the performance of normal formula calculation and `TotalObjects` function #### [Fix] - #### Core - [#36504][Evaluator][DM] Calc parameter doesn't calculate by every minute - [Restore] Incorrect result in Discrete parameter restore - #### Data management - [#36687][DM] Set the viewer permission of Role list, it will show Insufficient permissions to view when access to user management of Root tenant - [#36680][DM] Can't set the user permission of Group, object, and parameter - [#36527][DM] It will show "No parameter, yet" when switch 2 object with over 50 parameters ## Version: 2.1.8 (2024/02/07) ### Device Management #### [Update] * Add 'Back' button in Activate License Key dialog #### [Fix] * Others * [#36423] [DPM] There is a weird page if switch page from 'Repository' to 'Progress' in Applications. * [#36395] [DPM] The RS-485 tag value of WISE-4051 in Monitor page is NaN. ### Data Management #### [Update] - #### Core - [Portal] Remove onProxyReq,onProxyRes to improve proxy performance - [Microservices] upgrade Node.js base image to 20.11.0-slim to prevent OOM issue in K8S 1.25.x - [Microservices] upgrade Java base image to openjdk:18.0.2 to prevent OOM issue in K8S 1.25.x - [api-portal] optimize gateways api performance - [api-portal] when parent group name change, then notify all child group - [api-portal] Add binded parameter info in tagAdd/tagUpdate mqtt message #### [Fix] - #### Core - [Archiver] Incorrect first value for hour data will cause wrong HIS_AVG of hour data - [Archiver] Archiver no response in dev site - [#35892][Archiver][DM] archiver restore service restart (OOM) - [ArchiverRestore] The waiting time between two restore tasks is too long - [ArchiverRestore] Incorrect first value for hour data will cause wrong HIS_AVG of hour data - [api-portal] wrong parameter's kept days for the parameters that is created before version 2.0.22 - [api-portal] PG connection timeout - [api-portal] User with multiple tenant roles and roles with lower privileges come first (ex. assign `Viewer` first, then add `Admin`) will cause permission denied. - [dbmaster] The field order for discrete raw data of API response (/data/CalculatedData/query) is wrong (should be "tagvalue", "quality", "datatime") - [Packer] Env set disable remove hot data but not working (since version 2.1.2) - [Alarm service][DM] Actually only 1431 alarm are triggered even if 2000 parameter meet the alarm rule. - [#36482][Subscribe service] [DM] EdgeHub Login site address on email can't be accessed - #### Data management - [#35831][DM] Set 2 calc parameters to get the plugin value, there are 2 different data source but the value are the same - #### User management - [#34917][UM] Use the Command Center permission, but can't enable the anonymous login - [#34683][UM] Create a command center permission,but can't access the command center - #### Command center - [#36343][dashboard backend] api-org-wise-mplus pod will crash If more than 5,000 data(dashboard panel) are accessed. - [#36319][CC] Alarm status can't be edited on Alarm panel ## Version: 2.1.7 (2024/01/26) ### Device Management #### [Update] * My Device List * Adjust the width of device list to reduce the display possibility of horizontal scroll bar * ADAM/WISE IO Configuration * For Digital Input(DI) and Digital Output(DO) channel settings, add field name and valid value range in error message * Java related Microservices * Upgrade to JRE version which supports Cgroups v2 #### [Fix] * Others * [#36197] [DPM] The location of button will be shifted if select all in 'Select existing device' dialog in device group * [#36146] [DPM] Cannot auto select WISE-4000/LAN series when pasting the device info * ADAM/WISE IO Configuration: Fix Spelling error(Change from 'AI Alarm Drived' to 'AI Alarm Driven') * [#36394] [DPM] The device 'quality' in tag page is missing in certain situation ### Data Management #### [Update] - #### Core - [Archiver] Handle the special case of HIS_AVG comutation for the parameter with `cumulative` recording type: - data glitch to 0 - data glitch to 0 right after device online #### [Fix] - #### Core - [Worker] When attempting to stop the app voluntarily, the stop operation fails - [#36230][Worker] After upgrading AKS version, the device tags info are abnormal. - [Packer] Didn't send the delete parameter notification to Cleaner, which will result in the parameter's recording rate/hour/day data not being deleted. - [Cleaner] Delete a parameter will also erase the historical data for other parameters within the same object, including recording rate / hour / day data. - [#35915][Data restore] The text format data aren't not be recordered actually after stop and restart worker on 1225 - #### Data management - [#35862][DM] The calculation parameter code data source list is not correct if select the descendant-group. ## Version: 2.1.6 (2024/01/12) ### Device Management #### [Update] * My Device * Display device creator's icon in the user column of device list * Highlight device row when mouse over device list * When device's certificate is revoked, disable certificate download and copy credential in Connect tab. #### [Fix] * Multi-Languages * Add translation in the dialog when delete device failed ### Data Management #### [Update] - #### Core - [backend] Update DC_PORTAL_URL env to service name to improve API performance. #### [Fix] - #### Core - [Archiver] The starting value and ending value within the calculation interval are not correctly judged, resulting in errors in the calculation of the cumulative parameter. - [Cleaner] Cannot do the correct reading of total system memory, may cause OOM. - #### Data management - [#35894][DPM] The number of parameters should be the same with settings - #### Command center - [#35893][CC] Alarm of calculate parameter won't be triggered at first time. - [#35890][CC] Data on the graph panel isn't correct ## Version: 2.1.5 (2023/12/29) ### Device Management #### [Update] * Batch Create Device * Auto refresh batch task result every 10 seconds #### [Fix] * Management Portal * Fix that user's role can not be updated * Others * [#35859] [DPM] The license quota percentage should be dobule format * [#35830] [DPM] Confirm button of SSD Recovery shouldn't be enable when user doesn't enter any command ### Data Management #### [Update] - #### Core - [DB] Remove dummy collection (d_min) - [api-portal] support `upsertParameters` and `upsertMachines` to improve the performance of import-export. - [alarm-service] Optimize the retrieval of the 'monthOccur' field in the rt/his API - [import-export] support upsert object and parameter - [import-export] continue import even import device failed - #### Data management - [Portal] UI adjustment for parameters with discrete data type - [Portal] Limit the imported file size to 5MB #### [Fix] - #### Data management - [Plugin] The successful return status was not displayed when changing the plugin's input back to the correct one. - #### User management - [Group user] While creating a new sub-group, it didn't automatically add users and inherit their permissions from ancestor groups. ## Version: 2.1.4 (2023/12/14) ### Device Management #### [New] * Add Device License Quota * Add device license quota display in left menu * Add input of license key activation in left menu #### [Update] * Batch Create Device * Add retry feature: user could retry to create failed devices in the batch task UI. * New API: support JSON format of batch device information * Create Device API * When calling create device API, API will auto append account id if account id is not present. * When calling create device API to create SCADA, API will auto create device credential(ex: SAS token in Azure environment) and Node Id if these fields are not present. * Copy Device Credential * Add a checksum field to the clipboard JSON when the user clicks copy device credential. * Management Portal * Add system log query #### [Fix] * iBMC * [#35294] [DPM] The OK button of iBMC function doesn't have the same name * [#35317] [DPM] Some iBMC function are't translate to Mandarin * [#35301] [DPM] The iBMC list name are not on the same format * [#35399] [DPM] iBMC Functions buttons will be not clickable for a while in certain situation * [#35243] [DPM] The boot order is not the same with the BIOS list * Others * [#35229] [DPM] The last event log is missing when device is offline * [#34644] [DPM] Hope device batch task can have a retry function * [#35362] [DPM] Search device condition will show again when click the next button on the below ### Data Management #### [New] - #### Core - [APIs] Integrate iFactory services to provide following data APIs - lastValue - lastBadValue - valuesInRange - limitToNthValues - downSampledInRange - badValuesInRange - calculatedValue - [Parameter] Calculation parameter supports `String` data type - [Parameter] Calculation parameter supports using parameter with `String` data type as code data source while configuring `Plugins` as calculation formula. - #### Data management - [Portal] Activate license key functionality - [Portal] Redeem additional license keys functionality - [Data connector][Pivot environment only] Support `iFactoryWorks` connector type - [Data connector][Pivot environment only] Remove the following connector types in new environment. (Current environments still have backward compatible with these types) - `Edgelink-WebAccessMQTT` - `SCADA-WebAccessMQTT` - `iFactory Connector` - #### [Update] - #### Core - [DB] drop useless min collections (being modified in v2.1.3) - [api-portal] login add 4 error status (Disabled, Inactive, SSO_Login_DISABLED, Password_expired) - #### Data management - [Parameter] Calculation parameter supports setting parameters in descendant groups as code data source. - [Alarm group] Support to select parameters in descendant groups - [Forwarding] Support to select parameters in descendant groups as datasource - [Parameter] SpanHi / SpanLo limitation - Max length = 17 - Max value of SpanHi / SpanLo = 9,000,000,000,000,000 - Min value of SpanHi / SpanLo = -9,000,000,000,000,000 - SpanHi > SpanLo - #### User management - [Group user] While creating a new sub-group, it will automatically add users and inherit their permissions from ancestor groups. - #### Command Center - [Alarm panel] add alarm's `duration` field #### [Fix] - #### Core - [#35372][Data archiver] Calculation error while parameter changing its source tag binding. - [Data archiver] Unnecessary restore notify in the case of data in offline status back to online status. - [#35328][api-portal] Can't get the tag item of general PC when create a new object - [#35293][Worker] Data worker doesn't work unexpectedly. - [#35230][Evaluator] It will pop up error message when create a calc parameter with math function - [#35213][Notification] The notification function doesn't work if triggering 2000 alarm again. - [#35167][Notification] Some typos in notification message. - [#35159][Evaluator] TimeMatch formula of "everyyear" won't be recorded on some month of end - [#34126][Worker] The list of tags are't correct when adding object from device - [#34054][General] The name and icon of Data management in version page is not correct. - #### Data management - [#35561][DM] User location requests don't seem to work in the Activation Information page. - [#35392][DM] Plugin list can be sorted by name - [#35391][DM] calc formula can be sorted by name - [#35173][DM] It should pop up warning message when remove alarm user group - [#35172][DM] Parameter that create from profile couldn't be selected - [#35171][DM] Send test message ambiguous. - [#35170][DM] It will show warning when disable the channel setting of email - [#35169][DM] The screen will become white when create object with import from device - [#35168][DM] The search result is not correct in Event&actions Channel settings page. - [#34481][DM] The recording rate of constant string should be 60 or 0 but not 1 - [#33603][DM/DPM] Operability test for the dialog component - #### User management - [#33806][UM] Some behavior in DM is incorrect if the tenant user is Viewer and sub group is Viewer. - #### Command Center - [Datasource] Transformation function error while source value is negative - [#34326][UM] Tenant/Group role is Viewer but can operate dashboard panel (Ack/Report alarm) ## Version: 2.1.3 (2023/11/10) ### Device Management #### [Update] * General-PC module name changes to Computer * Module name of General-PC changes to Computer. This naming change doest not affect any device feature. * iBMC * If user changes device boot sequence, system will append selected boot item automatically in the comment * Device OTA syncs with online status * In My Device, the button of Firmware OTA(FOTA) and Configuration OTA(COTA) will be disabled when the device is offline #### [Fix] * Device Group * If there are multiple pages, list all child groups in the same parent group * Others * [#35047] [DPM] The device group name could be longer for user to key-in ### Data Management #### [New] - #### Core - [DB] MongoDB collection name modificaiton of recording-rate related collections - Create a new collection every day to store new recording-rate data - delete old recording-rate data by drop collection to improve DB performance - remove unnecessary index - #### Data management - [UI] Display parameter's quota and usage - #### User management - [UI][Pivot environment only] Display user's quota and usage while integrating quota information with SI Console #### [Update] - #### Core - [api-portal] thresholdRules id will not be changed after updating the parameter alarm rules - [api-portal] support Redis publish of ifp-rule-engine.Event.[id] and ifp-rule-engine.Rule.[id] message - #### Data management - [Portal] Update pop-up message box of successful actions for the following pages: - Profile management - Command center - Dashboard - Command center - Menu - [Portal] Update pop-up error message with detail information - Group - Object - Parameter - Plugin - #### Command center - [Dashboard] Only the user with `WISE-IoTSuite/Dashboard - Value and alarm` permission of this Tenant can operate ACK action on Ene alarm panel - [Dashboard] Support filter of HIS alarm data on Ene alarm panel - [Dashboard] Remove `alarm occurrence` as the filter on Ene alarm panel #### [Fix] - #### Core - [Data worker] Memory leak issue of Redis data buffer ## Version: 2.1.2 (2023/10/27) ### Device Management #### [New] * Add new iBMC features * New features: * Get/Set device boot sequence * BIOS(Port 80) status * Apacer SSD recovery * Cool down time between iBMC commands: * New features: 2 minutes * Original features(Turn on, Turn off, Force Shutdown, Reset): 1 minute * These new features are supported from iBMC firmware: A1.01 B18 beta version #### [Update] * ADAM module name * Change from ADAM-6018 to ADAM-6018P * Change from ADAM-6024 to ADAM-6024-D #### [Fix] * Others * [#34942] [DPM] The formula page of calculation parameter doesn't translate to mandarin ### Data Management #### [New] - #### Data management - [Portal] New UI design for `Alarm & event` setting in each group #### [Update] - #### Core - [api-portal] Support checking the Quota of SI Console in the EdgeHub environment. - Manually added tenants: Expiration in 3 months. - Tenants added via SI Console: Expiration based on SI Console subscription. - [api-portal] After disabling a user and then re-enabling the user, the user's permissions within groups remain unchanged. - [api-portal] Add new edition env: `azure-aks-customer` with new data retention policy for customer - [Alarm] Only needs to subscribe redis for the tags from ifp-data-hub - #### Data management - [Portal] Update pop-up message box of successful actions for the following pages: - Group - Object/Parameter - Event & actions - Data archiving - Plugin - Forwarding - Alarm settings - External blob - Tenant user - Group user #### [Fix] - #### Core - [#33577][Data worker] The EdgeLink device MQTT heartbeat time isn't work - [#34126][Data worker] The list of tags are't correct when adding object from device - [Data worker] Bad format of array tag data - [Alarm] check alarm code alarm with array tag failed - [Alarm] RT alarm pagination and sort incorrectly - [#35013][DPM] The event log of device isn't sorted by event time - [#35034][Evaluator] The calculation parameter value is incorrect with 1s calc frequency - [Data packer] process hang when deleting blob data failed - [Data packer] GET api with wrong route may cause pivot-api-hub slow down - - #### Data management - [#34919][DM] There is no Mail/Wechat notification if alarm is triggered. - [#34613][DM] The alarm notification message received is 233 not the upper limit of SMTP and LINE. - [#35003][DM] It will pop up a error msg when try to send a test email - [#34139][DM] The setting of secrect key should shown as "******" - #### User management - [#34930][UM] "UserManagementOnly" role cannot access and manage the group permission page in User Management. - [#34918][UM] Dashboard list can't be shown when use command center permission - [#34912][UM] Use the permission of command cemter, the group list doesn't be listed - [#ww][UM] In-Outbound can be set on Role setting - #### Command center - [#34939][CC] The language of switch graph/ alarm panel will not change immediately untill click the edit setting on below ## Version: 2.1.1 (2023/10/12) ### Device Management #### [Update] * Web Page Update * Modify header style according to UI design * Device Management Portal * To improve network security, use cookie in JWT format to store user information * X.509 * Add the capability to run certification program in WISE-PaaS platform #### [Fix] * Web Page * [#34906] [DPM] The style of header menu are not the same on DM and DPM * [#32333] [UM] DPM should not show User Management item in header dropdown menu * [#34928] [DPM] Use csv template to import device will show fail * X.509 * [#34916] [DPM] Edgelink device can't connect to EdgeHub due to Cert Revoke API error * [#34882] [DPM] Revoke cert regeneration task will not be executed if expired cert regeneration task is executed * Others * [#34940] [DPM] Platform agent login error due to GraphQL API is missing * [#31212] [DPM] When IO Configurations in ADAM/WISE are changed, cloud sends only modified MQTT to device * [#34941] [DPM] Formula of calcation parameter will be clear when editing ### Data Management #### [Update] - #### Core - [api-portal] Limit single client login for a user account (This feature is disabled by default). - [api-portal] API update - (Add) ApiInfo.anyUsernameAuthEnable - [Data Packer] Federate APIs to federation server after all DB connections are ready. #### [Fix] - #### Core - [Data Packer] Startup incompletly while DBMaster not ready - [Data Archiver] Wrong calculation for the recording rate data of cumulative parameter while the data upload frequency greater than recording rate. - #### Data Management - [Portal] The search for the object parameter list did not yield the correct page numbers. - [#34196][DM] Plug in will continue to send even the related calculation parameter is deleted - #### Command Center - [#34905][CC] Alarm panel doesn't show anything --- ###### tags: `Documentation`