228 lines
8.9 KiB
Markdown
228 lines
8.9 KiB
Markdown
# 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)
|