[RC] Latest Beta or Release Candidate
[30.0.0] - 2026-03-04
Removed
- OwnServerLicense and IssuedServerLicense command types and definitions
Fixed
- Enable snapshotting for
getDeviceInfoByDeviceUidprojection - Enable snapshotting for
NotifyDeviceFirmwareVersioncommand
[29.0.0] - 2026-02-25
Changed
DeviceListExportRequestedevent is now V2 withlocationUidsarray instead oflocationUidstring (versioning callback converts V1 to V2)
[28.12.0] - 2026-02-25
Added
- Newly created companies are initialized with default
companyFeatureEntitlementswhen neither the command nor the company network provides them
Fixed
- Cascade organization device plan updates directly via events instead of subcommands when company's allowed device plans change
[28.11.0] - 2026-02-24
Added
licenses.targetPlatformsto company commands and events
[28.10.0] - 2026-02-18
Added
initialAllowedDevicePlansfield toCreateCompanyNetworkandUpdateCompanyNetworkcommandsinitialAllowedDevicePlansfield toCompanyNetworkCreated,CompanyNetworkUpdatedeventsinitialFeatureEntitlementsfield toCreateCompanyNetworkandUpdateCompanyNetworkcommandsinitialFeatureEntitlementsfield toCompanyNetworkCreated,CompanyNetworkUpdatedevents- When creating a company,
initialAllowedDevicePlansfrom the associated company network takes priority over command'sallowedDevicePlans - When creating a company,
initialFeatureEntitlementsfrom the associated company network takes priority over command'scompanyFeatureEntitlements
[28.9.1] - 2026-02-12
Fixed
- PowerAction commands and events contains missing
REAPPLY_POLICY
[28.9.0] - 2026-02-09
Added
featureEntitlementsTooltipfield towhiteLabelSettingscommandfeatureEntitlementsTooltipfield towhiteLabelSettingsevent
[28.8.0] - 2026-01-29
Added
subscriptionIdproperty toDevicePlantype
[28.7.0] - 2026-01-27
Added
ContentGuardItemTagsAssignandContentGuardItemTagsUnassigncommandsContentGuardItemTagsAssignedandContentGuardItemTagsUnassignedevents
Fixed
- Missing handling of
imageNamein content guard item projection
[28.6.0] - 2026-01-23
Added
imageNameproperty toContentGuardItemcommands and events
Fixed
- Forbid deletion of ContentGuardCategory when it is referenced in some alarm rule condition
- Fix checks for category deletion by correctly handling moving of items between categories
[28.5.1] - 2026-01-22
Fixed
- SetDeviceTimerSettingsRequested and SetDeviceTimerSettingsLogged are correctly typed with originator awareness
[28.5.0] - 2026-01-21
Added
- Updated libs with support of Content Guard alert rules
Fixed
- Detection of orphaned collections in MongoDB
[28.4.0] - 2026-01-20
Added
- Updated types to add a new device firmware update feature flag
- Device plan management for companies and organizations:
- Company commands
CreateCompany,UpdateCompany: addallowedDevicePlansanddefaultDevicePlanId - Organization commands
CreateOrganization,UpdateOrganization: adddevicePlanId - Automatic propagation of company device plan changes to child organizations:
- Removing a plan moves affected organizations to the company's
defaultDevicePlanId - Modifying a plan updates affected organizations with the new plan data
- Removing a plan moves affected organizations to the company's
- Company commands
- Organization update enhancements:
- Add
productionSinceandmaxDevicesCounttoUpdateOrganizationcommand
- Add
- Company update enhancements:
- Add
trialPeriodEndedAttoUpdateCompanycommand
- Add
[28.3.1] - 2026-01-16
[28.3.0] - 2026-01-15
Added
- CRUD for ContentGuardCategory and ContentGuardItem
- UpdateDeviceScreenshotMetadata
[28.2.0] - 2026-01-09
Added
- Installed packages events for Linux platform
[28.1.3] - 2026-01-06
Fixed
- Fixed a lock-leak where commands yielding multiple events (multiple lock keys) could leave already-acquired locks held forever after an error.
- Remove plugins and runners on device deprovisioning and set device configuration to default.
- Fix auto creation of missing event collections in MongoDB when new event types are added.
[28.1.2] - 2025-12-16
Fixed
- Events auto indexes disabled - all events index creation moved to service startup to avoid potential performance issues related to mongoose autoindexing
[28.1.1] - 2025-12-15
Fixed
- Reject command
RequestDeviceListExportthat doesn't have organizationUid in originator (required for this feature) - make
appletUidandappletVersionoptional inDeleteTimingcommand
[28.1.0] - 2025-12-04
Added
- Upgrade redis version libraries to the latest (node-redis=v5, @signageos/redis=v2.1, Redis v8)
Fixed
- Fix event failures when tag was deleted but remained assigned to device
[28.0.1] - 2025-12-02
[28.0.0] - 2025-11-28
Removed
Requests.MadeSnapshotHourRequestDataevent type and it's handling logic
Added
Requests.ApiRequestsSnapshotCreatedevent type for direct API->PC requests snapshot creation
[27.20.3] - 2025-11-26
[27.20.2] - 2025-11-25
Fixed
- Brutally optimize fetching events for NotifyServerPolicyFailure and UnassignPolicyFromDevices (they were fetching across all devices by accident)
- Correctly log some delayed command metrics
[27.20.1] - 2025-11-20
[27.20.0] - 2025-11-20
Added
- UpdateDeviceConfigurationTelemetryCheckIntervalSchema changed to strict
- Added metrics for tracking command application duration, event storing duration, out of order events check duration, snapshot fetching duration, events fetching duration and events reducing duration
[27.19.1] - 2025-11-19
Fixed
RemoveOrganizationTagnow removes deleted tags from devices properly
[27.19.0] - 2025-11-19
Added
customDomainto auth0 configuration
Fixed
- Recipe status
AppliedandFailedare final and cannot be changed anymore
[27.18.0] - 2025-11-10
Added
- Added metrics for tracking parts of command processing
Fixed
- Validation for applying already applied provisioning recipe
[27.17.0] - 2025-11-03
Added
- uid to
CreatePolicycommand - uid to
ClonePolicycommand - items to
PolicyCreatedevent
[27.16.0] - 2025-10-30
Added
- New field
customHelpDeskContentto thewhiteLabelSettingscreate and update command and related event
Fixed
- Removed unused command
ReportDeviceConfigurationProtocol - Removed unused command
CreateDeviceReportFile
[27.15.2] - 2025-10-23
Fixed
- (temporary) Inefficient hotfix to prevent publishing events to exchanges in incorrect order. Optimistic processing with transaction rollback when incorrect order is detected.
[27.15.1] - 2025-10-21
[27.15.0] - 2025-10-21
Added
- New state for DPR
INVALID
[27.14.2] - 2025-10-17
Fixed
- missing
EXTENDED_MANAGEMENTadded toUpdateDeviceConfigurationTelemetryCheckIntervalSchema
[27.14.1] - 2025-10-14
Fixed
- Properly rejects deletions on redeemed credit licenses
[27.14.0] - 2025-10-14
Added
PolicyArchivedevent is merged withPolicyRemovedin favour of using recycle binArchivePolicyandUnarchivePolicycommands renamed in favour of using recycle bin
Fixed
uidfield generation forAccountCreatedV4eventOrganizationTagUpdateandOrganizationTagCreateexceeding maximum tag tree depth will no longer cause infinite retries
[27.13.2] - 2025-10-08
[27.13.1] - 2025-10-08
[27.13.0] - 2025-10-07
Added
- Zod schemas for applet commands
Fixed
- Applet icon url to be undefined rather than null
[27.12.0] - 2025-10-02
Added
Accountcommands and events for settings field
[27.11.1] - 2025-10-01
Fixed
uidfield is generated forCreateSimpleAccountcommand when not provided- Remove UpdateDeviceConnectionsIndex command handling which is no more used
- Remove SyncDeviceOrganizationSubscriptions command which is no more used
- Remove CleanDeviceScreenshots command which is no more used
- Remove CleanTemperatures command which is no more used
- Remove CleanTimingCommands command handling which is no more used
[27.11.0] - 2025-09-24
Added
RemoveAccountandRestoreAccountcommandsAccountRemovedandAccountRestoredevents
[27.10.0] - 2025-09-18
Added
- ability to change
nameviaOrganization.UpdateCompanycommand
[27.9.0] - 2025-09-04
Added
- Handle plugin reload
- Handle runner reload
- Telemetry configuration intervals for RUNNER, RUNNER_CUSTOM, PLUGIN
[27.8.0] - 2025-09-03
Added
- AddOrganizationTags command
[27.7.5] - 2025-09-02
Fixed
- Plugin get/set events output pluginUid and version instead of assignmentUid
- Runner get/set events output runnerUid and version instead of assignmentUid
[27.7.4] - 2025-09-01
Fixed
- Fix possible incorrect ordering of events in AMQP queue when service is killed unexpectedly (i.e.: OOMKill)
[27.7.3] - 2025-08-28
Fixed
- Bump
@signageos/libdependency to22.x
[27.7.2] - 2025-08-28
Fixed
- Enhance
Device.Tag.OrganizationTagRemovedaggregate to be idempotent - Enhance
Device.Tag.OrganizationTagAssignedaggregate to be idempotent - Removed unused command
SaveOfflineActionsFileand its aggregate
Added
- New mechanism that prevents from having inconsistent order of events anymore even if RabbitMQ temporarily goes down (repeater pre-publish invocation)
[27.7.1] - 2025-08-26
- Fix and refactoring of whitelabel and company network projections
[27.7.0] - 2025-08-21
Added
- Runner set/get functionality
[27.6.1] - 2025-08-19
[27.6.0] - 2025-08-19
Added
- Plugin set/get functionality
Fixed
- Removed unused event
Device.Screenshot.DeviceScreenshotsCleaned - Prevent publishing events to AMQP in incorrect order due to lack of locking mechanism
- Improve throughput of publishing event to AMQP by using batch publishing
[27.5.1] - 2025-08-13
[27.5.0] - 2025-08-12
Fixed
- Enhance
addAccountToCompanyAggregateto support updating account access level when an account is invited to a company and has no other company privileges.
Added
- Runner assignment
[27.4.2] - 2025-08-05
Fixed
- (internal) Fixed race condition in concurrent command processing by improving lock acquisition and validation
[27.4.1] - 2025-08-04
[27.4.0] - 2025-07-29
Added
- Plugin management
- Plugin version management
- Runner management
- Runner version management
- Plugin assignment management
[27.3.2] - 2025-07-22
Fixed
- (internal) Added snapshotting for
NotifyDeviceFirmwareVersionaggregate - Deduplication of eventTypes and commandTypes
Added
- Processed command response contains
lastEventsfor synchronization
[27.3.1] - 2025-06-28
Fixed
- (internal) missing TelemetryConfigurationCheckInterval.APP_MODULES added
[27.3.0] - 2025-06-20
Fixed
- (internal) Added forgotten snapshot for projection
getAlertUidsByDeviceIdentityHash - (internal) Added snapshotting for
UpdateDeviceNameaggregate - Metrics for
aggregated_eventsnow useaggregatedEventsCountinstead ofcreatedEventsCount
Added
- Ability to disable company secrets
- Export metric
sos_command_handler_projection_greedy_event_filter - Export metric
sos_produced_events
[27.2.0] - 2025-05-28
Added
- command handler metrics
- generated commands types
- generated events types
[27.1.0] - 2025-05-16
Added
- Support for POT (proof of transaction), notification about redeem transaction
[27.0.0] - 2025-05-16
Changed
- ExportDataRequests commands and events to have remoteFilePath instead of signed uris, because when service goes down all presigned uris expire
[27.0.0] - 2025-05-16
Changed
- ExportDataRequests commands and events to have remoteFilePath instead of signed uris, because when service goes down all presigned uris expire
[26.3.0] - 2025-05-07
Added
- Event to
device-secrets-managerabut new device key - Company network UID to
CreateCompanycommand - Company network assignment when
CreateCompanycommand containscompanyNetworkUidfield
[26.2.1] - 2025-05-02
Fixed
- Company network supports array of white-label settings uids
[26.2.0] - 2025-04-30
Added
- Upgraded commands and events - custom out-of-credits message as a part of a white-label settings
[26.1.2] - 2025-04-29
Fixed
- Commands and events build artifacts are CommonJS compatible
[26.1.1] - 2025-04-29
[26.1.0] - 2025-04-29
Added
- bump common-types, add
CompanyFeatureEntitlements.GodModefeature entitlement
[26.0.0] - 2025-04-29
Changed
- Monorepo of Commands, Events and CommandHandler was created, so new major version will rise with all repos together.
[25.11.0] - 2025-04-28
- Changelogs have been merged together, for old changes see ./CHANGELOG_old_command_handler.md