Security
- Delegated address-book read-only is enforced. A console role granting Address Books "View" could still edit books the user owned or held a Full rule on. (#58, @AJV20)
- Web client View-only blocks every input channel. Clipboard send and the remote terminal bypassed the input block; both now go through one fail-closed policy, and enabling View-only closes an open terminal. (#59, @AJV20)
- Overview respects the audit permission. Connection charts, active sessions and alarm tiles no longer render or query for roles without Logs access. (#56, @AJV20)
- Dependency updates. Guzzle and CommonMark past open advisories — 8 findings to 0. (#57, @AJV20)
New
- Bulk move to group. Select devices, move them to any group you can access, or to no group. Mobile gets selection checkboxes and the bulk bar. (#47/#50, @AJV20)
- Health endpoints.
GET /health/liveandGET /health/ready— boolean-only, no session, rate-limited on the file cache so they answer through a database outage. Readiness checks database, ID server and relays; point monitoring at it. The container healthcheck uses liveness. (#48/#51, @AJV20) - Offline-alert grace and maintenance snoozes. A configurable grace period before a device-offline notification, and admin snoozes per device or group for planned maintenance. Delivery state is durable now — recovery notifications survive restarts. (#49/#52, @AJV20)
Fixed
- Address-book permission checks no longer repeat the group-membership query per book. (#60, @AJV20)
- The IP column wraps correctly in a tight device table.
Upgrading
Two migrations. No settings changes required.
docker pull marcpope/cortendesk:1.8.1
docker pull ghcr.io/marcpope/cortendesk:1.8.1