[9.0.1] - 2025-02-06
Fixed
- Optimized large payload handling in
/http-socket/transmit-messages
by streaming JSON withstream-json
package, preventing memory overflow andPayloadTooLargeError
error
[9.0.0] - 2024-10-30
Added
- Export metrics
sos_platform_incoming_messages_bytes_total
andsos_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
- PostgreSQL database
[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
- Updating of IP addresses
[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 meansv1
[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