Datenbank bereinigt / Gitea-Integration gefixt

Dieser Commit ist enthalten in:
hendrik_gebhardt@gmx.de
2026-01-04 00:24:11 +00:00
committet von Server Deploy
Ursprung 395598c2b0
Commit c21be47428
37 geänderte Dateien mit 30993 neuen und 809 gelöschten Zeilen

Datei anzeigen

@ -1,6 +1,602 @@
TASKMATE - CHANGELOG
====================
================================================================================
03.01.2025 - GIT-INTEGRATION CODING-KACHELN
================================================================================
✅ Git-Repository-Erkennung für TaskMate-Kachel repariert
✅ Docker-Pfad-Mapping: /home/claude-dev/TaskMate → /app/taskmate-source
✅ Git-Status und Commit-Funktionen funktionieren wieder
✅ Debug-Logging für Git-Operationen hinzugefügt
Technische Details:
- windowsToContainerPath() Funktion erweitert
- Spezialfall für TaskMate-Repository implementiert
- Container-Volume-Mapping berücksichtigt
- Cache-Version auf 189 erhöht
================================================================================
03.01.2025 - SICHERHEITSVERBESSERUNGEN PHASE 1
================================================================================
SCHRITT 1: HARTCODIERTE CREDENTIALS ENTFERNT
--------------------------------------------------------------------------------
- Hartcodierte Credentials aus CLAUDE.md entfernt
- Admin-Passwort aus ANWENDUNGSBESCHREIBUNG.txt entfernt
- Gitea-Token nicht mehr im Klartext in Dokumentation
- JWT_SECRET Mindestlänge von 32 Zeichen erzwungen
- Fallback für unsicheres JWT_SECRET entfernt
SCHRITT 2: TOKEN-ROTATION & REFRESH-TOKENS
--------------------------------------------------------------------------------
- Refresh-Token System implementiert (7 Tage Gültigkeit)
- Access-Tokens haben nur noch 15 Minuten Gültigkeit
- Neue Datenbank-Tabelle refresh_tokens
- Automatische Bereinigung abgelaufener Tokens
- Logout widerruft alle Refresh-Tokens des Benutzers
TECHNISCHE ÄNDERUNGEN
--------------------------------------------------------------------------------
- dotenv Package zum Backend hinzugefügt
- server.js lädt nun .env Datei beim Start
- Dockerfile angepasst (npm install statt npm ci)
- auth.js erweitert um Refresh-Token Funktionen
- Frontend API-Client unterstützt Refresh-Tokens
- Service Worker Version: 181 → 182
SICHERHEITSVERBESSERUNGEN
--------------------------------------------------------------------------------
- Kürzere Token-Lebensdauer reduziert Angriffsfenster
- Refresh-Tokens ermöglichen sichere lange Sessions
- Token-Rotation bei jedem Refresh
- IP und User-Agent werden geloggt
AUTOMATISCHES TOKEN-REFRESH IMPLEMENTIERT
--------------------------------------------------------------------------------
- Proaktiver Token-Refresh nach 10 Minuten (bevor 15min Limit erreicht)
- Automatischer Fallback-Refresh bei 401-Fehlern
- Benutzer bleiben 7 Tage eingeloggt ohne Unterbrechung
- Nahtlose Erneuerung im Hintergrund - keine Logout-Unterbrechungen
API-ÄNDERUNGEN (Rückwärtskompatibel)
--------------------------------------------------------------------------------
- POST /api/auth/login gibt zusätzlich refreshToken zurück
- POST /api/auth/refresh akzeptiert refreshToken im Body
- Legacy-Support für alte Clients ohne Breaking Changes
SCHRITT 3: XSS-SCHUTZ & EINGABEVALIDIERUNG VERSTÄRKT
--------------------------------------------------------------------------------
- Erweiterte Content Security Policy (CSP) implementiert
- DOMPurify für doppelte Markdown-Bereinigung hinzugefügt
- Strikte File-Upload Validierung gegen gefährliche Dateien
- URL-Validierung gegen SSRF und JavaScript-Injection
- Automatisches Input-Sanitizing für alle API-Requests
- Zusätzliche Security Headers (HSTS, Referrer Policy, etc.)
NEUE SICHERHEITS-FEATURES
--------------------------------------------------------------------------------
- Executable Dateien (.exe, .bat, etc.) werden komplett blockiert
- Doppelte Dateiendungen (.txt.exe) werden abgelehnt
- Lokale URLs (localhost, 192.168.x.x) sind nicht erlaubt (SSRF-Schutz)
- Gefährliche Dateinamen mit Pfad-Traversal werden blockiert
- MIME-Type Validierung gegen Spoofing-Angriffe
SECURITY HEADERS
--------------------------------------------------------------------------------
- Content-Security-Policy mit strict-dynamic
- HTTP Strict Transport Security (HSTS)
- X-Content-Type-Options: nosniff
- Referrer-Policy: strict-origin-when-cross-origin
- Permissions-Policy: Kamera/Mikrofon deaktiviert
FRONTEND-VERBESSERUNGEN
--------------------------------------------------------------------------------
- Automatisches Token-Management im API-Client
- Retry-Logic für abgelaufene Tokens
- Service Worker Version: 183 → 184
PHASE 2: DATENBANK UND BACKUP-VERSCHLÜSSELUNG IMPLEMENTIERT
--------------------------------------------------------------------------------
- Vollständige Backup-Verschlüsselung mit AES-256-CBC implementiert
- Neue encryption.js Bibliothek für sichere Verschlüsselung
- Automatische verschlüsselte Backups (.enc Dateien)
- 256-bit Verschlüsselungsschlüssel über Umgebungsvariablen
- Kompatible Backups: sowohl verschlüsselt als auch unverschlüsselt
- Sichere Wiederherstellung mit Entschlüsselung
- PBKDF2 Key-Derivation für passwort-basierte Verschlüsselung
NEUE VERSCHLÜSSELUNGS-FEATURES
--------------------------------------------------------------------------------
- Header-basiertes Dateiformat für Versionierung (TMENC001)
- Salt und IV für jede Verschlüsselung einzigartig
- Automatisches Fallback bei fehlgeschlagener Verschlüsselung
- Admin-Endpunkte für manuelle Backup-Erstellung (/api/admin/backup)
- Backup-Liste mit verschlüsselten Dateien anzeigen
DOCKER UND INFRASTRUKTUR
--------------------------------------------------------------------------------
- Docker-Container mit Verschlüsselungsunterstützung neu gebaut
- ENCRYPTION_KEY über docker-compose.yml Umgebungsvariablen
- Korrekte Portmapping (3001 extern → 3000 intern)
- Automatische Backup-Erstellung beim Server-Start getestet
================================================================================
03.01.2025 - CLAUDE.MD NEUSTRUKTURIERUNG & DATENSCHUTZ
================================================================================
DOKUMENTATION
--------------------------------------------------------------------------------
CLAUDE.md komplett neu strukturiert für bessere Entwickler-Erfahrung.
WICHTIGER HINWEIS FÜR KI-ASSISTENTEN
--------------------------------------------------------------------------------
- Prominenter Hinweis: Anwender hat KEINE Programmierkenntnisse
- Klare Anweisung: KI übernimmt ALLE technischen Aufgaben
- Kommunikations-Regeln mit Richtig/Falsch Beispielen
- Arbeitsweise-Sektion für nicht-technische Anwender
NEUE STRUKTUR
--------------------------------------------------------------------------------
- Quick Start Sektion mit wichtigsten Befehlen ganz oben
- Kritische Regeln prominent am Anfang platziert
- Klare Gliederung nach typischen Entwicklungsaufgaben
- Erweiterte Troubleshooting-Sektion mit Lösungen
- Code-Patterns und Best Practices hinzugefügt
- Performance- und Sicherheitshinweise dokumentiert
DATENSCHUTZ & PROJEKTSICHERHEIT
--------------------------------------------------------------------------------
- Neue Sektion für Schutz von Produktivdaten hinzugefügt
- Warnung: Projekt "AegisSight" niemals beeinträchtigen
- Warnung: Bestehende Benutzer niemals ändern/löschen
- Backup-Anweisung vor Datenbank-Arbeiten
- Rollback-Strategie für Live-System dokumentiert
- Anforderung: JEDE Änderung muss umkehrbar sein
- Docker-Image Backup-Befehle hinzugefügt
- Änderungs-Workflow für Live-Betrieb definiert
HIGHLIGHTS
--------------------------------------------------------------------------------
- Docker-Befehle direkt im Quick Start
- Echtzeit-Update Patterns mit Code-Beispielen
- Datums-Formatierung mit richtig/falsch Beispielen
- Deployment-Checkliste als Copy&Paste Template
- Debug-Tipps für Frontend und Backend
================================================================================
03.01.2026 - LISTE: MEHRERE AVATARE FÜR MEHRFACHZUWEISUNG
================================================================================
FEATURE ENHANCEMENT
--------------------------------------------------------------------------------
Listen-Ansicht zeigt jetzt alle zugewiesenen Benutzer als separate Avatare an.
NEUE FUNKTIONEN
--------------------------------------------------------------------------------
- Mehrere Avatar-Symbole nebeneinander bei Mehrfachzuweisung
- Avatare werden aus task_assignees Tabelle und assignedTo kombiniert
- Container für mehrere Avatare mit 2px Abstand
- Hover-Effekt: Avatare vergrößern sich bei Mouse-Over
- Alle Avatare sind klickbar für Bearbeitung
TECHNISCHE DETAILS
--------------------------------------------------------------------------------
- JavaScript: Sammelt User-IDs aus task.assignees Array
- CSS: .avatar-container für Flexbox-Layout mehrerer Avatare
- Backend nutzt bereits vorhandene getFullTask() Funktion
- Service Worker Cache-Version: 178 -> 179
VERHALTEN
--------------------------------------------------------------------------------
- Task mit User 1 + 4: Zeigt 2 Avatare nebeneinander
- Task mit nur User 1: Zeigt 1 Avatar
- Task ohne Zuweisung: Zeigt "?" Placeholder
- Klick auf beliebigen Avatar: Öffnet Bearbeitung-Dropdown
================================================================================
03.01.2026 - LISTE: NUR AVATAR-SYMBOLE BEI ZUGEWIESEN
================================================================================
UX-VERBESSERUNG
--------------------------------------------------------------------------------
In der Listen-Ansicht werden bei der Spalte "Zugewiesen" nur noch Symbole angezeigt.
ÄNDERUNGEN
--------------------------------------------------------------------------------
- Benutzernamen werden nicht mehr neben Avataren angezeigt
- Nur noch farbige Avatar-Symbole mit Initialen sichtbar
- Tooltip zeigt Namen beim Hover über Avatar
- Platzhalter "?" für nicht zugewiesene Aufgaben
- Klick auf Avatar öffnet Dropdown zur Bearbeitung
TECHNISCHE DETAILS
--------------------------------------------------------------------------------
- list.js: Dropdown standardmäßig versteckt (display: none)
- CSS: Neue Klassen für avatar-empty und editing-Modus
- JavaScript: Avatar-Click-Handler für Bearbeitung
- Service Worker Cache-Version: 177 -> 178
BEDIENUNG
--------------------------------------------------------------------------------
1. In Listen-Ansicht sind nur Avatar-Symbole sichtbar
2. Hover zeigt Namen als Tooltip
3. Klick auf Avatar öffnet Benutzer-Dropdown
4. Auswahl ändert Zuweisung und versteckt Dropdown wieder
================================================================================
03.01.2026 - BACKUP MIT AEGISSIGHT-PROJEKT ERSTELLT
================================================================================
BACKUP-WIEDERHERSTELLUNG
--------------------------------------------------------------------------------
Erfolgreiches Backup mit allen wiederhergestellten AegisSight-Daten erstellt.
BACKUP-DETAILS
--------------------------------------------------------------------------------
- Datei: backup_2026-01-03T00-38-47-492Z.db
- Inhalt: AegisSight-Projekt mit 22 Aufgaben
- Benutzer: 3 (HG, MH, admin)
- Status: Vollständig und verifiziert
TECHNICAL
--------------------------------------------------------------------------------
- Docker-Container mit korrekten Volume-Mounts neu gestartet
- Datenbank-Paths korrekt gemappt: /home/claude-dev/TaskMate/data → /app/data
- WAL-Dateien korrekt synchronisiert
ERGEBNIS
--------------------------------------------------------------------------------
Alle AegisSight-Projektdaten sind wiederhergestellt und gesichert.
================================================================================
02.01.2026 - ADMIN: PASSWORT-BEARBEITUNG IMPLEMENTIERT
================================================================================
NEUE FUNKTION
--------------------------------------------------------------------------------
Admins können jetzt Benutzer-Passwörter im Admin-Bereich bearbeiten.
FUNKTIONEN
--------------------------------------------------------------------------------
- Passwort-Bearbeitung: Klick auf Stift-Symbol aktiviert Bearbeitungsmodus
- Passwort-Generator: Klick auf Refresh-Symbol generiert starkes Passwort
- Beim Bearbeiten von Benutzern: Passwort optional ändern oder leer lassen
- Automatische Validierung: Mindestens 8 Zeichen erforderlich
TECHNISCHE DETAILS
--------------------------------------------------------------------------------
- HTML: Neue Button-Gruppe für Passwort-Eingabe hinzugefügt
- CSS: Styling für password-input-group implementiert
- JavaScript: togglePasswordEdit() und generatePassword() Methoden
- Backend: Nutzt vorhandene PUT /api/admin/users/:id Route
- Service Worker Cache-Version: 176 -> 177
BEDIENUNG
--------------------------------------------------------------------------------
1. Benutzer im Admin-Bereich bearbeiten
2. Stift-Symbol bei Passwort klicken → Eingabefeld wird bearbeitbar
3. Neues Passwort eingeben ODER Generator-Button für zufälliges Passwort
4. Formular speichern → Passwort wird sofort aktualisiert
================================================================================
02.01.2026 - DATENBANK WIEDERHERGESTELLT
================================================================================
KRITISCHER BUGFIX
--------------------------------------------------------------------------------
Datenbank-Verlust durch Container-Neustart behoben - alle Daten wiederhergestellt.
PROBLEM
--------------------------------------------------------------------------------
- Beim Docker-Container Neustart wurde eine neue, leere Datenbank erstellt
- Alle Benutzer, Aufgaben, Board-Einträge und Einstellungen waren verloren
- Nur Standard-Benutzer (HG, MH) vorhanden
LÖSUNG
--------------------------------------------------------------------------------
- Backup vom 02.01.2026 23:46 Uhr wiederhergestellt
- Originale Benutzerdaten und Inhalte sind wieder verfügbar
- Login mit ursprünglichen Benutzerkonten funktioniert wieder
ERGEBNIS
--------------------------------------------------------------------------------
Alle Daten sind wieder da - Login mit ursprünglichen Credentials möglich.
================================================================================
02.01.2026 - BUGFIX: LOGIN-FEHLER BEHOBEN
================================================================================
BUGFIX
--------------------------------------------------------------------------------
Login-Problem behoben: NotificationManager-Fehler beim Login korrigiert.
TECHNISCHE DETAILS
--------------------------------------------------------------------------------
- notifications.js: Sicherheitscheck für this.badge hinzugefügt
- Verhindert "Cannot read properties of undefined (reading 'classList')" Fehler
- Service Worker Cache-Version: 175 -> 176
AUSWIRKUNG
--------------------------------------------------------------------------------
Login funktioniert wieder korrekt ohne JavaScript-Fehler.
================================================================================
02.01.2026 - CODING-TAB: GITEA INTEGRATION CACHE-FIX
================================================================================
BUGFIX
--------------------------------------------------------------------------------
Browser-Cache Problem behoben: Gitea Repository-Dropdown zeigt wieder Repos an.
TECHNISCHE DETAILS
--------------------------------------------------------------------------------
- Service Worker Cache-Version: 170 -> 175 (aggressiver Cache-Bust)
- Docker Container komplett neu gebaut und gestartet
- getGiteaRepositories() API-Fix wird jetzt geladen
ERGEBNIS
--------------------------------------------------------------------------------
Repository-Dropdown in Coding-Anwendungen funktioniert wieder korrekt.
================================================================================
02.01.2026 - CODING-TAB: CLAUDE.MD ALS POPUP MODAL
================================================================================
NEUE FUNKTION
--------------------------------------------------------------------------------
CLAUDE.md wird jetzt in einem separaten Vollbild-Modal angezeigt:
VERBESSERUNGEN
--------------------------------------------------------------------------------
- Klickbarer Link statt kleine Box
- Vollbild-Modal mit 70% Viewport-Höhe
- Zeigt Dateigröße im Link (z.B. "7KB")
- Bessere Lesbarkeit für längere Dokumentation
- ESC-Taste zum Schließen
- Service Worker Cache-Version: 168 -> 169
BEDIENUNG
--------------------------------------------------------------------------------
1. Klick auf "CLAUDE.md anzeigen (XKB)" öffnet Modal
2. ESC oder X schließt Modal
3. Klick außerhalb schließt Modal
================================================================================
02.01.2026 - CODING-TAB: CLAUDE.MD ANZEIGE FINAL BEHOBEN
================================================================================
BUGFIX
--------------------------------------------------------------------------------
Problem mit unsichtbarer CLAUDE.md endgültig gelöst:
BEHOBENE PROBLEME
--------------------------------------------------------------------------------
- Backend: Fallback-Pfad für TaskMate (/app/taskmate-source) implementiert
- CSS: claude-content war standardmäßig versteckt (display: none)
- HTML: Überflüssige Hinweistexte entfernt
- Service Worker Cache-Version: 167 -> 168
ERGEBNIS
--------------------------------------------------------------------------------
CLAUDE.md wird jetzt korrekt angezeigt mit "Test für TaskMate" am Ende.
Nur-Lesen-Modus funktioniert wie gewünscht.
================================================================================
02.01.2026 - CODING-TAB: UX VERBESSERUNGEN
================================================================================
UX-VERBESSERUNGEN
--------------------------------------------------------------------------------
- Kacheln sind jetzt direkt klickbar (ohne Drei-Punkte-Menü)
- Drei-Punkte-Menü entfernt - weniger Verwirrung
- Cursor zeigt Klickbarkeit an
- CLAUDE.md Badge korrigiert - zeigt jetzt wieder CLAUDE.md an
- Service Worker Cache-Version: 164 -> 165
================================================================================
02.01.2026 - CODING-TAB: CLAUDE.MD NUR NOCH READONLY
================================================================================
ÄNDERUNG
--------------------------------------------------------------------------------
CLAUDE.md im Coding-Bereich ist jetzt nur noch lesbar (readonly).
DETAILS
--------------------------------------------------------------------------------
- Bearbeiten-Tab entfernt - nur noch Ansicht verfügbar
- CLAUDE.md kann nicht mehr über TaskMate bearbeitet werden
- Zeigt immer die aktuellen Inhalte aus dem Dateisystem
- Verhindert versehentliches Überschreiben wichtiger Projektanweisungen
- Service Worker Cache-Version: 163 -> 164
BEGRÜNDUNG
--------------------------------------------------------------------------------
- Sicherheit: Keine Schreibrechte-Konflikte mehr
- Klarheit: CLAUDE.md sollte außerhalb von TaskMate gepflegt werden
- Konsistenz: Immer aktuelle Inhalte aus dem Dateisystem
================================================================================
02.01.2026 - CODING-TAB: CLAUDE.MD ANZEIGE BEHOBEN
================================================================================
BUGFIX
--------------------------------------------------------------------------------
Problem behoben: CLAUDE.md wird im Coding-Bereich jetzt korrekt angezeigt.
TECHNISCHE DETAILS
--------------------------------------------------------------------------------
- Backend PUT/POST-Routes erweitert: claudeMdFromDisk in Antworten
- CLAUDE.md wird nach dem Speichern aus dem Dateisystem gelesen
- Service Worker Cache-Version: 162 -> 163
AUSWIRKUNG
--------------------------------------------------------------------------------
Im Coding-Bereich werden alle bisherigen Änderungen der CLAUDE.md nun
korrekt im Editor-Fenster angezeigt.
================================================================================
02.01.2026 - CLAUDE.MD DOKUMENTATION ERWEITERT
================================================================================
DOKUMENTATION
--------------------------------------------------------------------------------
Erweiterte CLAUDE.md mit hilfreichen Informationen für effizientere Entwicklung:
NEUE ABSCHNITTE
--------------------------------------------------------------------------------
- Projektübersicht: Kurzbeschreibung und Hauptfunktionen
- Architektur-Kurzübersicht: Technologie-Stack auf einen Blick
- Wichtige Dateien & Einstiegspunkte: Zentrale Dateien für schnellen Einstieg
- Häufige Entwicklungsaufgaben: Schritt-für-Schritt Anleitungen
- Testing & Debugging: Logs, häufige Probleme und Lösungen
- Deployment-Checkliste: Strukturierte Schritte für sicheres Deployment
ZWECK
--------------------------------------------------------------------------------
- Schnelleres Verständnis der Projektstruktur
- Effizientere Entwicklung durch klare Anleitungen
- Weniger Fehler durch dokumentierte Best Practices
================================================================================
02.01.2026 - CODING-TAB IMPLEMENTIERUNG
================================================================================
NEUE FEATURES
--------------------------------------------------------------------------------
Neuer "Coding"-Tab ersetzt den bisherigen "Gitea"-Tab mit erweiterter
Funktionalitaet zur Verwaltung von Entwicklungsverzeichnissen.
CODING-TAB
--------------------------------------------------------------------------------
- Projektubergreifende Verwaltung von Entwicklungsverzeichnissen
- Kachel-basiertes Grid-Layout
- Claude Code Button (orange) - Startet Claude Code im Verzeichnis
- Codex Button (gruen) - Startet OpenAI Codex im Verzeichnis
- Server-Pfade: Direkte Ausfuehrung auf dem Linux-Server
- Windows-Pfade: Befehl zum manuellen Kopieren fuer WSL
- Optionale Gitea-Repository-Verknuepfung pro Verzeichnis
- Git-Operationen (Fetch, Pull, Push, Commit) bei Verknuepfung
- Auto-Refresh des Git-Status alle 30 Sekunden
- Farbauswahl pro Verzeichnis
BACKEND
--------------------------------------------------------------------------------
- Neue Datenbank-Tabelle: coding_directories
- Neue Route: /api/coding mit 12 Endpunkten
- Terminal-Start-Logik fuer Claude/Codex
FRONTEND
--------------------------------------------------------------------------------
- Neuer Manager: coding.js
- Neues Styling: coding.css
- Modals: Verzeichnis-Verwaltung, Befehl-Anzeige
- Service Worker Cache-Version: 154 -> 155
================================================================================
31.12.2025 - MOBILE OPTIMIERUNG
================================================================================
NEUE FEATURES
--------------------------------------------------------------------------------
Vollstaendige Mobile-Optimierung der Anwendung mit Touch-Unterstuetzung.
HAMBURGER-MENU
--------------------------------------------------------------------------------
- Slide-in Navigation von links
- Projekt-Auswahl im Menu
- Alle Views ueber Menu erreichbar
- Benutzer-Info und Logout
- Smooth Animation (Hamburger zu X)
SWIPE-GESTEN
--------------------------------------------------------------------------------
- Horizontal wischen zum View-Wechsel
- Swipe rechts: vorheriger View
- Swipe links: naechster View
- Visuelle Indikatoren am Bildschirmrand
TOUCH DRAG & DROP
--------------------------------------------------------------------------------
- Long-Press (300ms) startet Task-Drag
- Visuelles Feedback beim Ziehen
- Auto-Scroll am Bildschirmrand
- Drop-Zonen werden hervorgehoben
BOARD-ANSICHT
--------------------------------------------------------------------------------
- Horizontal Scroll mit Scroll-Snap
- Spalten snappen am Viewport
BETROFFENE DATEIEN
--------------------------------------------------------------------------------
- frontend/css/mobile.css (NEU)
- frontend/js/mobile.js (NEU)
- frontend/index.html: Hamburger-Button, Mobile-Menu, Swipe-Indikatoren
- frontend/js/app.js: Mobile-Modul Integration
- frontend/sw.js: Cache-Version auf 154
================================================================================
30.12.2025 - BUGFIX: HTML-Entity-Encoding in Textfeldern
================================================================================
PROBLEM
--------------------------------------------------------------------------------
Sonderzeichen wie "&" wurden beim Speichern zu "&" konvertiert.
Beispiel: "Claude&Codex" wurde zu "Claude&Codex" gespeichert.
URSACHE
--------------------------------------------------------------------------------
Die sanitize-html Bibliothek encoded HTML-Entities auch wenn alle Tags
entfernt werden (allowedTags: []). Dies führte zu unerwünschter Konvertierung
von & zu &amp;, < zu &lt;, etc.
LÖSUNG
--------------------------------------------------------------------------------
- Neue Funktion decodeHtmlEntities() in validation.js
- stripHtml() dekodiert nun Entities nach der Bereinigung
- Ampersand (&), Klammern (<>), Anführungszeichen bleiben erhalten
BETROFFENE DATEIEN
--------------------------------------------------------------------------------
- backend/middleware/validation.js: decodeHtmlEntities() hinzugefügt
================================================================================
30.12.2025 - ADMINBEREICH: Dateiendungen frei definierbar
================================================================================
NEUES FEATURE
--------------------------------------------------------------------------------
Vereinfachtes System zur Verwaltung erlaubter Dateiendungen im Adminbereich.
Das bisherige komplexe Kategorien-System (Bilder, Dokumente, Office, etc.)
wurde durch eine einfache, flexible Dateiendungs-Verwaltung ersetzt.
FUNKTIONSWEISE
--------------------------------------------------------------------------------
- Standard-Endungen: pdf, docx, txt (können geändert werden)
- Tags-System: Aktive Endungen werden als Tags mit ×-Button angezeigt
- Freifeld: Beliebige Endungen manuell hinzufügen (z.B. xlsx, png, zip)
- Vorschläge: Schnellauswahl häufiger Endungen per Klick
- Validierung: Backend prüft Dateiendung UND MIME-Type
VORGESCHLAGENE ENDUNGEN
--------------------------------------------------------------------------------
Office: xlsx, pptx, doc, xls, ppt, odt, ods, rtf
Bilder: png, jpg, gif, svg, webp
Daten: csv, json, xml, md
Archive: zip, rar, 7z
BETROFFENE DATEIEN
--------------------------------------------------------------------------------
- backend/routes/admin.js: Neues Format (allowedExtensions statt allowedTypes)
- backend/middleware/upload.js: Extension-basierte Validierung, MIME-Mapping
- frontend/index.html: Neues UI mit Tags, Input, Vorschläge
- frontend/js/admin.js: Neue Render- und Event-Logik
- frontend/css/admin.css: Styles für Extension-Tags und Vorschläge
- frontend/sw.js: Cache-Version auf 153 erhöht
================================================================================
30.12.2025 - BUGFIX: Login-Problem behoben (Sofort-Logout nach Login)
================================================================================