Security
- Offsite restores could reach another client's storage folder (GHSA-wq74-jrrv-f584). Restoring an orphaned repository from an offsite copy used the posted repository name as part of the repository path without checking it, and restoring an offsite copy into a new repository did the same with the copy's name. A user with repository permissions on one client could point either one into another client's folder. Orphan restore names are now limited to letters, numbers, hyphens and underscores, and a copy's folder uses a cleaned-up form of its name. Affects 2.75.0 through 2.99.7. Thanks to @OlderMutt for the report.
New
- Microsoft SQL Server Backup/Restore plugin (#547, #548). The agent takes a native
BACKUP DATABASE ... WITH COPY_ONLYof each database before the backup, so it doesn't disturb any backup chain you already have, and the.bakfiles go into the archive. The Restore tab restores them with Replace (after a safety backup of the current database) or Copy (under a new name). A Detect databases button on the plugin form lists the server's databases to pick from. Windows clients need nothing installed; Linux clients needsqlcmd. The agent has to run on the SQL Server machine, so Azure SQL and RDS aren't supported, and dumps go to disk first (no streaming option yet). Tested on Windows with SQL Server Express; Linux clients and other editions are untested, so please report how it goes. Thanks to @kernelion for writing it.
Fixes
- Newer agents no longer show as outdated (#562). When an agent ran a newer version than the one bundled with the server, which happens with the agent container image, the Updates tab and the clients list counted it as outdated and offered to "upgrade" it to the older version. Thanks to @odoncm for the report.
- API: new clients get a profile, and new plans start from it (#563).
POST /api/v1/clientsacceptsclient_profile_idand uses the default profile when you leave it out, as the web form does.POST /api/v1/clients/{id}/planstakes anything the request leaves out from the client's profile: its template, schedule and retention. Before, retention was always 7 days, 4 weeks, 6 months. Thanks to @pano9000 for the report. - Streamed database dumps no longer stall on snap images. A symlink into
/procor/dev/fdunder a backed-up directory (the old core snap ships one atdev/stderr) made borg wait on its own output until the server killed the job. Those links are now skipped, and so are/dev/nullnodes that can't be opened. - The agent container image now publishes with each release instead of from the development branch, so it can't run ahead of the server.
Agents update to 2.100.0 in this release.