Create the .upgradeversion flag file inside the pod, replacing <POD_NAME> with the name from the previous command. Set the version to the one you are currently running:
+
Create the flag file in the pod. Replace <POD_NAME> and set the version you are currently running:
-
- >
- )}
-
Update image version
-
Open trendz-app-deployment.yml and update the image field to thingsboard/trendz:{v.version}:
-
+
Update image version
+
In trendz-app-deployment.yml, set the image to thingsboard/trendz:{v.version} and apply it:
+
-
Apply the deployment
-
Apply the updated configuration and wait until the pod is ready:
-
+
Verify the upgrade
+
Check the pod logs:
+
+
Expected output:
+
-
Verify the upgrade
-
Stream the pod logs to confirm the upgrade ran successfully:
-
-
Look for the following lines:
-
-
-
Restore pods count
-
After the upgrade is complete, restore your preferred replica count:
-
+
Restore pod count
+
+ >
+ ) : (
+ <>
+ {v.patch && v.baseVersion && (
+
+ )}
+
+ >
+ )}
>
)}
diff --git a/src/content/_includes/docs/trendz/releases/v1-15-x.mdx b/src/content/_includes/docs/trendz/releases/v1-15-x.mdx
index 71c7f54f1b..3562a52c2b 100644
--- a/src/content/_includes/docs/trendz/releases/v1-15-x.mdx
+++ b/src/content/_includes/docs/trendz/releases/v1-15-x.mdx
@@ -25,6 +25,15 @@
---
+## v1.15.1.1 (Apr 28, 2026)
+
+**Bug fixes:**
+
+- Fixed scatter plot rendering.
+- Fixed the chart options dialog.
+
+---
+
## v1.15.1 (Apr 15, 2026)
**New features:**
@@ -45,6 +54,21 @@
---
+## v1.15.0.6 (Mar 25, 2026)
+
+**Improvements:**
+
+- Improved Metric Explorer performance.
+
+**Bug fixes:**
+
+- Fixed export to dashboard with aliases.
+- Fixed report REST API authentication.
+- Fixed ThingsBoard version detection.
+- Fixed attribute loading.
+
+---
+
## v1.15.0.5 (Feb 26, 2026)
**Bug fixes:**
diff --git a/src/models/trendz-releases-table.ts b/src/models/trendz-releases-table.ts
index 851df3cec2..0bb7158dcf 100644
--- a/src/models/trendz-releases-table.ts
+++ b/src/models/trendz-releases-table.ts
@@ -67,7 +67,9 @@ export const TRENDZ_RELEASE_FAMILIES: TrendzReleaseFamily[] = [
patches: [
{ version: 'v1.15.2.1', date: 'Jun 24, 2026' },
{ version: 'v1.15.2', date: 'May 15, 2026' },
+ { version: 'v1.15.1.1', date: 'Apr 28, 2026' },
{ version: 'v1.15.1', date: 'Apr 15, 2026' },
+ { version: 'v1.15.0.6', date: 'Mar 25, 2026' },
{ version: 'v1.15.0.5', date: 'Feb 26, 2026' },
{ version: 'v1.15.0.4', date: 'Feb 9, 2026' },
{ version: 'v1.15.0', date: 'Jan 20, 2026' },
diff --git a/src/models/trendz-upgrade-instructions.ts b/src/models/trendz-upgrade-instructions.ts
index 4ce657d652..96e2fe93b5 100644
--- a/src/models/trendz-upgrade-instructions.ts
+++ b/src/models/trendz-upgrade-instructions.ts
@@ -1,6 +1,6 @@
// Relative import on purpose: keeps this module loadable from the Astro
// config chain, which resolves modules before tsconfig path aliases apply.
-import { assertNewestFirst, latestPatchPerBaseline } from './upgrade-shared.ts';
+import { assertNewestFirst } from './upgrade-shared.ts';
export interface TrendzUpgradeVersion {
/** Raw version string, e.g. "1.15.0.4", "1.13.2", "1.10.3-HF7" */
@@ -52,24 +52,19 @@ export function getTrendzFamilySlug(family: string): string {
}
/**
- * Versions to render on a Trendz upgrade-instruction page (optionally scoped
- * to a family). Only the newest patch of each `baseVersion` is kept; entries
- * without a `baseVersion` are always kept. Input is assumed newest-first,
- * matching the ordering of `TRENDZ_UPGRADE_VERSIONS`.
+ * Versions to render on a Trendz upgrade-instruction page, optionally scoped
+ * to a family. Every listed version gets its own section, so a patch stays on
+ * the page after a newer patch of the same `baseVersion` ships.
*/
export function getTrendzUpgradeStepVersions(family?: string): TrendzUpgradeVersion[] {
- const scoped = family
- ? TRENDZ_UPGRADE_VERSIONS.filter((v) => v.family === family)
- : TRENDZ_UPGRADE_VERSIONS;
- return latestPatchPerBaseline(scoped);
+ return family ? TRENDZ_UPGRADE_VERSIONS.filter((v) => v.family === family) : TRENDZ_UPGRADE_VERSIONS;
}
/**
* All Trendz versions available for upgrade (non-vulnerable), newest-first.
- * Ordering is load-bearing: TRENDZ_UPGRADE_FAMILIES dedups by position, steps
- * render in array order, and getTrendzUpgradeStepVersions treats the first
- * entry per baseVersion as the latest. The assertNewestFirst() call below
- * fails the build on an out-of-order insert.
+ * Ordering is load-bearing: TRENDZ_UPGRADE_FAMILIES dedups by position and
+ * steps render in array order. The assertNewestFirst() call below fails the
+ * build on an out-of-order insert.
*/
export const TRENDZ_UPGRADE_VERSIONS: TrendzUpgradeVersion[] = [
{
@@ -120,6 +115,18 @@ export const TRENDZ_UPGRADE_VERSIONS: TrendzUpgradeVersion[] = [
// 1.15.x uses the new upgrade mechanism — no --fromVersion flag needed
haproxyNote: false,
},
+ {
+ version: '1.15.1.1',
+ displayVersion: '1.15.1.1',
+ family: '1.15',
+ baseVersion: '1.15.1',
+ releaseDate: 'Apr 28 2026',
+ lts: true,
+ patch: true,
+ anchor: 'v1-15-1-1',
+ // 1.15.x uses the new upgrade mechanism — no --fromVersion flag needed
+ haproxyNote: false,
+ },
{
version: '1.15.1',
displayVersion: '1.15.1',
@@ -131,6 +138,18 @@ export const TRENDZ_UPGRADE_VERSIONS: TrendzUpgradeVersion[] = [
// 1.15.x uses the new upgrade mechanism — no --fromVersion flag needed
haproxyNote: false,
},
+ {
+ version: '1.15.0.6',
+ displayVersion: '1.15.0.6',
+ family: '1.15',
+ baseVersion: '1.15.0',
+ releaseDate: 'Mar 25 2026',
+ lts: true,
+ patch: true,
+ anchor: 'v1-15-0-6',
+ // 1.15.x uses the new upgrade mechanism — no --fromVersion flag needed
+ haproxyNote: true,
+ },
{
version: '1.15.0.5',
displayVersion: '1.15.0.5',