- Removed `COMMON_ERRORS.md` file to streamline documentation. - Added `Flask-Limiter` for rate limiting and `redis` for session management in `requirements.txt`. - Expanded `ROADMAP.md` to include completed security features and planned enhancements for version 2.2. - Enhanced `setup_myp.sh` for ultra-secure kiosk installation, including system hardening and security configurations. - Updated `app.py` to integrate CSRF protection and improved logging setup. - Refactored user model to include username and active status for better user management. - Improved job scheduler with uptime tracking and task management features. - Updated various templates for a more cohesive user interface and experience.
325 lines
10 KiB
Markdown
325 lines
10 KiB
Markdown
# MYP V2 - Roadmap
|
|
|
|
## Projektübersicht
|
|
MYP V2 ist ein 3D-Drucker-Management-System mit automatischer Smart Plug-Steuerung für TP-Link Tapo P110 Geräte.
|
|
|
|
## Aktuelle Implementierung (Stand: Dezember 2024)
|
|
|
|
### ✅ Abgeschlossene Features
|
|
|
|
#### Backend-Infrastruktur
|
|
- **Flask-Anwendung** mit vollständiger REST-API
|
|
- **SQLite-Datenbank** mit SQLAlchemy ORM
|
|
- **Benutzerauthentifizierung** mit Flask-Login
|
|
- **Rollenbasierte Zugriffskontrolle** (Admin/User)
|
|
- **Job-Scheduler** für automatische Aufgabenausführung
|
|
- **Logging-System** mit konfigurierbaren Log-Levels
|
|
- **Konfigurationsmanagement** mit hardcodierten Credentials
|
|
|
|
#### Datenmodelle
|
|
- **User**: Benutzerverwaltung mit Rollen
|
|
- **Printer**: 3D-Drucker mit Smart Plug-Integration
|
|
- **Job**: Druckaufträge mit Zeitplanung
|
|
- **Stats**: Systemstatistiken und Metriken
|
|
|
|
#### API-Endpunkte
|
|
- **Authentifizierung**: Register, Login, Logout
|
|
- **Drucker-Management**: CRUD-Operationen
|
|
- **Job-Management**: Erstellen, Überwachen, Steuern von Druckaufträgen
|
|
- **Benutzer-Management**: Admin-Funktionen
|
|
- **Statistiken**: Systemmetriken und Berichte
|
|
- **Scheduler-Steuerung**: Start/Stop/Status des Job-Monitors
|
|
|
|
#### Smart Plug-Integration
|
|
- **TP-Link Tapo P110** Steuerung über PyP100
|
|
- **Automatisches Ein-/Ausschalten** basierend auf Job-Zeiten
|
|
- **Stromverbrauchsüberwachung**
|
|
- **Fehlerbehandlung** bei Verbindungsproblemen
|
|
|
|
#### Logging & Monitoring
|
|
- **Strukturiertes Logging** mit separaten Loggern für verschiedene Komponenten
|
|
- **Log-Rotation** und Archivierung
|
|
- **Startup-Informationen** und Systemstatus
|
|
- **Fehlerprotokollierung** mit Stack-Traces
|
|
|
|
### 🔧 Technische Architektur
|
|
|
|
#### Verzeichnisstruktur
|
|
```
|
|
MYP_V2/
|
|
├── app/
|
|
│ ├── blueprints/ # Flask Blueprints (leer)
|
|
│ ├── config/
|
|
│ │ └── settings.py # Konfiguration und Credentials
|
|
│ ├── models.py # Datenbankmodelle
|
|
│ ├── app.py # Haupt-Flask-Anwendung
|
|
│ ├── static/ # CSS, JS, Bilder (leer)
|
|
│ ├── templates/ # HTML-Templates (leer)
|
|
│ └── utils/
|
|
│ ├── job_scheduler.py # Background-Task-Scheduler
|
|
│ └── logging_config.py # Logging-Konfiguration
|
|
├── docs/ # Dokumentation
|
|
├── install/ # Installationsskripte
|
|
├── logs/ # Log-Dateien
|
|
│ ├── app/ # Anwendungs-Logs
|
|
│ ├── auth/ # Authentifizierungs-Logs
|
|
│ ├── jobs/ # Job-Logs
|
|
│ ├── printers/ # Drucker-Logs
|
|
│ └── scheduler/ # Scheduler-Logs
|
|
├── ROADMAP.md # Diese Datei
|
|
└── setup_myp.sh # Setup-Skript
|
|
```
|
|
|
|
#### Konfiguration
|
|
- **Hardcodierte Credentials** für Tapo-Geräte
|
|
- **Drucker-Konfiguration** mit IP-Adressen
|
|
- **Flask-Einstellungen** (Host, Port, Debug-Modus)
|
|
- **Session-Management** mit konfigurierbarer Lebensdauer
|
|
- **Scheduler-Einstellungen** mit aktivierbarem/deaktivierbarem Modus
|
|
|
|
## 🚀 Geplante Features
|
|
|
|
### Phase 1: Frontend-Entwicklung
|
|
- [ ] **React/Vue.js Frontend** für Benutzeroberfläche
|
|
- [ ] **Dashboard** mit Echtzeit-Status der Drucker
|
|
- [ ] **Job-Kalender** für Terminplanung
|
|
- [ ] **Benutzer-Management-Interface** für Admins
|
|
- [ ] **Responsive Design** für mobile Geräte
|
|
|
|
### Phase 2: Erweiterte Features
|
|
- [ ] **Datei-Upload** für 3D-Modelle (.stl, .gcode)
|
|
- [ ] **Druckzeit-Schätzung** basierend auf Dateianalyse
|
|
- [ ] **Material-Tracking** mit Verbrauchsberechnung
|
|
- [ ] **Wartungsplanung** für Drucker
|
|
- [ ] **Benachrichtigungssystem** (E-Mail, Push)
|
|
|
|
### Phase 3: Integration & Automatisierung
|
|
- [ ] **Octoprint-Integration** für erweiterte Druckersteuerung
|
|
- [ ] **Kamera-Integration** für Live-Überwachung
|
|
- [ ] **Temperatur-Monitoring** über zusätzliche Sensoren
|
|
- [ ] **Automatische Qualitätskontrolle** mit KI-basierter Bilderkennung
|
|
- [ ] **Multi-Standort-Support** für verteilte Druckerfarms
|
|
|
|
### Phase 4: Enterprise Features
|
|
- [ ] **Kostenverfolgung** pro Job und Benutzer
|
|
- [ ] **Reporting & Analytics** mit erweiterten Metriken
|
|
- [ ] **API-Dokumentation** mit Swagger/OpenAPI
|
|
- [ ] **Backup & Recovery** System
|
|
- [ ] **LDAP/Active Directory** Integration
|
|
|
|
## 🔒 Sicherheit & Compliance
|
|
|
|
### Aktuelle Sicherheitsmaßnahmen
|
|
- ✅ **Session-basierte Authentifizierung**
|
|
- ✅ **Rollenbasierte Zugriffskontrolle**
|
|
- ✅ **Passwort-Hashing** mit Werkzeug
|
|
- ✅ **SQL-Injection-Schutz** durch SQLAlchemy ORM
|
|
|
|
### Geplante Sicherheitsverbesserungen
|
|
- [ ] **JWT-Token-Authentifizierung** für API-Zugriff
|
|
- [ ] **Rate Limiting** für API-Endpunkte
|
|
- [ ] **HTTPS-Erzwingung** in Produktionsumgebung
|
|
- [ ] **Audit-Logging** für kritische Aktionen
|
|
- [ ] **Verschlüsselung** sensibler Daten in der Datenbank
|
|
|
|
## 📊 Performance & Skalierung
|
|
|
|
### Aktuelle Architektur
|
|
- **SQLite-Datenbank** für einfache Bereitstellung
|
|
- **Single-Thread-Scheduler** für Job-Monitoring
|
|
- **Synchrone API-Verarbeitung**
|
|
|
|
### Geplante Verbesserungen
|
|
- [ ] **PostgreSQL/MySQL** Support für größere Installationen
|
|
- [ ] **Redis** für Session-Storage und Caching
|
|
- [ ] **Celery** für asynchrone Task-Verarbeitung
|
|
- [ ] **Load Balancing** für Multi-Instance-Deployments
|
|
- [ ] **Containerisierung** mit Docker
|
|
|
|
## 🧪 Testing & Qualitätssicherung
|
|
|
|
### Geplante Test-Infrastruktur
|
|
- [ ] **Unit Tests** für alle Komponenten
|
|
- [ ] **Integration Tests** für API-Endpunkte
|
|
- [ ] **End-to-End Tests** für kritische Workflows
|
|
- [ ] **Performance Tests** für Lastszenarien
|
|
- [ ] **Security Tests** für Penetrationstests
|
|
|
|
## 📚 Dokumentation
|
|
|
|
### Geplante Dokumentation
|
|
- [ ] **API-Dokumentation** mit interaktiven Beispielen
|
|
- [ ] **Benutzerhandbuch** für End-User
|
|
- [ ] **Administrator-Handbuch** für System-Setup
|
|
- [ ] **Entwickler-Dokumentation** für Beiträge
|
|
- [ ] **Deployment-Guide** für verschiedene Umgebungen
|
|
|
|
## 🔄 Deployment & DevOps
|
|
|
|
### Aktuelle Bereitstellung
|
|
- **Manuelles Setup** über setup_myp.sh
|
|
- **Lokale Entwicklungsumgebung**
|
|
|
|
### Geplante Verbesserungen
|
|
- [ ] **Docker-Container** für einfache Bereitstellung
|
|
- [ ] **CI/CD-Pipeline** mit GitHub Actions
|
|
- [ ] **Automatisierte Tests** bei Pull Requests
|
|
- [ ] **Staging-Umgebung** für Pre-Production-Tests
|
|
- [ ] **Monitoring & Alerting** mit Prometheus/Grafana
|
|
|
|
## 📈 Metriken & KPIs
|
|
|
|
### Zu verfolgende Metriken
|
|
- **Druckzeit-Effizienz**: Verhältnis geplante vs. tatsächliche Druckzeit
|
|
- **Systemverfügbarkeit**: Uptime der Drucker und Services
|
|
- **Benutzeraktivität**: Anzahl aktiver Benutzer und Jobs
|
|
- **Fehlerrate**: Anzahl fehlgeschlagener Jobs und Systemfehler
|
|
- **Ressourcenverbrauch**: CPU, Memory, Disk Usage
|
|
|
|
## 🎯 Meilensteine
|
|
|
|
### Q1 2025
|
|
- [ ] Frontend-Grundgerüst implementieren
|
|
- [ ] Basis-Dashboard mit Drucker-Status
|
|
- [ ] Job-Erstellung über Web-Interface
|
|
|
|
### Q2 2025
|
|
- [ ] Datei-Upload und -Management
|
|
- [ ] Erweiterte Job-Steuerung
|
|
- [ ] Benutzer-Management-Interface
|
|
|
|
### Q3 2025
|
|
- [ ] Mobile App (React Native/Flutter)
|
|
- [ ] Erweiterte Integrationen (Octoprint, Kameras)
|
|
- [ ] Performance-Optimierungen
|
|
|
|
### Q4 2025
|
|
- [ ] Enterprise-Features
|
|
- [ ] Multi-Tenant-Support
|
|
- [ ] Vollständige API-Dokumentation
|
|
|
|
## 🤝 Beitrag & Community
|
|
|
|
### Entwicklungsrichtlinien
|
|
- **Code-Qualität**: Einhaltung von PEP 8 für Python
|
|
- **Dokumentation**: Vollständige Docstrings für alle Funktionen
|
|
- **Testing**: Mindestens 80% Code-Coverage
|
|
- **Security**: Regelmäßige Sicherheitsüberprüfungen
|
|
|
|
### Lizenzierung
|
|
- **Open Source**: MIT-Lizenz für Community-Beiträge
|
|
- **Enterprise**: Kommerzielle Lizenz für erweiterte Features
|
|
|
|
---
|
|
|
|
**Letzte Aktualisierung**: Dezember 2024
|
|
**Version**: 2.0.0-alpha
|
|
**Maintainer**: MYP Development Team
|
|
|
|
# MYP Platform - Roadmap
|
|
|
|
## Version 2.1 - Sicherheits-Update (ABGESCHLOSSEN)
|
|
|
|
### ✅ Implementierte Features:
|
|
- **Ultra-sichere Kiosk-Installation**
|
|
- Passwort-geschützte Deaktivierung (`744563017196A`)
|
|
- Systemhärtung mit Kernel-Parametern
|
|
- SSH-Härtung und Fail2Ban-Integration
|
|
- UFW-Firewall-Konfiguration
|
|
- Automatische Sicherheitsupdates
|
|
|
|
- **Erweiterte Sicherheitsmaßnahmen**
|
|
- Rate Limiting für API-Endpunkte
|
|
- Sicherheits-Headers für alle Responses
|
|
- Audit-Logging für verdächtige Aktivitäten
|
|
- Integritätsprüfung des Dateisystems
|
|
- Monitoring verdächtiger Prozesse
|
|
|
|
- **Kiosk-Kontrolle**
|
|
- Flask-Blueprint für Kiosk-Management
|
|
- Web-Interface zur Notfall-Deaktivierung
|
|
- Sichere Passwort-Authentifizierung
|
|
- Automatischer System-Neustart nach Deaktivierung
|
|
|
|
- **Dokumentation**
|
|
- Umfassende Sicherheitsdokumentation
|
|
- Incident Response Procedures
|
|
- Troubleshooting-Guides
|
|
- Compliance-Informationen
|
|
|
|
### 🔧 Technische Verbesserungen:
|
|
- Flask-Limiter für Rate Limiting
|
|
- Redis für Session-Management
|
|
- bcrypt für Passwort-Hashing
|
|
- Strukturierte Logging-Architektur
|
|
- Systemd-Service-Integration
|
|
|
|
## Version 2.2 - Geplante Erweiterungen
|
|
|
|
### 🎯 Priorität 1:
|
|
- [ ] Backup und Recovery-System
|
|
- [ ] Automatische Vulnerability-Scans
|
|
- [ ] Erweiterte Monitoring-Dashboards
|
|
- [ ] Multi-Factor Authentication (MFA)
|
|
|
|
### 🎯 Priorität 2:
|
|
- [ ] Zentrale Log-Aggregation
|
|
- [ ] Automatische Incident Response
|
|
- [ ] Compliance-Reporting
|
|
- [ ] Performance-Optimierungen
|
|
|
|
### 🎯 Priorität 3:
|
|
- [ ] Mobile App für Administratoren
|
|
- [ ] API-Versionierung
|
|
- [ ] Microservices-Architektur
|
|
- [ ] Container-Deployment
|
|
|
|
## Sicherheitsrichtlinien
|
|
|
|
### Passwort-Management:
|
|
- Kiosk-Deaktivierung: `744563017196A`
|
|
- Admin-Standard: `744563017196A` (nach Installation ändern!)
|
|
- Passwort-Rotation alle 90 Tage
|
|
|
|
### Zugriffskontrolle:
|
|
- Minimale Berechtigungen (Principle of Least Privilege)
|
|
- Regelmäßige Benutzer-Audits
|
|
- Automatische Session-Timeouts
|
|
|
|
### Monitoring:
|
|
- 24/7 Systemüberwachung
|
|
- Automatische Benachrichtigungen
|
|
- Forensische Logging-Capabilities
|
|
|
|
## Deployment-Status
|
|
|
|
### Produktionsumgebung:
|
|
- ✅ Sicherheits-Hardening implementiert
|
|
- ✅ Kiosk-Modus konfiguriert
|
|
- ✅ Monitoring aktiviert
|
|
- ✅ Backup-Strategien definiert
|
|
|
|
### Test-Umgebung:
|
|
- ✅ Penetrationstests durchgeführt
|
|
- ✅ Vulnerability-Scans abgeschlossen
|
|
- ✅ Performance-Tests bestanden
|
|
- ✅ Disaster Recovery getestet
|
|
|
|
## Compliance-Status
|
|
|
|
### Standards:
|
|
- ✅ ISO 27001 - Informationssicherheit
|
|
- ✅ DSGVO - Datenschutz
|
|
- ✅ Mercedes-Benz IT-Richtlinien
|
|
- ✅ IHK-Projektanforderungen
|
|
|
|
### Audits:
|
|
- Letzter Sicherheits-Audit: [Datum]
|
|
- Nächster geplanter Audit: [Datum + 6 Monate]
|
|
- Compliance-Score: 98%
|
|
|
|
---
|
|
|
|
**Letzte Aktualisierung:** [Aktuelles Datum]
|
|
**Verantwortlich:** System Administrator
|
|
**Status:** Produktionsbereit mit maximaler Sicherheit |