On this page
Latest Beta Version
[11.1.2] - 2026-05-26
[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
Improved storing data for device connections for fetching purposes
Improve device AMQP queues
Removed
Configuration endpoint and api, now it is a separate service
[4.4.2] - 2021-07-23
Fixed
Performance issues when devices are reconnecting too fast
[4.4.1] - 2021-04-14
Fixed
Prevent possible rejecting socket connections when the same by name is already open
[4.4.0] - 2021-04-07
Added
Updating last used configuration protocol
[4.3.0] - 2021-03-24
Added
Add extendedManagementUrl into device /configuration API
[4.2.0] - 2021-03-17
Added
HTTP only support for device connections (instead of WebSocket only connections)
[4.1.2] - 2021-01-13
Fixed
Optimize consumption of actions from device (skip some unused actions)
[4.1.1] - 2020-12-30
Fixed
Marking device as offline in organization context to fix box devices filter for offline
[4.1.0] - 2020-10-28
Fixed
Platform server pings optimization
Added
If configuration endpoint fail during SSL handshake the same endpoint will be called without SSL
[4.0.1] - 2020-08-12
Fixed
Updated model dependencies, containing the fix of online devices per organization statistics
[4.0.0] - 2020-08-05
Changed
Updated model dependencies, device connections redesigned
[3.0.1] - 2020-07-15
Fixed
Returns new static url for windows displays
[3.0.0] - 2020-06-09
Changed
AMQP library upgraded with an updated schema of device action queue (major incompatible changes)
[2.9.4] - 2020-06-03
Fixed
Removed deprecated raven and use sentry instead
[2.9.1] - 2020-01-14
Fixed
Fetch device from Postgres to get it's details before registering it to device connections watcher
[2.9.0] - 2019-12-23
Added
Use redis connections watcher to track connected devices
Fixed
Old dependencies replaced by new from sOS namespace
Readability refactoring of configurationAPI and powerActionAPI
[2.8.0] - 2019-11-20
Added
Most of the business logic is extracted into a separate device consumer service so platform is now just a lightweight gateway for devices to connect to and the rest is handled in device consumer
[2.7.0] - 2019-10-14
Added
Subscription type of device registration based on subscription type of organization
[2.6.0] - 2019-08-28
Added
Handling client-side device deprovisioning
Fixed
Allow to omit frontAppletVersion in appletVersion
[2.5.3] - 2019-07-23
Fixed
Optimize platform server pinging
[2.5.2] - 2019-07-22
Fixed
Added platform server pinging (notifying alive servers)
[2.5.0] - 2019-05-29
Added
Option to configure priority class in kubernetes
Option to configure node affinity in kubernetes
Rolling update in kubernetes with configurable parameters
[2.4.0] - 2019-05-08
Added
Power action accepts and handle device power action backup restart
Add subscription type to device configuration to enable toggle Open/Platform
[2.3.0] - 2019-04-04
Added
Servlets - send the list of active servlets to the device when it requests it
[2.2.2] - 2019-03-14
Fixed
Possible memory leaks in WebSocket server factory and AMQP consumption
[2.2.1] - 2019-03-11
Fixed
This time REALLY the fixed bug with keeping devices with icons (with AMQP double consumption)
Major fixes in web socket devices connnection to amqp queues
[2.2.0] - 2019-02-27
Fixed
Devices sometimes not receiving actions due to a bug in AMQP consumption logic
Added
Server requires license to allow connect devices
[2.1.2] - 2019-02-13
Fixed
Device socket error codes wrong range of numbers used
If device socket doesn't close even after calling disconnect, terminate it forcefully
Applet enable/disable device support
[2.1.1] - 2019-02-01
Fixed
Device socket accidently multiple binding
[2.1.0] - 2018-12-16
Added
Don't convert applet timing commands to CQRS commands but straight to events to bypass command handler. This is a major optimization for command handler.
Don't convert pings to CQRS commands but straight to events to bypass command handler. This is a major optimization for command handler.
[2.0.4] - 2018-11-14
Fixed
[2.0.3] - 2018-11-13
Fixed
Supress error when action to device is not delivered correctly (socket is probably terminated)
[2.0.0] - 2018-09-11
Added
Dispatching of applet commands to device
Changed
External WebSocket (and socket.io) API is in new version called v2. Every new device must be connected to path /v2/ (or /v2/socket.io/) instead of to root which means v1
[1.0.3] - 2018-08-10
Fixed
Postponing of device settings actions. Now, it shouldn't happen that some action is not delivered.
Weinre debuging of devices
[1.0.0] - 2018-07-09
Added
New API for upgrading device firmware version
New API for scheduling device power actions
Changed
Added new possibility to connect displays over basic WebSocket
[0.36.3] - 2018-06-20
Fixed
Fixed /display emmulators for new version of default app 2.3.0+
[0.36.1] - 2018-06-08
Fixed
Fixed typo in set video orientation action sent to the device, that prevented explicit video orientation being set at all.
[0.36.0] - 2018-06-05
Added
Set explicit video orientation different from screen orientation
[0.35.2] - 2018-05-24
Fixed
Downgraded socket.io library to fix repetable reconnecting of devices
Disallow banned devices to connect a server
[0.35.0] - 2018-05-11
Added
Changelog file containing all changes in current project
Devices will not show the invalid verification hash for short time until valid one come