Repository navigation
feat(shares): serve the file tree over NFS, read-only, to allowed networks - #295
Merged
Merged
Conversation
…works A worker runs rclone serve nfs --read-only over Lens's own S3 server as one chosen account, behind a relay that turns away clients outside nfs.allowed_networks. Off by default; Settings → NFS share; published on host port 12049. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EKnSy4KKeNYsqhnXvWVz97
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EKnSy4KKeNYsqhnXvWVz97
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EKnSy4KKeNYsqhnXvWVz97
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EKnSy4KKeNYsqhnXvWVz97
Owner
Author
|
Generated by Claude Code |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EKnSy4KKeNYsqhnXvWVz97
adeelahmad
marked this pull request as ready for review
October 11, 2026 00:58
The throttled sign-in test read the button right after the alert appeared, but the cool-down state is set in an effect that can land a tick later, which failed CI on an unrelated PR. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EKnSy4KKeNYsqhnXvWVz97
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EKnSy4KKeNYsqhnXvWVz97
This was referenced Oct 11, 2026
adeelahmad
added a commit
that referenced
this pull request
Oct 11, 2026
…monitoring switch as built (#351) "Ask" names the built-in Telegram bot (#293) and Slack app (#287); "Connect your agents" adds mounting the graph's files read-only over S3, WebDAV, NFS or SMB (#324, #295, #305) and copying the MCP address from the account menu (#340); "Watch it run" says one switch in the web app starts Prometheus and Grafana (#337); "Light by default" adds the cloud model presets (#334). The docs index gains the NFS and SMB pages, and "In progress" keeps only open PRs. Claude-Session: https://claude.ai/code/session_01HDx7PPUauyjMn1LZs8JAsS Co-authored-by: Adeel Ahmad <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Adeel · project thread
Before: the graph as files (#290) could only be browsed through the API and MCP.
After: Settings → NFS share serves it read-only over NFS to the networks you allow, showing what one chosen account sees. Off by default; published on host port 12049 (
LENS_NFS_PORT), onLENS_SHARE_BIND/LENS_BIND.How: a worker (lease on
app_service:nfs, like the local model) runsrclone serve nfs --read-only(rclone already in the image, MIT) on 127.0.0.1 over an:s3:remote ats3.internal_endpoint(the S3 server's loopback copy in the worker, so the S3 share needn't be on), signed in withs3.service_key(account, "nfs"), revoked when the share stops.share_relay.pyholds the published port and closes connections from outsidenfs.allowed_networksbefore rclone sees them; allowed networks change live. Status atGET /settings/nfs/status.Draft until #324 (S3 server, provides
s3.py) merges. End-to-end check run locally with #324 merged in, real rclone 1.75.1 and seeded data: the runner starts, a hand-written NFSv3 client does MNT/then READDIR through the relay and gets the namespaces (calls,pods);rclone lsfover the same remote listsCollections/…andEntities/…files; the service key is gone after stop. Kernel mount wasn't possible in the test container (no NFS in its kernel).Done questions
PUT /settings/nfsandGET /settings/nfs/status.app_servicerow; no stored-data change.make openapi; docs + mkdocs nav.🤖 Generated with Claude Code
https://claude.ai/code/session_01EKnSy4KKeNYsqhnXvWVz97