diff --git a/application/pom.xml b/application/pom.xml
index c2400f50e5..dba7d27c1b 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -20,7 +20,7 @@
4.0.0
org.thingsboard
- 4.2.0-SNAPSHOT
+ 4.3.0-SNAPSHOT
thingsboard
application
@@ -186,8 +186,8 @@
jjwt
- org.freemarker
- freemarker
+ org.springframework.boot
+ spring-boot-starter-freemarker
commons-io
@@ -381,6 +381,44 @@
org.rocksdb
rocksdbjni
+
+ dev.langchain4j
+ langchain4j-open-ai
+
+
+ dev.langchain4j
+ langchain4j-azure-open-ai
+
+
+ dev.langchain4j
+ langchain4j-google-ai-gemini
+
+
+ dev.langchain4j
+ langchain4j-vertex-ai-gemini
+
+
+ dev.langchain4j
+ langchain4j-mistral-ai
+
+
+ dev.langchain4j
+ langchain4j-anthropic
+
+
+ dev.langchain4j
+ langchain4j-bedrock
+
+
+ dev.langchain4j
+ langchain4j-github-models
+
+
+ com.azure
+ azure-core-test
+
+
+
diff --git a/application/src/main/data/json/edge/instructions/upgrade/docker/upgrade_preparing.md b/application/src/main/data/json/edge/instructions/upgrade/docker/upgrade_preparing.md
index a0536f113a..f12eaa5fc0 100644
--- a/application/src/main/data/json/edge/instructions/upgrade/docker/upgrade_preparing.md
+++ b/application/src/main/data/json/edge/instructions/upgrade/docker/upgrade_preparing.md
@@ -32,19 +32,7 @@ docker run --rm -v tb-edge-postgres-data:/volume -v ~/.mytb-edge-data/db:/backup
After completing the data migration to the newly created Docker volumes, you'll need to update the volume mounts in your Docker Compose configuration.
Modify the `docker-compose.yml` file for ThingsBoard Edge to update the volume settings.
-First, please update docker compose file version. Find next snippet:
-```text
-version: '3.0'
-...
-```
-
-And replace it with:
-```text
-version: '3.8'
-...
-```
-
-Then update volume mounts. Locate the following snippet:
+Update volume mounts. Locate the following snippet:
```text
volumes:
- ~/.mytb-edge-data:/data
diff --git a/application/src/main/data/json/system/scada_symbols/3-phase-voltage-relay-hp.svg b/application/src/main/data/json/system/scada_symbols/3-phase-voltage-relay-hp.svg
index 8e1a46978e..6107f8f212 100644
--- a/application/src/main/data/json/system/scada_symbols/3-phase-voltage-relay-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/3-phase-voltage-relay-hp.svg
@@ -535,7 +535,7 @@
}
]
}]]>
-220220220v
+220220220v
diff --git a/application/src/main/data/json/system/scada_symbols/battery-hp.svg b/application/src/main/data/json/system/scada_symbols/battery-hp.svg
index 8b63a9ab29..3ed3acfe01 100644
--- a/application/src/main/data/json/system/scada_symbols/battery-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/battery-hp.svg
@@ -459,7 +459,7 @@
- ON
+ ON
diff --git a/application/src/main/data/json/system/scada_symbols/conical-tank.svg b/application/src/main/data/json/system/scada_symbols/conical-tank.svg
index 592508ee30..59988fa963 100644
--- a/application/src/main/data/json/system/scada_symbols/conical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/conical-tank.svg
@@ -267,7 +267,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/control-panel-hp.svg b/application/src/main/data/json/system/scada_symbols/control-panel-hp.svg
index d9b0857156..6fb7d3a501 100644
--- a/application/src/main/data/json/system/scada_symbols/control-panel-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/control-panel-hp.svg
@@ -320,13 +320,13 @@
}
]
}]]>
-Heat pump
+Heat pump
- On
+ On
- Off
+ Off
\ No newline at end of file
diff --git a/application/src/main/data/json/system/scada_symbols/cross-connector-hp.svg b/application/src/main/data/json/system/scada_symbols/cross-connector-hp.svg
index 5ac0af8248..926f9bc33f 100644
--- a/application/src/main/data/json/system/scada_symbols/cross-connector-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/cross-connector-hp.svg
@@ -489,14 +489,13 @@
"type": "number",
"default": 6,
"required": true,
- "subLabel": "Main",
- "divider": true,
+ "divider": false,
"fieldSuffix": "px",
- "condition": "return model.mainLine;",
"min": 0,
"max": 99,
"step": 1,
- "disabled": false
+ "disabled": false,
+ "visible": true
},
{
"id": "lineColor",
@@ -584,4 +583,4 @@
]
}]]>
-
\ No newline at end of file
+
diff --git a/application/src/main/data/json/system/scada_symbols/curcuit-breaker-hp.svg b/application/src/main/data/json/system/scada_symbols/curcuit-breaker-hp.svg
index 12f8b4944f..9aca99fcd4 100644
--- a/application/src/main/data/json/system/scada_symbols/curcuit-breaker-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/curcuit-breaker-hp.svg
@@ -425,7 +425,7 @@
- ON
+ ON
diff --git a/application/src/main/data/json/system/scada_symbols/cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/cylindrical-tank.svg
index 5675818fe7..231bc83efe 100644
--- a/application/src/main/data/json/system/scada_symbols/cylindrical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/cylindrical-tank.svg
@@ -563,7 +563,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/dynamic-horizontal-scale-hp.svg b/application/src/main/data/json/system/scada_symbols/dynamic-horizontal-scale-hp.svg
index 7b11968223..3e68be83c3 100644
--- a/application/src/main/data/json/system/scada_symbols/dynamic-horizontal-scale-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/dynamic-horizontal-scale-hp.svg
@@ -586,13 +586,13 @@
}
]
}]]>
-Outdoor°C
+Outdoor°C
0
100
- 26
+ 26
diff --git a/application/src/main/data/json/system/scada_symbols/dynamic-vertical-scale-hp.svg b/application/src/main/data/json/system/scada_symbols/dynamic-vertical-scale-hp.svg
index 37ba3df7c2..779fc069df 100644
--- a/application/src/main/data/json/system/scada_symbols/dynamic-vertical-scale-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/dynamic-vertical-scale-hp.svg
@@ -579,19 +579,19 @@
}
]
}]]>
-Outdoor°C
+Outdoor°C
-
+
100
0
- 26
+ 26
diff --git a/application/src/main/data/json/system/scada_symbols/elevated-tank.svg b/application/src/main/data/json/system/scada_symbols/elevated-tank.svg
index 0d82a10b41..761f9c1642 100644
--- a/application/src/main/data/json/system/scada_symbols/elevated-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/elevated-tank.svg
@@ -557,7 +557,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/energy-meter-hp.svg b/application/src/main/data/json/system/scada_symbols/energy-meter-hp.svg
index 3855d66ec8..0eb47a923f 100644
--- a/application/src/main/data/json/system/scada_symbols/energy-meter-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/energy-meter-hp.svg
@@ -474,7 +474,7 @@
}
]
}]]>
-000023kWhT1
+000023kWhT1
diff --git a/application/src/main/data/json/system/scada_symbols/four-rate-energy-meter-hp.svg b/application/src/main/data/json/system/scada_symbols/four-rate-energy-meter-hp.svg
index e095c1417f..2701e46684 100644
--- a/application/src/main/data/json/system/scada_symbols/four-rate-energy-meter-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/four-rate-energy-meter-hp.svg
@@ -877,7 +877,7 @@
}
]
}]]>
-T1T2T3Export000223000223000223000223kWh
+T1T2T3Export000223000223000223000223kWh
diff --git a/application/src/main/data/json/system/scada_symbols/heat-pump-hp.svg b/application/src/main/data/json/system/scada_symbols/heat-pump-hp.svg
index b1e643698c..f8fab04123 100644
--- a/application/src/main/data/json/system/scada_symbols/heat-pump-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/heat-pump-hp.svg
@@ -489,7 +489,7 @@
- 27
+ 27
diff --git a/application/src/main/data/json/system/scada_symbols/horizontal-curcuit-breaker-hp.svg b/application/src/main/data/json/system/scada_symbols/horizontal-curcuit-breaker-hp.svg
index 17fd1ba69e..fc4456e377 100644
--- a/application/src/main/data/json/system/scada_symbols/horizontal-curcuit-breaker-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/horizontal-curcuit-breaker-hp.svg
@@ -423,7 +423,7 @@
}]]>
- ON
+ ON
diff --git a/application/src/main/data/json/system/scada_symbols/horizontal-energy-system-controller-hp.svg b/application/src/main/data/json/system/scada_symbols/horizontal-energy-system-controller-hp.svg
index 13ee85821b..7c125465b4 100644
--- a/application/src/main/data/json/system/scada_symbols/horizontal-energy-system-controller-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/horizontal-energy-system-controller-hp.svg
@@ -364,7 +364,7 @@
}
]
}]]>
-Connected
+Connected
diff --git a/application/src/main/data/json/system/scada_symbols/horizontal-tank.svg b/application/src/main/data/json/system/scada_symbols/horizontal-tank.svg
index c02da77258..99dde101de 100644
--- a/application/src/main/data/json/system/scada_symbols/horizontal-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/horizontal-tank.svg
@@ -572,7 +572,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/large-conical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-conical-tank.svg
index 6789f8f7c9..ea9405da5f 100644
--- a/application/src/main/data/json/system/scada_symbols/large-conical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/large-conical-tank.svg
@@ -268,7 +268,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/large-cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-cylindrical-tank.svg
index c9d9361d7d..73e31b4798 100644
--- a/application/src/main/data/json/system/scada_symbols/large-cylindrical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/large-cylindrical-tank.svg
@@ -563,7 +563,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/large-stand-cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-stand-cylindrical-tank.svg
index 8e5c057209..f9af0f9c60 100644
--- a/application/src/main/data/json/system/scada_symbols/large-stand-cylindrical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/large-stand-cylindrical-tank.svg
@@ -564,7 +564,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/large-stand-vertical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-stand-vertical-tank.svg
index 9b6763e0ea..508b83088a 100644
--- a/application/src/main/data/json/system/scada_symbols/large-stand-vertical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/large-stand-vertical-tank.svg
@@ -564,7 +564,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/large-vertical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-vertical-tank.svg
index 75ff5ef979..d8283a8d29 100644
--- a/application/src/main/data/json/system/scada_symbols/large-vertical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/large-vertical-tank.svg
@@ -563,7 +563,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/left-analog-water-level-meter.svg b/application/src/main/data/json/system/scada_symbols/left-analog-water-level-meter.svg
index 2cdc9e587a..89c8b64a08 100644
--- a/application/src/main/data/json/system/scada_symbols/left-analog-water-level-meter.svg
+++ b/application/src/main/data/json/system/scada_symbols/left-analog-water-level-meter.svg
@@ -679,7 +679,7 @@
}]]>
- Water
+ Water
diff --git a/application/src/main/data/json/system/scada_symbols/left-heat-pump.svg b/application/src/main/data/json/system/scada_symbols/left-heat-pump.svg
index 6232f3dda3..f7f45f50fd 100644
--- a/application/src/main/data/json/system/scada_symbols/left-heat-pump.svg
+++ b/application/src/main/data/json/system/scada_symbols/left-heat-pump.svg
@@ -584,7 +584,7 @@
- 27
+ 27
diff --git a/application/src/main/data/json/system/scada_symbols/meter.svg b/application/src/main/data/json/system/scada_symbols/meter.svg
index 6fdd27d2fa..f426e49747 100644
--- a/application/src/main/data/json/system/scada_symbols/meter.svg
+++ b/application/src/main/data/json/system/scada_symbols/meter.svg
@@ -720,7 +720,7 @@
- 37%
+ 37%
diff --git a/application/src/main/data/json/system/scada_symbols/pool.svg b/application/src/main/data/json/system/scada_symbols/pool.svg
index 75f21e9457..b6f03a7b6d 100644
--- a/application/src/main/data/json/system/scada_symbols/pool.svg
+++ b/application/src/main/data/json/system/scada_symbols/pool.svg
@@ -232,7 +232,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/right-analog-water-level-meter.svg b/application/src/main/data/json/system/scada_symbols/right-analog-water-level-meter.svg
index 1b1be4f007..a66f39715b 100644
--- a/application/src/main/data/json/system/scada_symbols/right-analog-water-level-meter.svg
+++ b/application/src/main/data/json/system/scada_symbols/right-analog-water-level-meter.svg
@@ -679,7 +679,7 @@
}]]>
- Water
+ Water
diff --git a/application/src/main/data/json/system/scada_symbols/right-heat-pump.svg b/application/src/main/data/json/system/scada_symbols/right-heat-pump.svg
index a0802c6e66..954e32f36c 100644
--- a/application/src/main/data/json/system/scada_symbols/right-heat-pump.svg
+++ b/application/src/main/data/json/system/scada_symbols/right-heat-pump.svg
@@ -584,7 +584,7 @@
- 27
+ 27
diff --git a/application/src/main/data/json/system/scada_symbols/sand-filter-hp.svg b/application/src/main/data/json/system/scada_symbols/sand-filter-hp.svg
index 773837608e..0d99ba911e 100644
--- a/application/src/main/data/json/system/scada_symbols/sand-filter-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/sand-filter-hp.svg
@@ -621,32 +621,32 @@
- Filter
+ Filter
- Backwash
+ Backwash
- Rinse
+ Rinse
- Waste
+ Waste
- Recirculate
+ Recirculate
- Closed
+ Closed
\ No newline at end of file
diff --git a/application/src/main/data/json/system/scada_symbols/sand-filter.svg b/application/src/main/data/json/system/scada_symbols/sand-filter.svg
index 243d5ed6e8..c0f6b8b417 100644
--- a/application/src/main/data/json/system/scada_symbols/sand-filter.svg
+++ b/application/src/main/data/json/system/scada_symbols/sand-filter.svg
@@ -408,37 +408,37 @@
- Filter
+ Filter
- Backwash
+ Backwash
- Rinse
+ Rinse
- Waste
+ Waste
- Recirculate
+ Recirculate
- Closed
+ Closed
diff --git a/application/src/main/data/json/system/scada_symbols/simple-horizontal-scale-hp.svg b/application/src/main/data/json/system/scada_symbols/simple-horizontal-scale-hp.svg
index 9425ed48f2..76e3bc9eef 100644
--- a/application/src/main/data/json/system/scada_symbols/simple-horizontal-scale-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/simple-horizontal-scale-hp.svg
@@ -490,13 +490,13 @@
}
]
}]]>
-Outdoor°C
+Outdoor°C
0
100
- 26
+ 26
diff --git a/application/src/main/data/json/system/scada_symbols/simple-vertical-scale-hp.svg b/application/src/main/data/json/system/scada_symbols/simple-vertical-scale-hp.svg
index 4e14130ef3..c6fb05fd26 100644
--- a/application/src/main/data/json/system/scada_symbols/simple-vertical-scale-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/simple-vertical-scale-hp.svg
@@ -490,19 +490,19 @@
}
]
}]]>
-Outdoor°C
+Outdoor°C
-
+
100
0
- 26
+ 26
diff --git a/application/src/main/data/json/system/scada_symbols/small-cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/small-cylindrical-tank.svg
index 95c4fd3eb5..fda5351233 100644
--- a/application/src/main/data/json/system/scada_symbols/small-cylindrical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/small-cylindrical-tank.svg
@@ -534,7 +534,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/small-left-meter.svg b/application/src/main/data/json/system/scada_symbols/small-left-meter.svg
index 3d5d6fdcb9..1c70a5ee27 100644
--- a/application/src/main/data/json/system/scada_symbols/small-left-meter.svg
+++ b/application/src/main/data/json/system/scada_symbols/small-left-meter.svg
@@ -720,6 +720,6 @@
- 37%
+ 37%
\ No newline at end of file
diff --git a/application/src/main/data/json/system/scada_symbols/small-meter.svg b/application/src/main/data/json/system/scada_symbols/small-meter.svg
index a639475227..d66d70e048 100644
--- a/application/src/main/data/json/system/scada_symbols/small-meter.svg
+++ b/application/src/main/data/json/system/scada_symbols/small-meter.svg
@@ -657,7 +657,7 @@
- 37%
+ 37%
diff --git a/application/src/main/data/json/system/scada_symbols/small-right-center.svg b/application/src/main/data/json/system/scada_symbols/small-right-center.svg
index 8afe7bc88e..d2f96e7848 100644
--- a/application/src/main/data/json/system/scada_symbols/small-right-center.svg
+++ b/application/src/main/data/json/system/scada_symbols/small-right-center.svg
@@ -669,7 +669,7 @@
- 37%
+ 37%
diff --git a/application/src/main/data/json/system/scada_symbols/small-spherical-tank.svg b/application/src/main/data/json/system/scada_symbols/small-spherical-tank.svg
index 8b0a1a20b0..ae0dea7fca 100644
--- a/application/src/main/data/json/system/scada_symbols/small-spherical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/small-spherical-tank.svg
@@ -539,7 +539,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/spherical-tank.svg b/application/src/main/data/json/system/scada_symbols/spherical-tank.svg
index 44cd98e6f9..8be8a6f0d5 100644
--- a/application/src/main/data/json/system/scada_symbols/spherical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/spherical-tank.svg
@@ -569,7 +569,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/stand-cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/stand-cylindrical-tank.svg
index 9666f987d7..ef07d408e2 100644
--- a/application/src/main/data/json/system/scada_symbols/stand-cylindrical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/stand-cylindrical-tank.svg
@@ -564,7 +564,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/stand-horizontal-tank.svg b/application/src/main/data/json/system/scada_symbols/stand-horizontal-tank.svg
index 03995acbd5..cdb6885b3f 100644
--- a/application/src/main/data/json/system/scada_symbols/stand-horizontal-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/stand-horizontal-tank.svg
@@ -573,7 +573,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/stand-vertical-short-tank.svg b/application/src/main/data/json/system/scada_symbols/stand-vertical-short-tank.svg
index b448d24463..611aecec4d 100644
--- a/application/src/main/data/json/system/scada_symbols/stand-vertical-short-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/stand-vertical-short-tank.svg
@@ -537,7 +537,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/stand-vertical-tank.svg b/application/src/main/data/json/system/scada_symbols/stand-vertical-tank.svg
index c4dcc662fc..dd665214ca 100644
--- a/application/src/main/data/json/system/scada_symbols/stand-vertical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/stand-vertical-tank.svg
@@ -566,7 +566,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/three-rate-energy-meter-hp.svg b/application/src/main/data/json/system/scada_symbols/three-rate-energy-meter-hp.svg
index 526f6aa719..b35fe93c04 100644
--- a/application/src/main/data/json/system/scada_symbols/three-rate-energy-meter-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/three-rate-energy-meter-hp.svg
@@ -745,7 +745,7 @@
}
]
}]]>
-T1T2T3000223000223000223kWh
+T1T2T3000223000223000223kWh
diff --git a/application/src/main/data/json/system/scada_symbols/two-rate-energy-meter-hp.svg b/application/src/main/data/json/system/scada_symbols/two-rate-energy-meter-hp.svg
index e87548f059..325972b596 100644
--- a/application/src/main/data/json/system/scada_symbols/two-rate-energy-meter-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/two-rate-energy-meter-hp.svg
@@ -613,7 +613,7 @@
}
]
}]]>
-T1T2000023000023kWh
+T1T2000023000023kWh
diff --git a/application/src/main/data/json/system/scada_symbols/vertical-energy-system-controller-hp.svg b/application/src/main/data/json/system/scada_symbols/vertical-energy-system-controller-hp.svg
index 6da68556a2..15edf756bd 100644
--- a/application/src/main/data/json/system/scada_symbols/vertical-energy-system-controller-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/vertical-energy-system-controller-hp.svg
@@ -364,7 +364,7 @@
}
]
}]]>
-Connected
+Connected
diff --git a/application/src/main/data/json/system/scada_symbols/vertical-short-tank.svg b/application/src/main/data/json/system/scada_symbols/vertical-short-tank.svg
index 5d8aa42ab5..86a7ceef05 100644
--- a/application/src/main/data/json/system/scada_symbols/vertical-short-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/vertical-short-tank.svg
@@ -536,7 +536,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/vertical-tank.svg b/application/src/main/data/json/system/scada_symbols/vertical-tank.svg
index 5e51330ded..66c1cab666 100644
--- a/application/src/main/data/json/system/scada_symbols/vertical-tank.svg
+++ b/application/src/main/data/json/system/scada_symbols/vertical-tank.svg
@@ -566,7 +566,7 @@
- 1660 gal
+ 1660 gal
diff --git a/application/src/main/data/json/system/scada_symbols/voltage-relay-hp.svg b/application/src/main/data/json/system/scada_symbols/voltage-relay-hp.svg
index fa27214864..c943eaf15c 100644
--- a/application/src/main/data/json/system/scada_symbols/voltage-relay-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/voltage-relay-hp.svg
@@ -426,7 +426,7 @@
}
]
}]]>
-220v
+220v
diff --git a/application/src/main/data/json/system/scada_symbols/voltage-stabilizer-hp.svg b/application/src/main/data/json/system/scada_symbols/voltage-stabilizer-hp.svg
index 2ccad581d4..c3bba6ad4d 100644
--- a/application/src/main/data/json/system/scada_symbols/voltage-stabilizer-hp.svg
+++ b/application/src/main/data/json/system/scada_symbols/voltage-stabilizer-hp.svg
@@ -570,7 +570,7 @@
}
]
}]]>
-220230inout
+220230inout
diff --git a/application/src/main/data/upgrade/basic/schema_update.sql b/application/src/main/data/upgrade/basic/schema_update.sql
index c959cfd6c1..add832ea6e 100644
--- a/application/src/main/data/upgrade/basic/schema_update.sql
+++ b/application/src/main/data/upgrade/basic/schema_update.sql
@@ -18,8 +18,15 @@
ALTER TABLE ota_package
ADD COLUMN IF NOT EXISTS external_id uuid;
-ALTER TABLE ota_package
- ADD CONSTRAINT ota_package_external_id_unq_key UNIQUE (tenant_id, external_id);
+
+DO
+$$
+ BEGIN
+ IF NOT EXISTS(SELECT 1 FROM pg_constraint WHERE conname = 'ota_package_external_id_unq_key') THEN
+ ALTER TABLE ota_package ADD CONSTRAINT ota_package_external_id_unq_key UNIQUE (tenant_id, external_id);
+ END IF;
+ END;
+$$;
-- UPDATE OTA PACKAGE EXTERNAL ID END
@@ -35,3 +42,5 @@ DROP INDEX IF EXISTS idx_customer_external_id;
DROP INDEX IF EXISTS idx_widgets_bundle_external_id;
-- DROP INDEXES THAT DUPLICATE UNIQUE CONSTRAINT END
+
+ALTER TABLE mobile_app ADD COLUMN IF NOT EXISTS title varchar(255);
\ No newline at end of file
diff --git a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java
index 0125c7c07d..ea46ce86eb 100644
--- a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java
+++ b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java
@@ -35,6 +35,7 @@ import org.thingsboard.rule.engine.api.JobManager;
import org.thingsboard.rule.engine.api.MailService;
import org.thingsboard.rule.engine.api.MqttClientSettings;
import org.thingsboard.rule.engine.api.NotificationCenter;
+import org.thingsboard.rule.engine.api.RuleEngineAiChatModelService;
import org.thingsboard.rule.engine.api.SmsService;
import org.thingsboard.rule.engine.api.notification.SlackService;
import org.thingsboard.rule.engine.api.sms.SmsSenderFactory;
@@ -62,6 +63,7 @@ import org.thingsboard.server.common.msg.queue.ServiceType;
import org.thingsboard.server.common.msg.queue.TopicPartitionInfo;
import org.thingsboard.server.common.msg.tools.TbRateLimits;
import org.thingsboard.server.common.stats.TbApiUsageReportClient;
+import org.thingsboard.server.dao.ai.AiModelService;
import org.thingsboard.server.dao.alarm.AlarmCommentService;
import org.thingsboard.server.dao.asset.AssetProfileService;
import org.thingsboard.server.dao.asset.AssetService;
@@ -311,6 +313,14 @@ public class ActorSystemContext {
@Getter
private AuditLogService auditLogService;
+ @Autowired
+ @Getter
+ private RuleEngineAiChatModelService aiChatModelService;
+
+ @Autowired
+ @Getter
+ private AiModelService aiModelService;
+
@Autowired
@Getter
private EntityViewService entityViewService;
diff --git a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java
index f5033cce80..c143214e2b 100644
--- a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java
+++ b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java
@@ -270,10 +270,19 @@ public class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcesso
rpc.setExpirationTime(request.getExpirationTime());
rpc.setRequest(JacksonUtil.valueToTree(request));
rpc.setStatus(status);
- rpc.setAdditionalInfo(JacksonUtil.toJsonNode(request.getAdditionalInfo()));
+ rpc.setAdditionalInfo(getAdditionalInfo(request));
systemContext.getTbRpcService().save(tenantId, rpc);
}
+ private JsonNode getAdditionalInfo(ToDeviceRpcRequest request) {
+ try {
+ return JacksonUtil.toJsonNode(request.getAdditionalInfo());
+ } catch (IllegalArgumentException e) {
+ log.debug("Failed to parse additional info [{}]", request.getAdditionalInfo());
+ return JacksonUtil.valueToTree(request.getAdditionalInfo());
+ }
+ }
+
private ToDeviceRpcRequestMsg createToDeviceRpcRequestMsg(ToDeviceRpcRequest request) {
ToDeviceRpcRequestBody body = request.getBody();
return ToDeviceRpcRequestMsg.newBuilder()
diff --git a/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java b/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java
index dff0cd4cf1..6374e4016d 100644
--- a/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java
+++ b/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java
@@ -28,6 +28,7 @@ import org.thingsboard.rule.engine.api.JobManager;
import org.thingsboard.rule.engine.api.MailService;
import org.thingsboard.rule.engine.api.MqttClientSettings;
import org.thingsboard.rule.engine.api.NotificationCenter;
+import org.thingsboard.rule.engine.api.RuleEngineAiChatModelService;
import org.thingsboard.rule.engine.api.RuleEngineAlarmService;
import org.thingsboard.rule.engine.api.RuleEngineApiUsageStateService;
import org.thingsboard.rule.engine.api.RuleEngineAssetProfileCache;
@@ -76,6 +77,7 @@ import org.thingsboard.server.common.msg.TbMsgMetaData;
import org.thingsboard.server.common.msg.TbMsgProcessingStackItem;
import org.thingsboard.server.common.msg.queue.ServiceType;
import org.thingsboard.server.common.msg.queue.TopicPartitionInfo;
+import org.thingsboard.server.dao.ai.AiModelService;
import org.thingsboard.server.dao.alarm.AlarmCommentService;
import org.thingsboard.server.dao.asset.AssetProfileService;
import org.thingsboard.server.dao.asset.AssetService;
@@ -1024,6 +1026,16 @@ public class DefaultTbContext implements TbContext {
return mainCtx.getAuditLogService();
}
+ @Override
+ public RuleEngineAiChatModelService getAiChatModelService() {
+ return mainCtx.getAiChatModelService();
+ }
+
+ @Override
+ public AiModelService getAiModelService() {
+ return mainCtx.getAiModelService();
+ }
+
@Override
public MqttClientSettings getMqttClientSettings() {
return mainCtx.getMqttClientSettings();
diff --git a/application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java b/application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java
index 93cf9da8e0..2fbc89a84d 100644
--- a/application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java
+++ b/application/src/main/java/org/thingsboard/server/config/ThingsboardSecurityConfiguration.java
@@ -26,9 +26,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpHeaders;
import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.DefaultAuthenticationEventPublisher;
-import org.springframework.security.config.annotation.ObjectPostProcessor;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.authentication.ProviderManager;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@@ -183,15 +181,12 @@ public class ThingsboardSecurityConfiguration {
}
@Bean
- public AuthenticationManager authenticationManager(ObjectPostProcessor