github thingsboard/thingsboard v3.3
ThingsBoard 3.3 Release

latest releases: v3.6.4, v3.6.3, v3.6.2...
2 years ago

Major release which contains 2126 commits and 1668 changed files.

Major Improvements:

  • Core:

    • Interface to provision and communicate with ThingsBoard Edge;
    • Firmware and Software over-the-air updates (FOTA & SOTA);
    • Persistent RPC calls;
    • API limits for number of created alarms;
    • Alarm removal by TTL;
    • Add Apple OAuth2 provider;
  • Rule Engine:

    • Non-blocking subscribe method to prevent locks on repartition event;
    • Significant performance improvement of remote js-executor;
    • Per-customer and system level api usage stats;
  • Transports:

    • LwM2M transport implementation;
    • SNMP transport implementation;
    • CoAP DTLS support;
    • PSM and eDRX support for CoAP and LwM2M transports;
    • Support of FOTA and SOTA updates for MQTT, HTTP, CoAP and LwM2M transports;
    • Ability to launch MQTT and MQTTS simultaneously in one transport instance;
    • Explicit fields presence support for protobuf payloads;
    • Content format support for CoAP resources;
  • UI:

    • Ability to manage resource library;
    • Ability to manage OTA packages;
    • Ability to manage Edge instances;
    • Event filters for Debug, Error, Stats and other event types;
    • FOTA dashboard;
    • Update to Angular 11;
    • Performance improvement: switched change detection strategy to OnPush;
    • Performance improvement: moved widget header to widget container;
    • QR Code widget
  • Mobile App support:

    • Support of mobile widget actions: Scan QR code, take picture/photo, open map directions, etc;
    • Support for dashboards in the mobile app;
    • Ability to hide dashboard toolbar settings. Improve dashboard setting dialog. Handle dashboard right layout toggle in the mobile app;
    • Ability to configure icons for dashboard and device profile entities.
    • Ability to specify the mobile dashboard as an alarm details view for mobile application;
    • Ability to control visibility and order of dashboards in the mobile application.
    • Ability to hide widgets in the mobile mode.

Minor Improvements:

  • Core:

    • Performance improvement and bug fix in the device state service which impacts active/inactive device events calculation;
    • Performance improvement for tenant state load;
    • Performance improvement for the attributes cache;
    • Performance improvement for querying events and cleanup of events;
    • Performance improvement and memory management for DeviceActorMessageProcessor;
    • Create assign/unassign device event when claiming/reclaiming device;
    • Additional validation for entities to protect from XSS;
    • Refactor predicate queries building;
    • Ignore empty search conditions for filters;
    • Ignore default value for filters with constant key type;
    • Make alarm condition serializable;
    • Ability to define consumer properties per topic;
    • Improvement thread pool naming;
    • New alarms API: getAllAlarms and getCustomerAlarms;
    • "alarmConditionRepeats" and "alarmConditionDuration" metadata fields of alarms generated via alarm rules;
    • Reset of JWT tokens when user changes password;
    • Sync kafka commit to improve performance;
    • Statistics collection using Prometheus;
    • Method to find dashboard by name and tenant ID;
    • Kafka client version set to 2.8.0; Optimized kafka producer/consumer parameters;
    • Spring security version set to 5.4.4;
    • Remove outdated versions of Netty;
    • Add logging of error msg to easily identify root cause of failed logins;
    • Add module cluster-api and used it in rule engine and other services;
    • callback execution in the device state service;
    • Transaction aware cache to synchronize cache put/evict operations with ongoing Spring-managed transactions;
  • Transports:

    • Support of server-side RPC requests via protobuf for CoAP and MQTT;
    • Improvements to data converter to support big decimal values;
    • Remove redundant lock on device creating for provisioning feature;
    • Ability to queue configurable number of uplink MQTT messages while processing connect request;
    • Correct close and cleanup of the MQTT session context;
  • Rule Engine:

    • Add transaction support to save/update/delete of rule chains.
    • Dynamic alarm severity support in Create Alarm rule node;
    • QueueController returns up to date list from thingsboard.yml;
    • Move the message decoding out of the lock to reduce locking time;
    • Queue check on the very first poll in the lifecycle before any subscribe method calls;
    • Not going to sleep after pull if time left less than 1 millisecond.
    • Ability to use HTML templates in the send email node;
  • UI:

    • Improvement of time window visualization in the mobile view;
    • JSON input widget;
    • Ability to configure dashboard logo;
    • Improvement to query params handling;
    • Ability to update dashboard image from screenshot;
    • 'Use entity lable in tab name' checkbox in timeseries table;
    • Entity info in widget actions as 'additionalParams' for entities table widget;
    • Update to logic for 'Set entity from widget' in static widget;
    • Move Transport type selector to transport configuration step in the device wizard;
    • Ability to copy-paste content from widget;
    • Cache cellContent, cellStyle, rowStyle in entity tables widget;
    • Disable scroll zooming in the image map;
    • Improvement to exception handling to exclude output like "object Object";
    • Improvement to chips after blur input;
    • Improvement explanation of what's accepted in entity alias "Entity Name";
    • Update to Czech translation;
    • Ability to toggle show password in the input field of login form;
    • focus for entity-key-list component after blur this component;

Bug Fixes:

  • Core:

    • Remove ServiceId from Kafka consumer GroupId;
    • Cassandra prepared Statement initialization lock;
    • Restore old Nashorn sandbox version until bug in library is fixed;
    • Remove duplicate call of onData function for websocket subscriptions;
    • Transaction management for component descriptors and events;
    • Potential outdated server info on recalculatePartitions;
    • Performance fix of alarm query based on pg_stat analysis;
    • Performance fix of device count query;
    • Update the ts_kv_latest table only if the value that arrives has the newer timestamp;
    • Added cache cleanup when entity is renamed;
    • org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException;
    • Rest Api Call Node fixes: added default header Content-Type
    • Postgresql driver version upgrade to 42.2.20 to fix connection issue with Postgres 11;
    • Drop partition function in install script and added fix to upgrade script
    • Configuration parameter name for Compression Type;
    • Message order for Gateway and LwM2M transports in the core consumer;
    • Duplication of sessions in the device actor cache;
    • Authorization and password reset vulnerability;
    • Entity view selection in relation query alias;
    • Typo in equals method of widget bundle class;
    • SerializationFailedException during device claiming;
    • Dependency vulnerabilities;
    • Spring security issue;
    • Create device notification in DefaultTransportApiService;
  • UI:

    • Updated device profiles table after added new profiles
    • Access is forbidden error in the system admin change profile;
    • Alarm rules validation when use changes key or value types;
    • Switch control widget to update state after rpc call response;
    • Widget type filter in the widgets selector;
    • Title when make rule chain root in Chinese;
    • Resolving of the assets page;
    • Multiple datasource processing data in map widgets;
    • Incorrect calculate minIntervalLimit;
    • Some typos in rus/ukr translations;
    • HTML action of identical widgets on the dashboard;
    • Error message in Led Indicator;
    • Entity autocomplete;
    • Thresholds appearing when threshold attribute is not set in flot widgets;
    • HttpCleint and DrugDrop is now accessible for widget extensions to avoid stackoverflow when importing external modules;
    • Device credentials component validation;
    • State controller to not update state when stateId is not changed;
    • New dashboard settings in Safari;
    • Typos in widgets descriptions;
    • Do not "uppercase" unit title of digital gauges;
    • Entities count datasource label overwriting, configured label was never displayed;
    • Entity node level in the entity hierarchy widget;
    • Applying default thresholds line width in the Bar Chart widget;
    • Incorrect time window displaying;
    • Displaying static widget configuration tabs, when configuration of advanced settings is empty;
    • Not updated dashboard URL, after updated a current dashboard state;
    • Tooltip in Map widget for Safari browser;
    • Validation on removal of the alias that is used in the alarm widgets;
    • Added missing help link in add device and add device-profile dialogs;
    • Closing the main menu with the escape key;
    • Clear password after save SMTP settings;
    • Update of the device inactivity timeout attribute;
    • Behaviour of ESC button while in main menu;
    • StartTs and endTs in deleteEntityTimeseries;
  • Transports:

    • Configuration of session cleanup;
    • For statistics collection period;
    • CoAP client can subscribe to attribute and rpc updates simultaneously;
    • Removed unnecessary retain of PUBLISH message for QoS 2;
    • Handling of duplicated read/observe requests for CoAP;
    • Memory leak in GatewaySessionHandler by using weak hash map for locks;
  • Rest Client:

    • GetAlarms method;
    • Removed redundant parameter for AlarmController, AlarmQuery and getAlarms;
    • Reduced default log level;
    • Include the limit value in the getTimeseries REST call;
  • Build/Installation scripts:

    • JAVA_OPTS in K8S config maps to work with Java 11;
    • Reference to the maven repositories;
    • Updated HAProxy and Certbot version for docker-compose scripts;
    • Update haproxy config. Enable HTTP/2;
    • Upgrade Postgres to version 12 in the docker images;
    • Logger template added for Top Rule Nodes by max execution time;
    • Added prometheus-grafana monitoring to Docker scripts;
    • Updated MSA read me file;
    • Correct keystore file lookup from files instead of classpath;
    • Update of os-maven-plugin version;
    • Unique name for logs container in order to avoid container name conflicts;
    • Improved black box tests;

Don't miss a new thingsboard release

NewReleases is sending notifications on new releases.