Files
webmanager-mvp/project_docs/PRODUCT_SPEC.md
T
2026-03-11 09:39:41 +01:00

124 lines
1.7 KiB
Markdown

# PRODUCT_SPEC.md
## Project
Web-based Storage Manager
Een webapplicatie waarmee gebruikers bestanden op
whitelisted storage volumes kunnen beheren.
De applicatie draait in een containeromgeving.
---
# Doel
Een veilige webinterface bouwen voor filesystem beheer.
Gebruikers moeten via een browser:
- directories kunnen browsen
- bestanden kunnen kopiëren
- bestanden kunnen verplaatsen
- bestanden kunnen hernoemen
- bestanden kunnen verwijderen
- mappen kunnen aanmaken
- bookmarks kunnen opslaan
De applicatie moet geschikt zijn voor gebruik binnen een
self-hosted infrastructuur.
---
# Architectuur uitgangspunten
Backend
Python + FastAPI
Frontend
lichte JS UI zonder zware frameworks.
Database
SQLite voor:
- tasks
- bookmarks
- history
---
# Storage model
De applicatie mag alleen werken binnen
**whitelisted root directories**.
Voorbeeld:
/mnt/storage1
/mnt/storage2
/media/archive
Alle paden moeten binnen deze roots blijven.
Traversal en symlink escapes moeten geblokkeerd worden.
---
# Functionaliteiten
## Directory browsing
De UI moet directories kunnen tonen.
Response moet bevatten:
- directories
- files
- metadata (size, modified)
---
## File operations
Ondersteunde acties:
rename
move
copy
delete
create directory
---
## Task system
Langlopende acties (copy/move):
- krijgen een task id
- status wordt opgeslagen
- progress kan opgehaald worden via API
---
# Security eisen
- path validation
- whitelist enforcement
- symlink protection
- traversal protection
---
# Out of scope
Deze functionaliteit hoort **niet** bij versie 1:
- user management
- permissions management
- cloud storage
- distributed storage
- multi-node clusters