On this page
Latest Beta Version
[11.1.1] - 2026-04-16
Fixed
Filter private/reserved IPs from X-Forwarded-For chain in client IP extraction
[11.1.0] - 2026-03-31
Added
Added sharding possibilities for DeviceAction, only added sharding optional parameter for sendFromDevice function
Add sharding env vars to Helm deployment template
Make device_ping_consumption_sharding_enabled env var mandatory (app crashes on startup if missing)
Extract and publish client public IP as telemetry on WebSocket connection
[11.0.1] - 2026-03-26
[11.0.0] - 2026-03-20
Removed
Remove server license validation logic and related configuration
Fixed
Event DeviceManufacturerDetailsUpdated is now handled in platform domain instead of deviceInfo domain for the device cache invalidation
[10.4.0] - 2026-02-18
Added
Event based cache for device power actions on power action endpoints
[10.3.0] - 2026-01-29
Added
Caching device entity in redis to reduce mongo load
[10.2.0] - 2026-01-09
Added
Accept socket with socketName=front_supra
[10.1.2] - 2026-01-08
Fixed
Ignore action Offline.SaveOfflineActionsFile which is no longer used
[10.1.1] - 2025-12-03
Fixed
Reduce number of connections to Redis to one per server instead of one per HTTP socket session
HTTP socket server properly refreshes its presence in Redis to avoid losing connections when server instances is overloaded on CPU and misses the refresh interval
[10.1.0] - 2025-12-01
Added
Upgraded Redis library to the latest for Redis 7+
Fixed
Platform HTTP variant is not loosing connections when server instances are restarted
[10.0.0] - 2025-11-20
Added
HTTP socket server now extracts and sets hostname from incoming requests for proper connection tracking
Changed
Connection to Redis using DragonFly instead of AWS ElastiCache
[9.2.0] - 2025-10-21
Added
Device connection tracking now includes hostname information to identify which server instance a device is connected to
[9.1.6] - 2025-10-19
Device connections are correctly updated for devices and organizations. It will show correct connections in the Box UI on the device detail page and in the organization monitoring page.
[9.1.5] - 2025-10-09
Fixed
delay action requeue - preventing immediate action requeueing when processAction fails for some reason. In that case immediate requeueing could block the eventloop. Happening fe. when device send action to the session associated with partially closed socket (listener still present but socket has been removed from the StatsProvider already ) - ~10000+actions/sec were processed for 30sec (till socket was closed due to not receiving ping) in that case
[9.1.4] - 2025-10-01
Fixed
Logs that contain nested error objects are correctly formatted to include message and stack trace
[9.1.3] - 2025-10-01
[9.1.2] - 2025-10-01
Fixed
use service and metrics from @signageos/lib instead of custom implementation
metrics for all db connections added
[9.1.1] - 2025-09-29
Fixed
WebSocket hostname determination doesn't use origin and referer headers anymore because they can be easily spoofed. Only x-forwarded-host and host headers are used now.
Database connection for deviceConnection, deviceTimeout and socketRate models to DragonFly
Increase limit for device on Applet Dispatch Commands to 5/s instead of 1/s
[9.1.0] - 2025-09-03
Added
Include responseQueueName in actions sent from device to platform so that DC can respond directly to the same instance of platform that sent the action. This prevents unnecessary load on all platform instances when only one instance needs to handle the response and especially it reduces the load on RabbitMQ as well as network traffic between services.
[9.0.7] - 2025-08-28
Fixed
Fix parsing of env var readiness_max_sockets_count_multiplier
[9.0.6] - 2025-08-28
Fixed
Exclude many useless actions that are being enqueued to RabbitMQ but nobody is listening for them
Add readiness maxSocketsCountMultiplier for reserved sockets capacity
[9.0.5] - 2025-08-28
[9.0.4] - 2025-08-28
Fixed
Exclude action Device.Connected.Status from devices
Optimize HTTP socket logic for CPU
[9.0.3] - 2025-04-10
Fixed
Kubernetes livenessProbe uses /alive route and is not dependent on external connections
[9.0.2] - 2025-03-28
Fixed
[9.0.1] - 2025-02-06
Fixed
Optimized large payload handling in /http-socket/transmit-messages by streaming JSON with stream-json package, preventing memory overflow and PayloadTooLargeError error
[9.0.0] - 2024-10-30
Added
Export metrics sos_platform_incoming_messages_bytes_total and sos_platform_outgoing_messages_bytes_total that track how many bytes were sent/received to/from devices
Removed
ServerInstance managing and pinging with serverInstanceUid
[8.1.3] - 2024-10-07
Fixed
Fixed a bug introduced in 8.1.2 where new devices would get rejected
[8.1.2] - 2024-10-04
Fixed
Log even more granular information about device in socket connected/disconnected logs
[8.1.1] - 2024-10-03
Fixed
Better logging of device socket disconnection in case of error
[8.1.0] - 2024-09-30
Added
Exports max allowed active sockets at the same time as a metric
Log all device socket connected/disconnected to stdout
[8.0.6] - 2024-06-05
Fixed
Reject devices with duid shorter than 8 characters
[8.0.5] - 2024-04-24
Fixed
Throttling actions in the queue (more optimal way)
[8.0.3] - 2024-04-03
Fixed
Parse env vars config using the standard lib
Prometheus metrics for device connections, incoming and outgoing messages and throttled actions
[8.0.2] - 2024-02-08
Security
CVE-2020-7598
CVE-2020-7598
CVE-2021-44906
CVE-2022-25883
[8.0.1] - 2023-12-20
Security
Address security issues
Upgrade to Node.js 20
[8.0.0] - 2023-11-21
Removed
[7.9.3] - 2023-11-16
Fixed
BACKUP_RESTART Power Actions API
[7.9.2] - 2023-11-07
Fixed
Fetch license validity information from MongoDB instead of Postgres
[7.9.1] - 2023-11-06
Fixed
Device connection computes the index for organizations correctly (online/offline status of devices)
[7.9.0] - 2023-04-05
Added
Collect number of throttled pending actions per action type
Collect number of websocket new connections and disconnections
[7.8.0] - 2023-03-15
Added
Collect number of incoming/outgoing messages for each device
[7.7.1] - 2023-02-15
Fixed
The actions to device with socketUid target is not expecting response (so they are resolved immediately when rabbit accepts the message)
[7.7.0] - 2023-01-23
Added
PodMonitor Kubernetes resource so that Prometheus starts scraping metrics
[7.6.1] - 2023-01-18
Fixed
Emulator on /display endpoint with using redirect instead of proxy
[7.6.0] - 2022-11-30
Added
Collect number of connected websockets to prometheus
Fixed
Emulator serving all static files like serviceWorker.js
[7.5.0] - 2022-11-02
Added
Prometheus metrics scraping
Fixed
More strict node and npm versions
[7.4.0] - 2022-07-20
Added
Ability to throttle certain commands per device
[7.3.0] - 2022-06-29
Added
Device connections are stored directly to telemetry
[7.2.1] - 2022-06-01
Fixed
Socket device logs contain disconnected code and reason even in cases when the socket was closed by the server
[7.2.0] - 2022-05-30
Added
Log device socket connected/disconnected to device logs
Fixed
Ensure that websocket closes with frame body that fits in the limit according to websocket spec
[7.1.0] - 2022-03-16
Added
Actions monitoring
Exclude processing of applet video events
Prevent connecting sockets when service is overloaded on memory or number of sockets
[7.0.0] - 2021-10-27
Changed
Publishing actions to new exchange with action type as routing key
[6.0.0] - 2021-10-06
Changed
Rewrite of AMQP architecture of device actions to dramatically improve performance
[5.0.0] - 2021-09-08
Added
Timestamp on actions sent from device
Socket rate limiting of connections to platforms (prevent peak traffic to overload services/rabbitmqs)
Readiness probe based on number of sockets & used memory
Removed
No more used /configuration/* REST API which was moved to configuration-server instead
Fixed
Devices are not periodically reconnecting
Devices will not end up in invalid socket connections state (not accepting messages)
[4.4.3] - 2021-08-04
Fixed