diff --git a/backend/__pycache__/app.cpython-313.pyc b/backend/__pycache__/app.cpython-313.pyc index 569bda09b..9f834d8a6 100644 Binary files a/backend/__pycache__/app.cpython-313.pyc and b/backend/__pycache__/app.cpython-313.pyc differ diff --git a/backend/app.py b/backend/app.py index a70d4596f..8d3422e08 100644 --- a/backend/app.py +++ b/backend/app.py @@ -367,6 +367,113 @@ def register_aggressive_shutdown(): # Shutdown-Handler registrieren register_aggressive_shutdown() +def apply_production_config(app): + """Wendet die Production-Konfiguration auf die Flask-App an""" + app_logger.info("[PRODUCTION] Aktiviere Production-Konfiguration für Mercedes-Benz TBA") + + # Dynamische Werte setzen + from utils.settings import SECRET_KEY, SESSION_LIFETIME + ProductionConfig.SECRET_KEY = os.environ.get('SECRET_KEY') or SECRET_KEY + ProductionConfig.PERMANENT_SESSION_LIFETIME = SESSION_LIFETIME + + # Flask-Basis-Konfiguration + app.config.update({ + "ENV": ProductionConfig.ENV, + "DEBUG": ProductionConfig.DEBUG, + "TESTING": ProductionConfig.TESTING, + "SECRET_KEY": ProductionConfig.SECRET_KEY, + "WTF_CSRF_ENABLED": ProductionConfig.WTF_CSRF_ENABLED, + "WTF_CSRF_TIME_LIMIT": ProductionConfig.WTF_CSRF_TIME_LIMIT, + "SESSION_COOKIE_SECURE": ProductionConfig.SESSION_COOKIE_SECURE, + "SESSION_COOKIE_HTTPONLY": ProductionConfig.SESSION_COOKIE_HTTPONLY, + "SESSION_COOKIE_SAMESITE": ProductionConfig.SESSION_COOKIE_SAMESITE, + "PERMANENT_SESSION_LIFETIME": ProductionConfig.PERMANENT_SESSION_LIFETIME, + "SEND_FILE_MAX_AGE_DEFAULT": ProductionConfig.SEND_FILE_MAX_AGE_DEFAULT, + "TEMPLATES_AUTO_RELOAD": ProductionConfig.TEMPLATES_AUTO_RELOAD, + "EXPLAIN_TEMPLATE_LOADING": ProductionConfig.EXPLAIN_TEMPLATE_LOADING, + "MAX_CONTENT_LENGTH": ProductionConfig.MAX_CONTENT_LENGTH, + "JSON_SORT_KEYS": ProductionConfig.JSON_SORT_KEYS, + "JSONIFY_PRETTYPRINT_REGULAR": ProductionConfig.JSONIFY_PRETTYPRINT_REGULAR, + "JSONIFY_MIMETYPE": ProductionConfig.JSONIFY_MIMETYPE, + "SQLALCHEMY_TRACK_MODIFICATIONS": ProductionConfig.SQLALCHEMY_TRACK_MODIFICATIONS, + "SQLALCHEMY_ENGINE_OPTIONS": ProductionConfig.SQLALCHEMY_ENGINE_OPTIONS + }) + + # Jinja2-Umgebung für Production + app.jinja_env.globals.update({ + 'production_mode': True, + 'development_mode': False, + 'optimized_mode': ProductionConfig.OPTIMIZED_MODE, + 'use_minified_assets': ProductionConfig.USE_MINIFIED_ASSETS, + 'disable_animations': ProductionConfig.DISABLE_ANIMATIONS, + 'limit_glassmorphism': ProductionConfig.LIMIT_GLASSMORPHISM, + 'environment_name': ProductionConfig.ENVIRONMENT_NAME, + 'company_name': ProductionConfig.COMPANY_NAME, + 'compliance_mode': ProductionConfig.COMPLIANCE_MODE, + 'offline_mode': ProductionConfig.OFFLINE_MODE, + 'use_local_assets_only': ProductionConfig.USE_LOCAL_ASSETS_ONLY, + 'base_template': 'base-production.html' + }) + + app_logger.info(f"[PRODUCTION] ✅ {ProductionConfig.COMPANY_NAME} Konfiguration aktiviert") + app_logger.info(f"[PRODUCTION] ✅ Environment: {ProductionConfig.ENVIRONMENT_NAME}") + app_logger.info(f"[PRODUCTION] ✅ Air-Gapped Mode: {ProductionConfig.OFFLINE_MODE}") + app_logger.info(f"[PRODUCTION] ✅ Compliance Mode: {ProductionConfig.COMPLIANCE_MODE}") + app_logger.info(f"[PRODUCTION] ✅ Performance Optimized: {ProductionConfig.OPTIMIZED_MODE}") + +def apply_development_config(app): + """Wendet die Development-Konfiguration auf die Flask-App an""" + app_logger.info("[DEVELOPMENT] Aktiviere Development-Konfiguration") + + # Dynamische Werte setzen + from utils.settings import SECRET_KEY, SESSION_LIFETIME + DevelopmentConfig.SECRET_KEY = os.environ.get('SECRET_KEY') or SECRET_KEY + DevelopmentConfig.PERMANENT_SESSION_LIFETIME = SESSION_LIFETIME + + # Flask-Basis-Konfiguration + app.config.update({ + "ENV": DevelopmentConfig.ENV, + "DEBUG": DevelopmentConfig.DEBUG, + "TESTING": DevelopmentConfig.TESTING, + "SECRET_KEY": DevelopmentConfig.SECRET_KEY, + "WTF_CSRF_ENABLED": DevelopmentConfig.WTF_CSRF_ENABLED, + "WTF_CSRF_TIME_LIMIT": DevelopmentConfig.WTF_CSRF_TIME_LIMIT, + "SESSION_COOKIE_SECURE": DevelopmentConfig.SESSION_COOKIE_SECURE, + "SESSION_COOKIE_HTTPONLY": DevelopmentConfig.SESSION_COOKIE_HTTPONLY, + "SESSION_COOKIE_SAMESITE": DevelopmentConfig.SESSION_COOKIE_SAMESITE, + "PERMANENT_SESSION_LIFETIME": DevelopmentConfig.PERMANENT_SESSION_LIFETIME, + "SEND_FILE_MAX_AGE_DEFAULT": DevelopmentConfig.SEND_FILE_MAX_AGE_DEFAULT, + "TEMPLATES_AUTO_RELOAD": DevelopmentConfig.TEMPLATES_AUTO_RELOAD, + "EXPLAIN_TEMPLATE_LOADING": DevelopmentConfig.EXPLAIN_TEMPLATE_LOADING, + "MAX_CONTENT_LENGTH": DevelopmentConfig.MAX_CONTENT_LENGTH, + "JSON_SORT_KEYS": DevelopmentConfig.JSON_SORT_KEYS, + "JSONIFY_PRETTYPRINT_REGULAR": DevelopmentConfig.JSONIFY_PRETTYPRINT_REGULAR, + "JSONIFY_MIMETYPE": DevelopmentConfig.JSONIFY_MIMETYPE, + "SQLALCHEMY_TRACK_MODIFICATIONS": DevelopmentConfig.SQLALCHEMY_TRACK_MODIFICATIONS, + "SQLALCHEMY_ENGINE_OPTIONS": DevelopmentConfig.SQLALCHEMY_ENGINE_OPTIONS + }) + + # Jinja2-Umgebung für Development + app.jinja_env.globals.update({ + 'production_mode': False, + 'development_mode': True, + 'optimized_mode': DevelopmentConfig.OPTIMIZED_MODE, + 'use_minified_assets': DevelopmentConfig.USE_MINIFIED_ASSETS, + 'disable_animations': DevelopmentConfig.DISABLE_ANIMATIONS, + 'limit_glassmorphism': DevelopmentConfig.LIMIT_GLASSMORPHISM, + 'environment_name': DevelopmentConfig.ENVIRONMENT_NAME, + 'company_name': DevelopmentConfig.COMPANY_NAME, + 'compliance_mode': DevelopmentConfig.COMPLIANCE_MODE, + 'offline_mode': DevelopmentConfig.OFFLINE_MODE, + 'use_local_assets_only': DevelopmentConfig.USE_LOCAL_ASSETS_ONLY, + 'base_template': 'base.html' + }) + + app_logger.info(f"[DEVELOPMENT] ✅ {DevelopmentConfig.COMPANY_NAME} Konfiguration aktiviert") + app_logger.info(f"[DEVELOPMENT] ✅ Environment: {DevelopmentConfig.ENVIRONMENT_NAME}") + app_logger.info(f"[DEVELOPMENT] ✅ Debug Mode: {DevelopmentConfig.DEBUG}") + app_logger.info(f"[DEVELOPMENT] ✅ SQL Echo: {DevelopmentConfig.SQLALCHEMY_ENGINE_OPTIONS.get('echo', False)}") + # Flask-App initialisieren app = Flask(__name__) app.secret_key = SECRET_KEY diff --git a/backend/logs/app/app.log b/backend/logs/app/app.log index 555e1c1d3..64c06ff34 100644 --- a/backend/logs/app/app.log +++ b/backend/logs/app/app.log @@ -4393,3 +4393,24 @@ WHERE users.id = ? 2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development 2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False 2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-11 10:27:45 - [app] app - [WARNING] WARNING - DatabaseCleanupManager nicht verfügbar - Fallback auf Legacy-Cleanup +2025-06-11 10:27:45 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\instance\printer_manager.db +2025-06-11 10:27:45 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-11 10:27:45 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-11 10:27:45 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-11 10:27:53 - [app] app - [WARNING] WARNING - DatabaseCleanupManager nicht verfügbar - Fallback auf Legacy-Cleanup +2025-06-11 10:27:53 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\instance\printer_manager.db +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: production +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: True +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] Aktiviere Production-Konfiguration für Mercedes-Benz TBA +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Mercedes-Benz TBA Marienfelde Konfiguration aktiviert +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Environment: Production Air-Gapped +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Air-Gapped Mode: True +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Compliance Mode: True +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Performance Optimized: True +2025-06-11 10:27:53 - [app] app - [INFO] INFO - [CONFIG] ✅ Air-Gapped/Offline-Modus aktiviert diff --git a/backend/logs/permissions/permissions.log b/backend/logs/permissions/permissions.log index bfb68aa7a..a3ef4d395 100644 --- a/backend/logs/permissions/permissions.log +++ b/backend/logs/permissions/permissions.log @@ -63,3 +63,5 @@ 2025-06-11 09:25:48 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert 2025-06-11 09:35:07 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert 2025-06-11 09:39:31 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert +2025-06-11 10:27:45 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert +2025-06-11 10:27:53 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert diff --git a/backend/logs/printer_monitor/printer_monitor.log b/backend/logs/printer_monitor/printer_monitor.log index dd3eea6fb..43c18806c 100644 --- a/backend/logs/printer_monitor/printer_monitor.log +++ b/backend/logs/printer_monitor/printer_monitor.log @@ -632,3 +632,7 @@ 2025-06-11 10:24:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet 2025-06-11 10:25:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert 2025-06-11 10:25:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-11 10:27:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-11 10:27:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-11 10:27:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-11 10:27:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet diff --git a/backend/logs/scheduler/scheduler.log b/backend/logs/scheduler/scheduler.log index a7f664b26..04b6cd902 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -145,3 +145,5 @@ 2025-06-11 10:22:20 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-11 10:24:10 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-11 10:25:53 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-11 10:27:45 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-11 10:27:53 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True diff --git a/backend/logs/security/security.log b/backend/logs/security/security.log index 04ebc5aa7..6c456db08 100644 --- a/backend/logs/security/security.log +++ b/backend/logs/security/security.log @@ -63,3 +63,5 @@ 2025-06-11 09:25:48 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-11 09:35:07 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-11 09:39:31 - [security] security - [INFO] INFO - 🔒 Security System initialisiert +2025-06-11 10:27:45 - [security] security - [INFO] INFO - 🔒 Security System initialisiert +2025-06-11 10:27:53 - [security] security - [INFO] INFO - 🔒 Security System initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index d98293ade..c5d42ae4e 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -528,3 +528,21 @@ 2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert 2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert 2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - ================================================== +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - ================================================== +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)] +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-11T10:27:45.592510 +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - ================================================== +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - ================================================== +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)] +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-11T10:27:53.810771 +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/tapo_controller/tapo_controller.log b/backend/logs/tapo_controller/tapo_controller.log index 572501b70..38898eced 100644 --- a/backend/logs/tapo_controller/tapo_controller.log +++ b/backend/logs/tapo_controller/tapo_controller.log @@ -365,3 +365,5 @@ 2025-06-11 10:22:20 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-11 10:24:10 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-11 10:25:53 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-11 10:27:45 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-11 10:27:53 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert diff --git a/backend/logs/windows_fixes/windows_fixes.log b/backend/logs/windows_fixes/windows_fixes.log index 32fd58407..527e69623 100644 --- a/backend/logs/windows_fixes/windows_fixes.log +++ b/backend/logs/windows_fixes/windows_fixes.log @@ -114,3 +114,11 @@ 2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) 2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet 2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-11 10:27:45 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-11 10:27:45 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-11 10:27:45 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-11 10:27:45 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-11 10:27:53 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-11 10:27:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-11 10:27:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-11 10:27:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet