Phase 14: multi-host file browser (0.15.0)
The Files page gained a host switcher: when agents are registered, a Host
dropdown switches the whole browser between the local host and any online agent
(switching resets path + clipboard). Every file operation is sandboxed by the
selected agent's own ALLOWED_BROWSE_ROOTS/HOST_ROOT_PREFIX.
- agent_app.py: /agent/files/* (list/read/download/write/mkdir/touch/rename/
copy/move/delete/upload) reusing file_service + device_service; BrowseError
-> HTTP 400.
- routers/agents.py: proxy routes at /api/agents/{id}/files/* (audit-logged
mutations); download streams via download_to_file, upload via upload_file.
Reuses the WriteBody/NameBody/RenameBody/TransferBody models from routers.files.
- Frontend: filesApi methods take an optional trailing agentId; Files.tsx tracks
a host and threads it through every call, query key, and the editor/dialogs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
012614f5fb
commit
c5f591749f
@@ -8,7 +8,7 @@ as intuitive as Dockge, as capable as Portainer for Compose workflows.
|
||||
> destinations) + Phase 7 (Scheduled backups) + Phase 8 (Remote-stack backups)
|
||||
> + Phase 9 (Networks) + Phase 10 (iGPU passthrough) + Phase 11 (Remote UX &
|
||||
> network attach) + Phase 12 (File browser) + Phase 13 (Multi-host networks &
|
||||
> images) complete.
|
||||
> images) + Phase 14 (Multi-host file browser) complete.
|
||||
|
||||
## What works today (Phase 1)
|
||||
|
||||
@@ -146,6 +146,16 @@ as intuitive as Dockge, as capable as Portainer for Compose workflows.
|
||||
container or connect any container on the host (`POST /api/networks/{id}/connect`
|
||||
/ `/disconnect`).
|
||||
|
||||
### Phase 14 — Multi-host file browser
|
||||
|
||||
- **The Files page now has a host switcher.** When agents are registered, a
|
||||
*Host* dropdown at the top switches the whole browser between the local host
|
||||
and any online agent; switching resets the path and clipboard.
|
||||
- All file operations (browse, view/edit, create, rename, copy/move, delete,
|
||||
upload files & folders, download) work against the selected agent, sandboxed
|
||||
by *that agent's* `ALLOWED_BROWSE_ROOTS`/`HOST_ROOT_PREFIX`.
|
||||
- New agent endpoints `/agent/files/*`, proxied at `/api/agents/{id}/files/*`.
|
||||
|
||||
### Phase 13 — Multi-host networks & images
|
||||
|
||||
- **Networks and Images are now per-host.** Both pages render a section for the
|
||||
|
||||
Reference in New Issue
Block a user