Skip to content

Add File Manager for Docker mode file uploads and management#326

Merged
Edwardvaneechoud merged 2 commits intomainfrom
claude/add-file-manager-tab-tpMQQ
Feb 9, 2026
Merged

Add File Manager for Docker mode file uploads and management#326
Edwardvaneechoud merged 2 commits intomainfrom
claude/add-file-manager-tab-tpMQQ

Conversation

@Edwardvaneechoud
Copy link
Copy Markdown
Owner

Summary

Adds a new File Manager feature that enables users to upload, list, and delete data files in Docker mode. This provides a web-based interface for managing CSV, Parquet, Excel, JSON, and text files in the shared volume, addressing the need for file management in containerized deployments.

Key Changes

Backend

  • New API Router (flowfile_core/routes/file_manager.py):
    • GET /file_manager/files - List uploaded files with metadata
    • POST /file_manager/upload - Upload files with validation (extension whitelist, 500MB size limit)
    • DELETE /file_manager/files/{filename} - Delete files with path traversal protection
    • Docker mode enforcement via FLOWFILE_MODE environment variable check
    • Secure file handling using SecureFileExplorer to prevent directory traversal attacks

Frontend

  • New API Client (fileManager.api.ts):

    • TypeScript interfaces for file metadata and upload responses
    • Methods for listing, uploading (with progress tracking), and deleting files
  • New View (FileManagerView.vue):

    • Drag-and-drop upload zone with visual feedback
    • Real-time upload progress tracking
    • File list with search/filter functionality
    • Delete confirmation modal with safety warnings
    • File type icons and metadata display (size, modification date)
    • Empty states and loading indicators
  • Composable (useFileManager.ts):

    • Reactive state management for files and UI
    • File filtering and sorting logic
    • API integration with error handling
  • Navigation:

    • Added File Manager route with Docker-only visibility
    • Updated sidebar to hide File Manager in Electron mode
    • Added route guard to prevent Docker-only routes in Electron
    • Added i18n translation key for menu label

Implementation Details

  • Security: Path traversal protection, filename sanitization, extension whitelist, file size limits
  • UX: Drag-and-drop support, upload queue with progress bars, search functionality, confirmation dialogs
  • Docker-only: Feature is gated behind FLOWFILE_MODE=docker environment variable and hidden from Electron builds
  • File Types Supported: CSV, TSV, Parquet, Excel (.xlsx/.xls), JSON, TXT

Adds a new File Manager view accessible only in Docker mode that allows
users to upload, list, and delete data files (CSV, Parquet, Excel, JSON,
TXT, TSV) in the shared uploads directory. Includes drag-and-drop upload
with progress tracking, file listing with search, and delete confirmation.

Backend: new /file_manager router with list/upload/delete endpoints that
enforce Docker-mode-only access and use the existing SecureFileExplorer
for sandboxed file operations.

Frontend: FileManagerView with composable pattern matching existing views,
reusing central CSS classes (card, btn, form, empty-state, modal, etc.).
Navigation uses a new `dockerOnly` flag to hide the tab in Electron mode.

https://claude.ai/code/session_012VGACPjFB3eXRpYeC47nDY
@netlify
Copy link
Copy Markdown

netlify bot commented Feb 9, 2026

Deploy Preview for flowfile-wasm canceled.

Name Link
🔨 Latest commit 67097a8
🔍 Latest deploy log https://app.netlify.com/projects/flowfile-wasm/deploys/69897013be50190008e34cd0

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Feb 9, 2026

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 91.37931% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
flowfile_core/flowfile_core/routes/file_manager.py 91.22% 5 Missing ⚠️

📢 Thoughts on this report? Let us know!

Comprehensive test suite covering:
- Docker-mode gating (403 when not in Docker mode)
- File listing (empty dir, uploaded files, extension filtering)
- Upload (all 7 allowed types, rejection of disallowed extensions,
  path traversal sanitization, overwrite behavior, size reporting)
- Delete (existing/nonexistent files, path traversal rejection,
  directory rejection, actual removal verification)
- Integration round-trip (upload → list → delete cycle)

Uses tmp_path fixture with patched storage.uploads_directory to
isolate tests from real user data. The storage singleton caches
its directories at import time, so we patch both _check_docker_mode
and the uploads_directory property.

https://claude.ai/code/session_012VGACPjFB3eXRpYeC47nDY
@Edwardvaneechoud Edwardvaneechoud merged commit 22c6987 into main Feb 9, 2026
21 checks passed
@Edwardvaneechoud Edwardvaneechoud deleted the claude/add-file-manager-tab-tpMQQ branch February 9, 2026 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants