File Browser SMB 3 for NAS plugin thumbnail

File Browser SMB 3 for NAS

Browse encrypted SMB 3 NAS shares in Files with signed sessions, explicit credentials and per-connection permissions. Requires Agent Zero v2.12 or later.

Author 3clyp50 0 stars Version 0.1.1 Updated

README

File Browser SMB 3 for NAS

File Browser SMB 3 for NAS

Browse and manage files on your NAS or a shared network folder directly from Agent Zero’s File Browser. Connect securely to a server that supports encrypted SMB 3.

Compatibility

Requires Agent Zero v2.12 or later.

Install and configure

  1. Open Plugin Hub, find File Browser SMB 3 for NAS, and install it.
  2. Enable the plugin globally, then open its settings and choose Open connection settings. You can also go to Files → Settings → Add connection and choose this plugin.
  3. Enter the connection details described below, give the connection a name, and save it.
  4. Test the connection, then use its folder icon to open your files.

Enter the NAS/server name, a single share name, optional folder within that share, username (DOMAIN\user when required), password, and port (445). The server must support SMB 3 encryption. No SMB 1, guest login, filesystem mount, or privileged container capability is required.

Use and permissions

Each connection has independent Browse, Download, Upload/create, Edit, Rename/move and Delete controls; unsupported actions are disabled. Browse and Download default on; mutations default off. Text and code files open in the shared Editor. Files supports list/icon views and the optional file tree for remote connections.

Permissions constrain File Browser operations, not arbitrary agent shell tools or server accounts. Editing necessarily reveals file content. Credentials are stored privately (0600) under this plugin's data/connections.json and are omitted from browser responses. An unchanged secret retains its saved value; replacing it updates it. Protect the instance and its backups.

Limits

Symbolic links and reparse points are rejected. Keep server/share ACLs restricted to the intended folder; client path checks cannot replace server authorization. Saved-file replacement stages a temporary file, checks its content revision, and replaces it; concurrent writes in the final check-to-replace window are not serialized with other clients. File ACL inheritance can differ on replacement. This is intended for direct NAS shares, not a DFS namespace.

Set size limits in File Browser settings: transfers default to 100 MiB, text editing to 10 MiB, and archives to 1,000 entries. Transfers stream through temporary files; text editing supports UTF-8 files without binary content. Cross-connection moves and remote-to-local Save As are not supported. Use download/upload to transfer between connection types. Agent Zero must be able to reach the configured server; storage/network charges remain your provider's responsibility.

Technical details

The adapter uses the Agent Zero v2.12 streaming interface: read(relative, destination, limit) writes bounded chunks and returns a revision; write(relative, source, expected=None) consumes a seekable binary stream and returns the new revision. Transfer limits come from File Browser settings.

Dependencies: smbprotocol 1.17.0. The installer calls hooks.py install() in the Agent Zero framework runtime. It is safe to rerun; there is no execute.py.

Verification

Transport checks cover streamed transfers above 1 MiB, size-limit rejection, and safe-write behavior. Tests use disposable local servers or SDK mocks, without production credentials.

SDK policy checks cover mandatory encryption/signing, per-operation session-cache isolation, forbidden paths/reparse points, and non-overwriting rename. Run PYTHONPATH=/a0 python -m unittest -v test_transport from the repository inside the Agent Zero container, using its framework interpreter. A real NAS integration has not yet been verified.

Before production use, test a disposable folder on your actual server: listing, new upload, Editor save, duplicate destination rejection, stale-save rejection, download, rename where supported, and deletion. Confirm denied actions remain denied and disable the plugin to confirm connections become unavailable. Protocol differences and server permissions matter.

Disable and remove

Disabling hides this provider and rejects further connection operations. Removing a connection deletes its saved credentials. Uninstalling deletes the plugin directory, including saved connections and any plugin-owned key; back up what you need first. Shared Python dependencies are not uninstalled because other plugins may use them. No service, mount or system symlink is created.

License

MIT. See LICENSE. Agent Zero-derived integration retains its upstream license notice.