# Changelog Alle wesentlichen Aenderungen an der Mini-Cloud Plattform. --- ## [0.9.0] - 2026-04-12 - Desktop Sync Client ### Desktop-Client (Tauri 2 / Rust + Vue) - **Erster funktionsfaehiger Desktop Sync Client** fuer Windows, Linux und macOS - Multi-Sync-Pfade: Beliebig viele Server-Ordner auf lokale Ordner mappen - Virtual Files: `.cloud`-Platzhalter (0 Bytes), Download erst bei Doppelklick - Full Sync: Alternativ alle Dateien komplett lokal spiegeln (pro Pfad waehlbar) - Offline-Markierung: Einzelne Dateien als offline verfuegbar markieren (Rechtsklick) - Sofort-Sync: Filesystem-Watcher erkennt Aenderungen sofort (3s Debounce statt Polling) - Bidirektionaler Sync mit Timestamp-Vergleich (Server neuer = Download, Lokal neuer = Upload) - File Locking: Automatisches Ein-/Auschecken mit Heartbeat alle 10s - Auto-Unlock: Erkennt wenn eine Datei geschlossen wird (Windows: Write-Lock-Check, Linux: lsof) - System-Tray: Minimiert in den Tray statt zu beenden, Doppelklick oeffnet Fenster - Auto-Login: Zugangsdaten und Sync-Pfade persistent in `%APPDATA%/MiniCloud Sync/config.json` - Single-Instance pro User (Terminalserver-kompatibel, PID-basiertes Lock-File) - .cloud Datei-Assoziation: Doppelklick im Explorer oeffnet ueber den Client - Minimiert starten: Checkbox in Einstellungen, Client startet direkt im Tray - Token-Refresh alle 10 Minuten (verhindert Lock-Verlust nach Token-Ablauf) - Lokaler Datei-Browser mit Rechtsklick-Kontextmenue ### Build-System - `build.sh` Script: Baut Clients via Docker fuer alle Plattformen - `./build.sh windows` - Cross-Compile von Linux nach Windows (NSIS-Installer mit WebView2) - `./build.sh linux` - Linux Build (.AppImage, .deb) - `./build.sh mac` - macOS Build (.dmg, nur auf Mac) - Auto-Upload: Gebaute Clients werden automatisch auf den Cloud-Server hochgeladen - Client-Downloads: Login-Seite und Benutzer-Einstellungen zeigen Download-Links ### File Locking (Backend) - Neues FileLock-Model: Dateien ein-/auschecken - API: Lock, Unlock, Heartbeat, Lock-Status - Auto-Unlock nach 15 Minuten ohne Heartbeat - Lock-Anzeige in der Dateiliste (Schloss-Icon mit Benutzername) - Gesperrte Dateien: Oeffnen nicht moeglich, Fehlermeldung - Konflikt-Email an Admin bei erzwungenem Sync gesperrter Dateien --- ## [0.8.0] - 2026-04-11 - OnlyOffice + Papierkorb ### OnlyOffice Document Server Integration - Word, Excel und PowerPoint Dateien direkt im Browser bearbeiten - Automatische Erkennung: OnlyOffice vorhanden = Editor, sonst einfache Vorschau - WOPI-aehnliche Endpunkte fuer Dokumentzugriff und Callback - JWT-Signierung (nutzt JWT_SECRET_KEY aus .env, kein extra Secret) - Force-Save: Ctrl+S speichert sofort zurueck zum Server - Dokument-Key mit Timestamp (kein Cache-Problem bei Wiederoffnen) - Konfiguration nur ueber .env (ONLYOFFICE_URL), Admin-GUI zeigt Status ### Papierkorb - Geloeschte Dateien landen im Papierkorb statt sofort geloescht zu werden - Papierkorb-Seite in der Sidebar mit Tabelle aller geloeschten Elemente - Wiederherstellen am Originalort oder endgueltig loeschen - "Papierkorb leeren" Button mit Sicherheitsabfrage - Share-View Loeschen nutzt ebenfalls den Papierkorb ### Bestaetigungsdialoge - Ueberall wo geloescht wird jetzt ein Bestaetigungsdialog - Kontakte, Kalender-Events, Kalender, E-Mails, Share-Dateien, SFTP-Backup-Ziele, Admin Email-Konten ### Office-Preview - Vorschau oeffnet sich innerhalb der App (kein neuer Tab) - Zurueck-Button in der Toolbar - PDF inline, Bilder zentriert, DOCX als HTML, XLSX als Tabelle, PPTX als Folien - Text/Code-Dateien bearbeitbar mit Speichern-Funktion --- ## [0.7.0] - 2026-04-11 - Backup & Restore + SFTP ### Backup & Restore - Lokales ZIP-Backup: Datenbank (sqlite3.backup API) + alle Dateien + Metadaten - Streaming-Download ohne Speicher-Limits - Chunked Restore-Upload fuer grosse Backups (10MB-Stuecke mit Fortschrittsbalken) - DB-Merge-Strategie: INSERT OR REPLACE auf gemeinsame Spalten - Einzeldatei-Restore: Backup durchsuchen + einzelne Dateien herunterladen/wiederherstellen ### SFTP-Backup - Mehrere SFTP-Backup-Ziele konfigurierbar - Automatischer Hintergrund-Scheduler (15 Min. bis woechentlich) - Versionierung mit automatischem Aufraumen alter Backups - Manuelles Backup per Klick ("Jetzt sichern") - SFTP-Verbindungstest-Button - Versionen-Dialog: Alle Backups auf dem SFTP-Server auflisten - Restore direkt von SFTP: Version auswaehlen und wiederherstellen ### Restore-Anleitung - Detaillierte Anleitung direkt in der Admin-UI - Hinweis auf SECRET_KEY/JWT_SECRET_KEY Uebereinstimmung --- ## [0.6.0] - 2026-04-11 - Drag & Drop + Share-Typen ### Datei-Upload - Drag & Drop Upload: Dateien und komplette Ordnerstrukturen reinziehen - Ordner-Button: Kompletten Ordner mit Unterordnern hochladen (webkitdirectory) - Upload-Fortschrittsbalken mit Datei-Zaehler - Backend: `/files/ensure-path` erstellt verschachtelte Ordnerstrukturen ### Share-Links - Drei Berechtigungsstufen: Nur Lesen / Lesen+Schreiben / Nur Upload - Upload-Only: Briefkasten-Modus (hochladen ohne Einblick) - Ordner-Freigaben: Dateiliste mit Download/Loeschen, Unterordner-Navigation - Ordner als ZIP herunterladen (rekursiv) - Share-Status visuell: Gruenes Icon zeigt geteilte Dateien an - Upload in freigegebene Ordner mit Passwort-Schutz ### System-Benachrichtigungen - Email bei Datei-/Ordner-Freigabe an Empfaenger - Email bei Share-Link-Download an Ersteller (mit IP-Adresse) - Email bei Upload in geteilten Ordner - Email bei Kalender/Kontakte/Passwort-Freigabe - Email bei Benutzer-Erstellung durch Admin - Alle Benachrichtigungen fail-safe (keine Blockierung bei Email-Fehler) --- ## [0.5.0] - 2026-04-11 - Admin-Features + Passwort-Import ### Administration - Benutzer ueber Web-UI anlegen (Username, Email, Passwort, Rolle, Quota) - Benutzer bearbeiten/deaktivieren/loeschen mit Sicherheitsabfragen - Email-Konten pro Benutzer im Admin verwalten (ohne sich als User einzuloggen) - Benutzersuche in der Verwaltung - Oeffentliche Registrierung: Schieberegler an/aus - Einladungslinks: Einmal-Token auch bei deaktivierter Registrierung - System-Email (SMTP): Konfigurierbar mit Verbindungstest ### Passwort-Manager Import - Firefox CSV-Import (Einstellungen > Passwoerter > Exportieren) - KeePass .kdbx Import mit Ordnerstruktur - Generischer CSV-Import (Chrome, Bitwarden, 1Password) - Automatische Spaltenerkennung (deutsch + englisch) - Alle Eintraege werden clientseitig verschluesselt vor dem Speichern --- ## [0.4.0] - 2026-04-11 - Dateiverwaltung + Share-Links ### Dateiverwaltung - Upload/Download mit Berechtigungen (read/write/admin) - Ordner erstellen, verschieben, umbenennen, loeschen - Berechtigungssystem pro Datei/Ordner und Benutzer ### Share-Links - Token-basierte Freigabe-Links - Optionales Passwort + Ablaufdatum + Download-Limit - Oeffentliche Share-Seite ohne Login - Dateien/Ordner mit Benutzern teilen (Benutzersuche) ### Sync-API - `GET /sync/tree` - Kompletter Dateibaum mit Checksums - `GET /sync/changes?since=` - Delta-Sync - SHA-256 Checksums fuer Duplikat-Erkennung --- ## [0.3.0] - 2026-04-11 - Kalender + Kontakte + Email ### Kalender - Kalender-CRUD mit Events (Monats-/Tagesansicht, FullCalendar) - Kalender mit Benutzern teilen (Lesen oder Lesen+Schreiben) - iCal-Export als Read-Only .ics Link - CalDAV well-known URLs fuer Auto-Discovery (iOS, DAVx5, Thunderbird) ### Kontakte - Adressbuecher + Kontakte CRUD - vCard-Export, Teilen mit Benutzern - Suche in Kontakten ### Email-Webclient - IMAP/SMTP-Proxy (kein eigener Mailserver) - Multi-Account: Ordner nach Konten gruppiert - Absender-Logik: Standard = aktives Konto, Dropdown bei mehreren - Drei-Spalten-Layout, Compose mit Reply - Kein Email-Konto = Email-Bereich ausgeblendet --- ## [0.2.0] - 2026-04-11 - Passwort-Manager + Office-Viewer ### Passwort-Manager - AES-256-GCM clientseitig verschluesselt (Zero Knowledge) - TOTP-Code Generierung (Web Crypto API) - Passwort-Generator - Ordner/Gruppen-Hierarchie (wie KeePass) - Teilen von Eintraegen und Ordnern (read/write/manage) ### Office-Viewer - PDF: PDF.js direkt im Browser - DOCX: python-docx -> HTML - XLSX: openpyxl -> JSON -> Tabelle - PPTX: python-pptx -> HTML-Folien - Bilder und Textdateien inline --- ## [0.1.0] - 2026-04-11 - Erste Version ### Grundgeruest - Flask Backend mit SQLAlchemy + SQLite (WAL-Modus) - Vue 3 Frontend mit PrimeVue, Vite, Pinia - JWT-Authentifizierung (Access + Refresh Token) - Erster Benutzer wird automatisch Admin - Benutzerverwaltung (Admin/User Rollen, Speicher-Quotas) ### Projekt-Setup - `.gitignore`, `.env.example` mit Token-Generierung - Dockerfile (Multi-Stage: Node Build + Python Production) - `docker-compose.yml` mit Bind Mounts (keine Docker Volumes) - `nginx.example.conf` fuer Reverse-Proxy mit Let's Encrypt ### Datenbank - 15 Tabellen: Users, Files, FilePermissions, ShareLinks, Calendars, CalendarEvents, CalendarShares, AddressBooks, Contacts, AddressBookShares, EmailAccounts, PasswordFolders, PasswordEntries, PasswordShares, AppSettings - Auto-Migrate: Fehlende Spalten werden beim App-Start automatisch per ALTER TABLE hinzugefuegt (kein manuelles Migrieren noetig)