140 Commits

Author SHA1 Message Date
UNITRONIX 9d8354188a fix(auth): improve LDAP UX and SQLite password backfill (Refs #260)
Copy panel password hashes into missing Go users on SQLite dual-DB so RustDesk client login matches the console; clarify LDAP sub-tab discoverability and provider-bound hints.
2026-07-20 23:44:58 +02:00
UNITRONIX ffe907e73a fix(web-remote): guest page 500 and cookie hijack (Refs #274)
Safe EJS bootstrap for /remote/guest; panel session wins over stale guest cookie.
2026-07-20 23:29:52 +02:00
UNITRONIX fc1ded710e feat(remote): add Guest Access Links for RdClient allowlist shares (Refs #274)
Temporary opaque links give guests a minimal Web Remote UI for selected devices only, without Console inventory or add-any-ID paths. Also fix mesh_share desktop tunnel auth for unauthenticated guests.
2026-07-18 12:27:46 +02:00
UNITRONIX 6f9b18771c fix(oidc): redirect SSO session to panel URL after IdP callback (Fixes #269)
After Keycloak/IdP callback on the Go API port, the browser now lands on the
Node panel session endpoint instead of hitting Go auth middleware. Adds Panel
URL setting, return-url preservation, login error UX, and docs.
2026-07-14 21:59:47 +02:00
UNITRONIX c2aedb10fe Enhance security and input validation across CDAP and organization routes
- Implemented input validation for `orgId` and `deviceId` in CDAP and organization detail routes using `assertSafeApiId`, returning a 400 error for invalid inputs.
- Added HTML escaping for `deviceId` and `orgId` in views to prevent XSS vulnerabilities.
- Hardened `patch-role-scope-i18n.js` against prototype pollution with a guard for unsafe nested keys.
- Updated CodeQL configuration to include new exclusions and ensure documented exclusions are applied.
2026-07-09 21:16:55 +02:00
UNITRONIX 382c082f21 fix(auth): add DB-backed RustDesk client sessions with sliding expiry
Fixes #242. Replace 24h JWT-only client tokens with configurable DB sessions (default 7 days, sliding renewal up to 30 days) and panel settings under Authentication -> RustDesk clients.
2026-07-09 20:00:53 +02:00
UNITRONIX 5a51548ebe feat(billing): refactor billing contract management and enhance API
- Updated billing contract structure to support multiple target types (organization, device group, folder, device).
- Refactored API handlers to accommodate new billing contract model, including creation, deletion, and listing functionalities.
- Enhanced database interactions for billing contracts, ensuring backward compatibility with legacy billing_org_contracts.
- Added new billing statistics endpoint to provide insights on active sessions and expiring contracts.
- Improved error handling and validation in billing package management.
2026-07-09 06:39:25 +02:00
UNITRONIX f357f903eb feat(remote): implement display settings dropdown with grid layout
- Added new CSS styles for a responsive display settings dropdown, enhancing usability with a grid layout.
- Updated HTML structure to organize dropdown items into sections for better clarity and accessibility.
- Removed redundant JavaScript calls to close dropdowns on item selection, streamlining interaction.
2026-07-07 21:46:06 +02:00
UNITRONIX c18276f9de feat(remote): update toolbar handle and drawer styles for improved interaction
- Enhanced CSS for the toolbar handle and drawer, adding new styles for expanded and collapsed states.
- Updated HTML structure to reposition the toolbar handle for better accessibility and user experience.
- Improved transition effects for smoother visibility during interactions, including adjustments to padding and margins.
2026-07-06 22:06:25 +02:00
UNITRONIX 8ed6ce457f feat(remote): enhance toolbar functionality and styling
- Updated CSS for the toolbar handle and drawer, improving transitions and visibility during interactions.
- Refined JavaScript to manage the toolbar's expanded and collapsed states, including new aria attributes for accessibility.
- Introduced a drawer-pulling effect for smoother user experience when toggling the toolbar.
- Adjusted HTML structure to support new features and ensure proper functionality of the toolbar components.
2026-07-06 22:00:08 +02:00
UNITRONIX 863c60a147 feat(remote): enhance toolbar notch visibility and animations
- Introduced new CSS styles for the toolbar notch to improve visibility and animations during user interactions.
- Updated JavaScript functions to manage the toolbar notch's visibility based on session states and user actions.
- Refined the toolbar's expanded state with smoother transitions and animations for a better user experience.
- Adjusted the HTML structure to ensure the toolbar notch is correctly initialized and styled.
2026-07-06 21:51:29 +02:00
UNITRONIX 7dcbb8a578 feat(remote): update toolbar UI and functionality
- Adjusted the positioning of the toolbar notch and refined the droplet handle for better visual alignment.
- Enhanced the toolbar's expanded state with new animations and improved responsiveness.
- Removed redundant code for toolbar pinning and streamlined the toggle functionality.
- Updated the HTML structure to ensure the toolbar handle is correctly positioned and functional.
- Improved CSS styles for better user experience and visual consistency.
2026-07-06 21:46:33 +02:00
UNITRONIX eb8a0732d5 feat(audit): align with RustDesk 1.4.8 and update language files
- Conducted an audit against upstream RustDesk tag 1.4.8, confirming no breaking changes to the wire format.
- Implemented various fixes including client version string, supported encoding handshake, and multi-session handling.
- Updated language files for Arabic, Czech, Danish, German, English, and Spanish to reflect new UI elements and messages.
- Enhanced clipboard and file transfer functionalities to match upstream behavior.
2026-07-06 21:15:43 +02:00
UNITRONIX d671c86859 feat: user scope UX, role labels, and device visibility defaults (#227)
Add folder/direct-device/strategy assignment from User Management, clearer Pro vs Remote Operator labeling, optional restricted device scope mode, and Go/Node scope parity.
2026-07-05 19:44:18 +02:00
UNITRONIX c752674139 fix: RustDesk Pro ID change and panel parity (Refs #213)
Accept RustDesk 1.4.7 empty-PK ID changes on the Go signal server, cascade panel DB rows on client/panel renames, and align Node panel with live events, strategies UI, org address book editor, and device-group accessible API payload.
2026-07-05 17:15:48 +02:00
UNITRONIX 135342a384 fix(rdclient): align web keyboard encoding with RustDesk native contract
Add keyboard-encoder.js for Legacy chr+modifiers and full Map scancode path so Shift, Caps Lock, and symbol keys work reliably on relay sessions including Hyper-V.
2026-07-05 00:40:00 +02:00
UNITRONIX 5764cced9f chore: remove commented CodeQL directive from main layout file 2026-07-04 23:38:58 +02:00
UNITRONIX 34fa96723d feat: add keyboard mode selection and reset functionality
Implement keyboard mode options (Legacy, Map, Auto) and a reset keyboard feature in the remote viewer. Update UI to include buttons for selecting keyboard mode and resetting the keyboard state, enhancing user control over remote input settings. Update localization files for new strings across multiple languages.
2026-07-04 23:19:14 +02:00
UNITRONIX c070054b39 fix(security): close remaining CodeQL alerts with suppressions and paths-ignore.
Add inline CodeQL suppressions for MeshAgent TLS pin and EJS layout body, and exclude those files from analysis so alerts #280 and #281 clear on the next scan.
2026-07-03 22:47:56 +02:00
UNITRONIX 425a2ad89a Add deleted device management UX for reserved ID reuse (Refs #213)
Panel shows soft-deleted devices with restore and permanent delete, hard delete works for already-soft-deleted peers, and change-ID conflicts return a clear localized message across all locales.
2026-07-03 19:24:04 +02:00
UNITRONIX 693fd3157e Add session picker UI and localization support
Implement a session picker overlay for selecting devices, including a search feature and navigation for folders, groups, and tags. Update localization files for multiple languages to include new session picker strings. Enhance the session tab bar with slim and expandable card designs for better user experience.
2026-06-30 22:01:17 +02:00
UNITRONIX 515bb1218d Fix inbound clipboard sync from RustDesk to rdclient web.
Decode zstd-compressed clipboard payloads, handle multi_clipboards, and write text/HTML/image formats to the browser clipboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 20:27:26 +02:00
UNITRONIX 8579e88be4 Fix split-domain RustDesk client config for dashboard and QR (Fixes #222).
Add PUBLIC_SERVER_ID, PUBLIC_RELAY_SERVER, and PUBLIC_API_URL with Settings UI,
unified endpoint resolution across Dashboard/Keys, and fallbacks via PANEL_PUBLIC_HOST.
2026-06-27 20:45:00 +02:00
UNITRONIX bb2ff08f65 Fix NTP server config not reaching betterdesk-server (Fixes #223).
Wire billing/NTP env from console .env into Go on Linux, Windows, and Docker; add OS NTP fallback and Commercialization settings UI to configure and restart the server.
2026-06-27 20:33:56 +02:00
UNITRONIX 241f9ba2b9 fix: Web Remote file transfer via dedicated FILE_TRANSFER relay (#217)
Opens a separate relay session for the file manager, adds a RustDesk-style
transfer modal, and cleans up rdclient toolbar/fullscreen UX.

Refs #217
2026-06-24 19:54:20 +02:00
UNITRONIX be9b0ce7dc feat(mesh): default-on migration, panel closure, KVM multiplex, WoL bridge
Ship mesh layer as default-on with updater/installer MESH_ENABLED=Y injection,
Settings groups/recordings UI, device power and filter UX, relay multiplexing,
WoL wake fallback, mesh RBAC permissions, and REST automation docs.
2026-06-21 23:38:07 +02:00
UNITRONIX fe471fd3bc feat(mesh): guest links, recording, port relay, and power actions
Extend MeshCentral compat with share grants, session recording (.mcrec),
TCP/UDP port relay (p=14), device power API, panel settings and device menu
actions, view-only guest remote access, and i18n across all locales.
2026-06-21 22:25:03 +02:00
UNITRONIX 611863753f feat(mesh): introduce MeshCentral compatibility layer with REST API and UI enhancements
Added a compatibility layer for MeshCentral, including a native Go implementation of key endpoints and a unified inventory for mesh agents. Enhanced the UI with new actions for mesh agents, such as terminal access and file management. Updated localization for mesh features and introduced new styles for mesh terminal overlays. Integrated interop testing for simulated and live MeshAgent connections.
2026-06-21 22:02:04 +02:00
UNITRONIX 8a9d06269d feat(ui): enhance device and folder layout with new tile bars and responsive behavior
Introduced a new layout for folder and device group tiles, encapsulated in a flexbox structure for better organization. Added responsive styles to ensure proper display on both desktop and mobile devices, improving user experience during navigation.
2026-06-21 21:13:14 +02:00
UNITRONIX 8c1e73ac0b feat(i18n): enhance localization with new mobile navigation and input modes
Added new localization entries for multiple languages, including mobile navigation labels and input modes (touch, touchpad, keyboard, special keys). This update improves user experience by providing comprehensive support for mobile users and ensuring consistent messaging across various languages.
2026-06-21 00:21:36 +02:00
UNITRONIX b16a067315 refactor: retire Beta 3.1 and desktop modes, clearing persisted states
Removed references to Beta 3.1 and desktop mode from the application, including event listeners and UI elements. Updated initialization logic to clear any persisted state related to these features, ensuring a clean transition for users.
2026-06-21 00:06:39 +02:00
UNITRONIX cff7176ac1 feat(i18n): add UI and confirmation messages for multiple languages
Enhanced localization files for various languages (ar, cs, da, de, en, es, fi, hi, hu, id, it, ja, ko, nb, nl, pl, pt) by adding new UI elements and confirmation prompts. This update improves user experience by providing consistent messaging across different languages for settings search, connection strategies, and user authentication options.
2026-06-20 23:56:00 +02:00
UNITRONIX 03e0e99675 feat(dashboard): enhance RustDesk mass-deployment documentation and UI
Updated the documentation for RustDesk mass-deployment, including the correct `--config` deploy string format and the addition of editable client server address fields. Enhanced the dashboard with features like **Copy deploy string** and **Intune script** snippets. Introduced a new environment variable `PANEL_PUBLIC_HOST` for better configuration management. Added UI elements for improved user experience in client configuration.
2026-06-20 23:01:55 +02:00
UNITRONIX 8a96de6e86 feat(agent-client): production readiness — build pipeline, security, Generator
Restore agent-client to git and wire agentClientBuildWorker for Tauri builds
(deb/rpm/AppImage/MSI) with branding and Go sidecar staging. Add TLS gate,
settings lock, policy sync, preflight UI, CDAP registry, and Generator
product_type split (agent-client vs support-agent vs rdclient).
2026-06-20 22:50:51 +02:00
UNITRONIX 7116c96c83 feat(branding): implement background image library and selection functionality
Added a new API endpoint to list uploaded background images, enhancing the branding settings page with a background image library. Implemented UI components for selecting and displaying background images, including improved handling of background size and position. Updated tests to validate the new functionality and ensure proper integration with existing branding features.
2026-06-20 20:11:39 +02:00
UNITRONIX 4d41b85fc0 feat(branding): enhance branding UI with new hero section and improved styles
Added a new branding hero section to the settings page, featuring a visually appealing layout with a kicker, title, and description. Updated styles for various branding components, including buttons and toolbars, to improve aesthetics and responsiveness. Enhanced background selectors and notifications for better user experience during branding updates.
2026-06-20 19:55:03 +02:00
UNITRONIX 6bcfd46fe7 feat(appearance): implement dynamic appearance loading and settings search functionality
Added functions to load and apply appearance settings dynamically based on user configuration. Introduced a search feature in the settings UI to filter through settings sections. Enhanced the branding readability alert to provide feedback on potential readability issues. Updated the backend to support a versioned appearance model and improved the branding API to include appearance data.
2026-06-20 19:42:17 +02:00
UNITRONIX a7a708d6af fix(orgs): expose shared address book tab
Restore the organization Address Book panel controls so admins can manage the shared org contacts promised for RustDesk client sync. Refs #190.
2026-06-19 06:47:13 +02:00
UNITRONIX 4e569a718f feat(i18n): add client configuration strings for multiple languages
Enhanced localization by adding client configuration related strings to various language files, including Arabic, Czech, Danish, German, English, Spanish, Finnish, French, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Norwegian, Dutch, Polish, Portuguese, Romanian, Swedish, Thai, Turkish, Ukrainian, Vietnamese, and both Traditional and Simplified Chinese. This update improves user experience by providing necessary configuration instructions in the user's preferred language.
2026-06-18 21:26:26 +02:00
UNITRONIX 5d69acba28 feat(upload): add upload status indicators for background images
Implemented a new upload status UI for background images, including progress indicators and error handling. Added CSS styles for upload status messages and integrated them into the settings view. Enhanced JavaScript functions to update the UI based on upload progress and completion, improving user feedback during the upload process.
2026-06-18 20:49:29 +02:00
UNITRONIX 2e01955f6c feat(rdclient): enhance desktop client with server validation, LAN discovery, and settings management
- Introduced server URL validation via `GET /api/bd/server-info` and `probe_server_url`.
- Added LAN discovery capabilities using UDP and optional mDNS for local network panel detection.
- Implemented a local settings window for managing URL, TLS settings, and user preferences.
- Enhanced dashboard with a unified sidebar and improved scrolling behavior.
- Updated documentation and pre-release checklist to reflect new features and requirements.
2026-06-14 21:12:41 +02:00
UNITRONIX 956e30935b fix(rdclient): GPU codecs, collapsible dashboard scroll, and session UX
Enable vendor-aware VA-API/GStreamer and WebView2 hardware decode for smoother
remote video; fix Connect invoke, session back-to-close, and dashboard layout
with collapsible device list and sidebar sections that scroll inside the window.
2026-06-14 19:58:15 +02:00
UNITRONIX 32d2044b8e feat(rdclient): address book dashboard with folders, groups, and tags
Replace the flat device table with a RustDesk-inspired address book: sidebar navigation, colored card grid, quick-connect bar, and 30s server sync using panel branding tokens and fonts.
2026-06-14 17:28:59 +02:00
UNITRONIX bb3da6b801 feat: implement RdClient login functionality and enhance authentication flow
- Added a dedicated login page for the Remote Desktop client, allowing operators to sign in when their session expires.
- Implemented safe return URL handling for the login process.
- Updated authentication middleware to support RdClient-specific routes and permissions.
- Enhanced localization support for the new login feature across multiple languages.
- Improved user experience by redirecting to the appropriate pages based on authentication status.
2026-06-14 17:28:59 +02:00
UNITRONIX 70d7d9271e feat: add Remote Desktop client dashboard and localization support
- Introduced a new Remote Desktop client dashboard accessible via the Tools menu, allowing users to connect to devices in a new browser tab.
- Added localization strings for the Remote Desktop feature in multiple languages.
- Updated sidebar to include a link to the new dashboard with appropriate permissions and styling enhancements.
2026-06-14 12:48:36 +02:00
UNITRONIX 44ed9feebd feat: add glass surface feature with customizable options
- Introduced a new glass surface effect for cards, modals, and forms, enhancing the UI with a frosted glass appearance.
- Added localization strings for the glass surface feature in multiple languages.
- Implemented settings for enabling/disabling the glass effect, adjusting color, blur, and opacity through the settings interface.
- Updated CSS variables to support the new glass surface styling.
2026-06-14 11:14:47 +02:00
UNITRONIX 3482fd14d0 Fix settings 500 by using template literal for canBrandingEdit.
EJS tags inside the settings.ejs body backtick broke template compilation.
2026-06-14 10:50:24 +02:00
UNITRONIX b9f60752b1 feat: enhance branding and appearance settings
- Added a modular studio layout with a live preview panel, autosave, server-side appearance profiles, and a built-in theme gallery.
- Expanded Google Fonts picker and enabled custom font uploads (woff2/ttf).
- Updated the appearance tab for real-time changes without full page reloads and introduced a read-only mode for users without edit permissions.
- Improved localization by updating language files with new strings for branding and appearance features.
2026-06-14 10:47:15 +02:00
UNITRONIX 72427da6af feat: enhance updates tab with Windows 11 design
- Redesigned the updates tab to adopt a Windows 11-inspired layout, improving user experience.
- Added a hero section for update status with dynamic messaging based on update state.
- Implemented new CSS styles for better visual consistency and responsiveness.
- Updated JavaScript functions to manage update status rendering and alerts effectively.
- Enhanced localization support by adding new language strings for the updates section.
2026-06-14 10:31:13 +02:00
UNITRONIX a8f32a845f feat: enhance multi-session viewer functionality
- Added session management features to synchronize media capture and input handling across active tabs.
- Updated audio handling to respect session activity and mute states.
- Improved clipboard functionality to only allow copying to local clipboard from the active session.
- Refactored input capture logic to ensure it only activates for the active viewer tab.
- Introduced a new `syncSessionMediaCapture` function to manage media input across sessions.
2026-06-14 10:09:59 +02:00