New: Live Filesystem Browser for Backup Plans
Building a backup plan no longer means typing directory paths from memory and praying you spelled /var/lib/mysql right. Every Backup Directories field — both on the create-plan form and on every edit-plan card — now has a Browse... button that pops a live, interactive tree view of the client's filesystem.
Pick directories from the tree, shuffle them between the tree and the selected list with the » / « buttons, click Use Selected, and the textarea is filled in for you.
How it works
- The BBS server queues a
list_dirtask on the client. The agent walks the requested path withos.scandir, bounded depth and entry count, and returns a JSON tree. - The first click pulls 3 levels at once, so most navigation is already in your browser by the time you click again.
- Hidden files and pseudo-filesystems (
/proc,/sys,/dev,/run,/snap,/tmp) are skipped by default — toggles in the modal let you reveal them. - The Browse button only appears for online clients.
Snappy by design
- Burst polling on the agent. The moment the agent picks up a
list_dirtask it drops to a 2-second poll interval for the next 60 seconds. While you're actively clicking around, the agent stays in fast-response mode. Walk away and it quietly returns to its normal interval — no extra agent load when nobody's browsing. - Persistent result cache. Each fetched subtree is cached for 15 minutes on the server. Close the modal and re-open it within that window and the tree appears instantly with no agent call. Cache is keyed per
(agent, path, depth, hidden, show-all)so toggling options correctly re-fetches. - File-based cache backend. The BBS Cache layer now writes to
/var/bbs/cache/appas a fallback when memcached isn't installed, so caching actually works on every install instead of silently no-op-ing.
Smaller things that landed alongside
- Fixed a long-standing
bootstrap is not definedrace on the schedules tab — bootstrap.bundle.js now loads from<head>so view inline scripts have it available immediately. - "Add Backup Plan" no longer blanks the schedules tab when an edit panel was open underneath.
<input type="time">on the weekly/monthly edit form stops warning when the plan has multiple comma-separated times.- Admin API picked up users CRUD, server log read, schedules overview, and S3 credential endpoints (any admin token, no platform requirement).