8.2 KiB
8.2 KiB
Update Checklist - Django FBF Projekt
Erstellt am: 7. Juni 2025
Letzter Check: 7. Juni 2025
🔍 Übersicht
Dieses Dokument listet alle Abhängigkeiten auf, die Updates benötigen, sowie Sicherheitshinweise und Empfehlungen für das Django FBF (Fallen Birdy Form) Projekt.
🚨 Kritische Sicherheitsupdates ✅ ALLE ABGESCHLOSSEN
1. CKEditor (HOCH PRIORITÄT) ✅ ABGESCHLOSSEN
- Früher: django-ckeditor 6.7.3 (bündelte CKEditor 4.22.1)
- Problem: CKEditor 4.22.1 war nicht mehr unterstützt und hatte bekannte Sicherheitslücken
- Lösung: ✅ Migration zu CKEditor 5 abgeschlossen
- Implementiert:
- ✅
django-ckeditor-5==0.2.18
installiert - ✅ Alle Django Settings auf CKEditor 5 umgestellt
- ✅ CSP Settings für CKEditor 5 CDN aktualisiert
- ✅ Migration Files korrigiert und Datenbank migriert
- ✅ Alle Tests erfolgreich (keine Deprecated Warnings)
- ✅ Web-Interface funktioniert korrekt mit CKEditor 5
- ✅
2. Django-allauth Settings (MITTEL PRIORITÄT) ✅ ABGESCHLOSSEN
- Problem: Veraltete Settings-Optionen wurden verwendet
- Lösung: ✅ Alle deprecated Settings erfolgreich aktualisiert
- Umgesetzte Änderungen:
- ✅
ACCOUNT_AUTHENTICATION_METHOD
→ACCOUNT_LOGIN_METHODS = {"username", "email"}
- ✅
ACCOUNT_EMAIL_REQUIRED
→ACCOUNT_SIGNUP_FIELDS = ["email*", "username*", "password1*", "password2*"]
- ✅
ACCOUNT_LOGIN_ATTEMPTS_LIMIT/TIMEOUT
→ACCOUNT_RATE_LIMITS = {"login_failed": "5/15m"}
- ✅
- Validierung:
- ✅ Keine Deprecation Warnings mehr vorhanden
- ✅ django-allauth 65.9.0 läuft einwandfrei
- ✅ Login-Funktionalität getestet und funktionsfähig
3. KRITISCHER FEHLER BEHOBEN ✅ ABGESCHLOSSEN
- Problem: Group DoesNotExist Error verhinderte Applikationsstart
- Lösung: ✅ Template Filter robuster gemacht
- Implementiert:
- ✅ Sichere Fehlerbehandlung für fehlende User Groups
- ✅ Anwendung läuft wieder stabil und fehlerfrei
- ✅ Navbar zeigt Export-Link nur bei vorhandener "data-export" Gruppe
🔄 Python & Base System Updates ✅ ABGESCHLOSSEN
Python ✅ HOST UPDATE ABGESCHLOSSEN
- Container: Python 3.11.13 ✅ (aktuell)
- Host System: Python 3.11.13 ✅ AKTUALISIERT (war 3.11.0)
- Neueste Stable: Python 3.12.x (Major Update verfügbar)
- Status: ✅ Host-System auf neueste 3.11 Version aktualisiert
pip ✅ BEREITS AKTUELL
- Aktuell: 25.1.1 ✅ (bereits neueste Version)
- Status: ✅ Keine Aktualisierung nötig
🐳 Docker Images Updates ✅ TEILWEISE ABGESCHLOSSEN
PostgreSQL ✅ STABIL BELASSEN
- Aktuell: postgres:15-alpine (PostgreSQL 15.13)
- Verfügbar: postgres:16-alpine oder postgres:17-alpine
- Status: ✅ PostgreSQL 15 wird noch unterstützt (bis November 2030)
- Entscheidung: ⚠️ Bei Version 15 belassen - Update auf 16/17 erfordert Datenbank-Migration
Traefik ✅ AKTUALISIERT
- Früher: traefik:v3.2.0 (7 Monate alt)
- Aktuell: traefik:latest ✅ AKTUALISIERT (11 Tage alt)
- Status: ✅ Erfolgreich auf neueste Version aktualisiert
Python Base Image ✅ AKTUELL
- Aktuell: python:3.11-slim ✅ (optimal für Projekt)
📦 Python Package Updates
Django Core Packages
Package | Aktuell | Requirement | Status | Priorität |
---|---|---|---|---|
Django | 5.2.2 | >=4.2 | ✅ Aktuell | - |
django-allauth | 65.9.0 | >=0.55 | ✅ Aktuell | Niedrig |
django-ckeditor | 6.7.3 | >=6.6 | ❌ Sicherheit | HOCH |
django-crispy-forms | 2.4 | >=1 | ✅ Aktuell | Niedrig |
django-csp | 4.0 | >=3.7 | ✅ Aktuell | Niedrig |
django-environ | 0.12.0 | >=0.9 | ✅ Aktuell | Niedrig |
django-jazzmin | 3.0.1 | >=2.6.0 | ✅ Aktuell | Niedrig |
Infrastructure Packages
Package | Aktuell | Requirement | Status | Priorität |
---|---|---|---|---|
gunicorn | 23.0.0 | >=20.1 | ✅ Aktuell | Niedrig |
psycopg2-binary | 2.9.10 | >=2.9 | ✅ Aktuell | Niedrig |
whitenoise | 6.9.0 | >=6.5 | ✅ Aktuell | Niedrig |
Form & UI Packages
Package | Aktuell | Requirement | Status | Priorität |
---|---|---|---|---|
crispy-bootstrap5 | 2025.4 | >=0.6 | ✅ Aktuell | Niedrig |
django-bootstrap-datepicker-plus | 5.0.5 | >=4.0 | ✅ Aktuell | Niedrig |
django-bootstrap-modal-forms | 3.0.5 | >=2 | ✅ Aktuell | Niedrig |
🛠️ Empfohlene Update-Reihenfolge
Phase 1: Kritische Sicherheitsupdates ✅ ABGESCHLOSSEN
-
CKEditor Migration ✅ ABGESCHLOSSEN
- ✅ django-ckeditor-5==0.2.18 installiert
- ✅ Django Settings komplett umgestellt
- ✅ Migration Files korrigiert
- ✅ Datenbank erfolgreich migriert
- ✅ CSP Security Policy aktualisiert
- ✅ Web-Interface getestet und funktionsfähig
-
Django-allauth Settings aktualisieren ✅ ABGESCHLOSSEN
- ✅ Alle deprecated Settings in
core/allauth.py
modernisiert - ✅ django-allauth 65.9.0 läuft ohne Deprecation Warnings
- ✅ Login-Funktionalität vollständig getestet und funktionsfähig
- ✅ Alle deprecated Settings in
Phase 2: System Updates (Nächste Wartung) ✅ ABGESCHLOSSEN
-
pip Update ✅ ABGESCHLOSSEN
- ✅ pip bereits auf neuester Version 25.1.1
-
Host Python Update ✅ ABGESCHLOSSEN
- ✅ Python 3.11.13 via Homebrew installiert
- ✅ Upgrade von Python 3.11.0 → Python 3.11.13
-
Docker Images Update ✅ TEILWEISE ABGESCHLOSSEN
- ✅ Traefik v3.2.0 → traefik:latest (erheblich neuer)
- ⚠️ PostgreSQL 15-alpine beibehalten (16-alpine erfordert Datenbank-Migration)
- ✅ Veraltete Docker Images aufgeräumt
-
Python Packages Update ✅ ABGESCHLOSSEN
- ✅ setuptools 65.5.1 → 80.9.0
- ⚠️ pydantic_core Kompatibilität mit bestehender pydantic Version beibehalten
-
Kritischer Fehler behoben ✅ ABGESCHLOSSEN
- ✅ Group DoesNotExist Error in template filter behoben
- ✅ Robuste Fehlerbehandlung für fehlende User Groups implementiert
-
Test-Suite repariert ✅ ABGESCHLOSSEN
- ✅ Host-System django-ckeditor-5 dependency installiert
- ✅ Alle 107 Tests bestehen wieder (13 Django + 94 Pytest)
- ✅ Test Coverage Report generiert
Phase 3: Größere Updates (Geplante Wartung)
-
Python 3.12 Migration
- Dockerfile aktualisieren:
FROM python:3.12-slim
- Tests auf Kompatibilität prüfen
- Container neu bauen
- Dockerfile aktualisieren:
-
PostgreSQL Update (Optional)
- docker-compose.yaml:
postgres:16-alpine
- Datenbank-Backup vor Update
- Migrationstest durchführen
- docker-compose.yaml:
🔒 Sicherheitsempfehlungen
Aktuell erkannte Probleme:
- CKEditor 4.22.1 - Bekannte Sicherheitslücken
- Veraltete django-allauth Settings - Funktional aber deprecated
Präventive Maßnahmen:
-
Regelmäßige Sicherheitschecks
# Dependency-Check alle 2 Wochen docker exec django_fbf_web_1 pip check docker exec django_fbf_web_1 python manage.py check
-
Requirements Pinning
- Exakte Versionen in requirements.txt verwenden
- Sicherheitsupdates kontrolliert einspielen
-
Automated Security Scanning
- GitHub Dependabot aktivieren
- Oder andere Security-Scanning Tools verwenden
📋 Maintenance Checklist
Monatlich:
- Django System Check ausführen
- Pip Package Updates prüfen
- Docker Image Updates prüfen
- Security Advisories checken
Quartalsweise:
- Major Version Updates evaluieren
- Performance Tests nach Updates
- Backup-Strategie validieren
- Documentation Updates
Jährlich:
- Python Version Migration planen
- Database Version Update evaluieren
- Dependency Audit durchführen
- Security Penetration Test
🔗 Nützliche Ressourcen
- Django Security Releases
- Python Security Updates
- PostgreSQL Release Schedule
- CKEditor Migration Guide
Letztes Update: 7. Juni 2025
Nächster Review: 7. Juli 2025