From 3c1129644cf0d2e394d0fad50f3f481d166276f5 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Thu, 19 Jun 2025 21:48:29 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20=20=F0=9F=8E=A8=20Feature:=20Enh?= =?UTF-8?q?anced=20Logging=20and=20Monitoring=20System=20=F0=9F=93=9A=20?= =?UTF-8?q?=20=F0=9F=94=8D=20Improved=20Utility=20Modules=20=F0=9F=90=9B?= =?UTF-8?q?=20=20=F0=9F=9A=A7=20Refactoring=20of=20Backend=20Blueprints=20?= =?UTF-8?q?for=20Better=20Organization=20=F0=9F=92=84=20=20=F0=9F=96=BC?= =?UTF-8?q?=EF=B8=8F=20Updated=20Utility=20Cache=20Files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit introduces a new logging and monitoring system, enhancing our application's observability. Additionally, we've refactored the backend blueprint modules to improve organization and maintainability. The utility cache files have been updated as well. --- .../__pycache__/admin_unified.cpython-311.pyc | Bin 171632 -> 181471 bytes .../__pycache__/auth.cpython-311.pyc | Bin 20473 -> 20559 bytes .../__pycache__/calendar.cpython-311.pyc | Bin 77587 -> 77673 bytes .../__pycache__/guest.cpython-311.pyc | Bin 62352 -> 62438 bytes .../__pycache__/jobs.cpython-311.pyc | Bin 41832 -> 41918 bytes .../__pycache__/kiosk.cpython-311.pyc | Bin 9989 -> 10075 bytes .../__pycache__/printers.cpython-311.pyc | Bin 82779 -> 83014 bytes .../__pycache__/sessions.cpython-311.pyc | Bin 8721 -> 8807 bytes .../__pycache__/tapo_control.cpython-311.pyc | Bin 26080 -> 26166 bytes .../__pycache__/uploads.cpython-311.pyc | Bin 24021 -> 24107 bytes .../user_management.cpython-311.pyc | Bin 39932 -> 40018 bytes backend/logs/app/app.log | 1 + .../logs/data_management/data_management.log | 2 ++ .../hardware_integration.log | 4 ++++ .../job_queue_system/job_queue_system.log | 2 ++ backend/logs/scheduler/scheduler.log | 1 + .../logs/security_suite/security_suite.log | 2 ++ .../logs/tapo_controller/tapo_controller.log | 1 + .../utilities_collection.log | 2 ++ .../data_management.cpython-311.pyc | Bin 19572 -> 19658 bytes .../drag_drop_system.cpython-311.pyc | Bin 60468 -> 60554 bytes .../hardware_integration.cpython-311.pyc | Bin 75379 -> 75465 bytes .../job_queue_system.cpython-311.pyc | Bin 28384 -> 28470 bytes .../__pycache__/job_scheduler.cpython-311.pyc | Bin 36227 -> 36313 bytes .../monitoring_analytics.cpython-311.pyc | Bin 17472 -> 17558 bytes .../__pycache__/permissions.cpython-311.pyc | Bin 10597 -> 10683 bytes .../security_suite.cpython-311.pyc | Bin 7357 -> 7443 bytes 27 files changed, 15 insertions(+) diff --git a/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc b/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc index bdb17adcccda6e7afb37c93046ff955b7cc2e9bf..3964f9c52eb7394be827e9eb5e69a646e2ec64e7 100644 GIT binary patch delta 18278 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 delta 58 zcmX@Vfbr*iMy}<&yj%=GaCz-Ut~M$8UtapTc_sSE`k}?CMaB9dA^yJ3QI2}9zOIh? ME~#akS*5*90X>Qmr2qf` diff --git a/backend/blueprints/__pycache__/calendar.cpython-311.pyc b/backend/blueprints/__pycache__/calendar.cpython-311.pyc index d64bf9dfde76980aa9fd29bf9c2d296ffe5ba879..4c7955281a8b9c9b65b52c34ec7b632377d3eba1 100644 GIT binary patch delta 159 zcmbPykLBe(7VhP|yj%=Gpl=+qkz1Oh{_8>zCpjrIPv6-f*ibh)wJ0w&2go+^G17NQ zEJ@8QOD!r-%qc0&OV`g!ttd&($uCXOPtGq&)lbXJNiEhlj(18eDou-bEGb7VhP|yj%=Gka#e7Beyh%{4YQK+`JO~Wc|?M)S_bjkPv@g=O{-#S6^30 SeV5d-=Gh$EXLB%~Qv(2v9~6B6 diff --git a/backend/blueprints/__pycache__/guest.cpython-311.pyc b/backend/blueprints/__pycache__/guest.cpython-311.pyc index c183484494934c78c27b0a43e9f76d0432c28069..7cc9bb4628f8bda508e628b311e68f5db5f7573d 100644 GIT binary patch delta 155 zcmbR6ocY;vX71&@yj%=Gpl=+qk$WXi{nvRQPI6Lap1!j|u%T{pYEfQl4v=l+W2Enr zSdyAqmReMvm{U@km#&|eT2YdmlV6&mpPXNms-KpblUl5A9PgA`RGJp=SX!KvnUexk z7hjr}5+9tLQJRyg@9E*K>zGuWoRL#nTwG9ecuyM0pn#(Mtkmq1#G=i2c{V=-02MPi ASpWb4 delta 59 zcmaF%oO!}?X71&@yj%=G&~YVrBlk)k`Cs1pxp^h}$@-zisYS*5AtC<0&QXqfuD-60 O`Yx$un>Bg&J_7(=uM}qh diff --git a/backend/blueprints/__pycache__/jobs.cpython-311.pyc b/backend/blueprints/__pycache__/jobs.cpython-311.pyc index 1b28798a0181a9b65cd70a45a6089b28c246c178..0b6c167d4cc796d3c53ba587ad99bf18ae008383 100644 GIT binary patch delta 154 zcmaEHjA`F-Ca&eYyj%=G;1|4+>ke=I*SSEpesWS~p1!j|u%T{pYEfQl4v=l+W2Enr zSdyAqmReMvm{U@km#&|eT2YdmlV6&mpPXNms-KpblUl5A9PgA`RGJp=SX!KvnUexk z7hjr}5+9tLQJRyg@9E*K>zGuWoRL#nTwG9ecuyM0pn#(Mtkmq1#G=joe34TD5X3j@ delta 58 zcmdmYoax0eCa&eYyj%=Ga5a1**BxH@UtapTc_sSE`k}?CMaB9dA^yJ3QI2}9zOIh? NE~#akqxq7j0suyc6N&%; diff --git a/backend/blueprints/__pycache__/kiosk.cpython-311.pyc b/backend/blueprints/__pycache__/kiosk.cpython-311.pyc index 960bbffbb259893a7ed0d7af01115d6b95878000..adbeca00d78178bf9c812ecc651c85caa1244e89 100644 GIT binary patch delta 156 zcmZqmyY0ufoR^o20SIK@x@82(Y~*{&UjKC-kguPdl$odRY!Gayo19vdmzo1)8~GUN zyCjyRW|pNEl_%zul;)-D=cQJZBl?>Ar52T@#XFW3CuQcO z0M*5p=B303CufxAr0RQmceIRHG? BIAH() delta 60 zcmccZ*XqZ&oR^o20SLA%aLAC6-N^TpUH+H1er{fgezJaOacWVqen^PFuXB{6o~y5` OqrOXO+2#z6&vF1j854v6 diff --git a/backend/blueprints/__pycache__/printers.cpython-311.pyc b/backend/blueprints/__pycache__/printers.cpython-311.pyc index aaa274d4e4d508c7ee5145f6a286b1386ac10bbc..166072d4077baf04bdb76217a01f2ee376b97d1d 100644 GIT binary patch delta 2261 zcmai0YfKbZ6uxI>XJ4=n5O#Pi50~X7u!4vJrjvcz01pW(b-)=Is>t` zjapkDS39XiBR|wM+SG<0^oLEUq*bd;3Zar%O^sF4_D8Ef+8TfLUT_x{8=TFaJ&$kB zIp2Mp?9cBB-|ZJn=S?OfqR-IQjUB&yVX90W_CNx-&MP`v82f3mHb{G)l1iv zy6Rej-p<`#si(yk4Eft#es6EkZ?lEq446!z?ChLF9 zB$uvQ$QI%zF=hi(t`2sou{x4~k_yw{c%GyBdri6!dDF2jMg&mXb303n|jRATnKv#To5Du{Mg$TnHPBvnY5mcC>SfiHx%5e>FJ&XU%1! zRQ%!w56HUa^a#@!9A=}(X*7}%j`%G&J<8VMtSEcm3pZf5Vt!fgvi=Mi!-;yF%~n5{ zK`bAq>YO;Iox{0g+k=b~jbK}pN7p=ZmOnu_e;Su^;t+@iqhjti`}NpJ?mx(d8Zv%7 zne;qNEDzR%8>a`^5!UB!-pr;&;WE?@IY=it%N^v6la3U{B3ooVUP4bak}a6uu3>qk zB3Vy{PKsP%J8AIdq!!5*+EekVc~_dAPk|m*8`<(GnY8@o;HiU+12XzZ7;w$GIN`Jj zbgklN{nVO+>We`LFYOZ$@&o1-Ycw{}nw|PnqjK11tv*I$x<+JB%}X0co*Z)wltd?| zHJo{5D>k2_SLed?^Sm6MoTCB@cuszYM_ve?{dW5)^|(TD>b+7 zxh?oQcXS4a%l~>8jC(1}N%uBzm3;fSKCfaztoSPTa^bkRW>Q=;CDu=f_19X*#fC|- zVM^RIA#NHMnp3tS($vCEP3*sOx5xKwUqeH8yHYibl7c zpUkQ*aVPP&;(;2sk_0!{ho3xs7z^*KQv&#{hba}Ql(r;IFmXWLq=g1JIC5SKL!5RW zi@u|-H$V;?RYL|KaC*dGge|dfcBIV)5C@mkj$C+Kdx#-FP#@<)srGZGUr_V%;0|0= zg?uPXn=UiOD$LgUiJJKu>9AU#4|m}+bx8sI1H&VWmp~S0J;8E(#Kdy;)*iL72u7h_ zO(=$KaD60H4Bx~Qvwe_GGjW!Q>r9j}coh>BR6NtK+R=^ae~MS6J0rLf{?-2n@2BLd delta 2044 zcmah}Z)_A*5P!3KySKO3?QQM-Y412nY0F(pug5{Jw8bEW5)wm&rql$(pT<5Y0lCEM zNt?3E2^s~JfPE%w$E9qZfT?Yj<)e;(@jiu+M!BU4e<6Deamei&pU-*{r+B9x>2OVWOq&HdMLm5$Rkr9>dA#Ite_^UFj8kSg?e`g*E1;Ym-{Voi57^DtUvbMgAz%THMgcufm%yh9%y-Yel(%wfKc5|U&uV~3}_73r+c3s=bUc7x{ zy#3c>4ya?7&Q*`|Gp~b;T?xe{IXNDtEzS{&7K-H>$#g zU|ao0w{TGuP<7EQpz5N!!HeQK36Fe*NBb5gaonMM$Z~ zk!pH55=vh-r#Fo?PUwWA`C%uV=ETFM^@!0T!xA`Q^vJ*#;rGLdf^*P^goJZH*dMrkcvhmVb!TBwKPMz{`w_-U?#8*tX}FNM2sKCje6C8shI y|DHJ|O%4Ob>IV1{G~+=7^uScUCk_*C)!fr`&YaGe)0B}|g@yh;ziAcxCH(`JQl;|% diff --git a/backend/blueprints/__pycache__/sessions.cpython-311.pyc b/backend/blueprints/__pycache__/sessions.cpython-311.pyc index 14df4fce826f320f24e2158c4f2c90ef32644458..267e7bbc54cd41d7c8f5f40435c8563317443d77 100644 GIT binary patch delta 155 zcmbQ}^4x`YIWI340}$vNhh(s9V;)9bjN^?^6Jw3d29g~WaGjd9ciwlYl?@0q06i}3(m6~0WShU%R{k#+aI>|PW delta 59 zcmaFvGSP*1IWI340}!ZQ3C>u&k(Y;E{+FMAZeEFgvVLfBYEiL%NQl3$bCjc=tFNo0 NzDsJ^=05hDQUD*B64?L% diff --git a/backend/blueprints/__pycache__/tapo_control.cpython-311.pyc b/backend/blueprints/__pycache__/tapo_control.cpython-311.pyc index b1bd80daafe6344ebb0f72bfa91f73efcd0d4a86..01563bf68777ad1e8837204c58c848a58cac3f8c 100644 GIT binary patch delta 155 zcmaEGnsM71M(*Xjyj%=GATH^>k-I^l{_9d8M?X0!Gf&^yAlOhhIkhM+H3!Hx@-fnP zNi0dtEK4maPs}MP%}dwMORXqL&dD!L(NE4VO4U!x%tzGuWoRL#nTwG9ecuyM0pn#(Mtkmq1#G=i`97&-7qeeGJ delta 58 zcmZ3zhwk1%SKRGEgPv6-f*ibh)wJ0w&2go+^G17NQ zEJ@8QOD!r-%qc0&OV`g!ttd&($uCXOPtGq&)lbXJNiEhlj(18eDou-bEG, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) 2025-06-19 13:13:06 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Status-Check für 192.168.0.104 fehlgeschlagen: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) 2025-06-19 13:13:11 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.106: Status = off +2025-06-19 21:47:13 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log index f55c1f738..dabe02ac7 100644 --- a/backend/logs/utilities_collection/utilities_collection.log +++ b/backend/logs/utilities_collection/utilities_collection.log @@ -987,3 +987,5 @@ 2025-06-19 21:00:08 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) 2025-06-19 21:00:19 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert 2025-06-19 21:00:19 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-19 21:47:13 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-19 21:47:13 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) diff --git a/backend/utils/__pycache__/data_management.cpython-311.pyc b/backend/utils/__pycache__/data_management.cpython-311.pyc index 1c0adf3dd19056f1029e93928ebddd8da6edbab8..028510c1c6d6c7bd00800766a4c79f55270046a2 100644 GIT binary patch delta 157 zcmew|gYnc%M!w~|yj%=Ga8b}ZV~goVzLOmFUl#-U`pHR|dHT)YDGzMPJU^MesX?Ms(xB#PHM5falBJ%QE6JdV`*_x zW=;xFU3_U?N_=o~Mrlr}zNd$`u47Vhaz;*RadAP>;XP>}g93{3vr@B55{ou*mN)|d Dz&1H7 delta 62 zcmX>#lkv+8M!w~|yj%=Gz*Fj(p=iF5?<9x(uK@kryb}Fn{m|mnqGJ7!5Px6iC`Ub4 QUsp$cm(;S&KAd&V09Q;CO#lD@ diff --git a/backend/utils/__pycache__/drag_drop_system.cpython-311.pyc b/backend/utils/__pycache__/drag_drop_system.cpython-311.pyc index 397fd6501be674e8ba3d67bdd913fa9021a24e63..19eab89d629c190827a8022dce9278c57fe85c1a 100644 GIT binary patch delta 155 zcmdmTgSqP_Gxu^{UM>b8xG3nokvoX3{_7GTM?X0!Gf&^yAlOhhIkhM+H3!Hx@-fnP zNi0dtEK4maPs}MP%}dwMORXqL&dD!L(NE4VO4U!x%tb82rcp4$Q{Hc|0_^GH?KrLSwFNmwWwG>B*fp>Im%Jb)z{Tg N-zBwd^Ch+&PXQ&L6S@EZ diff --git a/backend/utils/__pycache__/hardware_integration.cpython-311.pyc b/backend/utils/__pycache__/hardware_integration.cpython-311.pyc index 2b66d80d3b62f92b0f88bbf3b43f09904cb95ca9..c36efa8c7e7fcf99db2b07cedde39bd6f1887ed3 100644 GIT binary patch delta 159 zcmex-hUMg07VhP|yj%=GU|<}wk-LJo{_6@LM?X0!Gf&^yAlOhhIkhM+H3!Hx@-fnP zNi0dtEK4maPs}MP%}dwMORXqL&dD!L(NE4VO4U!x%ts5C9!v9vfT zGbaV8F1|D`B|bPgqckT~-_yfe*DM!w~|yj%=GaJ9rUqta(1-&QvHUxE6$c_sSE`k}?CMaB9dA^yJ3QI2}9 RzOIh?E~#akE!h910|26T6b8Ffb0;$UTp#{_8>@M?X0!Gf&^yAlOhhIkhM+H3!Hx@-fnP zNi0dtEK4maPs}MP%}dwMORXqL&dD!L(NE4VO4U!x%tb82s#+Nk$WDK{4YQK+`JO~Wc|?M)S_bjkPv@g=O{-#S6^30 NeV5d-&2r4Uy8tHo66F8@ diff --git a/backend/utils/__pycache__/monitoring_analytics.cpython-311.pyc b/backend/utils/__pycache__/monitoring_analytics.cpython-311.pyc index 5061249105ccdd0b74dd07f0bcacf906f886bdcf..729edc3844ff874a59b105a642e7d1387990af7d 100644 GIT binary patch delta 158 zcmX@m!8omxk#9LKFBbz4Tom-q*rL0UPnoU$>k1%WKRGEgPv6-f*ibh)wJ0w&2go+^ zG17NQEJ@8QOD!r-%qc0&OV`g!ttd&($uCXOPtGq&)lbXJNiEhlj(18eDou-bEGuS7ptKeRZts8~NF#NXFB%2ChN Q*VR$qCADnxGPV!406VJ_bpQYW diff --git a/backend/utils/__pycache__/permissions.cpython-311.pyc b/backend/utils/__pycache__/permissions.cpython-311.pyc index c8d17cda86fc010a938607f2ac9f8fa55b1f1980..1f0941e31bddf9ea5ca06778626fb7a5c5aae517 100644 GIT binary patch delta 156 zcmaDFv^$t@IWI340}!l{@z40Hu#u0Et^VtLAYVT@DKk&s*&x_ZH#xN^FEt0qHu5pj zcS$Ts%`8hTDo@NQDa}jQ&r7W+NzTbHP0>%zFG|%<%gjkF);ErKN-Zi)i+3z7PRh(l z0ji5H%}a?7PR=OJN!9oC@YZ!qDo)PGDJ?E8C_20+4P;P2QGQlxc1dEn;?$yI{g4oUU*{-CJy%~> OM}3#nvdt}Q=E?w6785rB diff --git a/backend/utils/__pycache__/security_suite.cpython-311.pyc b/backend/utils/__pycache__/security_suite.cpython-311.pyc index 423b95cd446602e9adef87e4e696c517549f366e..513b43f1f64cc9d5bd94dfaa8d78928ec507b406 100644 GIT binary patch delta 156 zcmdmMIoXPDIWI340}xyk^v<}=zmZRmwf^fOAYVT@DKk&s*&x_ZH#xN^FEt0qHu5pj zcS$Ts%`8hTDo@NQDa}jQ&r7W+NzTbHP0>%zFG|%<%gjkF);ErKN-Zi)i+3z7PRh(l z0ji5H%}a?7PR=OJN!9oC@YZ!qDo)PGDJ?E8C_20+4P;P2QGQlxc1dE<=2X@QaRBTC BH+ld7 delta 60 zcmbPiwbznwIWI340}vROdS+w^Y~<5pmH*|hpPN^rpR6BRoLW?@9}?p4>m22%=j!X~ OsPB?mws|9Kk~jba6%pb9