From f8118541981928537f98e8cc24ca332acb7aa654 Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 5 Sep 2025 13:41:33 -0500 Subject: [PATCH] added Quality Audit and fixed various bugs --- .env | 2 +- .gitignore | 98 ++++- __pycache__/config.cpython-313.pyc | Bin 1707 -> 2139 bytes __pycache__/crud.cpython-311.pyc | Bin 18297 -> 20368 bytes __pycache__/crud.cpython-313.pyc | Bin 17303 -> 19300 bytes __pycache__/main.cpython-311.pyc | Bin 56390 -> 53351 bytes __pycache__/main.cpython-313.pyc | Bin 50463 -> 47434 bytes __pycache__/models.cpython-313.pyc | Bin 8163 -> 9253 bytes __pycache__/msal_auth.cpython-313.pyc | Bin 6567 -> 7683 bytes agent_collector_api_documentation.md | 310 -------------- config.py | 6 + crud.py | 53 ++- ...t Tracker API documentation 2025-08-22.pdf | Bin 0 -> 315126 bytes docs/agent_tracker_API_docs.md | 306 ++++++++++++++ main.py | 382 ++++++++---------- models.py | 16 + msal_auth.py | 70 +++- msal_pkce_flow.md | 224 ++++++++++ requirements.txt | 1 + static/style.css | 16 +- templates/admin/dashboard.html | 286 ++++++++++++- templates/agent_management.html | 216 ++++++++-- templates/agent_register.html | 48 ++- templates/login.html | 84 +++- templates/search.html | 2 +- 25 files changed, 1519 insertions(+), 601 deletions(-) delete mode 100644 agent_collector_api_documentation.md create mode 100644 docs/Agent Tracker API documentation 2025-08-22.pdf create mode 100644 docs/agent_tracker_API_docs.md create mode 100644 msal_pkce_flow.md diff --git a/.env b/.env index 8769134..6baadea 100644 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ MONGODB_URI=mongodb://localhost:27017 MONGODB_DBNAME=agenthub_db SECRET_KEY=your-super-secret-jwt-key-change-in-production-agenthub-2024 ALGORITHM=HS256 -ACCESS_TOKEN_EXPIRE_MINUTES=60 +ACCESS_TOKEN_EXPIRE_MINUTES=240 # Agent Collector API Configuration AGENT_COLLECTOR_API_KEY=agent-collector-static-key-2024-secure diff --git a/.gitignore b/.gitignore index 620ca43..43e1485 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,99 @@ +# Python venv/ - +env/ __pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Environment variables +.env +.env.local +.env.*.local + +# IDEs and editors +.vscode/ +.idea/ +*.swp +*.swo +*~ +.DS_Store +Thumbs.db + +# Logs +*.log +logs/ + +# Database +*.db +*.sqlite +*.sqlite3 + +# Node.js (if using for frontend build tools) +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# macOS +.DS_Store +.AppleDouble +.LSOverride + +# Windows +Thumbs.db +ehthumbs.db +Desktop.ini + +# Linux +*~ + +# Temporary files +*.tmp +*.temp +.cache/ + +# FastAPI/Uvicorn specific +.uvicorn* + +# MongoDB dumps +*.dump +*.bson diff --git a/__pycache__/config.cpython-313.pyc b/__pycache__/config.cpython-313.pyc index 833c922a71440052d641e5a8d3a5cd179b577b75..122b8a97c07d9a85d71b9e8be84a297210c64241 100644 GIT binary patch delta 920 zcmZ8fF>ljQ5VjrLb>i4g*aKiNUq2XNQU@ ztgr{?`HmeLYdzOBddNj32uTr@Ss=wo%XBXb;3E;MG+A;2V?AiOhV8Z5u5F=VIKmQO z5b(cL-Q}w>T?GhQW~P6o(Y4LTinFG;zS(j?cN|X%x_-~Kl(vnnO;4HVI+kU73LI@9 z-|Cs6<9jM#9l{?UgHXVCjPyCs@EjV2tjbXgwOzgz(=`NC6NCx!Z?RxyK=$K^q_?6w z^qC^_w}U!+fgUH+q39!hsU*)oxVx+wjip7cxnk&AV_92?e$eOobdoh)$M!?fY&DJY_gVbR0G}yAJ&lUHdAUgo}8r zg7?t`J5`fUysE#f$EPlS8rhNS-{iS%d2UCZ|8j3zz7-RN=plQ3c#oq<<@NY)0=9iF IM;^fc1G&`N0ssI2 delta 588 zcmYjN&ubGw6rSCko!!m;NTCgliMFw{&|IX2v{e*Q!L#6AEEHl*wrR>VD{qr}=)qn+ zwsR0X*h9ffJ$vvE@EoWhtRB^~61@A~ENBPboA-Th_PuYvuT$q?Gzr5J!}Dq5?e0hG zII5aI+41tLZD-9Snz6@WabM1{yJi#^oY>oPTV`CUu{{o6>~Fc6;c=ju5+Wb_p+-R* z)fj|5qghtF#;Q6uo*Iq{%qO#DoJT@37t;~@?$3<*420^?{BX-ds%hpzW<%&d2Zx{m zQ}mi-G$6v92fbw2-Wf^R9)W~uq$0IvJupJ`h~HE{tQ9{%4(N9vQVm{dRj{PUd`!5r zT>tFX$GooJbddXZY^*Gd$vf4s&)nF)VJ)(zP=D-obx$k>R_=9VKN$?${jNF^S8vnU z+)T4vpsHkW0GD=Ct4w0|vu)Y#q=TJ)59X1*f|1=m5a*iw`%Rw zd*h84)-S3Xza1WkUyR#At87Majpm7Ns@IT6m?OrP>5Bw_>n{9vF1N4-vRiwU^Ji%) pf%Iw(h0wXeCHmIAv!8ZHGPw&&2+8m4P`!6rC+@@2#Py6q$6tkne5e2b diff --git a/__pycache__/crud.cpython-311.pyc b/__pycache__/crud.cpython-311.pyc index 5b8c47c1257813a2aab4016dc1cbb5dae579a70b..0c6d16bd1ebb555f43194efcb4917a14db369d9c 100644 GIT binary patch delta 3371 zcmZ`*Yj9J?6~23~t}I!8fh9|pB_sJM+4za@LpCvBGU{}gOxnMpKyPM`rSesp;cKJIPGXS=q$6 z!@YOEJ^P(=cK6;rXZQZ+ZF1?Sq~QJh{9FMpkN)GMrk=|M7V_wF?G)*_{O&-kQ!xb% zN+}d;&@`e|%Ff9LOO(#1j7G5mV^+M19c;jMM5B}gV^P+e6AqSwr5Sifu!#5L3>J;( zlnT&WIbRtpP>|CqRp&GZ%b*vu&h}CbR<;;#h)NBp?Mf|lSQ-}<^Z|pS`p%m4^Agfq`=?}4tae5{&F&a7L56mc|5q~%mh|GlhGnQxR znPW;I5>)($Pd!f)h-B=~^YKpwCWCYhjO^A^2`Z{VaKM}%n=a(`L*oRL@VoI?NiO;B zLXn^=pF5!DG{Tc!+j2p#u68AK?sSgxR;ilP3QxM(gY4RbuHkuX&8<;2ryZX3`cAZM zN$6T17FV&i&0mlg*)fYl-Ueg-g#F!Rir=OcCy{p zHu(UEbMcGT*GT;?WNiq$5%wVL1#oK?9grAA*w31674jhvZ^s91d150v__zlc=b*`V z5C#zT0k|dl3d(%+L3X*^As>eJFXO)|zeC6#X6fEWjrTs2nO=;_Y`V-`E8Qf5@Bx(U6(x#Py3`QHaWw@x5tY!kSo43jGTS9v z*=S3FI483wUL&*h6zYkhgj-_5|P>rI1sJ|2v816a@=1pc)*qO=JhqvxNG zN38+L%?NgcIsgb_8D)$gT93eE+VRdNBlA=mW9}UKBC<^gyk`nhCU0bPA_A*2Jrks- zGWo+Zlm@3F{=gAHS`8Lqd>cphqJ`Wgn|F&gr+`YL-7KueS8$&Z7DS6|Ok3>NPTtZb z*0iM7w5Vn_SZj(cXob9rxkIX<8J@d-fG;ar?z$2cU8#yL)wc4vurpm~TM#t)uai0Z zyt6gwY*p87O*pruoZB9Zs|SyzeA7wiwCbGxn|JHHcW2VO^TBAsyFcaKf61WQ+7dLt!;Cn;43w zhN6j{)2W`*Xxo)2>SlkeyyEIB=rakQnZ!P;#20Cp#~QppUV12Jq5Si&g!$`A*yk<9 zW-=@76MiJUsW~l0rLd@wy+Tx)BM^2bb}^^W7$xI8w5S+`T{cRhVpeHi5#kYC-NkE6 zVu6+t_S@1Dj9h8aLxwzB?0A>Hu<_ZbRkZJEPHQ32mz@?MY0pSF3>tEY2!1rcHXlmk=BXTt8Slopjd_#9+ zH*`m6#1WWs@K|%W_!hw(+`eV;AAwm?oHp!CJS#Q|F<>wwvKfFo_)-R}41QG2An-k{ z0VSR!$3b#yvkAdF#ay5#5qN&^z{l^iJnpSaaUa9vfQ(soMA2C=ehekN>Dx5WSY_jv zP@~ zWW&b$We-C0zCh9!P!EqLd}Ar!SfXJ()iA!Gm(95g0>A~szY7G5J7r#%&R>1yr62E4 z7;93-8a1yronL(EkecUwB1@Lse+iO>J+7}Hxy)L%$yNfde9qikBV4lr+}m6a_`4dh zw_X|+af^??QT2*w;2RI$b55|YYTVj4z{^15=Gv=-Y-Mp*yB4#?O4x#HFWJue+-J>r zdcmoKYmhyQ@ED?F?2+59JrAOT#7W%<(c((dvuv`yN&6Ovl_Y+>K12+sk>*SNIp`#Ls@yR6%yJFPes4zX3uz1lwP`3LM^^Q-bz5WC{PZhj(GUqp5c0OmXnRfddb$nh|44iG|o-=vf5 z&+A&rA*S`jv^WQPm0k2$NsQg})ERiUJoe78JtZaViKk4y0Y*FGtJZ%lIM_DZWj%= z(1iDTmtE;`-LPM-}Lznz9@Mq#jHoPabElXY} zx>O)Q`U~_r0Q?TMpMYF4j5-t_R?@Mv^6bI*D zhps}Y5a7SM?#YlcGZB1&{$7B;09Xeh{7wA*UJt2s64RV#L4fLRC9hUOKVjeWeK=G~ xj0*z5Trscif)BLrgAY`yf0)-Rq0L5&x55hoR1d0nr3Qk$UJ2dt^p>BI{{bo^Yr_Bl delta 1788 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 bLUUV0Wn_;p5nf`mnPT=JT)85oOYi>!wd6ZQ delta 17787 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 z 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 Wl-!1?3qNdP)i*?iY!^!x=KlenX$flp delta 17616 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 a6jiW$*d$o}U#RqtC9Uw0iNr~b_5T2aC>AOJ diff --git a/__pycache__/models.cpython-313.pyc b/__pycache__/models.cpython-313.pyc index 4a345066f0237ed548e604bd6d4a226fd2e69a25..48c1e71fce1464d7d904c0a6493c9c4c23149bbe 100644 GIT binary patch literal 9253 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 Wnc^PeGp7N!bEKsGw*x-d&i)sO5r`)M delta 2941 zcmb7GTWl0n7@lcoclI)S>+HSlUb?lgC?ymcC|$5k6QK&FI^2Xw*6r?OS+aKV%$6XM z6eU4@XafEZn)t+nMtsmz9!xZvn3(uTcp+r(=Re*NX<*{$lT|9i3LkqCE{5%^229rW!GwBW0v7MhTVS9faC zc3BW~ht{`+y6Ezdph=pl`80W=mnb%U*rtzYKDgPF7Jcv&!v_q--t;o}3+a8j(?R2{ zM^D+j(^_Vthp2j3ck0gFJsa$@HoGBa7uggmXR{e*HqkYk=z7BE&`290v8t5c0!O3~ zxGN38=TaKl(rL%z3f01#}NI9Ll8N zpMV3t^X*gE>M-FP8UM(i;Dvd4!u_3uotm)3mbB1l)Vr3qkE#hm4$k|x^78hv^1k&O zgGdrhgf<0){RoUpg{Pd}n258=Ob@KvcdL5}wFr4w35@f!Q!MR+KtUXZRB*(-fz0i! zRjg?T(YIUB8B`#Q!b-582c3apIMEZw`5ZtJmt|eTiJ%iHu`S$7TzW_5uw-tV%*kXj z@z`W8%g$?)xhG^rL(9&z?GUmP@waHV}5@NoK;sn_oOjC ztFx@n$FR?X@NxL(NlG8mW>Lopk_b|#ZX%YGB#|(u9j-@WCpY?skVfifo#UEHqV(Vk zw*u3g&({p|d}Glx9#2y{;z8(2>)O#4kF-2x)`LoM;cY%rG0toHKX|ncN6$OL;DG<*tV;pGi7@LZiC5)hKGq8J$!XN0T62N zcPh=ppR;Nyh8tATQkKk8)hN~*)v8gUwS1M%kFw?BH1g}2oLzgh-SX&65E|gfSSxS9 zj?AT4U=Y^nt@zfBI};TM zO~_~Syf~8;_g40@cnSW@9^`v#?dI*IU@_lWPjMOFo=M_G)FNDh8$)|}o{Mm2XzUF8 z(qSJY?4w``4cV2-4&lT2m+dRoW!4ME8e2GvnnRQIFQ=BP@Mfd3R5uQgE1>5F`~h)6 y{Giqr@Y&u5*K&nnMcj3Lwk^;{dmt!=uTw33v`75n@Fx>(fj-(9c$AxzFzUZ|=ntO& diff --git a/__pycache__/msal_auth.cpython-313.pyc b/__pycache__/msal_auth.cpython-313.pyc index d009c4ebfec1be972067f33ffa9f1690480c79df..8951b91136d66d0cd0111348aeed1c5995dbfa0a 100644 GIT binary patch delta 2890 zcmZ`*ZA=`;8Q#6U-MiiU1nv_!ZuyG2t2qn=$9917-6)A|!uD)ZYG0RQfpd?&%k1GK zIL=u~)e^NTCi{a{YSmO#6}wU;6t|W0qmpe|D*00#A{D2VRiUbilz->as8#!?@66_G zpzTQe&dmF@@65dKGxK5ZyZ!EcmrJ0axte~lxKh9F4$=MV$F8wml*GKU{>wkt#~6dl za}+6ZK@rbN!!L{Z<=Jc| zEvB;>MJle`{u&*5Ux*4k z@EG{^f1}5QE&aURuMau|L1iVY#JSkt*V#h^vQD)sc8G}zac74&AzPWIJsAw|pQR82`0 z-pnh=0~Q9Wr6C8PE5OO36PV@4K2qsLIh$3~1tqnl6c%%H2dtMsz7p)p$;*Ysp02As zi4$GV;c*USR+O(oTG{a|wT!Z85FDa5ATc+p#m=2m%W5IBq>Lk!L#RccaW)iDH<5sT zHZz;Z%ScnqL?97bujDeS!AYa%C&wi-rC6e4@L-{+INBIbvIX^GM+_t*`KS4JvL?=S zZa7F}U@k9dXc)9Lo`Recs|^zDQ)j3BPawHLRRlfiZPw$icrhH=4WHZ&pWM8@6CPi6 z@7pQ9vBFXHO+Rb;aZ@?cT5c3~8#}ifJInsi#`OC1Pv&?0?PY&`x#@Vh{VU~2+v6HO zD6Bdv0V>$Ap{}bXe|xFDzf?DHkNbo3zH@iz!uHUG(#6@Gq4aiLdesij!_C-1B>vcD zea@r`npR zBs=9lB8KVog2bP;;7p$i>Q{t@A`hegE*DA?&b&@hGI&Vx|EqE&hve+TwE!*2OO9jE zOO7P}JoIwn(E8o~$Abs+pVT>aWH!m6-*rbNCds!^&D2a|m2abD2vijgY^^IPxT)R) z8yp4DRfS<;fie4edY&3!qSQPc^R7Iv@40)5)p8b4A9!BrBq&SDelR$Ke)C^}9*#OAVDQXGhJXRGJkgOI= zh#-|q8`e3wAb-AvrL2Mr*YKI3j>Ay2LTVl^4P|a6b};6%vbrp1MWRUJ1x3+RJR|De zo|dAAKmr;ee)A}!7ElWg=4+T?|I)W+UP0tyn7~pK6!JN(U|6qcIn{7r>{`~yq6}t1 zDH#0t8)+qvFQb^l1cvk260ZhLV)7y;Bi{gO@a9SY9}K}9;>F_Mn^YBH2^q+sPp}gUJ%EE_m z@Vli~lWQ4JH=Ap|yCNd927RGme?fsl)5e5|f zr?oH8cKx&3-YDL!7-OEw0*uiWAR4}>%^f{ecYl)7j z)39bUz)`ULDw)sba#?guzu|9aTESclz6ifG5Pnw?QUe3+6a8a-% zV0iD@EoMvFvfm&40#7T`G&L|xKelzTfpVg|!a%>*(^p}k2dF>(?B>|*!3vhbY=S;V zZ_SmY3#I9qk~H&)x;=jB3nH7P!>sSt*Ed@?wat#(mn#%Z@7cF}Tj`Si%|MJJ5eoYE z197@t|6O45^x?RT8mNxck|t+U85OEVO)Kbou!4{AD)2eop#JLcm8?D#(Jux!y1xr7 zvqq2l$!Mk<`6^VtJeyU}d!YM!JsN5*;viyv!;;g`D0a|+NgRm5!Mh`)E+Bl`$chQR zjSzl)A-t31aY)MF++p(nAQoUaMst|FiU|%Hy^9I{Ejkok0I;JUo+!&%Wf1)U#Q346 zeWdS%P6qzQQ9{QJ?jP1m7P{*(g=uAo)tke)V5@DopSs^~A8BA7SY0Cl=0Sjk@qYkp C`oVVq delta 1665 zcmZ8hO>7%Q6yEjz_&X)!^WK}i zJNa;^>6zc};b8oA=F63-@K#fdKfBd+Q&5Gzt%tvO*WEc&BfVLzu(bVve_!yTE%74w zwt4AS{`_m_h*qd*skhacOR1t!zNRl}<%(V?rHUmTq*P&Tt)v$V72PPO9qg#(tr#C_ z<$SSFT+z}ZX`yLnGWEhUScQSWlGwiK06CQ+QF_g}z$@E7IPdW??voDsfxC^5(slR! zZUqncP0cicCT~_Cq9Pt_3>OFje9!vnq-ST`k;N+<8}q(~BFAN$8uHPc6LTE>xA{a& z6;)|mDoZ&DRDvq^3a@f$=lVK*?(L(!zU32^s1A;drX@=@i^iH}67+0IEG*JP_kBuF zTCiM&YGox~B_(nOwn+y-+D)3#)R(P74p+4~LJUIM>0AE9f|Xp>DtSC(5PhBHGf%YZ zRn4rR6H8XlU4C~?Wn82eoyjbZq#r#BPzFX(CmRQyDFdX~fb9P1@8R#$R8w{#7}*OB z?*@nWgYjBCxfk!=jd#~tqqRi)USe!FG4^fpr^JO?=PBFEg+^>n4tX|Rb}JX}sD+hU zvir~}ws>q#bbAP^ikn@tXe?=D6bNZcbA)e!DqLBHku5-Zsdy&V{A z_mDw2@lIM`0oD_U)vzQD^G`o-?Y!e+g&}7_P1+GMXz)s*c)h9oEKLOa_>?YdP)G>764SbZ@ z4<|O?I0%IH0%N;@v6?Sjd%18*m+j_S$8An(^=!&;?p|m_VwKtUg#X~3aLLtzUZVd* zF7ofundngaMPPtjus3!IWO5mK@%2EjK&Q}XKX1_Qqu=lfU5}9%Gh9GJ?6j8*#rSFd zV>%FzM6nUzp|k%6d*|5Y#77t6nW-3xm{LnHD};3}K{6sDNC?vamRQnZ|4m$9Ve6}g zQ6dHUb3Ack5w%D{q6p3g1VAu%Xh=CZ*Cu(sI`w$yQIE}m_}%c1u%qs{o@D;Ur9I1Y zug~y@PDP5;dIxL)=7YfzTY}k^xzods&p*o8PKDl95==KnA1JdjV|3Erm2SS1wkB4_ z7m@fy9995d?5bHP<@GW={&G9FN6OoIJRP9k&xSaRjYnqFQ$o;!RD1pj8F1p(W(o*%{*!X;+O z;x%#s7Z@PX5s;KDA{^Z) str: @@ -22,6 +23,10 @@ def is_msal_enabled() -> bool: """Check if MSAL authentication is enabled""" return not DISABLE_MSAL +def show_local_login() -> bool: + """Check if local login should be shown (hidden in production)""" + return not HIDE_LOCAL_LOGIN + def get_msal_config(): """Get MSAL configuration if enabled""" if not is_msal_enabled(): @@ -29,6 +34,7 @@ def get_msal_config(): return { "client_id": os.getenv("AZURE_CLIENT_ID"), + "client_secret": os.getenv("AZURE_CLIENT_SECRET"), "authority": os.getenv("AZURE_AUTHORITY"), "redirect_uri": os.getenv("AZURE_REDIRECT_URI"), } \ No newline at end of file diff --git a/crud.py b/crud.py index ec0f19d..04e0b2b 100644 --- a/crud.py +++ b/crud.py @@ -137,6 +137,16 @@ async def create_agent(agent_data: dict, user_id: str): "created_at": now, "updated_at": now, } + + # Initialize quality audit fields if not provided + if "quality_audit_status" not in agent_doc: + agent_doc["quality_audit_status"] = False + if "quality_audit_updated_by" not in agent_doc: + agent_doc["quality_audit_updated_by"] = None + if "quality_audit_updated_at" not in agent_doc: + agent_doc["quality_audit_updated_at"] = None + if "quality_audit_updated_by_name" not in agent_doc: + agent_doc["quality_audit_updated_by_name"] = None result = await agents_collection.insert_one(agent_doc) agent_doc["_id"] = result.inserted_id return agent_doc @@ -197,12 +207,23 @@ async def get_agent_stats(): stats = await agents_collection.aggregate(pipeline).to_list(length=None) return {stat["_id"]: stat["count"] for stat in stats} -async def update_agent(agent_id: str, update_data: dict, user_id: str = None): +async def update_agent(agent_id: str, update_data: dict, user_id: str = None, admin_user_info: dict = None): try: filter_query = {"_id": ObjectId(agent_id)} if user_id: filter_query["created_by"] = user_id + # Handle Quality Audit updates specially + if "quality_audit_status" in update_data and admin_user_info: + # Get current agent to check if quality audit status is changing + current_agent = await get_agent_by_id(agent_id) + + if current_agent and current_agent.get("quality_audit_status") != update_data["quality_audit_status"]: + # Quality audit status is changing, update audit fields with separate timestamp + update_data["quality_audit_updated_by"] = admin_user_info.get("user_id") + update_data["quality_audit_updated_at"] = datetime.utcnow().isoformat() + update_data["quality_audit_updated_by_name"] = admin_user_info.get("user_name", admin_user_info.get("email")) + update_data["updated_at"] = datetime.utcnow() result = await agents_collection.update_one( filter_query, @@ -214,6 +235,36 @@ async def update_agent(agent_id: str, update_data: dict, user_id: str = None): except: return None +async def update_agent_quality_audit(agent_id: str, quality_audit_status: bool, admin_user_info: dict): + """Update only the quality audit status of an agent (admin only)""" + try: + # Get current agent to ensure it exists + current_agent = await get_agent_by_id(agent_id) + if not current_agent: + return None + + # Only update if status is actually changing + if current_agent.get("quality_audit_status") == quality_audit_status: + return current_agent + + update_data = { + "quality_audit_status": quality_audit_status, + "quality_audit_updated_by": admin_user_info.get("user_id"), + "quality_audit_updated_at": datetime.utcnow().isoformat(), + "quality_audit_updated_by_name": admin_user_info.get("user_name", admin_user_info.get("email")) + } + + result = await agents_collection.update_one( + {"_id": ObjectId(agent_id)}, + {"$set": update_data} + ) + + if result.modified_count: + return await get_agent_by_id(agent_id) + return None + except: + return None + async def delete_agent(agent_id: str, user_id: str = None): try: print(f"🗑️ CRUD: Deleting agent {agent_id} with user_id filter: {user_id}") diff --git a/docs/Agent Tracker API documentation 2025-08-22.pdf b/docs/Agent Tracker API documentation 2025-08-22.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2ad75fbf17c84b7b2f5b28ecb00a8ffcbfc9aeae GIT binary patch literal 315126 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�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%0Db2-EnhTi^ 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/agent_tracker_API_docs.md b/docs/agent_tracker_API_docs.md new file mode 100644 index 0000000..c817ca8 --- /dev/null +++ b/docs/agent_tracker_API_docs.md @@ -0,0 +1,306 @@ +# Agent Registration API Documentation + +## Overview + +The Agent Registration API allows you to register AI agents and track their usage in the AgentHub system. The API automatically handles duplicate registrations by tracking usage when an agent with the same name already exists. + +**Base URL:** `https://ai-sandbox.oliver.solutions/agent_collector/agents` + +## Authentication + +All requests require authentication using a static API key. + +**API Key:** `agent-collector-static-key-2024-secure` + +**Header:** `X-API-Key` + +## Agent Registration Endpoint + +### POST /agents + +Register a new agent or track usage of an existing agent. + +**URL:** `https://ai-sandbox.oliver.solutions/agent_collector/agents` + +**Method:** `POST` + +**Required Headers:** +- `Content-Type: application/json` +- `X-API-Key: agent-collector-static-key-2024-secure` + +## Request Schema + +### Required Fields + +| Field | Type | Description | +|-------|------|-------------| +| `name` | string | The unique name of the agent (minimum 1 character) | +| `description` | string | A detailed description of the agent's functionality (minimum 1 character) | +| `purpose` | string | The primary purpose or goal of the agent (minimum 1 character) | +| `tool` | string | The tool or platform where the agent operates (minimum 1 character) | + +### Optional Fields + +| Field | Type | Description | Default | +|-------|------|-------------|---------| +| `location` | string | Where the agent is deployed or operates | null | +| `userbase` | array[string] | List of user groups or departments that use this agent | null | +| `version` | string | Version number or identifier of the agent | null | +| `creation_date` | string | ISO 8601 datetime when the agent was first created | null | +| `last_updated` | string | ISO 8601 datetime when the agent was last modified | null | +| `capabilities` | array[string] | List of specific capabilities or features the agent provides | null | +| `status` | string | Current operational status of the agent | "development" | +| `department` | string | Department or team that owns/manages the agent | null | +| `contact_person` | string | Primary contact for questions about this agent | null | +| `tags` | array[string] | Keywords or labels for categorizing the agent | null | +| `metadata` | object | Additional key-value pairs of agent information | null | + +### Status Values + +The `status` field accepts the following values (case-insensitive): +- `"active"` - Agent is live and operational +- `"inactive"` - Agent is temporarily disabled +- `"deprecated"` - Agent is being phased out +- `"development"` - Agent is in development/testing phase (default) + +## Usage Examples + +### Basic Agent Registration + +**cURL Example:** +```bash +curl -X POST https://ai-sandbox.oliver.solutions/agent_collector/agents \ + -H "Content-Type: application/json" \ + -H "X-API-Key: agent-collector-static-key-2024-secure" \ + -d '{ + "name": "CustomerSupportBot", + "description": "AI assistant that handles customer inquiries and support tickets", + "purpose": "Provide 24/7 automated customer support and reduce response times", + "tool": "chat-sandbox" + }' +``` + +**Python Example:** +```python +import requests +import json + +url = "https://ai-sandbox.oliver.solutions/agent_collector/agents" +headers = { + "Content-Type": "application/json", + "X-API-Key": "agent-collector-static-key-2024-secure" +} + +data = { + "name": "CustomerSupportBot", + "description": "AI assistant that handles customer inquiries and support tickets", + "purpose": "Provide 24/7 automated customer support and reduce response times", + "tool": "chat-sandbox" +} + +response = requests.post(url, headers=headers, data=json.dumps(data)) +print(response.json()) +``` + +### Complex Agent Registration + +**cURL Example:** +```bash +curl -X POST https://ai-sandbox.oliver.solutions/agent_collector/agents \ + -H "Content-Type: application/json" \ + -H "X-API-Key: agent-collector-static-key-2024-secure" \ + -d '{ + "name": "DataAnalysisAgent", + "description": "Advanced AI agent that performs automated data analysis and generates business insights", + "purpose": "Transform raw business data into actionable insights and recommendations", + "tool": "Custom Python Framework", + "location": "AWS us-east-1", + "userbase": ["Data Science Team", "Business Intelligence", "Executive Team"], + "version": "2.1.3", + "creation_date": "2024-01-15T10:30:00Z", + "last_updated": "2024-08-22T14:45:30Z", + "capabilities": ["Data Visualization", "Trend Analysis", "Predictive Modeling", "Report Generation"], + "status": "active", + "department": "Data Science", + "contact_person": "Dr. Sarah Johnson", + "tags": ["analytics", "business-intelligence", "automation", "reporting"], + "metadata": { + "framework": "TensorFlow", + "language": "Python", + "memory_usage": "2GB", + "processing_time": "5-10 minutes" + } + }' +``` + +**Python Example:** +```python +import requests +import json +from datetime import datetime + +url = "https://ai-sandbox.oliver.solutions/agent_collector/agents" +headers = { + "Content-Type": "application/json", + "X-API-Key": "agent-collector-static-key-2024-secure" +} + +data = { + "name": "DataAnalysisAgent", + "description": "Advanced AI agent that performs automated data analysis and generates business insights", + "purpose": "Transform raw business data into actionable insights and recommendations", + "tool": "Custom Python Framework", + "location": "AWS us-east-1", + "userbase": ["Data Science Team", "Business Intelligence", "Executive Team"], + "version": "2.1.3", + "creation_date": "2024-01-15T10:30:00Z", + "last_updated": datetime.utcnow().isoformat() + "Z", + "capabilities": ["Data Visualization", "Trend Analysis", "Predictive Modeling", "Report Generation"], + "status": "active", + "department": "Data Science", + "contact_person": "Dr. Sarah Johnson", + "tags": ["analytics", "business-intelligence", "automation", "reporting"], + "metadata": { + "framework": "TensorFlow", + "language": "Python", + "memory_usage": "2GB", + "processing_time": "5-10 minutes" + } +} + +response = requests.post(url, headers=headers, data=json.dumps(data)) +print(response.json()) +``` + +## Response Formats + +### Successful New Agent Registration + +When a new agent is successfully registered: + +```json +{ + "status": "success", + "message": "Agent data collected successfully", + "agent_id": "64f7b8a9e1234567890abcde" +} +``` + +### Usage Tracking Response + +When an agent with the same name already exists, the system logs usage instead of creating a duplicate: + +```json +{ + "status": "usage_logged", + "message": "Agent already exists, usage tracked", + "agent_name": "CustomerSupportBot" +} +``` + +### Error Responses + +#### Invalid API Key (401) +```json +{ + "detail": "Invalid API key" +} +``` + +#### Unsupported Media Type (415) +```json +{ + "error": "Unsupported Media Type", + "message": "Request must be JSON" +} +``` + +#### Database Error (500) +```json +{ + "error": "Database Error", + "message": "Failed to store agent data. MongoDB may be unavailable or there was an error processing the request.", + "agent_data": { + "name": "YourAgentName", + "description": "Your agent description", + "purpose": "Your agent purpose", + "tool": "YourAgentTool" + } +} +``` + +#### Database Unavailable (503) +```json +{ + "error": "Database Unavailable", + "message": "MongoDB connection is not available. Please check the database setup.", + "agent_data": { + "name": "YourAgentName", + "description": "Your agent description", + "purpose": "Your agent purpose", + "tool": "YourAgentTool" + } +} +``` + +## Usage Tracking Behavior + +The API implements intelligent duplicate detection and usage tracking: + +### New Agent Registration +- When you register an agent with a **new name**, the system creates a new agent record +- Returns a success response with the new agent's unique ID + +### Usage Tracking +- When you register an agent with an **existing name**, the system: + - Logs the usage attempt with a timestamp + - Compares the submitted data with the existing agent data + - Updates the existing agent record if any fields have changed + - Returns a usage tracking response + +### Data Updates +If usage tracking detects that the submitted agent data differs from the existing record (excluding the name field), the system will automatically update the existing agent with the new information. This ensures agent records stay current while maintaining usage statistics. + +## Date Format + +All date fields (`creation_date`, `last_updated`) should be provided in **ISO 8601 format**: +- `"2024-08-22T14:45:30Z"` (with timezone) +- `"2024-08-22T14:45:30"` (without timezone) + +## Health Check + +You can check if the API is operational by sending a GET request with JSON Accept header: + +```bash +curl -H "Accept: application/json" https://ai-sandbox.oliver.solutions/agent_collector/agents +``` + +Response: +```json +{ + "status": "healthy", + "message": "Agent collector API is running", + "timestamp": "2024-08-22T14:45:30.123456", + "database": { + "healthy": true, + "connection_status": "connected" + } +} +``` + +## Best Practices + +1. **Use descriptive names**: Agent names should be unique and descriptive to avoid confusion +2. **Include version information**: Use the `version` field to track agent iterations +3. **Set appropriate status**: Keep the `status` field updated to reflect the agent's current state +4. **Provide contact information**: Include a `contact_person` for operational support +5. **Use tags effectively**: Tags help with categorization and searching +6. **Handle errors gracefully**: Always check response status codes and handle errors appropriately + +## Rate Limiting + +Currently, there are no explicit rate limits on the API, but please be considerate of the shared infrastructure and avoid excessive concurrent requests. + +## Support + +For technical support or questions about the Agent Registration API, please contact the AgentHub development team. \ No newline at end of file diff --git a/main.py b/main.py index 23663d1..6246658 100644 --- a/main.py +++ b/main.py @@ -71,6 +71,7 @@ def get_template_context(request: Request, current_user=None, **kwargs): "current_user": current_user, "base_path": config.get_base_path(), "msal_enabled": msal_auth.is_msal_available(), + "show_local_login": config.show_local_login(), **kwargs } @@ -117,6 +118,32 @@ async def require_admin(current_user: dict = Depends(get_current_user_from_cooki raise HTTPException(status_code=403, detail="Admin access required") return current_user +def create_agent_response(agent: dict) -> models.AiAgentResponse: + """Helper function to create AiAgentResponse with all fields including Quality Audit""" + return models.AiAgentResponse( + agent_id=str(agent["_id"]), + agent_name=agent["agent_name"], + agent_tool=agent.get("agent_tool"), + agent_description=agent.get("agent_description"), + agent_purpose=agent.get("agent_purpose"), + agent_version=agent.get("agent_version"), + agent_status=agent.get("agent_status"), + agent_location=agent.get("agent_location"), + agent_department=agent.get("agent_department"), + agent_contact_person=agent.get("agent_contact_person"), + agent_created_at=agent["created_at"].isoformat() if agent.get("created_at") else None, + agent_updated_at=agent["updated_at"].isoformat() if agent.get("updated_at") else None, + agent_tags=agent.get("agent_tags"), + agent_metadata=agent.get("agent_metadata"), + agent_userbase=agent.get("agent_userbase"), + agent_capabilities=agent.get("agent_capabilities"), + quality_audit_status=agent.get("quality_audit_status", False), + quality_audit_updated_by=agent.get("quality_audit_updated_by"), + quality_audit_updated_at=agent.get("quality_audit_updated_at"), + quality_audit_updated_by_name=agent.get("quality_audit_updated_by_name"), + created_by=agent["created_by"] + ) + async def verify_agent_collector_api_key(x_api_key: str = Header(alias="X-API-Key")): """Verify static API key for agent collector endpoints""" expected_key = os.getenv("AGENT_COLLECTOR_API_KEY") @@ -141,6 +168,7 @@ def map_agent_collector_to_internal(collector_data: models.AgentCollectorCreate) return { "agent_name": collector_data.name, + "agent_tool": collector_data.tool, "agent_description": collector_data.description, "agent_purpose": collector_data.purpose, "agent_location": collector_data.location, @@ -230,7 +258,18 @@ async def register_form( @app.get("/login", response_class=HTMLResponse) async def login_page(request: Request): current_user = await get_current_user_optional(request) - return templates.TemplateResponse("login.html", get_template_context(request, current_user)) + + # Add MSAL configuration if enabled + context = get_template_context(request, current_user) + if msal_auth.is_msal_available(): + msal_config = config.get_msal_config() + context.update({ + "client_id": msal_config["client_id"], + "authority": msal_config["authority"], + "redirect_uri": msal_config["redirect_uri"] + }) + + return templates.TemplateResponse("login.html", context) @app.post("/login", response_class=HTMLResponse) async def login_form( @@ -279,8 +318,14 @@ async def login_form( # Regular user goes to all agents page response = RedirectResponse(url=get_app_url("agent-management"), status_code=303) - # Set token in cookie (for demo purposes) - response.set_cookie(key="access_token", value=token) + # Set token in cookie with proper attributes + response.set_cookie( + key="access_token", + value=token, + httponly=True, + samesite="lax", + secure=False # Set to True in production with HTTPS + ) return response except Exception as e: @@ -289,79 +334,84 @@ async def login_form( {"request": request, "error": f"Login failed: {str(e)}"} ) -# Azure AD/MSAL Authentication Routes -async def azure_login(request: Request): - """Initiate Azure AD login with PKCE""" - try: - msal_instance = msal_auth.get_msal_instance() - auth_data = msal_instance.get_auth_url() - - # Store PKCE parameters in session - request.session["msal_state"] = auth_data["state"] - request.session["msal_code_verifier"] = auth_data["code_verifier"] - - # Redirect to Azure AD - return RedirectResponse(url=auth_data["auth_url"], status_code=302) - - except Exception as e: - return templates.TemplateResponse( - "login.html", - {"request": request, "error": f"Azure login failed: {str(e)}"} - ) +# Azure AD/MSAL Authentication - Using popup-based authentication per specification -async def azure_callback(request: Request): - """Handle Azure AD callback and complete authentication""" + +@app.post("/api/auth/azure/token") +async def azure_token_exchange(request: Request): + """Exchange Azure AD token for local JWT token with proper validation""" try: - # Get authorization code and state from callback - auth_code = request.query_params.get("code") - state = request.query_params.get("state") - error = request.query_params.get("error") + data = await request.json() + access_token = data.get("access_token") + id_token = data.get("id_token") - if error: - error_description = request.query_params.get("error_description", "Unknown error") - return templates.TemplateResponse( - "login.html", - {"request": request, "error": f"Azure AD error: {error_description}"} + if not id_token: + raise HTTPException(status_code=400, detail="Missing ID token") + + # Validate JWT token against Azure AD public keys (as per specification) + import jwt + import requests + from cryptography.hazmat.primitives import serialization + from cryptography.hazmat.primitives.asymmetric import rsa + import base64 + + msal_config = config.get_msal_config() + + # Get Azure AD public keys for token verification + jwks_uri = f"{msal_config['authority']}/discovery/v2.0/keys" + jwks_response = requests.get(jwks_uri) + jwks = jwks_response.json() + + # Decode token header to get key ID + unverified_header = jwt.get_unverified_header(id_token) + kid = unverified_header.get("kid") + + # Find the matching public key + public_key = None + for key in jwks["keys"]: + if key["kid"] == kid: + # Convert JWK to PEM format for validation + n = base64.urlsafe_b64decode(key["n"] + "==") + e = base64.urlsafe_b64decode(key["e"] + "==") + + # Convert to RSA public key + numbers = rsa.RSAPublicNumbers( + int.from_bytes(e, byteorder="big"), + int.from_bytes(n, byteorder="big") + ) + public_key = numbers.public_key() + break + + if not public_key: + raise HTTPException(status_code=400, detail="Unable to verify token signature") + + # Convert to PEM format for JWT library + pem_key = public_key.public_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PublicFormat.SubjectPublicKeyInfo + ) + + # Validate JWT token signature and claims + try: + id_token_claims = jwt.decode( + id_token, + pem_key, + algorithms=["RS256"], + audience=msal_config["client_id"], + issuer=f"{msal_config['authority']}/v2.0" ) + except jwt.InvalidTokenError as e: + raise HTTPException(status_code=400, detail=f"Token validation failed: {str(e)}") - if not auth_code: - return templates.TemplateResponse( - "login.html", - {"request": request, "error": "No authorization code received from Azure AD"} - ) - - # Validate state parameter (CSRF protection) - session_state = request.session.get("msal_state") - code_verifier = request.session.get("msal_code_verifier") - - if not session_state or not code_verifier: - return templates.TemplateResponse( - "login.html", - {"request": request, "error": "Session expired. Please try logging in again."} - ) - - msal_instance = msal_auth.get_msal_instance() - if not msal_instance.validate_state(state, session_state): - return templates.TemplateResponse( - "login.html", - {"request": request, "error": "Invalid state parameter. Possible CSRF attack."} - ) - - # Exchange authorization code for tokens - token_result = msal_instance.acquire_token_by_auth_code(auth_code, code_verifier) - if not token_result: - return templates.TemplateResponse( - "login.html", - {"request": request, "error": "Failed to acquire token from Azure AD"} - ) - - # Extract user profile - user_profile = msal_instance.get_user_profile(token_result) - if not user_profile: - return templates.TemplateResponse( - "login.html", - {"request": request, "error": "Failed to get user profile from Azure AD"} - ) + # Create user profile from validated ID token claims + user_profile = { + "azure_ad_id": id_token_claims.get("oid"), + "email": id_token_claims.get("email") or id_token_claims.get("preferred_username"), + "full_name": id_token_claims.get("name"), + "first_name": id_token_claims.get("given_name"), + "last_name": id_token_claims.get("family_name"), + "tenant_id": id_token_claims.get("tid") + } # Create or update user in local database user = await crud.create_or_update_azure_user(user_profile) @@ -369,29 +419,30 @@ async def azure_callback(request: Request): # Create JWT token for local session management jwt_token = auth.create_access_token({"sub": str(user["_id"])}) - # Clear MSAL session data - request.session.pop("msal_state", None) - request.session.pop("msal_code_verifier", None) + # Return user info and set secure cookie (following specification) + response = JSONResponse({ + "success": True, + "is_admin": user.get("is_admin", False), + "email": user.get("email"), + "full_name": user.get("full_name") + }) - # Redirect based on user role - if user.get("is_admin"): - response = RedirectResponse(url=get_app_url("admin"), status_code=303) - else: - response = RedirectResponse(url=get_app_url("agent-management"), status_code=303) + # Set JWT token in httpOnly cookie with security flags (as per specification) + response.set_cookie( + key="access_token", + value=jwt_token, + httponly=True, + samesite="lax", + secure=False, # Set to True in production with HTTPS + max_age=24 * 60 * 60 # 24 hours as per specification + ) - # Set JWT token in cookie - response.set_cookie(key="access_token", value=jwt_token) return response + except HTTPException: + raise except Exception as e: - # Clear session on error - request.session.pop("msal_state", None) - request.session.pop("msal_code_verifier", None) - - return templates.TemplateResponse( - "login.html", - {"request": request, "error": f"Authentication failed: {str(e)}"} - ) + raise HTTPException(status_code=400, detail=f"Token exchange failed: {str(e)}") @app.get("/agent-register", response_class=HTMLResponse) async def agent_register_page(request: Request): @@ -404,6 +455,7 @@ async def agent_register_page(request: Request): async def agent_register_form( request: Request, agent_name: str = Form(...), + agent_tool: str = Form(...), agent_description: str = Form(None), agent_purpose: str = Form(None), agent_version: str = Form(None), @@ -413,7 +465,8 @@ async def agent_register_form( agent_contact_person: str = Form(None), agent_tags: str = Form(None), agent_userbase: str = Form(None), - agent_capabilities: str = Form(None) + agent_capabilities: str = Form(None), + quality_audit_status: bool = Form(False) ): try: # Get user from cookie - require authentication @@ -426,6 +479,7 @@ async def agent_register_form( # Prepare agent data agent_data = { "agent_name": agent_name, + "agent_tool": agent_tool, "agent_description": agent_description, "agent_purpose": agent_purpose, "agent_version": agent_version, @@ -443,6 +497,18 @@ async def agent_register_form( if agent_capabilities: agent_data["agent_capabilities"] = [cap.strip() for cap in agent_capabilities.split(',') if cap.strip()] + # Handle Quality Audit - only admins can set it to True + if quality_audit_status and current_user.get("is_admin"): + # Admin is setting quality audit to true + from datetime import datetime + agent_data["quality_audit_status"] = True + agent_data["quality_audit_updated_by"] = user_id + agent_data["quality_audit_updated_at"] = datetime.utcnow().isoformat() + agent_data["quality_audit_updated_by_name"] = current_user.get("full_name", current_user.get("email")) + else: + # Non-admin or quality audit not checked + agent_data["quality_audit_status"] = False + # Remove None values agent_data = {k: v for k, v in agent_data.items() if v is not None} @@ -635,77 +701,23 @@ async def get_all_agents_for_users(current_user: dict = Depends(get_current_user """Get all agents for regular users (read-only access)""" agents = await crud.get_all_agents() return [ - models.AiAgentResponse( - agent_id=str(agent["_id"]), - agent_name=agent["agent_name"], - agent_description=agent.get("agent_description"), - agent_purpose=agent.get("agent_purpose"), - agent_version=agent.get("agent_version"), - agent_status=agent.get("agent_status"), - agent_location=agent.get("agent_location"), - agent_department=agent.get("agent_department"), - agent_contact_person=agent.get("agent_contact_person"), - agent_created_at=agent["created_at"].isoformat() if agent.get("created_at") else None, - agent_updated_at=agent["updated_at"].isoformat() if agent.get("updated_at") else None, - agent_tags=agent.get("agent_tags"), - agent_metadata=agent.get("agent_metadata"), - agent_userbase=agent.get("agent_userbase"), - agent_capabilities=agent.get("agent_capabilities"), - created_by=agent["created_by"] - ) for agent in agents + create_agent_response(agent) for agent in agents ] @app.post("/api/agents", response_model=models.AiAgentResponse) async def create_agent(agent: models.AiAgentCreate, current_user: dict = Depends(get_current_user_from_cookie)): agent_data = agent.model_dump() created_agent = await crud.create_agent(agent_data, str(current_user["_id"])) - return models.AiAgentResponse( - agent_id=str(created_agent["_id"]), - agent_name=created_agent["agent_name"], - agent_description=created_agent.get("agent_description"), - agent_purpose=created_agent.get("agent_purpose"), - agent_version=created_agent.get("agent_version"), - agent_status=created_agent.get("agent_status"), - agent_location=created_agent.get("agent_location"), - agent_department=created_agent.get("agent_department"), - agent_contact_person=created_agent.get("agent_contact_person"), - agent_created_at=created_agent["created_at"].isoformat(), - agent_updated_at=created_agent["updated_at"].isoformat(), - agent_tags=created_agent.get("agent_tags"), - agent_metadata=created_agent.get("agent_metadata"), - agent_userbase=created_agent.get("agent_userbase"), - agent_capabilities=created_agent.get("agent_capabilities"), - created_by=created_agent["created_by"] - ) + return create_agent_response(created_agent) @app.get("/api/agents", response_model=List[models.AiAgentResponse]) async def get_user_agents(current_user: dict = Depends(get_current_user_from_cookie)): agents = await crud.get_agents_by_user(str(current_user["_id"])) return [ - models.AiAgentResponse( - agent_id=str(agent["_id"]), - agent_name=agent["agent_name"], - agent_description=agent.get("agent_description"), - agent_purpose=agent.get("agent_purpose"), - agent_version=agent.get("agent_version"), - agent_status=agent.get("agent_status"), - agent_location=agent.get("agent_location"), - agent_department=agent.get("agent_department"), - agent_contact_person=agent.get("agent_contact_person"), - agent_created_at=agent["created_at"].isoformat() if agent.get("created_at") else None, - agent_updated_at=agent["updated_at"].isoformat() if agent.get("updated_at") else None, - agent_tags=agent.get("agent_tags"), - agent_metadata=agent.get("agent_metadata"), - agent_userbase=agent.get("agent_userbase"), - agent_capabilities=agent.get("agent_capabilities"), - created_by=agent["created_by"] - ) for agent in agents + create_agent_response(agent) for agent in agents ] -# Conditionally register MSAL routes if available -if msal_auth.is_msal_available(): - app.get("/auth/azure/login")(azure_login) - app.get("/auth/azure/callback")(azure_callback) +# MSAL routes no longer needed - using popup authentication @app.get("/api/agents/{agent_id}", response_model=models.AiAgentResponse) async def get_agent(agent_id: str, current_user: dict = Depends(get_current_user_from_cookie)): @@ -716,23 +728,7 @@ async def get_agent(agent_id: str, current_user: dict = Depends(get_current_user if agent["created_by"] != str(current_user["_id"]) and not current_user.get("is_admin"): raise HTTPException(status_code=403, detail="Not authorized to view this agent") - return models.AiAgentResponse( - agent_id=str(agent["_id"]), - agent_name=agent["agent_name"], - agent_description=agent.get("agent_description"), - agent_purpose=agent.get("agent_purpose"), - agent_version=agent.get("agent_version"), - agent_status=agent.get("agent_status"), - agent_location=agent.get("agent_location"), - agent_department=agent.get("agent_department"), - agent_contact_person=agent.get("agent_contact_person"), - agent_created_at=agent["created_at"].isoformat() if agent.get("created_at") else None, - agent_updated_at=agent["updated_at"].isoformat() if agent.get("updated_at") else None, - agent_tags=agent.get("agent_tags"), - agent_metadata=agent.get("agent_metadata"), - agent_userbase=agent.get("agent_userbase"), - created_by=agent["created_by"] - ) + return create_agent_response(agent) @app.put("/api/agents/{agent_id}", response_model=models.AiAgentResponse) async def update_agent(agent_id: str, agent: models.AiAgentCreate, current_user: dict = Depends(get_current_user_from_cookie)): @@ -748,28 +744,24 @@ async def update_agent(agent_id: str, agent: models.AiAgentCreate, current_user: # For regular users, pass user_id to enforce ownership at DB level # For admins, pass None to allow editing any agent user_id_filter = str(current_user["_id"]) if not current_user.get("is_admin") else None - updated_agent = await crud.update_agent(agent_id, agent.model_dump(), user_id_filter) + + # Prepare admin info for Quality Audit updates + admin_user_info = None + agent_data = agent.model_dump() + + if current_user.get("is_admin"): + admin_user_info = { + "user_id": str(current_user["_id"]), + "user_name": current_user.get("full_name", current_user.get("email")), + "email": current_user.get("email") + } + + updated_agent = await crud.update_agent(agent_id, agent_data, user_id_filter, admin_user_info) if not updated_agent: raise HTTPException(status_code=404, detail="Agent not found or not authorized") - return models.AiAgentResponse( - agent_id=str(updated_agent["_id"]), - agent_name=updated_agent["agent_name"], - agent_description=updated_agent.get("agent_description"), - agent_purpose=updated_agent.get("agent_purpose"), - agent_version=updated_agent.get("agent_version"), - agent_status=updated_agent.get("agent_status"), - agent_location=updated_agent.get("agent_location"), - agent_department=updated_agent.get("agent_department"), - agent_contact_person=updated_agent.get("agent_contact_person"), - agent_created_at=updated_agent["created_at"].isoformat() if updated_agent.get("created_at") else None, - agent_updated_at=updated_agent["updated_at"].isoformat() if updated_agent.get("updated_at") else None, - agent_tags=updated_agent.get("agent_tags"), - agent_metadata=updated_agent.get("agent_metadata"), - agent_userbase=updated_agent.get("agent_userbase"), - created_by=updated_agent["created_by"] - ) + return create_agent_response(updated_agent) @app.delete("/api/agents/{agent_id}") async def delete_agent(agent_id: str, current_user: dict = Depends(get_current_user_from_cookie)): @@ -837,24 +829,7 @@ async def get_all_agents_admin(current_user: dict = Depends(require_admin)): agents = await crud.get_all_agents() return [ - models.AiAgentResponse( - agent_id=str(agent["_id"]), - agent_name=agent["agent_name"], - agent_description=agent.get("agent_description"), - agent_purpose=agent.get("agent_purpose"), - agent_version=agent.get("agent_version"), - agent_status=agent.get("agent_status"), - agent_location=agent.get("agent_location"), - agent_department=agent.get("agent_department"), - agent_contact_person=agent.get("agent_contact_person"), - agent_created_at=agent["created_at"].isoformat() if agent.get("created_at") else None, - agent_updated_at=agent["updated_at"].isoformat() if agent.get("updated_at") else None, - agent_tags=agent.get("agent_tags"), - agent_metadata=agent.get("agent_metadata"), - agent_userbase=agent.get("agent_userbase"), - agent_capabilities=agent.get("agent_capabilities"), - created_by=agent["created_by"] - ) for agent in agents + create_agent_response(agent) for agent in agents ] # Agent Collector API Endpoints (for compatibility with agent_collector app) @@ -1007,7 +982,4 @@ async def get_agent_usage_chart( except Exception as e: raise HTTPException(status_code=500, detail=f"Failed to get chart data: {str(e)}") -# Conditionally register MSAL routes if available -if msal_auth.is_msal_available(): - app.get("/auth/azure/login")(azure_login) - app.get("/auth/azure/callback")(azure_callback) +# MSAL routes no longer needed - using popup authentication diff --git a/models.py b/models.py index 5c8f56b..2de2c90 100644 --- a/models.py +++ b/models.py @@ -5,6 +5,7 @@ from typing import Optional class AiAgent(BaseModel): agent_id: int agent_name: str + agent_tool: str | None = Field(default=None, title="The tool or platform where the agent operates", max_length=100) agent_description: str | None = Field(default=None, title="The description of the agent", max_length=300) agent_purpose: str | None = Field(default=None, title="The purpose of the agent", max_length=200) agent_version: str | None = Field(default=None, title="The version of the agent", max_length=100) @@ -18,6 +19,10 @@ class AiAgent(BaseModel): agent_metadata: dict[str, str] | None = Field(default=None, title="Metadata associated with the agent") agent_userbase: list[str] | None = Field(default=None, title="Userbase associated with the agent") agent_capabilities: list[str] | None = Field(default=None, title="Capabilities of the agent") + quality_audit_status: bool | None = Field(default=False, title="Quality audit status") + quality_audit_updated_by: str | None = Field(default=None, title="Admin user ID who updated quality audit") + quality_audit_updated_at: str | None = Field(default=None, title="Quality audit last update timestamp") + quality_audit_updated_by_name: str | None = Field(default=None, title="Admin user name who updated quality audit") @@ -50,6 +55,7 @@ class Token(BaseModel): # Agent models for creation and response class AiAgentCreate(BaseModel): agent_name: str + agent_tool: str agent_description: Optional[str] = None agent_purpose: Optional[str] = None agent_version: Optional[str] = None @@ -61,10 +67,15 @@ class AiAgentCreate(BaseModel): agent_metadata: Optional[dict[str, str]] = None agent_userbase: Optional[list[str]] = None agent_capabilities: Optional[list[str]] = None + quality_audit_status: Optional[bool] = False + quality_audit_updated_by: Optional[str] = None + quality_audit_updated_at: Optional[str] = None + quality_audit_updated_by_name: Optional[str] = None class AiAgentResponse(BaseModel): agent_id: str agent_name: str + agent_tool: Optional[str] = None agent_description: Optional[str] = None agent_purpose: Optional[str] = None agent_version: Optional[str] = None @@ -78,6 +89,10 @@ class AiAgentResponse(BaseModel): agent_metadata: Optional[dict[str, str]] = None agent_userbase: Optional[list[str]] = None agent_capabilities: Optional[list[str]] = None + quality_audit_status: Optional[bool] = None + quality_audit_updated_by: Optional[str] = None + quality_audit_updated_at: Optional[str] = None + quality_audit_updated_by_name: Optional[str] = None created_by: str # Agent Collector API Models (for compatibility with agent_collector app) @@ -85,6 +100,7 @@ class AgentCollectorCreate(BaseModel): name: str = Field(min_length=1) description: str = Field(min_length=1) purpose: str = Field(min_length=1) + tool: str = Field(min_length=1) location: Optional[str] = None userbase: Optional[list[str]] = None version: Optional[str] = None diff --git a/msal_auth.py b/msal_auth.py index c2f6ce0..fbb171f 100644 --- a/msal_auth.py +++ b/msal_auth.py @@ -11,8 +11,8 @@ if config.is_msal_enabled(): else: msal = None -# MSAL Scopes -SCOPES = ["User.Read"] +# MSAL Scopes - Following specification +SCOPES = ["openid", "profile", "email"] class MSALAuth: def __init__(self): @@ -36,7 +36,7 @@ class MSALAuth: raise ValueError("Missing Azure AD configuration. Check environment variables.") def _build_msal_app(self, cache=None): - """Create MSAL confidential client application""" + """Create MSAL public client application for SPA""" return msal.PublicClientApplication( self.client_id, authority=self.authority, @@ -52,7 +52,7 @@ class MSALAuth: def get_auth_url(self, session_state: Optional[str] = None) -> Dict[str, Any]: """ - Generate authorization URL with PKCE challenge + Generate authorization URL with PKCE challenge for SPA Returns: dict with auth_url, state, and code_verifier for session storage """ if not self.enabled: @@ -60,19 +60,30 @@ class MSALAuth: app = self._build_msal_app() - # Generate PKCE parameters + # Generate PKCE parameters (required for SPA) code_verifier = secrets.token_urlsafe(96) # Generate state parameter for CSRF protection state = session_state or secrets.token_urlsafe(32) - auth_url = app.get_authorization_request_url( - scopes=SCOPES, - redirect_uri=self.redirect_uri, - state=state, - code_challenge=self._generate_pkce_challenge(code_verifier), - code_challenge_method="S256" - ) + code_challenge = self._generate_pkce_challenge(code_verifier) + + # Manual URL construction to ensure PKCE parameters are included + # MSAL library sometimes doesn't include PKCE params correctly for SPA + import urllib.parse + + auth_params = { + "client_id": self.client_id, + "response_type": "code", + "redirect_uri": self.redirect_uri, + "scope": " ".join(SCOPES), + "state": state, + "code_challenge": code_challenge, + "code_challenge_method": "S256", + "response_mode": "query" + } + + auth_url = f"{self.authority}/oauth2/v2.0/authorize?" + urllib.parse.urlencode(auth_params) return { "auth_url": auth_url, @@ -85,22 +96,43 @@ class MSALAuth: code_verifier: str, scopes: Optional[list] = None) -> Optional[Dict[str, Any]]: """ - Exchange authorization code for tokens using PKCE + Exchange authorization code for tokens using PKCE for SPA """ if not self.enabled: raise RuntimeError("MSAL is disabled") + if not code_verifier: + print("MSAL Error: code_verifier is required for SPA") + return None + app = self._build_msal_app() if scopes is None: scopes = SCOPES - result = app.acquire_token_by_authorization_code( - auth_code, - scopes=scopes, - redirect_uri=self.redirect_uri, - code_verifier=code_verifier - ) + # Manual token request for PKCE flow - MSAL library may not support code_verifier properly + import requests + + token_url = f"{self.authority}/oauth2/v2.0/token" + token_data = { + "client_id": self.client_id, + "scope": " ".join(scopes), + "code": auth_code, + "redirect_uri": self.redirect_uri, + "grant_type": "authorization_code", + "code_verifier": code_verifier + } + + try: + response = requests.post(token_url, data=token_data) + result = response.json() + + if response.status_code != 200: + result["error"] = result.get("error", "token_request_failed") + + except Exception as e: + print(f"MSAL Error: Manual token request failed: {e}") + return None if "error" in result: print(f"MSAL Error: {result.get('error_description', result.get('error'))}") diff --git a/msal_pkce_flow.md b/msal_pkce_flow.md new file mode 100644 index 0000000..e2eb058 --- /dev/null +++ b/msal_pkce_flow.md @@ -0,0 +1,224 @@ +# MSAL PKCE Authentication Flow Specification + +## Overview + +This document specifies the Microsoft Authentication Library (MSAL) implementation with Proof Key for Code Exchange (PKCE) flow used in this web application. The implementation uses popup-based authentication with Azure AD/Entra ID and includes server-side JWT validation with httpOnly cookies for secure session management. + +## Architecture Components + +### Frontend Components +- **MSAL Browser Library**: `msal-browser.min.js` v2.15.0 +- **Authentication Method**: Popup-based login with PKCE +- **Token Storage**: Session storage for MSAL tokens, httpOnly cookies for server sessions +- **Cache Configuration**: Session storage with fallback cookie for auth state + +### Backend Components +- **Server-Side Validation**: Custom JWT validation using Firebase JWT library +- **Session Management**: httpOnly cookies with security headers +- **Token Validation**: Real-time validation against Azure AD public keys +- **Authentication Middleware**: Server-side protection for all routes + +## Azure AD Configuration + +### Application Registration +- **Client ID**: `9079054c-9620-4757-a256-23413042f1ef` +- **Tenant ID**: `e519c2e6-bc6d-4fdf-8d9c-923c2f002385` +- **Authority URL**: `https://login.microsoftonline.com/{tenantId}` +- **Application Type**: Single Page Application (SPA) +- **Authentication Flow**: Authorization Code with PKCE +- **Redirect URI**: Dynamic based on application origin + +### Required Scopes +- `openid` - OpenID Connect authentication +- `profile` - User profile information +- `email` - User email address + +## MSAL Configuration + +### Client Configuration +```javascript +const msalConfig = { + auth: { + clientId: "9079054c-9620-4757-a256-23413042f1ef", + authority: "https://login.microsoftonline.com/e519c2e6-bc6d-4fdf-8d9c-923c2f002385", + redirectUri: window.location.origin + window.location.pathname.replace(/\/$/, '') + }, + cache: { + cacheLocation: "sessionStorage", + storeAuthStateInCookie: true, + } +}; +``` + +### Login Request Configuration +```javascript +const loginRequest = { + scopes: ["openid", "profile", "email"], + prompt: "select_account" +}; +``` + +## Authentication Flow Steps + +### 1. User Access Control +- **Server-Side Gate**: All pages require authentication via `AuthMiddleware->requireAuth()` +- **Unauthenticated Users**: Redirected to login interface automatically +- **Token Validation**: Every request validates JWT against Azure AD public keys + +### 2. Login Initiation +1. User clicks "Sign In with Microsoft" button +2. `myMSALObj.loginPopup(loginRequest)` triggers PKCE flow +3. MSAL automatically generates PKCE code verifier and challenge +4. User redirected to Azure AD login in popup window + +### 3. Azure AD Authentication +1. User authenticates with Microsoft credentials +2. Azure AD validates user and application permissions +3. Authorization code returned with PKCE validation +4. MSAL exchanges code for tokens using PKCE code verifier + +### 4. Token Exchange and Validation +1. **Client receives tokens**: ID token and access token from MSAL +2. **Server submission**: Tokens sent to `auth.php` endpoint +3. **JWT validation**: Server validates token signature against Azure AD JWKS +4. **Claims validation**: Audience, issuer, expiration, and timing claims checked +5. **Cookie creation**: Valid tokens stored in httpOnly cookie with security flags + +### 5. Session Management +1. **httpOnly cookie**: Prevents JavaScript access to authentication token +2. **Security flags**: Secure, SameSite=Lax, path=/, 24-hour expiration +3. **Server-side validation**: Every request validates cookie token +4. **Automatic renewal**: No automatic token refresh implemented + +### 6. Logout Process +1. **Client logout**: `auth.php` called to clear server-side cookie +2. **MSAL logout**: `myMSALObj.logoutPopup()` clears client-side tokens +3. **Page reload**: Fresh page load to reflect authentication state + +## Security Implementation + +### Token Security +- **httpOnly cookies**: Prevent XSS access to authentication tokens +- **Secure flag**: Cookies only sent over HTTPS in production +- **SameSite protection**: CSRF protection with Lax policy +- **Server-side validation**: No client-side security dependencies + +### JWT Validation Process +1. **JWKS retrieval**: Public keys fetched from Azure AD OpenID configuration +2. **Signature verification**: JWT signature validated using RS256 algorithm +3. **Claims validation**: Comprehensive validation of all standard claims +4. **Real-time validation**: Every request validates token freshness + +### Supported Token Types +- **Primary**: ID tokens (preferred for user authentication) +- **Fallback**: Access tokens (Microsoft Graph audience) +- **Validation**: Both token types supported with appropriate audience validation + +## Server-Side Components + +### AuthMiddleware.php +- **Purpose**: Authentication gate for all protected resources +- **Methods**: + - `requireAuth()`: Enforce authentication for page access + - `isAuthenticated()`: Check current authentication status + - `setAuthToken()`: Store validated token in httpOnly cookie + - `clearAuthToken()`: Remove authentication cookie + +### JWTValidator.php +- **Purpose**: Validate Azure AD JWT tokens server-side +- **Features**: + - Real-time JWKS key retrieval from Azure AD + - Comprehensive claims validation (exp, nbf, aud, iss) + - Support for multiple token audiences and issuers + - Firebase JWT library integration + +### auth.php +- **Purpose**: Authentication endpoint for login/logout operations +- **Endpoints**: + - `POST /auth.php?action=login`: Process authentication tokens + - `POST /auth.php?action=logout`: Clear authentication session + - `GET /auth.php?action=status`: Check authentication status + +## Error Handling + +### Authentication Errors +- **Invalid tokens**: Clear error messages with retry options +- **Expired sessions**: Automatic redirect to login interface +- **Network errors**: Graceful fallback with user notifications +- **Popup blocking**: Error handling for blocked popup windows + +### Server-Side Error Handling +- **Token validation failures**: Specific error messages logged and returned +- **JWKS retrieval errors**: Fallback mechanisms and retry logic +- **Cookie security**: Proper error responses for cookie failures + +## Implementation Requirements + +### Frontend Dependencies +- MSAL Browser library v2.15.0 or later +- Modern browser with popup support +- JavaScript ES6+ support +- Fetch API for token submission + +### Backend Dependencies +- PHP 7.4+ with OpenSSL support +- Firebase JWT library via Composer +- cURL or file_get_contents for HTTPS requests +- Cookie support in server environment + +### Azure AD Requirements +- Application registered as Single Page Application +- Redirect URIs configured for all deployment environments +- Appropriate API permissions granted +- PKCE support enabled (default for SPAs) + +## Configuration Variables + +### Required Environment Configuration +```php +// AuthMiddleware.php +private $tenantId = 'e519c2e6-bc6d-4fdf-8d9c-923c2f002385'; +private $clientId = '9079054c-9620-4757-a256-23413042f1ef'; +``` + +### Cookie Security Configuration +```php +$cookieOptions = [ + 'expires' => time() + (24 * 60 * 60), // 24 hours + 'path' => '/', + 'domain' => '', + 'secure' => isset($_SERVER['HTTPS']), // HTTPS in production + 'httponly' => true, + 'samesite' => 'Lax' +]; +``` + +## Testing and Validation + +### Authentication Testing +1. **Successful login**: Verify popup authentication and cookie creation +2. **Token validation**: Confirm server-side JWT validation +3. **Session persistence**: Test page navigation with authentication +4. **Logout functionality**: Verify complete session termination + +### Security Testing +1. **Cookie security**: Verify httpOnly and secure flags +2. **XSS protection**: Confirm no client-side token exposure +3. **Token expiration**: Test automatic session invalidation +4. **CSRF protection**: Verify SameSite cookie protection + +## Migration Considerations + +### From Basic MSAL Implementation +1. **Add server-side validation**: Implement JWT validation middleware +2. **Replace client-side token storage**: Move to httpOnly cookies +3. **Add authentication gates**: Protect all server endpoints +4. **Update error handling**: Implement proper fallback mechanisms + +### Security Upgrades +1. **Remove client-side security**: Eliminate CSS-based protection +2. **Implement token validation**: Add real-time JWT verification +3. **Secure cookie implementation**: Use httpOnly with security flags +4. **Add comprehensive error handling**: User-friendly error messages + +This specification provides a complete reference for implementing secure MSAL PKCE authentication with server-side validation and httpOnly cookie session management. \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 9a097e7..9fb5a0a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -37,3 +37,4 @@ urllib3==2.5.0 uvicorn==0.35.0 msal==1.26.0 itsdangerous==2.2.0 +cryptography==41.0.8 diff --git a/static/style.css b/static/style.css index 10fb07e..b5c89b4 100644 --- a/static/style.css +++ b/static/style.css @@ -1,7 +1,7 @@ :root { - --primary-color: #667eea; - --secondary-color: #764ba2; - --accent-color: #f093fb; + --primary-color: #f3ae3e; + --secondary-color: #f3ae3e; + --accent-color: #f3ae3e; --text-dark: #2d3748; --text-light: #718096; --bg-light: #f7fafc; @@ -11,8 +11,8 @@ --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); /* Microsoft Brand Colors */ - --ms-blue: #0078d4; - --ms-blue-dark: #106ebe; + --ms-blue: #f3ae3e; + --ms-blue-dark: #f3ae3e; --ms-gray: #5e5e5e; } @@ -170,7 +170,7 @@ body { .form-control:focus { border-color: var(--primary-color); - box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); + box-shadow: 0 0 0 3px rgba(243, 174, 62, 0.1); } .form-label { @@ -259,14 +259,14 @@ h2 { border-color: var(--ms-blue-dark); color: white; transform: translateY(-1px); - box-shadow: 0 4px 8px rgba(0, 120, 212, 0.3); + box-shadow: 0 4px 8px rgba(243, 174, 62, 0.3); } .btn-microsoft:focus { background-color: var(--ms-blue-dark); border-color: var(--ms-blue-dark); color: white; - box-shadow: 0 0 0 3px rgba(0, 120, 212, 0.2); + box-shadow: 0 0 0 3px rgba(243, 174, 62, 0.2); } .btn-microsoft:active { diff --git a/templates/admin/dashboard.html b/templates/admin/dashboard.html index 0e849ba..920a3ed 100644 --- a/templates/admin/dashboard.html +++ b/templates/admin/dashboard.html @@ -224,9 +224,111 @@ + + + +{% if msal_enabled %} + + +{% endif %} + {% endblock %} diff --git a/templates/search.html b/templates/search.html index 100068e..32ac28c 100644 --- a/templates/search.html +++ b/templates/search.html @@ -130,7 +130,7 @@