Links

CHANGELOG

All notable changes on Thinger.io will be documented here.

6.1.0

Release Date: XX-02-2024

Added

  • Products can now configure bucket tags to be used on the automatic initialization. Fixes https://github.com/thinger-io/thinger-server/issues/81
  • Brand PWA configuration includes support for uploading app icons directly from the filesystem. It also allow the configuration of both 'maskable' and 'any' icon purposes. Fixes https://github.com/thinger-io/thinger-server/issues/84
  • Brand Share Image includes support for uploading an image directly from the filesystem.
  • Brand Logos are now served from web server instead of a JSON config, which should reduce load time.
  • Brand PWA "start_url" to make the console installable on Chrome.

Improved

6.0.0

Release Date: 29-01-2024

Added

  • Property Forms 📝 : Allow creating custom forms for improving the user experience when setting values inside a property, i.e., when configuring a device. The form can be defined at Product level, and it is currently supported by Formly.
Property Forms
Device property editor using a form
  • Property Location 📍: Location properties now display a map for picking the address directly from the map or via a search bar for using an address. Once an address is selected, it automatially fills the coordinates and timezone.
Property location editor
Property raw fields generated by location editor.
  • Dashboard Functions ⚡: Dashboard now supports creating custom functions for processing any data used in dashboard, i.e., for changing units, cropping decimals, or filtering values. Conversion functions can be selected on the data source configuration.
Dashboard Functions.
Source processing using Dashboard Function.
  • Dashboard Placeholders 🏷: Dashboard now supports settings placeholders from a fixed value, or a device property. Placeholders can be used in a any string field on the dashboard, i.e., titles, units, or even inside functions to change the functions behaviour depending on current device configuration.
Dashboard Placeholders.
Dashboard Placeholder used inside a Unit Field.
Dashboard Placeholder used inside Dashboard Function.
  • Dashboard Property Button 🆕 : New "Property Button" widget for opening device properties for its modification, even if they have a Property Form defined.
Property Button Configuration.
Property Button on Dashboard.
  • Dashboard Group Widget (BETA) 🔠 : New Group Widget that brings the possibility to add any number of widgets inside a parent widget.
Group Widget
  • Dashboard Property Table (BETA) 🔠 : Introducing a new widget that enables quick editing of properties for a device or a set of devices. This widget includes various built-in controls such as text display, input text, input number, slider, color selection, switch, a save button, and an edit button. These elements can be configured in each column to patch a single property value.
Property Table
Property Table Configuration
  • Claiming Feature☝️: The Claiming Feature is a versatile and user-friendly tool designed for administrators to configure and expose a selected number of resources, such as devices, for end-user claiming. This feature enables administrators to effortlessly set up various resources which end-users can subsequently request. Upon a successful request, these resources, like specific devices, are automatically integrated into the end-users' accounts. This streamlined process not only enhances user experience by simplifying resource acquisition but also provides administrators with efficient control over resource distribution and management.
Claim Configuration
One of the key strengths of this feature is its flexibility in claiming methods: users can initiate a claim through a directly generated URL, by scanning a QR Code, or by using a specific Claim Code:
Claim Details
Claim Process - Initial Step
Claim Process - Review
Once claim is completed, the process may request the configuration of the devices, i.e., via the Property Forms defined on the product.
Claim Process - Complete & Configure
  • Configurable Brand Accounts👨‍💼: We've introduced a new "Accounts" section for each brand. This enhancement allows more control over brand-specific behaviors, including:
    • Cross Sign-In Control: Decide whether users registered with one brand can log in to another, enhancing security and user management.
    • Public Sign-Up Options: Choose whether to allow public sign-up for each brand, providing flexibility in user onboarding.
    • Automated Role Assignment: Set specific account roles for users who register through public sign-up, such as automatically assigning 'member' status for device claiming purposes.
    This update offers more customization to better align with your brand's unique operational needs.
Brands Accounts Configuration
  • Configurable Brand Scripts 🖥️ : We've rolled out an exciting update: you can now configure custom scripts for your brand's index.html. This enhancement is perfect for integrating tools like Google Tag Manager and monitor your customers traffic.
Brand Scripts Configuration
  • New Permissions 🔒: Console is introducing an array of specific new permissions, enhancing the granularity with which administrators can control member access and actions within the console. This update distinctly separates permissions for actions performed through the API from those executed directly on the console interface. In the current version, all existing permissions will continue to function as before. However, future updates will require the explicit assignment of 'View' permissions to maintain the access level. This change lays the groundwork for more precise and customizable user role management, ensuring enhanced security and efficiency in operation. At this moment they are partially released for Devices, but will be covering the whole console in future updates.
New View
  • Updated Editors
    👩‍💻
    : Now editors are based on Monaco (the editor from Visual Studio Code) with support to maximize the editor and copy the contents:
New Code/Value editor in the console.
  • New Icon Picker
    🦄
    : There is a new icon picker with much more variety of icon and improved search capabilities.
New Icon Picker

Improved

  • Double click on Widget now opens the Widget editor!
  • Create and update properties performance
  • Time series data should not present data wraps anymore.
  • Internal Google Maps loader to potentially avoid multiple loads.
  • Buckets API query now supports "group_by" parameter.
  • Move Swagger to an Angular component. New url https://console.thinger.io/swagger
  • Initial deprecation of InfluxDB v1
  • Widget add time series automatically selects a different name and color for each series.
  • Dashboard source switching now allows switching between bucket tags, with minimum and maximum selected tags.
  • Dashboard internals.

Fixed

  • Push button widget not working on mobile devices.
  • Real-time dashboards now work properly with project members and shared dashboards.
  • Fixed the issue where the dashboard widget with device resource data source was showing offline, despite the widget receiving data.
  • Deletion event not triggered for nested resources, i.e., device property.
  • Creation event not triggered for property resources.
  • Data bucket storage from Products using device resource with fixed interval randomly stop writing.
  • Add Syncs to the tokens actions.
  • Dashboard editing not being disabled on non-active tabs.
  • Token configuration was missing the description field.
  • Delete resource from console sending parameters like index, count...

Core

  • Partial migration from AngularJs to Angular 17
  • Update OpenSSL to versión 3
  • Update Boost to 1.83.0
  • Update Mongoc to 1.25.1
  • Update Mongocxx to 3.9.0
  • Update Crypto++ to 8.9.0

5.3.7

Release Date: 30-11-2023
Fixed
  • Issue while displaying default project on member accounts.
  • Reset password not working for some email addresses.

5.3.6

Release Date: 24-10-2023
Added
  • Support for HTTP_HOST and HTTPS_HOST environment variables for HTTP requests over a proxy.
  • Support for disabling HOSTNAME resolutions on installed plugins, i.e., useful for plugins that requires querying external public IP (like FTP).
Improved
  • Prevent large navigation breadcrumb overlapping the right menu button.
Fixed
  • Device link to a Product web page not working on mobile devices (on the aside menu).
  • Error while updating account limits.
  • Support for 303 HTTP See Other status.

5.3.2

Release Date: 04-07-2023
Added
  • Widgets now have a "Show Offline" parameter to "turn off" the widget if the data is not recent.
Show Offline Configuration based on Timespan.
Widget displayed as "Disconnected".
  • Product API Response can now be sourced directly from a function.
  • Product API Response can now be sourced directly from an IOTMP resource.
Improved
  • Internal HTTP client stability.
Fixed
  • Problem while counting active alarm instances on the menu.
  • Alarms not triggering notifications on creation when it has immediate activation.
  • Alarms not allowing to select hours as reminder intervals.
  • IOTMP with multiple property stream subscriptions.
  • Products not processing API Responses payload configuration, but returning just the original payload.
  • Input template params to Product API Request targeting functions not being correctly processed.
  • Plugins that require a MongodDB user to interact with the database fail to upgrade.
  • Dashboard widget settings being closed when removing widget background.

5.3.0

Release Date: 19-06-2023
Discussion Topic: Thinger.io Community
Added
  • New Alarms feature ⏰ (BETA)! A completely new solution for managing IoT alarms, which includes rule definitions, and alarm instances management. Some key features of the new solution:
    • Multiple data sources for configuring alarms triggering include data buckets, device properties, and device state.
    • Multiple severities: High, medium, low, none.
    • Independent activation and normalization conditions, including confirmations based on timespan or a number of consecutive events.
    Alarm Rule Configuration
    • Multiple endpoint notifications on activation, normalization, or reminder., i.e., for sending an email, a message to mobile, etc.
    • Alarm instance management via Acknowledge, Shelve, Latch, or Clear, including reactivation timeouts and operator annotations.
Alarm Instances
Alarm Instances
  • Support for cloning almost any thinger.io resource, from dashboards to data buckets, file storages, and projects.
Clone Resource Functionality
  • HTTP endpoints now support embedded NodeJS 🧑‍💻 scripts for custom payload processing when calling third-party services.
HTTP Endpoints with custom NodeJS Payload processor
Improved
  • The bucket list automatically refreshes the bucket state, i.e., when finish exporting or importing, which happens on a clone operation.
  • IOTMP proxies now work correctly with TLS endpoints.
  • HTTP over IOTMP now correctly supports WebSockets.
  • Resource list and navigation:
    • It is possible to change the maximum number of elements to display per page.
    • Page navigation/sorting is not reset after entering one element and going back to the list.
  • Changelog is now available at https://docs.thinger.io/server/changelog.
Fixed
  • Remove project properties and project roles from the database on project deletion.
  • The bucket field selector now displays an input text for manually selecting the fields if the latest values cannot be queried, i.e., when they are older than one week.
  • Double loading of HTML widgets when the dashboard is open.
  • Proxy configuration was not displayed correctly if the source was different than TCP.
  • Bucket export list not being displayed under some circumstances.
  • Resource lists on the front-end not showing correct permissions on members.
  • Prevent members navigate to specific resources if no permissions are available.
  • UpdateDevice permission on front-end.

5.2.2

Release Date: 12-04-2023

Fixed

  • Timestamp on HTTP device callbacks from HTTP plugin

5.2.1

Release Date: 10-04-2023
Discussion Topic: Thinger.io Community Forum
Added
  • Included support for installing Products over plugins. Now, there are some Shelly devices added to the plugins Marketplace. We will grow it soon! Looking for contributors and partnerships!
    image|690x254
  • Initial support for devices auto-provisioning over products. It is currently based on the device id but will include other features like white lists, manual approval, etc.
    image|690x97
  • New Plugins Marketplace based on a monorepo repository: Thinger.io Plugins. It will allow better maintainability, and simplify new contributions!
  • Initial Plugin Exporter feature inside Products. This way, a Product can be easily converted to a Plugin. enhancing user contributions.
    image|672x500
  • Device type to "device_authentication_failed" event.

Improved

  • Avoid creating a Docker network if the plugin does not run a task (i.e., products).
  • Plugins marketplace on frontend, with better image alignment.
  • Permissions assigned to user File Storages are 1000:1000, so they can be easily edited over plugins, i.e, in Node-Red, VSCode, Juypyter plugins, etc.
  • Plugin files copied on installation now have 1000:1000 permissions, so, they are modifiable over plugin shells.

Fixed

  • Bucket exports showing duplicate columns
  • Domain creation when setting a name

5.1.12

Release Date: 16-03-2023

Fixed

  • Temporal restore of default IOTMP buffer size until IOTMP-Websocket supports growing buffers

5.1.11

Release Date: 14-03-2023

Fixed

  • DynamoDB (community buckets) bucket projections when using reserved keywords

5.1.10

Release Date: 08-03-2023

Fixed

  • Null/false on bulk bucket writes when using tags on topic placeholders
  • DynamoDB (community buckets) bucket projections when using non-alpha characters

5.1.9

Release Date: 07-03-2023

Improved

  • Bulk bucket writes are now also supported from products

5.1.8

Release Date: 06-03-2023

Fixed

  • Center images on dashboard image widget.
  • Remove undesired console.log used in development
  • HTML widgets from file storages may fail to load
  • Dashboard add widget modal closes when adding new background color

Improved

  • DynamoDB can now use field projections from dashboards to save bandwidth
  • Reduced dashboards max chunks fetch to support large datasets on DynamoDB

5.1.7

Release Date: 06-03-2023

Add

  • Daily Data transmission on device Status (For MQTT and IOTMP)

Fixed

  • Computed data transmission for current and past days

5.1.6

Release Date: 03-03-2023

Fixed

  • Big logo shown on shared dashboards

5.1.5

Release Date: 03-03-2023

Fixed

  • Problem when converting certain InfluxDB data back to JSON.

5.1.4

Release Date: 02-03-2023

Improved

  • Maximum message size for IOTMP/MQTT devices.

5.1.3

Release Date: 01-03-2023

Fixed

  • Fix SSL certificates provisioning on instance startup.

5.1.2

Release Date: 27-02-2023

Fixed

  • Plugin Environment variables not initialized on upgrade.
  • Dashboard error popups hidden on device dashboard.
  • Menu on mobile not responding to first touch event.

Improved

  • Disconnect mechanism after server restart. It should correctly handle device disconnections and its events.

5.1.1

Release Date: 24-02-2023

Discussion Topic: Thinger.io Community Forum

Added

  • Infinity scroll on mobile view.
  • Support for bulk data bucket writes, i.e., [{"ts": 1675360078000, "val1": 0, "val2": 1},{"ts": 1675360088000, "val1":1, "val2":3}]. Only working on private instances at this time.
  • Clock icon display full time when the mouse is over
  • Clock icon display full time when the mouse is over
    image|182x135
  • Protocol column now displays the connection security
    image|351x171
  • Error/Info messages on mobile view
    image|399x191
    image|402x196

Fixed

  • "Never" is shown again when the device has not been connected
  • Resource inspector not opening
  • Minor bugs
  • Bucket import error reporting
  • Plugins logs not working with the latest Docker versions
  • Locks not deleted when Sync is removed

Improved

  • Scrollbars on left menu and content are now overlay scrollbars with auto hide.
  • Action buttons are now displayed on the left on desktop view.
image|569x164
  • Resource ID is also displayed on mobile view
  • Set Type, Set Group, and Set Projects do not require a list refresh.

5.0.1

Release Date: 2023-02-14

Discussion Topic: Thinger.io Community Forum

Added

  • Support for ARM64 (Raspberry Pi, Apple M1, Apple M2).
  • New 'Syncs' feature inside the Toolbox section: Semaphores for distributed IoT devices that can be used for bandwidth limiters, access control, max number of devices doing OTA, etc. This feature can be used both from API or IOTMP devices using new lock_sync and unlock_sync methods. Each lock acquires a fixed number of slots if they are available.
image|412x499
  • New Content-security-policy HTTP header configuration on Cluster Settings > Deployment.
  • Products can now target a File Storage for its script (still under testing). It will automatically load the index.js script on the Storage.
image|475x107
  • Product APIs can now target a script function for its destination and include additional placeholder data from properties or other device APIs.
image|582x454

Fixed

  • Product APIs with Property as its target (the property was not written).
  • Exception when TOKEN is not provided.

Improved

  • Installed plugins are now automatically updated on impersonation changes.
  • UI with better support for mobile devices. Will be released as an APP. Still under development!
    🧑‍💻
    image|232x500

Core

  • Base Docker Ubuntu version from 20.04 to 22.04
  • Updated OpenSSL version from 1.1.1m to 1.1.1t
  • Updated Boost version from 1.78 to 1.81
  • Updated mongoc version from 1.20.0 to 1.23.2
  • Updated mongocxx version from 3.6.6 to 3.7.0
  • Updated CryptoPP from 8.6.0 to 8.7
  • Updated Jemalloc from 5.2.1 to 5.3.0
  • Updated Maxmind from 1.5.2 to 1.7.1

[4.6.7] 2022-12-20

Fixed

  • SSL automatic updates

Added

  • Search any field on resource lists via API, i.e., email on user accounts.
  • Internal configurable parameter "certificates.min_certificate_validity"

Improved

  • Validate sort and order query parameters on resource listing

[4.6.6] 2022-11-22

Fixed

  • Database initialization for users without an initial password
  • Device access without permissions, i.e., from a member

[4.6.5] 2022-11-22

Fixed

  • Bucket clear error
  • Remove export create log

[4.6.4] 2022-10-28

Fixed

  • Bucket export with custom date interval does nothing.
  • Difference transformation without aggregation provoked an error.
  • Representation issue on dashboard when setting absolute timeframe after a relative timeframe.

[4.6.3] 2022-10-27

Added

  • New setting on Dashboard control allow to hide hours from absolute date range picker.

Improved

  • Aggregated dashboard time series queries that includes a transform (i.e., a difference or derivative), now automatically expands the query interval (lower bound) to display the expected range displayed on the UI.

Fixed

  • Date-time selector now relies on datetime-local HTML5 component, removing some issues related with previous date-time picker.
  • Access tokens without a project should not limit accessing to project resources

[4.6.1] 2022-10-13

Discussion Topic: Thinger.io Community Forum

Added

  • Experimental IOTMP Proxies (TCP/HTTP) for connecting with device local network resources, i.e., devices/routers webpages, terminals, RDP, VNC, etc. These proxies requires new IOTMP client library for Linux.
    Example of the IOTMP Linux Client working on a RevPi, providing access to device configuration over the local web page:
  • Support for defining Web Services inside Products section. It allows defining web pages that can be accessed over an IOTMP linux client.
  • Ability to create project members directly from the "Add Member" section, creating the user automatically by providing only the email address.
  • Each project can now define a set of Project Roles that can be used by any member within a project.
  • Each developer/admin account can now define a set of Global Roles that can be used by any member within any project. For example, a general purpose read role that can be shared in all projects.
  • Project member permissions can be now established by roles in addition to custom member permissions, simplifying permissions management. All global roles, project roles, and custom permissions can be established together (if required).

Improved

  • Members will go to the first allowed section after login or refresh, instead to the default Project Dashboard, i.e., devices or dashboards if they do not have access to read project dashboard.
  • Device resource streams includes now different signals: start, stop, data, and error (on IOTMP devices), in order to keep track of streams.
  • Device Terminal now supports multiple concurrent sessions (with the IOTMP linux client).
  • Server can now use wildcard certificates, stored as *.mydomain.com on the certificates folder. Provisioning wildcard certificates over Domains section is not possible.
  • Internal socket server can now filter socket connections based on IP address. Used at this moment internally for proxies security.

Fixed

  • Very high loads over websockets could cause a crash under some circumstances.
  • Automatic transition to newly created resources when they are nested more than 2 levels (i.e., while creating a new project member).
  • Potential crash with multi-thread product initialization at startup.
  • Switching between projects, or opening/closing projects reporting forbidden under some circumstances.
  • Set projects displayed on proxies (proxies does not support projects).
  • Missing selectors when configuring specific token permissions, i.e., over a proxy.
  • Access Tokens now are limited to the project scope where they are defined.
  • Payload not being sent on IOTMP devices.

[4.5.4] 2022-07-14

Discussion Topic: Thinger.io Community Forum

Improved

  • File Storage explorer does not download binary files automatically when clicked, it just displays a download button:
  • Storage API now determine if a file without extension is text/plain or application/octect-stream to set the correct content-type on HTTP response
  • Add option rewrite_base_path to avoid base path rewrite in plugins reverse proxy
  • File Storages can now be opened with VS Code when the plugin is installed

[4.5.3] 2022-07-13

Discussion Topic: Thinger.io Community Forum

Added

  • Support for limiting range selector on dashboard (i.e., allow only relative and/or absolute range selection).
    image|609x305
  • Screen helpers for all resources on Thinger.io, with links to documentation, API, features, etc.

Improved

  • Location set from a device property now overwrites geo-ip location, and:
    • Trigger device_location_changed event with new location
    • Execute the Geofence configuration to trigger any action based on location change
    • Fixed location is now displayed correctly on Assets Maps

Fixed

  • Fix Bucket query when fields contain a path with dots, i.e., environment.temperature

[4.5.0] 2022-06-28

Discussion Topic: Thinger.io Community Forum

Added

  • New administration feature called 'Proxies' (starting on MEDIUM instances), which allows creating custom proxies to plugins or local services, i.e, redirect TCP or UDP traffic to Node-RED (for example, for COAP devices), or provide access to local InfluxDB2 install
    image|615x500
  • New plugin InfluxDB2 (starting on MEDIUM instances, as it requires Proxies feature). It supports accessing the InfluxDB2 GUI and API for custom configurations, dashboards, alerts, ingestion, etc.
    image|616x500
  • A plugin install can now initialize any resource in the console, i.e., InfluxDB2 plugin automatically initializes a proxy
  • Plugins can now be defined without a task, i.e., the InfluxDB2 plugin does not deploy any additional container

Improved

  • Swagger API Generation (tested on proxies API)
  • Plugin installs from File Storages
  • Left menu now correctly displays the current selected plugin

Fixed

  • Some fixes on dashboards using image widget and map widget with geofences
  • Devices API v2 not respecting the v2 specification (wrapping response inside 'out')
  • Loading bucket data view without access to bucket config (required for loading tags information), i.e., when a member does not have permissions for ReadBucketConfig
  • Plugins API now supports "id" query parameter, required for Plugin selector

[4.4.0] 2022-06-20

Discussion Topic: Thinger.io Community Forum

Added

  • Bucket view now display tag values in the first columns
    image
  • Buckets data query API now supports a new query param 'fields' for selecting specific fields from a bucket, i.e., ?fields=temperature,humidity
  • Buckets data query API now includes a v2 endpoint removing unnecessary 'val', or aggregation/transformation name on each measurement.

Improved

  • Dashboards now select only required fields from a bucket, improving bandwidth/resources for buckets with several fields
  • Bucket view now auto-resize columns according to the content size
  • Bucket view now display a 'Loading' overlay while fetching data
  • InfluxDB2 performance by relying on InfluxQL queries when possible
  • Grafana plugin is now able to automatically configure data sources (both InfluxDB1 (compatibility) and InfluxDB2)

[4.3.2] 2022-06-15

Fixed

  • Map widget initialization when the map is placed on a dashboard tab

[4.3.1] 2022-06-14

Fixed

  • Fix problem while installing plugins on small instances

[4.3.0] 2022-06-12

Discussion Topic: Thinger.io Community Forum

Added

  • Support for switching projects in the mobile view
    image
  • Show dashboard name on project dash instead of the default navigation bar
    image|572x133

Fixed

  • Project dashboard switch when the user is not a member

[4.2.0] 2022-06-08

Discussion Topic: Thinger.io Community Forum

Added

  • Open Graph support for title, description and image, configurable for each brand, i.e., when sharing a link over a social network.
    image
  • Bucket data viewer now includes a filter by time
    image
  • Set project dialog now keeps previous assigned projects on the resources
    image
  • Full support for new time-series backend: InfluxDB2
  • Server API updates with support for querying branch information and statistics from localhost
  • Landing pages for each resource type, providing information and links to resources
    image
  • Support for launching processes inside plugins and get the command response over http/websocket
  • Shell over a plugin instance is now executed inside the plugin container (using exec)
  • Shell over a plugin now adapts to the original terminal size
  • Show page title according to navigation state, i.e., 'Devices | esp32 | terminal'
    image
  • Console rebrand based on new image/logo, including emails
    image

Improved

  • InfluxDB2 queries performance when using 'heavy' buckets with multiple tag values
  • Data bucket import now excludes empty or null values
  • Internal proxies to plugins, required for supporting latest Grafana version and its security requirements
  • Plugins can now (and should) set image version inside the task.image field (i.e. grafana/grafana:8.5.4) , so it can be decoupled from plugin version
  • InfluxDB2 + Grafana integration, with automatic source configuration on install
  • Console terminals now uses a custom user-friendly scrollbar
  • Dashboard view on mobile when controls are enabled (timespan selector and aggregation)
  • Mobile navigation when clicking on menu or showing tables
  • Data bucket viewer now display local time instead of ISO date on bucket entries.
  • Better compatibility for showing last update timestamp on dashboard widgets (even time series charts)
  • Using 'password' type on account management
  • Fix tachometer widget scaling and value update

Fixed

  • Multiple dashboards queries on dashboards when using buckets with several tags values
  • Undesired timestamp plot on time series chart when no field mapping is present on the widget source
  • Slider widget malfunction when setting step width smaller than 1.0
  • Dashboard aggregation controls shown on community version (only supported on private instances)
  • Console terminal not releasing window
  • Plugin markdown not shown
  • Migration to new dashboard sources not working correctly on control widgets
  • Download bucket exports not working on the community
  • Problems with device terminals after the 4.0.0 upgrade
  • Search by id or name problem after introducing 'domain' on resources
  • MQTT Fix potential crash with malformed inputs
  • Email fixes when using multiple brands and multiple email servers

[4.0.0] 2022-05-18

Discussion Topic: Thinger.io Community Forum

Added

  • Support for multiple time series sources on time series widgets, i.e. charts, html time series, and maps.
    image
  • Add new "Product" section to allow defining device profiles, that will help when managing devices at scale.
    image
    • It supports updating device properties from MQTT topics / device resources
    • It supports defining buckets from MQTT topics/device resources
    • It allows creating custom device APIs for MQTT/HTTP/IOTMP devices.
    • Add support for processing data payloads with NodeJS runtime.
    • Add support for defining per-product dashboard, which is inherited by each device. Devices now automatically open the product dashboard if it is available.
    • It adds another property hierarchy for devices, with this order Product > Type > Group > Device.