thingsHub Public Documentation
Breadcrumbs

Release Notes - thingsHub Product Development - 8.4.0 - Apr 29 10:43

How to use this page:

Find your selected Jira issues in the table below. Select the expand to use them as your source of truth to write release notes.

Release

https://smartmakers.atlassian.net/projects/TH/versions/10429

Date

Version

8.4.0

Description


Contributors

@User@User@User

Issues in this release

Before you share the page, review the contents of each Jira issue and remove any sensitive data.

Issue

Summary

Issue Type

Description

Linked Issues

TH-6154

Indoor Locators Loading missing while applying filter by status

Bug

Environment: QA8

Steps to Reproduce:

  1. Go to Indoor Locators listing page

  2. Change Filter by Status from All to Active or Inactive

  3. Observe the table/grid while data is being updated


TH-6152

Indoor Locators: "Last Seen" timestamp fails to update after tracking algorithm position updates

Bug

  1. Source


  1. Context

  • What is the problem: After a tracking algorithm successfully processes a position update, the associated Indoor Locators do not reflect the new data. The "Last Seen" column remains empty, preventing users from verifying real-time asset locations.

  1. Environment & Prerequisites

  • Reproducible Environments: QA (qa8)

  • Browser/OS/Viewport: Any / Desktop


  1. Steps to Reproduce

  2. Navigate to https://qa8.thingshub.smartmakers.de/ui/en/mapping/locators

  3. Ensure the "Make" scenario has been triggered to send data for a specific tracker (e.g., generic-blescan). https://eu1.make.com/72808/scenarios/2569520/edit

  4. Search for the Indoor Locator associated with the tracking algorithm's target device.

  5. Observe the "Last Seen" column.

  6. Actual Result (User Perspective) The "Last Seen" field for the Indoor Locator is empty/blank, even though the tracking algorithm has received and processed new position data.

  7. Expected Result (User Perspective) The "Last Seen" field should display a relative or absolute timestamp reflecting the most recent position update received from the tracking algorithm.

  8. Technical Details & Logs The issue appears to be a breakdown in the data handshake between the Tracking Algorithm's output and the Mapping module's locator table. While the input scenario (Make) completes successfully, the persistence layer for the Indoor Locator UI is not being triggered.


  • Console Errors: None observed

  • Visual Evidence: Refer to attached screenshot showing empty "Last Seen" column in the Locator table

Screenshot 2026-04-22 at 17.49.36.png


TH-6150

Password helper text not translated to German in User Creation modal (Step 1)

Bug

Environment: QA8

Steps to Reproduce:

  1. Navigate to: https://qa8.thingshub.smartmakers.de

  2. Change the tenant language to German

  3. Log in as Tenant Owner or Admin

  4. Go to Settings

  5. Open User & Permissions under User Management

  6. Click on New User

  7. In the Create New User modal (Step 1), focus on the Password field enter invalid password

    Unknown Attachment


TH-6147

Assets Archive date filter updates table without showing loading state

Bug

When a user applies a Start and End date filter in Assets Archive, the table refreshes without any visible loading state. This makes the UI feel unresponsive and gives no feedback that the data is being reloaded.

Steps to Reproduce

  1. Open the Assets Archive page.

  2. Set a Start date.

  3. Set an End date.

  4. Observe the table behavior after applying the date range.

Video Link https://jam.dev/c/df1dee01-6fa6-43c5-9e97-4b4cf169f1c2


TH-6146

Inconsistent German translations for same label (“Tracker & Tags” vs breadcrumb) in Tracker Tag Inventory

Bug

Environment

The same UI label is translated inconsistently across the page in German, leading to confusion and lack of standardization.

Specifically:

  • Page title shows: “Tracker & Tags” (not localized / partially English)

  • Breadcrumb shows: “Tag-Inventarverzeichnis”

Both refer to the same concept but use different wording and language styles.

This creates:

  • Inconsistent UX

  • Reduced clarity for German-speaking users

  • Lack of harmonized terminology across the platform

Steps to Reproduce

  1. Open: https://qa8.thingshub.smartmakers.de/ui/de/tracking/tracker-tags-inventory

  1. Observe the page header (top-left)

  1. Observe the breadcrumb (top-right)


TH-6145

Automation Type update fails with unexpected API error in Device Automation Detail Page

Bug

Environment: QA8

Steps to Reproduce:

  1. Open Device Automations list page

  2. Search for "Outdoor devices automation" in the grid

  3. Open the automation detail page

  4. Go to Automation Type tab

  5. Stop the device automation

  6. Select Automation Type and add/update Payload (Hex String) and Port values

  7. Click Save

Or directly navigate to https://qa8.thingshub.smartmakers.de/ui/en/device-automations/outdoor-devices-automation?tab=automation-type

Jam Video: https://jam.dev/c/ec8c96b2-d2f3-4656-aa84-7f9d9fc1e384


TH-6144

Time Schedule update fails with unexpected API error in Device Automation Detail Page

Bug

Environment: QA8

Steps to Reproduce:

  1. Open Device Automations list page

  2. Search for "Outdoor devices automation" in the grid

  3. Open the automation detail page

  4. Go to Time Schedule tab

  5. Stop the device automation

  6. Update days and time

  7. Click Save

Or directly navigate to Navigate to: https://qa8.thingshub.smartmakers.de/ui/en/device-automations/outdoor-devices-automation?tab=time-schedule

Jam video: https://jam.dev/c/21690604-d302-4905-a52c-6c3b45f81030


TH-6143

Role descriptions not translated to German in User Creation modal

Bug

Environment: QA8

Steps to Reproduce:

  1. Navigate to: https://qa8.thingshub.smartmakers.de

  2. Change the tenant language to German

  3. Log in as Tenant Owner or Admin

  4. Go to Settings

  5. Open User & Permissions under User Management

  6. Click on New User

  7. In the Create New User modal, fill in basic information and click Next

  8. In the Roles section, click/select different roles (Guest, User, Owner)

    Unknown Attachment


TH-6142

Tracker & tag inventory Missing Loading Indicator on table

Bug

TEST RUN LINK:


Steps to Reproduce:

Navigate to the "Asset Tracker / Tag Inventory" page in the application.

Attempt to perform filtering by bound unbound and all

Video recording https://jam.dev/c/ffe49f37-f6ab-4f7d-9f0a-fb0c3d716108


TH-6141

Failure in adding a filter for Date field resulting in API error.

Bug

The defect occurs during step 9 of the test execution where a Date field filter fails to produce the expected behavior. Tracked assets are not filtered correctly, getting api error ʼvalue must be a valid date string in the format '2006-01-02': bad requestʼ

Steps to Reproduce the Issue:
  1. Navigate to login page.

  2. Log in using owner credentials and navigate to the Asset Map page.

  3. Click on the filter button.

  4. Click on the add filter button.

  5. Add a Date field text filter using sample data.

  6. Click on the delete icon to remove the filter.

Failure Location:

Test Step #9 in the test run:

Severity:

High – Incorrect filter functionality directly impacts application usability and data accuracy.

Additional Information:
  • Investigate logs associated with the provided link to identify the root cause.

  • Validation needed for filter configuration logic related to Date fields.

Environment:
TEST RUN LINK:


TH-6137

[UI Improvement] Remove Retention Policy Identifiers from Dropdown

Improvement

The Retention Policy dropdown currently displays both the human-readable label and the internal identifier (e.g., 3 Months (dt_3_months)).

To improve usability and reduce confusion, the dropdown should display only the human-readable label (e.g., 3 Months) and remove the internal identifier from the dropdown list items.

Current Behavior

  • Dropdown shows retention policies in the this format e.g. 3 Months (dt_3_months) human-readable label and the internal identifier

Expected Behavior

  • Dropdown should show retention policies in only human readable format le.g.3 Months


TH-6109

Devices: Updating custom fields fails with a 500 API error and shows an "unexpected error" message

Bug

Bug: 1


  1. Source

  1. Context:

  • What is the problem: When a user attempts to edit and save custom fields on a device, the system throws an unexpected error and blocks the save. This completely prevents users from managing and updating their device custom fields.

  1. Environment & Prerequisites

  • Reproducible Environments: QA

  • Browser/OS/Viewport: Chrome, mac

  • Data State Required: Any existing device.

  1. Steps to Reproduce

    1. Navigate to a device detail page: https://qa.thingshub.smartmakers.de/ui/en/devices/list/20635f016100120d?tab=overview

    2. Locate the "Extended Information" card and click the Edit button.

    3. Enter new values into the custom fields.

    4. Click the Save button.

ScreenShot:

image-20260417-195031.png


Technical Details & Logs:

The PUT request to /api/v3/devices/ is crashing and returning a 500 Internal Server Error. Backend needs to investigate the logs for this endpoint to determine why the payload is being rejected or causing a crash.

Bug: 2


Summary: Device Telemetry: Saving a static location fails and displays an unexpected error

  1. Source

  1. Context:

  • What is the problem: When a user attempts to edit and save a static telemetry location on a device, the system throws an unexpected error and blocks the save. This completely prevents users from managing and manually updating device locations.

  1. Environment & Prerequisites

  • Reproducible Environments: QA

  • Browser/OS/Viewport: Chrome / Mac

  • Data State Required: Any active device.

  1. Steps to Reproduce

  2. Navigate to the Devices list page: https://qa.thingshub.smartmakers.de/ui/en/devices/list

  3. Search for and open the detail page of any active device.

  4. Click on the Telemetry tab.

  5. Click on the Edit Location button.

  6. Click the Static radio button and select any valid location on the map.

  7. Click the Save button.

  1. Actual Result (User Perspective) The UI displays an unexpected error message and the static telemetry location is not saved.

  1. Expected Result (User Perspective) The system should successfully save the static location, update the map, and display a success message to the user.


TH-6011

[Asset Details 2026] Implement new "Asset Overview" tab/page for "standard-asset"

Story

Figma Prototype

https://www.figma.com/proto/q4ULDikWuGKQf6VSKD00h0/thingsHub-Designs-2026?page-id=8237%3A54183&node-id=8237-58060&viewport=154%2C1274%2C0.13&t=O8bpY3s81WltvO1V-1&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=8237%3A58060&show-proto-sidebar=1


TH-6000

[tHub Ui] Update tHub Overview Card Ui widget to latest design defitions

Improvement

I have done some design adjustments on the thingsHub Overview Card. See FIGMA:

https://www.figma.com/design/yLWh2Gi5p6mpuOffWy77Fz/Thingshub-UI-Kit-1.1?node-id=50-4980&t=BxUCUPhQy7EXt7Oh-4

Here is a quick out of my head list what have been adjusted

  • 32x32 frame around icons before and after the value text. Icons are centered with a width of 24px and dynamic hight

  • Set minimum height of “thingsHub Card - Content - List Entry” to 32px

  • Added “Icon-Button behind value” as variant on “thingsHub Card - Content - List Entry”

  • Changed Card Content Container spacing to top = 8px and bottom 16px

  • … please check for other changes


TH-5996

[Device Mgmt] Add Units of Measure to LoRaWAN Signal Metrics

Improvement

As a Device Manager

I want to see standard units of measurement for RSSI and SNR values

So that I can correctly interpret the signal quality of my devices at a glance.


https://www.figma.com/design/q4ULDikWuGKQf6VSKD00h0/thingsHub-Designs-2026?node-id=6313-61414&t=1ERYUrmeOu1fb9ub-4

image-20260320-162514.png


TH-5995

[timescaleDB] As a thingsHub user I want to create a dashboard using data from a timescaleDB based Data Table

Story

As an thingsHub User

I want to use data from a timescaleDB based Data Table when building dashboards

So that I can gain insights from working with timescaleDB´s SQL query language

Screenshot: selecting a “data source” in the thingsHub visualizer when creating a new chart

image-20260322-170736.png

TH-5993

TH-5992

[Device Mgmt] Bring back thingsHub Id and other keys to device detail page "Overview" tab

Improvement

As a ThingsHub user

I want to see the ThingsHub internal ID on the General Information card

So that I can reference the unique system identifier while keeping the UI clean of redundant driver information


TH-5989

[better time-series ops] Support retention policy selection in the ThingsFlow "data table out" node

Story

As a ThingsFlow user,

I want to select a retention policy when configuring the "data table out" node,

so that DataTables created through ThingsFlow also respect retention policies, giving me control over how long my flow-generated data is kept.

Acceptance Criteria

  • The "data table out" node in ThingsFlow exposes a retention policy configuration field with the same predefined options as manually created DataTables (1 month, 3 months, 6 months, 1 year, 2 years, Forever).

  • The default retention policy for the node is 3 months (consistent with the default for manually created DataTables).

  • When the node creates a new DataTable at runtime, the chosen retention policy is passed to the DataTable Creation API and correctly linked to the corresponding InfluxDB retention policy.

  • If the DataTable already exists (the node is writing to an existing table), the retention policy of the existing table is respected and not modified.

  • Existing ThingsFlow-created DataTables (created before this feature) continue to use the "Forever" retention policy.

My preference is to implement retention selection directly in the node editor UI (option 1 from TH-5163 comments), as it allows the delivery team to finely control data retention per flow.

See discussion in TH-5163 comments for context.


TH-5988

[better time-series ops] Allow operators to configure allowable DataTable retention policies via Tenant Config File

Story

As an operator managing a ThingsHub deployment,

I want to configure which retention policy options are available to a tenant's users when creating DataTables via the tenant config file,

so that I can control data retention according to infrastructure constraints and organisational requirements, without exposing technical decisions to non-technical tenant admins.

Acceptance Criteria

  • The tenant config file (Helm values) exposes a section for "DataTable Retention Policies" where the operator can enable/disable each predefined retention period (1 month, 3 months, 6 months, 1 year, 2 years, Forever).

  • The backend reads the tenant's allowed retention policies from the tenant config file.

  • When a user creates a new DataTable, only the retention policies enabled by the operator for that tenant are shown in the selection dropdown.

  • A sensible default set of allowed retention policies is applied when no explicit configuration is provided (e.g., all options enabled, default: 3 months).

  • Existing tenants that have not configured this setting should continue to see all retention policy options.


This should be implemented as part of the Tenant Config File, not Tenant Settings. Retention policy decisions are a technical/infrastructure concern. The operator, who understands InfluxDB constraints and deployment specifics, is the right persona to control these limits.

See discussion in TH-5163 comments for context.


TH-5964

Incorrect detail field in User API error response causing [object][object] error in UI

Bug

While signing in with Google, an issue was identified in the User API error response. The detail field is returned as an empty object {} when no additional information is available. This behavior led to improper error rendering on the frontend, resulting in messages like [object][object]. Watch the JAM Video for error detail: https://jam.dev/c/8c89b806-bec7-4ab1-84c1-c944f564a88f

A although a fix has been implemented on the frontend by adding a safe check in the error interceptor to handle such cases (e.g., during force logout and other error scenarios). However, the root cause lies in the backend response structure.

To prevent similar issues in the future, the backend should ensure:

  • The detail field is returned as null instead of {} when no additional data is present.

  • APIs error responses are standardized across all endpoints.

  • A review is conducted to identify other cases where improper error objects may be returned.

Additionally, a backend developer will coordinate with the frontend team to better understand how error messages are parsed and displayed.

image-20260312-114216.png


TH-5940

thingHub missing/improved translations

Improvement

  1. User detail page (As and admin/ tenant owner): The permission description are not visible in German language.

image-20260304-125915.png


  1. User Management & Roles

  • Context: User Management

  • Current State: "Tenant Owner Role" is currently translated as "Mandanten Besitzer Rolle".

  • Required Fix: Please update this to "thingsHub Admin".

  1. Business Object Calendar

  • Context: Calendar Widget / Date Selection.

  • Current State: The action button "Set" is literally and incorrectly translated as "Satz".

  • Required Fix: Change to "Festlegen"

  1. Business Object Fields

  • Context: Creating new fields.

  • Current State: Translations are missing for some field types.

  • Required Fix: Apply the following mappings:

    • Date and Time → Datum und Uhrzeit.

    • Decimal → Dezimalzahl.

    • Number → Nummer.

  1. Business Object Checkbox Configuration

  • Context: Visual representation settings for Checkboxes.

  • Issue A (Redundant Text): The first three radio button options contain the unnecessary word "Textzeichenfolge" (e.g., "Anzeige als Textzeichenfolge Wahr oder Falsch").

    • Fix A: Remove the word "Textzeichenfolge" from the first three options.

  • Issue B (Missing/Duplicate Logic): The last two options in the UI are identical and give no indication of the display type.

    • Fix B (For the last point): The English version describes a green or red circle. The correct German translation should be: "Anzeige als grüne Kreisscheibe [true] oder als rote Kreisscheibe [false]".

  • Issue C (Broken String): The second to last option reads "show Icon to be defined or Icon to be defined or -".

    • Fix C: This string makes no sense in either English or German. Dev Action Required: Please check the codebase to clarify the intended logic here and fix the source string.

  1. Asset Stocks & Map Overview
    Context: Location/Zone Overviews.

  • Issue A (Capitalization): In the tab "Bestand an assets in Zonen", the word "assets" is lowercase.

    • Fix A: Capitalize to "Assets".

  • Issue B (Contextual Mistranslation): In the table under "Bestand an Assets in Zonen", the word "Stock" has been translated as "Aktie" (financial stock).

    • Fix B: Change "Aktie" to "Bestand".

  • Issue C (Contextual Mistranslation): In the overview for "Assets angekommen oder verlassen", "Enter or Exit events" is translated as "Ereignisse eingeben oder beenden".

    • Fix C: Change to "Eintritts- oder Austrittsereignisse".

  •  Issue D (Typo): In the tab "Assets angekommen oder verlassen", "Assets" is misspelled with three 's'.

    • Fix D: Correct the spelling to "Assets".


TH-5932

Standardize latitude and longitude displays to a maximum of 8 decimal places

Improvement

  1. Context & Objective:

  • What is the problem: Currently, the system displays location coordinates (Latitude and Longitude) up to 15 decimal places. This extreme level of precision is unnecessary for the user, clutters the UI, and makes coordinate data difficult to read at a glance.

  • Objective: Standardize coordinate displays across the platform to show a maximum of 8 decimal places, keeping the UI clean while maintaining high location accuracy.

  1. Environment & Prerequisites

  • Reproducible Environments: DEV, QA

  • Data State Required: Any entity (Device, Site, Locator) possessing GPS coordinates that exceed 8 decimal places.

  1. Acceptance Criteria (Definition of Done)

  • Coordinate values (Lat/Lng) are capped at a maximum of 8 decimal places.

  • If a coordinate naturally has fewer than 8 decimal places, the system does not pad it with unnecessary trailing zeros (e.g., 51.5 remains 51.5, not 51.50000000).

  • When a user manually changes or inputs a location (e.g., Device Telemetry, Adding/Updating Sites), the system correctly rounds the value to 8 decimal places on the UI.

Impacted UI Areas Updated:

  • Indoor Location Detail Page

  • Device Telemetry tab

  • Adding Site Modal

  • Update Site Location

  • Tracking Listing Page

  • Device Data Tab

  • Network Connection Troubleshooting

  1. ScreenShot:

image-20260228-120946.png


TH-5905

[Grafana 11] Migrate thingsHub Visualizer to Grafana 11.latest

Story



TH-5884

[Remove-thub-map] Implement new Asset Detail Location map use case (Remove asset-status by migrating to AdvancedMapComponent)

Improvement

As a thingsHub Asset Manager

I want to see the location of my asset on a map with the EHPE/Margin circle in the background

so that I know where to search for the asset in the real world / my warehouse (as the localization is never perfect to the last centimeters)


TH-2521

[GORM V2] Upgrade "Engine Service" to GORM V2 // BE

Improvement

Acceptance Criteria

  • The Engine service is upgraded to use the latest Gorm v2 release.

  • Data already present in the database is not compromised.

  • The SQL migration is working properly after the upgrade.

  • All breaking changes introduced with Gorm v2 are resolved.

  • All API calls through Swagger are checked and verified to work correctly with Gorm v2.

TH-6065

Summary

New Features

Improvements to existing features

Bug fixes