Version History
This page records the version update history of ThingsGatewayRuntime.
Documentation Site Update (2026-07-03)
Operation Manuals
- Improved the GatewayRuntime Web, Studio Web, and Watchdog Web operation manuals for login, overview, collection configuration, data forwarding, debugging, alarms, rules, scripts, nodes, certificates, logs, users, roles, and system settings.
- Added user-facing descriptions for configuration dialogs, configuration drawers, parameters, screenshots, and common troubleshooting.
- Added Studio project management, Watchdog connection, project upload and download, backup, tunnel, and runtime parameter instructions.
v2.1.33 (2026-07-24)
Added
- Studio and Watchdog remote management over HTTP IP
- The packaged Studio and Watchdog configurations can listen on all network interfaces and can be opened directly at
http://device-IP:5100andhttp://device-IP:6200. Remote bootstrap, Watchdog project deployment, and process control are also available when remote management is enabled. - Plain HTTP still provides no TLS transport protection. Continue to use HTTPS on public or untrusted networks and restrict network access to management ports.
- The packaged Studio and Watchdog configurations can listen on all network interfaces and can be opened directly at
Optimized
-
Current Studio and Watchdog authentication protocol
- Login and bootstrap passwords now use a two-minute, one-time RSA-OAEP-SHA256 public-key challenge. Watchdog management APIs now use an eight-hour opaque Bearer session that is invalidated by logout or a Watchdog restart.
- Studio-to-Watchdog connections use the same one-time password challenge and Bearer session, with automatic re-login and one retry when a Watchdog restart invalidates the session.
-
Deployment, operation, and API documentation
- The Chinese and English documentation now covers Studio/Watchdog HTTP IP configuration, authentication endpoints, session behavior, security boundaries, and troubleshooting for
importKey, 401, 403, and expired challenges.
- The Chinese and English documentation now covers Studio/Watchdog HTTP IP configuration, authentication endpoints, session behavior, security boundaries, and troubleshooting for
Fixed
- Login from plain HTTP IP pages
- Fixed GatewayRuntime, Studio, and Watchdog login failures caused by unavailable
SubtleCryptoand an undefinedimportKeyon plain HTTP IP pages. The current frontends can use browser-provided strong randomness to perform RSA-OAEP-SHA256 password encryption.
- Fixed GatewayRuntime, Studio, and Watchdog login failures caused by unavailable
v2.1.32 (2026-07-23)
Added
-
Hot-standby identity, secure transport, and shared arbitration (upgrade notice)
- Hot standby now validates the redundancy group, local node, and expected peer identity, and supports optional mutual TLS plus work authorization through a SQLite file shared by both gateways. The page also reports local role, peer identity, collection, data forwarding, alarm, rule-engine, link, and arbitration state.
- After upgrading, enabled hot-standby pairs must use the same cluster name, different local node names, and matching expected peer names. Leaving the shared arbitration file empty keeps link-only failover and can allow split-brain during a network partition. The local transport certificate, trusted root certificate, and peer certificate host name must either all be configured or all be empty.
-
Dual-database mirroring for historical data and alarms
- Historical data and historical alarm targets can write to primary and secondary databases, with Journal/backlog status, time-range comparison, bidirectional repair, scheduled consistency checks, and automatic repair.
- Mirroring supports only the standard SqlServer, MySql, Sqlite, and PostgreSql table paths. QuestDB, TDengine, custom SQL, historical table scripts, and historical alarm table scripts are unsupported. The two databases must be different physical targets, and this feature is independent of hot-standby historical compensation.
-
Historical queries and MQTT history RPC
- Added typed historical queries with UTC time ranges, variable sets, pagination, allow-listed sorting, and numeric series modes including Auto, Raw, Average, Minimum, Maximum, First, and Last with point limits.
- MQTT Client and MQTT Server producers now support the
RpcHistorytopic for target, record, numeric-series, alarm, confirmation, and cancellation requests, with gzip/Base64 chunking plus request, response, and concurrency limits.
Optimized
-
Modbus Master packing rules (upgrade notice)
- The former single Max Pack Length setting has been replaced by separate FC1, FC2, FC3, FC4, FC15, and FC16 quantity limits. Reads or batch writes that exceed the applicable limit now fail validation before a frame is built. After upgrading, open every Modbus Master device and review all six rules; do not assume the old
MaxPackvalue is mapped automatically.
- The former single Max Pack Length setting has been replaced by separate FC1, FC2, FC3, FC4, FC15, and FC16 quantity limits. Reads or batch writes that exceed the applicable limit now fail validation before a frame is built. After upgrading, open every Modbus Master device and review all six rules; do not assume the old
-
Unified certificate management APIs (upgrade notice)
- Certificate management moved to the shared TAdmin module while the Web entry remains unchanged. The old
/api/gatewaycertificatecontroller/...routes have been replaced by/api/certificatecontroller/..., with corresponding action and permission-code changes. External API integrations must migrate.
- Certificate management moved to the shared TAdmin module while the Web entry remains unchanged. The old
-
Data-forwarding and rule-flow configuration reliability
- Strengthened validation for forwarding groups, targets, variable ranges, plugin properties, and primary/standby target topology. Configuration changes can restart only affected objects, while stale backlog delivery and loss of authoritative failover state are prevented.
- Rule-flow names now validate length, invalid characters, reserved names, and case-insensitive uniqueness. Version checks prevent a later save from silently overwriting another user's concurrent edit.
-
Real-time status and Web interaction
- Real-time status and debug messages now group equivalent subscriptions and add subscription caps, bounded queues, re-entry protection, reconnect backoff, and stale-response protection for more stable large-point and frequently changing views.
Fixed
-
SQLite configuration database backup
- Fixed WAL-mode backups that could miss committed records or depend on companion
-waland-shmfiles. Backups are now consistent, standalone database snapshots that include committed WAL data.
- Fixed WAL-mode backups that could miss committed records or depend on companion
-
History, forwarding, and failover recovery
- Fixed incomplete status, incorrect backlog ownership, or inconsistent task recovery during target restarts, cache replay, failover, and runtime recovery.
v2.1.22 (2026-07-14)
Added
-
Historical reliable-sync diagnostics
- Gateway redundancy in System Settings now includes historical reliable-sync diagnostics for target support, Journal state, Epoch leases, and Journal events, with filters for target key, source node, record type, record key, pending peer, and pending DB state.
-
TCP Client backup remote address
- Collection channels now support a backup remote address for TCP Client channels. If the primary remote address fails to connect, disconnects, or times out, the same channel can try the backup address before device-level redundancy is needed.
Optimized
-
Historical data and alarm redundancy reliability
- Standard SQL historical data and historical alarm write paths now coordinate Journal records, peer acknowledgment, DB Epoch leases, and record keys to improve replay and de-duplication after failover, short link outages, temporary database outages, or runtime restarts.
-
Data forwarding runtime observability
- Data forwarding details now expose plugin runtime state, online state, Reliable History tags, Journal target keys, unsupported reasons, and CacheDB outbox diagnostics to help locate target startup failures, offline-cache backlog, and historical reliable-sync status.
-
Offline cache and retry recovery
- CacheDB outbox, memory queues, retained retries, and resend recovery were improved. Runtime details now show model count, pending counts, oldest pending time, and errors directly.
Fixed
-
Historical write consistency
- Fixed cases where historical data or historical alarms could be duplicated or missed during failover, restart recovery, or short offline periods. Supported standard SQL targets now use record keys for idempotent writes.
-
Target runtime recovery status
- Fixed unclear data forwarding status after cache resend, retry, or runtime refresh, making it easier to confirm whether a target has actually recovered.
v2.1.20 (2026-07-12)
Added
-
Variable reference tracking
- Variable details now include a references view that summarizes usage in data forwarding groups/targets, rule flows, scripts, and variable expressions, with navigation to the related forwarding group, forwarding target, or rule flow before changing or deleting a point.
-
Secondary-development documentation
- Added detailed documentation for collect plugin development, business plugin development, script development, and custom node development, plus plugin property references, lifecycle notes, parameter models, examples, and troubleshooting checklists.
Optimized
-
Data forwarding configuration experience
- The Data Forwarding page now uses a resizable split layout, denser group/target cards, and query-based locating for specific groups or targets so reference navigation opens the relevant configuration directly.
-
Gateway system-setting safety
- Network, system time, and NTP configuration now execute system commands through argument lists with validation, timeouts, and safer privileged file writes, reducing failures caused by special characters or command formatting.
-
Permissions and debugging APIs
- Gateway, plugin, and NOAOT plugin debugging APIs now use centralized permission constants and seed data, reducing cases where a page action is visible but the API is still unauthorized after upgrade.
-
Studio and Watchdog delivery reliability
- Watchdog now supports disabling health checks, hashed password storage, safer project package extraction, temporary-file downloads, and GatewayApp rollback snapshots after failed apply operations. Studio project upload/download and startup security checks were strengthened as well.
-
Documentation site
- Reworked the current manuals into an entry index and common task routes, added clearer topic references for collection, memory, forwarding, rules, scripts, plugins, and permissions, and refreshed GatewayRuntime screenshots.
Fixed
-
Network and time configuration
- Fixed unreliable Linux DNS/default-route/subnet-mask handling and improved Windows/Linux time synchronization configuration to reduce failures from command formatting, invalid input, or service state.
-
Project package handling
- Fixed Studio/Watchdog project package upload and extraction risks around unsafe paths, oversized entries, and leftover temporary files.
v2.1.9 (2026-07-08)
Added
- Unified TAdmin management module
- GatewayRuntime now integrates the shared TAdmin management module. Users, roles, menus, button permissions, and audit logs are handled by the shared module, while Gateway provides the default menu, role, and button-permission seed data.
- Gateway Web now uses the TAdmin frontend plugin and mounts management menus under
/gateway-workspace, keeping system management features aligned with Gateway workspace routing.
Optimized
-
Gateway permissions and log configuration
- Backend startup now registers Gateway menu placement, menu routes, roles, and button permissions, and syncs the WebApi permission catalog to reduce missing authorization after upgrades.
GatewayLogOptionsnow focuses on Gateway runtime logs. Backend, operation, SQL, and audit log retention settings are split intoAdminLogOptions, making log configuration boundaries clearer.
-
Data forwarding runtime recovery
- Data forwarding targets that fail during initialization or startup are retried automatically every 30 seconds, prioritizing the target that has waited longest. After recovery, the group-level data producer is restarted to reduce manual recovery after temporary failures.
Fixed
-
Redundant-device variable configuration
- Channel/device variable saves, variable imports, and batch variable edits now normalize variable configuration to the primary configuration device, avoiding inconsistent collection, forwarding, or query results when variables are accidentally attached to standby devices.
-
Debugging and forwarding permissions
- Added default permissions for CAN, OPC, IEC61850, SOE, ZeroMQ, and SyncBridge forced-sync debugging/forwarding maintenance APIs, avoiding cases where a role can open the page action but the API call is still blocked.
v2.1.5 (2026-07-05)
Optimized
- Collection configuration resource list
- The left device list in Collection Configuration is now grouped by channel, with plugin name, plugin tip, and channel address summary shown under the channel title. Device rows now show primary/standby role and online status directly, without showing an empty redundancy placeholder when redundancy is not configured.
- When editing a channel, available channel types are filtered by the first device plugin under the current channel. New channels, or plugins without matching channel types, still show all channel types to reduce wrong selections.
Fixed
-
Redundant devices and variable queries
- Fixed an issue where the redundant device selector could be empty when editing an existing redundant device. The standby device already configured for the current device now remains available in the dropdown.
- Fixed variable queries by device, channel, or plugin so standby-device data is resolved through the primary configuration device, making collection configuration and variable status queries consistent in redundant setups.
-
Plugins and channel types
- Fixed channel type lookup when plugin names contain extra spaces or when the plugin cannot be found. The query now falls back to all channel types when plugin-specific channel types are unavailable.
v2.1.3 (2026-07-04)
Added
-
Data forwarding batch mode
- Added a batch mode that treats the whole forwarding group as one batch, making periodic snapshots easier to organize by group.
-
IEC61850 debugging capability
- Added IEC61850 master and server capability detection so the frontend can show the matching debugging entry for those plugins.
-
Current operation manuals
- Added current GatewayRuntime Web, Studio Web, and Watchdog Web manual entries, with refreshed screenshots for data query, memory, data forwarding, and operations workflows.
Optimized
-
Data forwarding offline cache and replay
- MQTT, Kafka, RabbitMQ, ThingsBoard, and other TopicArray forwarding targets can cache unconfirmed uploads after failures and replay them before new data after recovery; when offline cache is disabled, failed data is now explicitly reported as not retried.
- ThingsBoard device-connect uploads can move into offline cache when the queue exceeds its limit, is canceled, or fails to send, reducing missed uploads after recovery.
-
Data forwarding startup and validation
- Forward target saves now validate plugin properties and variable properties earlier, reducing configuration errors that only appear after runtime startup.
- Improved cleanup and redundant target switching when batch target startup fails, avoiding half-initialized targets receiving new data.
-
Messaging and security configuration
- RabbitMQ now supports publisher confirmations and mandatory routing requirements, and declares the plugin event topic queue.
- MQTT and ThingsBoard no longer trust unverified certificates by default, and log a warning when certificate validation is manually relaxed.
- ModbusSlave now warns when listening on all interfaces, when the client permission list is empty, or when RPC writes are enabled.
-
Documentation site experience
- Optimized the homepage image, sidebar structure, and current screenshot directory so users can enter the current manuals more directly.
Fixed
-
Log file paths
- Channel, device, forwarding group, and forwarding target log file names are sanitized to avoid write or cleanup failures caused by invalid path characters.
-
Plugin stability
- Webhook now reports invalid custom header JSON clearly instead of silently ignoring it.
- TDengine historical data writes now validate and escape database/table identifiers and values to avoid create-table or write failures from special characters.
- Kafka producer shutdown and concurrent sends are synchronized to reduce send failures during shutdown.
v2.1.0 (2026-07-02)
Added
-
Business plugin forwarding configuration
- Added forwarding groups and forwarding targets to organize business data forwarding by group
- Forwarding groups support multiple targets within the same group for multi-target forwarding scenarios
- Forwarding targets support redundancy configuration to improve forwarding availability and fault tolerance
-
Memory calculation page
- Added a memory calculation page for centralized viewing and management of memory calculation configuration
Optimized
- Business plugin refactoring
- Refactored the business plugin module with an independent UI, reducing coupling between business plugin configuration and the main interface
- Optimized the business plugin configuration entry and interaction experience
v2.0.232 (2026-06-26)
Optimized
-
UI refactoring
- Refactored Gateway, Studio, and Watchdog Web interface structure and visual style
- Optimized page layouts, navigation, tables, forms, log panels, and compact mode experience
-
Improved script and custom node compilation experience
- Compilation failures now prioritize actionable error messages and reduce irrelevant technical output
- Custom node compilation error logs now support jumping to the corresponding editor line and column
- Fixed custom node compilation error line mapping so returned line numbers match user editor code
-
Optimized batch compilation flow
- Improved script batch compilation so logs are easier to follow and results are clearer
- Improved custom node batch compilation for post-upgrade validation
-
Optimized release packages
- Improved Watchdog, Runtime, and Studio package output for platform-specific deployment
Fixed
- Script and custom node deletion
- Deleting scripts or custom nodes also clears related runtime results so list status stays consistent with loaded status
- Batch deletion handles related runtime results at the same time
v2.0.223 (2026-06-23)
Added
-
Gateway data page refactoring
-
Variable table visual redesign
-
Left tree panel optimization
-
VariableNode trigger rule filtering logic fix
Optimized
-
TabBar keeps page state
- Switching tabs now truly preserves scroll position, form input, filter conditions, etc.
-
Compact mode adaptation
Fixed
-
Variable history data config lost on save (Interval/Condition)
-
Memory variable edit dialog shows device id number
-
Fixed known issues
v2.0.222 (2026-06-22)
Optimized
- Unified log export query conditions
- DeviceLog and ChannelLog export now includes
conditionalModel, fixing the issue where export ignored log level / keyword / time range filters - RpcLog and OperateLog export conditions had inconsistencies (
LikevsEqual,'true'vs'success'), unified by extracting a sharedbuildConditions()function - BackendLog and SqlLog also extracted
buildConditions()to eliminate duplicate code - All 6 log pages now share 100% the same condition building logic for both query and export
- DeviceLog and ChannelLog export now includes
Fixed
- Quick create expression not persisted
- GatewayWeb's QuickExpressionDialog previously only called
compileScriptto compile and hot-load, without writing to the database, causing expressions to be lost after restart - Now the "Apply" button calls
createScriptAPI to persist to thescript_expressiontable before emit, with an error prompt when a script with the same name already exists
- GatewayWeb's QuickExpressionDialog previously only called
v2.0.190 (2026-06-22)
Added
-
ModbusSlave client permission control
- Plugin properties added "client permission list", supporting configuration of multiple allowed client IPs and write permissions
- When the list is empty, no restriction; when non-empty, only matched IPs are allowed to write
- Each record supports
AllowedClientIp(supports exact match /*wildcard) andAllowWrite(whether to allow writing) - Write requests use the IP allowlist, and unauthorized or write-prohibited clients are rejected
- The plugin parameter editor supports visual table editing for adding, deleting, and editing client permission rows
-
Studio Roslyn IntelliSense integration
- The editor uses the Studio intelligent assistance service to provide C# script completion, syntax diagnostics, signature help, hover tips, semantic highlighting, and go-to-definition
- Automatically detects Studio Roslyn service availability, reconnects in background when disconnected, and seamlessly switches back after recovery
Optimized
- Database connection testing
- SqlServer, MySql, Sqlite, PostgreSql, QuestDb, and TDengine connections can be tested in a consistent way
- Real-time data, historical data, and historical alarm configuration support one-click "Test Connection"
Fixed
- Fixed known issues
v2.0.189 (2026-06-17)
Fixed
- Fixed known issues
v2.0.188 (2026-06-13)
Fixed
- Fixed known issues
v2.0.179 (2026-06-11)
Fixed
- Fixed known issues
v2.0.178 (2026-06-08)
Fixed
- Fixed known issues
v2.0.177 (2026-06-08)
Added
- Added built-in historical data storage
v2.0.176 (2026-06-05)
Optimized
- Optimized user experience
v2.0.170 (2026-06-04)
Fixed
- Fixed known issues
v2.0.168 (2026-06-03)
Fixed
- Fixed known issues
v2.0.166 (2026-06-03)
Fixed
- Fixed known issues
v2.0.158 (2026-06-01)
Fixed
- Fixed known issues
v2.0.157 (2026-05-30)
Added
- Business plugin concurrent upload
Fixed
- Fixed known issues
v2.0.155 (2026-05-28)
Added
- Business upload plugin supports concurrent upload
- Upload entity adds createTime field
v2.0.152 (2026-05-27)
Added
- TCP tunneling feature
- Supports intranet tunneling for remote access
- Provides stable tunneling connection service
v2.0.149 (2026-05-25)
Fixed
- Fixed Studio project file size limit on import
- Improved user experience
v2.0.148 (2026-05-25)
Fixed
- Fixed PLC array reading error
- Fixed variable plugin property update error
v2.0.143 (2026-05-24)
Fixed
- Fixed known issues
v2.0.140 (2026-05-24)
Fixed
- Fixed known issues
v2.0.136 (2026-05-19)
Added
- Internationalization support
v2.0.126 (2026-05-14)
Added
- Gateway version update feature
- Toolbar added "Gateway Version" button
- Automatically fetches latest versions from NuGet official site and local nupkgs directory
- Supports one-click GatewayVersion update and automatic rebuild
Optimized
- Dark mode adaptation
Fixed
- Fixed known issues
v2.0.124 (2026-05-13)
Added
- Import ZIP project supports duplicate name check, with options to rename or overwrite the project with the same name
Optimized
- Gateway data tree node display
v2.0.123 (2026-05-12)
Added
- Rule engine Excel export and import
Fixed
- Fixed known issues
v2.0.122 (2026-05-12)
Optimized
- MQTT RPC topic supports wildcards
v2.0.121 (2026-05-12)
Optimized
- OPCUA Server certificate prompt optimization
v2.0.120 (2026-05-11)
Added
- Import supports clearing original data
Optimized
- Frontend no longer shows blank page on network errors
Fixed
- Memory variable write error
- Known issues
v2.0.118 (2026-05-09)
Added
-
Studio NuGet package plugin management
- Supports visual plugin management interface
- Supports batch enable/disable plugins
- Plugin state persisted to project.json
- Automatically builds and restarts runtime based on project.json configuration
-
Rule engine variable RPC node
- Added variable RPC node type
- Supports calling variable RPC methods through rule engine
v2.0.111 (2026-05-07)
Fixed
- Fixed known issues.
Adjusted
- API operations no longer wait for background thread restart.
v2.0.104 (2026-05-06)
New Features
- Batch copy: Supports copying channels, devices, variables with configurable copy count and automatic name deduplication
- Copying a channel automatically cascades copies of all devices and variables under it
- Copying a device automatically cascades copies of all variables under it
v2.0.0 (2026-05-06)
New Features
- Data collection: Supports data collection via Modbus TCP/RTU, OPC UA, MQTT, Kafka, RabbitMQ and other industrial protocols
- Alarm management: Supports boolean on/off alarms, high/high-high/low/low-low limit alarms and custom alarm rules
- Rule engine: Visual rule flow orchestration, supports custom nodes and script extensions
- Redundancy configuration: Master-backup redundancy architecture, supports automatic failover and data synchronization
- Script extension: Supports custom expression scripts and C# script node extensions for business logic
- Permission management: User-role-permission three-level management system with fine-grained permission control
- Watchdog service: Automatically monitors and manages gateway processes, ensuring stable system operation
- Studio development environment: Provides visual configuration interface for convenient management of channels, devices and variables
Platform Support
- Windows x64
- Linux x64