9 Commits

Author SHA1 Message Date
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 f8cc0581dd Add Go server pagination, observability, and heartbeat sweep tuning.
SQL-paginated admin peer lists, scoped RustDesk group loading, two-phase CheckHeartbeats, and richer /api/health and /metrics for large fleets.
2026-06-14 11:47:48 +02:00
UNITRONIX a82bcca559 fix(client-api): populate device_group_name for manual groups (#138)
RustDesk 1.4.x filters Available Devices locally by exact
device_group_name match; only folder names were set before, so manual
panel groups appeared in the sidebar but showed zero peers. Also align
the TOTP login challenge with RustDesk 1.4.7 (email_check/tfa_check).
2026-06-08 00:09:56 +02:00
UNITRONIX 77bce0f49d fix(client-api): wire RustDesk routes and lock down pro role (#138)
Register missing Go client-compat endpoints (server-key, software, user
groups, strategies, audit, peer-key), enforce audit.view on audit GET
routes, and align admin checks with global_admin.

The pro (API-only) role now has zero device permissions: no inventory,
folder/group sidebar, peer keys, or server-side AB enrichment — it is
intended solely for RustDesk PRO activation in the desktop client.

Refs #138
2026-06-05 23:32:32 +02:00
UNITRONIX 112433b4f9 fix(api): read RustDesk panel groups/folders from PostgreSQL
Panel device groups, folders, ACL and assignments moved from auth.db into
the consolidated Postgres schema. Go now uses PanelSyncStore on PostgresDB
when -db is postgres://, with auth.db kept only as a SQLite fallback.
2026-06-03 03:02:21 +02:00
UNITRONIX f86ac0d8b5 fix(api): align RustDesk desktop sync with client endpoints
Auto-detect /opt/BetterDeskConsole/data/auth.db when AUTH_DB_PATH is unset
(Postgres deployments). Merge server tags into GET /api/ab for the legacy
Tagi sidebar. Return lightweight payloads on /api/device-group/accessible.
2026-06-03 02:58:13 +02:00
UNITRONIX 52018c67af fix(api): separate RustDesk tags, groups, and folders sync with ACL
Split peer list building from device groups so /api/group only returns
panel groups and folders from auth.db, while /api/ab/tags and peer tags
stay on their own channels. Apply the same group scope and allowed_users
filters as the Node client API, including folder peer lists.
2026-06-03 02:50:03 +02:00
UNITRONIX 9c80c53474 fix(api): restore RustDesk groups/tags for Go JWT logins (#21121 proxy)
Node requireAuth only accepts 64-char auth.db tokens, so local /api/group
handlers returned 401 after Go JWT login. Proxy group routes to Go again,
always merge peer-tag groups, resolve auth.db path candidates, and map
console user ids for group ACL checks.
2026-06-03 02:34:52 +02:00
UNITRONIX 16c4efa58c fix(api): sync panel device groups to RustDesk client via auth.db
Panel groups and folders live in console auth.db, but Go /api/group only
exposed peer tags. Read auth.db (AUTH_DB_PATH), apply allowed_users and
user-group access, and mirror Node getRustDeskDeviceGroups. Keep /api/group
on the Node :21121 proxy for compatibility; document verification steps.
2026-06-03 02:28:45 +02:00