Country-based legal terms agreement: account profile and welcome flow let users pick their country (grouped by region) to determine which legal terms apply, replacing the previous direct region selector
(internal) createObservableDataModel factory and useFooObserver(params, onChange) hooks for typed, refcounted live updates with created / updated / deleted change payloads
(internal) Replace timeoutMS with serverSelectionTimeoutMS for MongoDB connections to prevent false 503 healthcheck failures when a single replica node is degraded
Await remote desktop stop before closing modal to prevent stale session on reopen
Type compatibility with @signageos/common-types 6.x (TS2590 union complexity in BulkOperationComposable, TS2322 in DeviceDetail action log components)
Fix unnecessary policy API calls on device detail page when device has no assigned policies
(internal) Migrate IAccount type from legacy hand-written interface to API-based Zod-inferred type from account.types.ts
(internal) Move account fetch/update to API callbacks (remove server-side action handlers)
Scheduled reboot remove button no longer requires filling in the new reboot form first
Supra UX improvements: show info banner when device applet/timing is controlled by Policy; disable Supra toggle on timing list when device is not colocated with Supra server or when Policy governs applet (toggle still reflects current status)
DevSpace access page: show "Assign now" button for Company Master/Owner linking to Company accounts settings
Updated and optimized application platform icons, added flavour-specific icons for BrightSign (Nine), Tizen (TEP, ePaper), and webOS (IDCAP)
Improve Scripts UX: auto-select latest version when executing, tooltips on action buttons, filter bulk operation scripts by device organization
Organization updated action log
Content Guard UX improvements: replace valid/invalid labels with Badge dots and tooltips, move type tabs to filter Select dropdown, add URL param for item drawer deep-linking
Harmonized loading indicators across all pages — replaced WaitIndicator (yellow GIF) and legacy Spin with Ant Design Skeleton and native antd Spin
Improved detail page loading skeletons to match final page layouts (Device, Location, Organization, Alert Rule, Plugin, Runner, Applet, Package, Custom Script, Device Policy, Bulk Operation)
Centralized detail page loading skeleton in Page component — removed per-page custom loading content for uniform loading experience
Replaced WaitIndicator early-return pattern in Terms and Conditions page with Page loading prop
Auto-resize icon uploads to 50x50 pixels instead of rejecting wrong dimensions
Harmonize button icons (PlusOutlined) and list page button consistency across all pages
Harmonize detail page header buttons with More dropdown pattern
Device Export using api
(internal) Invalidate white label cache on company network update in admin-api
FeatureFlags management in policy
Filtering and search for Plugin and Runner list pages (search by title, filter by platform and tags)
Client-side search for Scripts tab on device detail page (search by name or description)
Display banned reason in device detail header info
Supra on-premise: device detail Supra tab with status, install/uninstall actions, connected clients, and monitoring; Supra Server badge on location device list; Supra toggle column in timings table
Supra on-premise: dedicated SupraActions RBAC permission; optimized SupraClients row-level data fetching
Device Export using api
Device Export drawer UX improvements: Export to CSV button in header, checkbox list for column selection with search and select all, filter-awareness note, improved close confirmation message
(internal) Invalidate white label cache on company network update in admin-api
(internal) Removed unused OrganizationDetailPage code: production toggle, max devices count form, issued license table, and all related actions, sagas, reducers, handlers, and facades
Hide Contact sales on EndOfTrialVersionPage for WL
(internal) Refactored favorites to data model
(internal) Moved the functionality to change an organization's parent company from the Box app to the Judo app. This operation requires admin-only access for security reasons.
Improved Subresource Integrity (SRI) implementation for CDN resources
(internal) Fixed authentication timing issues for legacy login by conditionally enabling API calls based on Redux auth state, and prevented permissions errors on page refresh by deferring account fetching on public routes
Company member list is automatically refreshed after successfully inviting a new account to the company. This provides immediate feedback to users without requiring a manual page refresh.
Test new device gateway feature on device detail Info tab allowing users to manually switch individual devices between old and new endpoints device can connect to
Refactored core UI components to align with the updated Design system guidelines, ensuring consistent styles, spacing, and interactions across the application
(internal) Locked domain model to command dispatcher
Create new license form – instead of separate inputs for the number of devices and number of months, there is now a single input for the total number of credits
Additional validation step before creating bulk action that allows users to preview how a bulk action will affect their devices before actual execution
Credit transactions are now loaded using a REST API (Credits tab on a company detail page, out of credits page)
Improved description and copy for Licenses sections.
(internal) evaluation of whiteLabelSettings within a company network
(internal) Force usage of zen-observable instead of the native Observable. Some browsers now include a native Observable
implementation, but it is incompatible with the expectations of the aperol library, which depends on zen-observable. The polyfill from
@signageos/lib/dist/TypeScript/observable-polyfill attempts to patch this, but does not enforce zen-observable when a native
implementation is present. This change ensures zen-observable is used consistently, avoiding compatibility issues.
(internal) company billing plan is set to default value
showing correct number of scripts execution for Device
handle invalid app version in CoreAppSelect(SmartBuilder), when choosing Android target build
Fix rendering of Google ChromeOS Setup tab on organization detail when current domain is Sony-specific
(internal) Send company network UID when creating new company under company network
(internal) Pages related to Device Telemetry are now loaded from MongoDB database instead of InfluxDB. This change is transparent to the
user and should not affect the functionality.
License list page for company network managers
License list page for admins
Added license redeem action for company owner
Added basic licenses stats to company overview page
Added license balance info on company detail page
Added new version of custom script tab on device detail page
Execution of custom script is showed properly in device history on the device detail page
Show license stats and other info only for companies with credit billing type
Bulk actions support custom script execution
Users can list scripts by selecting the Scripts menu item under the DevSpace menu section.
Script has its own detail page with detailed information about the particular script. Additionally, the source code can be downloaded for
each supported platform.
New license form that allow users to create application licenses
(internal) Show license info warning based on company credits
(internal) Show license stats expanded to whole row
(internal) Modal on admin Accounts page for managing company network manager role
Company network - list companies page
Added new page for company network managers to allow them to create new account & company
Allow to set company billing model for company network managers
(internal) Fix for company network create company form
Handle missing device timezone by falling back to UTC
Fixed an issue with finding the latest application version by application type, added proper handling for cases where no application
version is available
Fixed determining the success of power action scheduling based on policy for Android devices
Bulk action wizard keeps current filter even when socket is reconnected
Bulk action from alert detail for specific devices selection works
Update policy name does not impact policy items
(internal) Fix creating license for higher amounts of generated licenses
If secret value types are present in an applet configuration, whether through a bundled applet or a device policy, they are now properly
masked in the user interface
Policy applet item configuration does not set empty object
(internal) Function that parses an account from the ACL state. If the account in the ACL state is empty, it retries parsing until a valid
account is obtained.
The user interface has been refined for a lighter, more streamlined look.
Added an option on the Profile section to switch to a high-contrast theme, improving accessibility for users with visual impairments.
Added firmware filter function for WebOS
Removed the "Tags" and "Packages" tabs from the organization detail page; packages and tags now have dedicated pages under the "Organize"
group in the main menu
Added Generated by column to Organization VPN configs, allow managers to see all organizations configs, users only their own configs
(internal) fetchPayload function from @signageos/data-query package is wrapped by withTimeout function to ensure that the request will
not hang indefinitely
Remote Desktop button control for Tizen
Device list export CSV includes location address, gps and custom id
Device list has column which shows current applet version
Device auto recovery enable settings configuration moved to confirm popup
(internal) Device peer recover is now only for admins
Catching of component crashes on device detail page doesn't lead to an error page with only main menu available. Now only detail tab with
error shows error and other tabs are still accessible.
Custom pin icons to location and default custom pins for organization
Bulk provisioning QR code scanner sends the scanned data correctly so recipe can be created
(internal) privileges for removing from organizations on admin page - accounts
Fix organizations devices count for non-admin users
Device network connections behavior - showing only data that device reports. Active connections are those with reported IP address.
Prevented crashes when no DNS servers are reported.
(internal) Fix customScript interface. CustomScript type is used instead of string.
If you try to save the NTP server along with the timezone for the Emulator, it appears to save initially, but the NTP server gets
automatically deleted when the timezone is changed. The Emulator does not support this setting, and it is no longer available for this
type of device.
Alert rule target filters are visually aligned
Changing the filter now correctly resets the "Generate CSV" button for applet and system logs
(internal) remove electron dependency which was not used and greatly increased size of docker image
Simplified sorting of device network connections (info tab on device detail page)
Before creating a new support ticket, users are prompted to fill in a Pre-Deployment Checklist to ensure that common solutions have not
resolved their issue.
(internal) Support checklist is stored in database now
Locations and location tags to alert rule filter
Alert rule allows to add multiple emails that will be notified when alert is triggered
(internal) Support checklist respects "white-listed" company uids if any provided
Custom scripts editor has correct syntax highlighting on Linux devices, using bash instead of powershell
(internal) whole area of company select when switching company is clickable, not just the text
(internal) deprovisioned devices statistics on admin dashboard show correct data and whole statistics area is being loaded on demand
Device policy "EXTENDED_MANAGEMENT" (RM server) is now stable propagated to assigned devices
The device detail now accurately displays “Last Ping” as “a few seconds ago” instead of incorrectly showing “a minute ago” for the
60-second ping interval.
(internal) Data source for latest monitoringLog records
(internal) temporarily hide remote desktop tab on device detail page for non-admin users and application types other than BrightSign
Debug URL in Device Troubleshooting page pointing to correct Weinre instance
(internal) Fixed trial period check
(internal) Core app selects for admins. It does not fetch all possible anymore which broke selects but it fetches part and if anyone needs
version that is not shown in select searching can give more precise results