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

1.7 KiB

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