docs: CHANGELOG.md - komplette Projekthistorie
Von der ersten Zeile Code bis zum Desktop Sync Client. 9 Versionen, 70+ Commits, alles an einem Tag. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
86545ca405
commit
b606ec9a4a
|
|
@ -0,0 +1,227 @@
|
|||
# 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)
|
||||
Loading…
Reference in New Issue