diff --git a/JOURNAL.md b/JOURNAL.md index 3d96bb3..6307e19 100644 --- a/JOURNAL.md +++ b/JOURNAL.md @@ -137,10 +137,13 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker --- ## Nächste Schritte -1. UTF-8 Support implementieren -2. Reverse Proxy mit SSL einrichten -3. Admin Panel Funktionalität erweitern -4. License Server API entwickeln +1. License Server API entwickeln mit Endpunkten: + - `/api/version` - Versionscheck + - `/api/validate` - Lizenzvalidierung + - `/api/heartbeat` - Session-Management +2. Mobile Optimizations für Admin Panel +3. Weitere Sicherheitsfeatures +4. Performance-Optimierungen --- @@ -1485,4 +1488,81 @@ ALTER TABLE login_attempts ALTER COLUMN blocked_until TYPE TIMESTAMP WITH TIME Z - ✅ Erster Klick auf Spalte: Aufsteigend sortieren - ✅ Zweiter Klick: Absteigend sortieren - ✅ Weitere Klicks: Toggle zwischen ASC/DESC -- ✅ Sortierung funktioniert korrekt mit Pagination und Filtern \ No newline at end of file +- ✅ Sortierung funktioniert korrekt mit Pagination und Filtern + +### 2025-01-08: Port 8443 geschlossen - API nur noch über Nginx + +**Problem:** +- Doppelte Verfügbarkeit des License Servers (Port 8443 + Nginx) machte keinen Sinn +- Inkonsistente Sicherheitskonfiguration (Nginx hatte Security Headers, Port 8443 nicht) +- Doppelte SSL-Konfiguration nötig +- Verwirrung welcher Zugangsweg genutzt werden soll + +**Lösung:** +- Port-Mapping für License Server in docker-compose.yaml entfernt +- API nur noch über Nginx erreichbar: https://api-software-undso.z5m7q9dk3ah2v1plx6ju.com +- Interne Kommunikation zwischen Nginx und License Server bleibt bestehen + +**Vorteile:** +- ✅ Einheitliche Sicherheitskonfiguration (Security Headers, HSTS) +- ✅ Zentrale SSL-Verwaltung nur in Nginx +- ✅ Möglichkeit für Rate Limiting und zentrales Logging +- ✅ Keine zusätzlichen offenen Ports (nur 80/443) +- ✅ Professionellere API-URL ohne Port-Angabe + +**Geänderte Dateien:** +- `v2/docker-compose.yaml`: Port-Mapping "8443:8443" entfernt + +**Hinweis für Client-Software:** +- API-Endpunkte sind weiterhin unter https://api-software-undso.z5m7q9dk3ah2v1plx6ju.com erreichbar +- Keine Änderung der API-URLs nötig, nur Port 8443 ist nicht mehr direkt zugänglich + +**Status:** +- ✅ Port 8443 geschlossen +- ✅ API nur noch über Nginx Reverse Proxy erreichbar +- ✅ Sicherheit erhöht durch zentrale Verwaltung + +### 2025-01-08: Live-Filtering implementiert + +**Problem:** +- Benutzer mussten immer auf "Filter anwenden" klicken +- Umständliche Bedienung, besonders bei mehreren Filterkriterien +- Nicht zeitgemäße User Experience + +**Lösung:** +- JavaScript Event-Listener für automatisches Filtern +- Text-Eingaben: 300ms Debouncing (verzögerte Suche nach Tipp-Pause) +- Dropdowns: Sofortiges Filtern bei Änderung +- "Filter anwenden" Button entfernt, nur "Zurücksetzen" bleibt + +**Implementierte Live-Filter:** +1. **Lizenzübersicht** (licenses.html): + - Suchfeld mit Debouncing + - Typ-Dropdown (Vollversion/Testversion) + - Status-Dropdown (Aktiv/Ablaufend/Abgelaufen/Deaktiviert) + +2. **Kundenübersicht** (customers.html): + - Suchfeld mit Debouncing + - "Suchen" Button entfernt + +3. **Audit-Log** (audit_log.html): + - Benutzer-Textfeld mit Debouncing + - Aktion-Dropdown + - Entität-Dropdown + +**Technische Details:** +- `addEventListener('input')` für Textfelder +- `addEventListener('change')` für Select-Elemente +- `setTimeout()` mit 300ms für Debouncing +- Automatisches `form.submit()` bei Änderungen + +**Vorteile:** +- ✅ Schnellere und intuitivere Bedienung +- ✅ Weniger Klicks erforderlich +- ✅ Moderne User Experience +- ✅ Besonders hilfreich bei komplexen Filterkriterien + +**Status:** +- ✅ Live-Filtering auf allen Hauptseiten implementiert +- ✅ Debouncing verhindert zu viele Server-Requests +- ✅ Zurücksetzen-Button bleibt für schnelles Löschen aller Filter \ No newline at end of file diff --git a/v2/docker-compose.yaml b/v2/docker-compose.yaml index 2825e77..f8b8932 100644 --- a/v2/docker-compose.yaml +++ b/v2/docker-compose.yaml @@ -32,8 +32,7 @@ services: context: ../v2_lizenzserver container_name: license-server restart: always - ports: - - "8443:8443" + # Port-Mapping entfernt - nur noch über Nginx erreichbar env_file: .env environment: TZ: Europe/Berlin diff --git a/v2_adminpanel/templates/audit_log.html b/v2_adminpanel/templates/audit_log.html index e6f4e56..46bdf96 100644 --- a/v2_adminpanel/templates/audit_log.html +++ b/v2_adminpanel/templates/audit_log.html @@ -68,7 +68,7 @@