What's Changed
Major Core & Rule Engine
- Migration to Java 25 by @ViacheslavKlimov in https://github.com/thingsboard/thingsboard/pull/14976
- Remote agents by @MazurenkoNick
- Integration executor: push directly to rule engine by @AndriiLandiak
Major UI
- Front-end sidebar/toolbar redesign by @ikulikov in https://github.com/thingsboard/thingsboard/pull/15888
Security
- Fixed CVE-2026-17495, CVE-2026-84375, CVE-2026-85061, CVE-2026-87776, CVE-2026-90711 by @vvlladd28 in https://github.com/thingsboard/thingsboard/pull/16200
- Fixed CVE-2026-63126, CVE-2026-68497, CVE-2026-75516, CVE-2026-87795, CVE-2026-87823, CVE-2026-87824, CVE-2026-87825, CVE-2026-87877, CVE-2026-90560, CVE-2026-90852 by @ViacheslavKlimov in https://github.com/thingsboard/thingsboard/pull/16195
- Fixed CVE-2026-59969, CVE-2026-84439, CVE-2026-84939, CVE-2026-89425, CVE-2026-91777, CVE-2026-93488, CVE-2026-93491, CVE-2026-93560, CVE-2026-100655, CVE-2026-100656, CVE-2026-100657 by @ViacheslavKlimov in https://github.com/thingsboard/thingsboard/pull/16207
Core & Rule Engine
- OR conditions support for dashboard filters by @ViacheslavKlimov in https://github.com/thingsboard/thingsboard/pull/15286
- WebSocket API key authentication by @AndriiLandiak in https://github.com/thingsboard/thingsboard/pull/15170
- Added dedicated alarm rules API by @ViacheslavKlimov in https://github.com/thingsboard/thingsboard/pull/15326
- Added request body template support for REST API call node by @AndriiLandiak in https://github.com/thingsboard/thingsboard/pull/15127
- Added Kafka OAUTHBEARER (OAuth2) support by @jkitn in https://github.com/thingsboard/thingsboard/pull/15098
- Resharing of dashboard groups by @dashevchenko
- Added more default integration decoders by @dashevchenko
- Dynamic Y-axis configuration in Reporting by @mtsymbarov-del
- Made Reporting available on customer level by @dashevchenko
- Added support for public report download links by @dashevchenko
- Batched async RPC persistence with idempotent create and striped rule-engine notifications by @ShvaykaD
- Added feature to enable/disable Web UI microservice HTTP response compression by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15836
UI
- Rule chain notes by @vvlladd28 in https://github.com/thingsboard/thingsboard/pull/15121
- Hid the 'Events' tab for unsupported entities by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15087
- Standardized description field formatting by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15156
- Added custom translate support for gauge and label widgets by @vvlladd28 in https://github.com/thingsboard/thingsboard/pull/15236
- Updated Korean locale translations by @wbg1991 in https://github.com/thingsboard/thingsboard/pull/15242
- Moved inputs to outlined styles by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15265
- Added OpenFreeMap provider and vector tiles support for map widgets by @vvlladd28 in https://github.com/thingsboard/thingsboard/pull/15337
- Added support for Angular control flow syntax in markdown by @vvlladd28 in https://github.com/thingsboard/thingsboard/pull/15384
- String limit for 300> characters on attribute entity table by @jrkubic in https://github.com/thingsboard/thingsboard/pull/14910
- Added hint for Unread notifications widget in widget selector by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15681
- Chart widgets: zoom interaction now syncs the active time window by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15624
- Migrated help/doc links to new documentation structure by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15832
- Extended allowed entities with Role and Group permissions for entity type filter node by @mtsymbarov-del
- Normalized "Add role" and "View role" capitalization on Roles page by @mtsymbarov-del
- Renamed Scheduler event creation dialog title to "Add scheduler event" by @mtsymbarov-del
- Added "Allow downlink" toggle for ChirpStack integration application server config by @mtsymbarov-del
- Fixed inconsistent Attributes area visibility in scheduler Update Attributes event by @mtsymbarov-del
- Improvements for test decoder function by @dashevchenko
- Renamed legacy report Type label to "Web report" to avoid Reporting 2.0 entity confusion by @mtsymbarov-del
- Renamed "Queues" section to "Queue" in RabbitMQ integration by @mtsymbarov-del
- Added decimals support for missing Scada symbols by @mtsymbarov-del
- Improved "generate report" rule node settings form with toggles and setting hints by @mtsymbarov-del
- Updated "Initial value" control and RPC control widgets settings UI to new form panel design by @mtsymbarov-del
- Added a widget action to save browser location and mobile app actions to save phone location and track live GPS by @deaflynx
- Extended version control entity picker to support JS Modules by @mtsymbarov-del
- Changed 'Add new widget' action in widget bundles to standard primary button by @mtsymbarov-del
- Added help popup and widened dialog for Advanced CSS in White Labeling by @mtsymbarov-del
- Added new linter for CSS validation to support new CSS features by @mtsymbarov-del
- Widget actions export/import by @rusikv
- Made dashboard select dropdown sort by title by @harvspeedplumb-cell in https://github.com/thingsboard/thingsboard/pull/16036
Transport
- No activity reporting on device disconnect event by @dashevchenko in https://github.com/thingsboard/thingsboard/pull/15305
- Support for Execute operation with arguments (OMA LwM2M v1.0.2) by @nickAS21 in https://github.com/thingsboard/thingsboard/pull/14881
- Unified attribute request — fetch-all per scope + scope-separated gateway response by @ShvaykaD
- Added v2 short MQTT topic for device claiming by @ShvaykaD
Bug: Core & Rule Engine
- Fixed query parameter encoding in REST API call rule node by @dskarzh in https://github.com/thingsboard/thingsboard/pull/14540
- Fixed cache cleanup on tenant/entity deletion by @dashevchenko in https://github.com/thingsboard/thingsboard/pull/15280
- Fixed Nashorn Global PropertyMap leak on JS script release by @MazurenkoNick in https://github.com/thingsboard/thingsboard/pull/15964
- Fixed RabbitMQ integration ignoring the downlink converter by @vvlladd28
- Fixed failed integrations not being destroyed and MQTT client leaking sessions by @volodymyr-babak
Bug: UI
- Allowed the "Hide dashboard toolbar" option for public dashboards by @pgrisu in https://github.com/thingsboard/thingsboard/pull/14945
- Fixed state change of "Select all" checkbox in attributes table by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/14973
- Fixed stateController resolution for the "Home page widgets" bundle type by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15409
- Fixed missing error notification on 429 response status by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15679
- Fixed device/asset profile import when default rule chain no longer exists by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15718
- Fixed JavaScript modules with special characters being corrupted on upload by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/15498
- Fixed overlapping columns in IoT Hub markdown tables by @pinkevmladchy in https://github.com/thingsboard/thingsboard/pull/16138
- Fixed installed items count not refreshing after an install, update or delete by @pinkevmladchy in https://github.com/thingsboard/thingsboard/pull/16139
- Added CARTO as a separate map provider with an optional API key by @mtsymbarov-del in https://github.com/thingsboard/thingsboard/pull/16189
- Fixed Asset and Entity Views table header alignment by @mtsymbarov-del
- Fixed ChirpStack integration form validity not propagating to parent form by @mtsymbarov-del
- Fixed numeric/boolean filter predicates failing to save due to invalid "ignoreCase" field by @mtsymbarov-del
- Fixed mail template footer vertical gap and width misalignment by @mtsymbarov-del
- Hid AI dashboard generation actions when the AI feature is disabled by @mtsymbarov-del
- Fixed layout bugs and improved mobile layout for "Add device profile" modal by @mtsymbarov-del
- Fixed secret password not clearing on Mail server settings save by @mtsymbarov-del
- Fixed end of day shown as noon in alarm schedule summary by @mtsymbarov-del
- Fixed validation errors overlapping form fields in MQTT and AWS IoT advanced settings by @mtsymbarov-del
Bug: Transport
- Fixed negative values encoding for LwM2M Integer resources by @nickAS21 in https://github.com/thingsboard/thingsboard/pull/15962
- Fixed handling of LwM2M unsigned integer resources across downlink and uplink operations by @nickAS21 in https://github.com/thingsboard/thingsboard/pull/16095
- Fixed LwM2M device profile import failing when bootstrap short server id is non-zero by @nickAS21 in https://github.com/thingsboard/thingsboard/pull/16133
- Fixed gateway persistent RPC not being marked DELIVERED on PUBACK by @ShvaykaD
Bug: Edge
- Fixed edge activity state being cleared when the session moves to another node by @volodymyr-babak in https://github.com/thingsboard/thingsboard/pull/16156
New Contributors
- @wbg1991 made their first contribution in https://github.com/thingsboard/thingsboard/pull/15242
- @jrkubic made their first contribution in https://github.com/thingsboard/thingsboard/pull/14910
- @jkitn made their first contribution in https://github.com/thingsboard/thingsboard/pull/15098
- @bruak made their first contribution in https://github.com/thingsboard/thingsboard/pull/15759
- @harvspeedplumb-cell made their first contribution in https://github.com/thingsboard/thingsboard/pull/16036
Full Changelog: https://github.com/thingsboard/thingsboard/compare/v4.3.1.5...v4.4