mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-05-09 05:35:30 +02:00
[PR #339] [CLOSED] Add external folder mounting support for NAS/USB/network shares #1001
Labels
No labels
A1
automated
automated
bug
bug
Closed due to inactivity
contrib
dependencies
dependencies
duplicate
enhancement
feedback
hold
invalid
Notes
P1S
pull-request
security
security
ThumbsUp
user-report
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/bambuddy#1001
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/maziggy/bambuddy/pull/339
Author: @S1N4X
Created: 2/12/2026
Status: ❌ Closed
Base:
main← Head:feature/external-folder-mounting📝 Commits (10+)
6d3ba37test9aece16Implement external folder mounting feature (#124)df4a62bFix TypeScript compilation errors and add test resultsb7a12a0Remove hidden files toggle from external folder mountingd44de08Match ExternalFolderModal styling to standard modals903c97fFix JSX structure in ExternalFolderModalc785733Remove file extensions filter from external folder mountingb61fda7Add tests and documentation for external folder mounting552fff8Remove planning and testing artifactsa890353Protect external files from accidental deletion and enforce read-only constraints📊 Changes
21 files changed (+3506 additions, -42 deletions)
View changed files
📝
README.md(+3 -0)📝
backend/app/api/routes/library.py(+429 -21)📝
backend/app/api/routes/settings.py(+3 -0)📝
backend/app/core/database.py(+47 -0)📝
backend/app/models/library.py(+13 -0)📝
backend/app/schemas/library.py(+77 -0)📝
backend/app/schemas/settings.py(+24 -0)➕
backend/app/services/external_library.py(+407 -0)➕
backend/tests/integration/test_external_folder_protection.py(+421 -0)➕
backend/tests/unit/services/test_external_library.py(+499 -0)📝
docker-compose.yml(+3 -0)➕
docs/external-folder-mounting.md(+219 -0)➕
frontend/src/__tests__/components/ExternalFolderModal.test.tsx(+383 -0)➕
frontend/src/__tests__/components/ExternalFolderSettings.test.tsx(+292 -0)📝
frontend/src/api/client.ts(+92 -6)📝
frontend/src/components/ConfirmModal.tsx(+3 -0)➕
frontend/src/components/ExternalFolderModal.tsx(+207 -0)➕
frontend/src/components/ExternalFolderSettings.tsx(+184 -0)📝
frontend/src/pages/FileManagerPage.tsx(+148 -13)📝
frontend/src/pages/SettingsPage.tsx(+31 -2)...and 1 more files
📄 Description
Summary
Adds support for mounting external directories (NAS shares, USB drives, network storage) to Bambuddy's File Manager with proper security protections.
Changes
Features
Critical Protections (added in final commit)
These 3 issues were identified during integration review and fixed:
Delete protection: External files are only removed from the database by default. Physical deletion requires an explicit opt-in via checkbox in the UI (and
delete_from_filesystem=trueAPI parameter). Read-only folders block all physical deletion.Upload validation: Uploads and ZIP extraction to read-only external folders now return 403 Forbidden.
Move validation: Moving files from/to read-only external folders now returns 403 Forbidden.
Testing
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.