# 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