From 5d85a028cb68de162812818fc7e8454c15e13ae1 Mon Sep 17 00:00:00 2001 From: wcf000 <70180919+wcf000@users.noreply.github.com> Date: Wed, 8 Oct 2025 02:08:21 -0400 Subject: [PATCH] Cleaned debug statement, adjusted query to database --- __pycache__/__init__.cpython-312.pyc | Bin 205 -> 220 bytes __pycache__/_service.cpython-312.pyc | Bin 10566 -> 10581 bytes __pycache__/auth.cpython-312.pyc | Bin 15202 -> 15217 bytes __pycache__/client.cpython-312.pyc | Bin 3447 -> 3919 bytes __pycache__/database.cpython-312.pyc | Bin 8815 -> 9087 bytes __pycache__/edge_functions.cpython-312.pyc | Bin 6097 -> 6112 bytes __pycache__/init.cpython-312.pyc | Bin 3265 -> 3621 bytes __pycache__/realtime.cpython-312.pyc | Bin 8684 -> 8699 bytes __pycache__/storage.cpython-312.pyc | Bin 23039 -> 23054 bytes client.py | 12 +++++++++++ database.py | 24 +++++++++++++++------ init.py | 10 +++++---- 12 files changed, 36 insertions(+), 10 deletions(-) diff --git a/__pycache__/__init__.cpython-312.pyc b/__pycache__/__init__.cpython-312.pyc index c5b29596caab494aa44fc570977c022a0eb98878..3d3f34e3691f0d66267bb0a3f1aa881b51b82714 100644 GIT binary patch delta 58 zcmX@hc!!buG%qg~0}x!?)HRXYn6Y}Iy`)@9YGRIVadKi#s%}zZa&~H7if&?QNj^v< KGcSE&dKv&4UK8p7 delta 43 xcmcb^c$Sg-G%qg~0}%9wL`>v1X3UvrFUg;lSX`1=kg1!TpO=@KTr#mN4FCtq4S@gv diff --git a/__pycache__/_service.cpython-312.pyc b/__pycache__/_service.cpython-312.pyc index 33f699dc278797ddb35a74b6ae93909eedbe057d..2d335b4090f81fdb1ab2fd37b5657dd7f284c0b1 100644 GIT binary patch delta 62 zcmX>WbTx?kG%qg~0}x!?)U}a&2_s|m6=B_eN6z-Cl-eQ delta 47 zcmexZ_Na{eG%qg~0}%9wL~P`K$i|p4`7N6ye_CR3Nn$~!ZgPHJUTSj5W)*f{699$` B5DfqT diff --git a/__pycache__/client.cpython-312.pyc b/__pycache__/client.cpython-312.pyc index 1696081f16650cc653859f1daf9c51ecd188962f..7d31bc38d03b97dceb6f2159c0b43a05c44438b8 100644 GIT binary patch delta 570 zcmZ8d&r2IY6yDh+L^iu_w4q1>W5pZO;ttx^s02mP~KB*6O@qn6l0wh&->eP6la0P{=wVMoEJO zD8UUM1^YM+8>r8TV&b%WWo5tQ7seJxeu8&W)Wdx4cxP6={x*yOL2X-MZ!KwOhS) zYu9e=Z12Wh{xr2rpUQ%b`mFd?i1XtNv_g#wbG%qg~0}%9wL}cvc+{ow3$QUs>gfWt(l1r0&^Ik>+CdRDE@0ca|(-MnI z5(_eQlk@ZPQj<$ItFqi>XZF(+n7oEJbFw_2G-J?YYrX*1&q7?R3X|vXMM-G_O)U}w t5h6h17l%!5eoARhs$G%JWC4CvDL+O=g^vtiGKq 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 diff --git a/__pycache__/edge_functions.cpython-312.pyc b/__pycache__/edge_functions.cpython-312.pyc index a9199e2c71bf62d4797b01c0bd2bc6df1f5efeda..855e4c14bc79d9e12ea78222f5eb826113d36df0 100644 GIT binary patch delta 62 zcmcbp|3IJnG%qg~0}x!?)U}bjn2oV(NVrfY} ONF*~aee-fQEkOW;l@&h# delta 47 zcmaE$e^H?S6dT}R4ZYdo$A_6w#+8R zl&uFrsV6NXv>+Z8q$jB$2p)ur2QPtE(NH{jE`@p!@!*azX+YXY{pZbl6MWJk zzn3IG@S^hN;k8rpb9s<~FG!NH)fwnQ-08v@rodBxhQTeuS_J{Q!iMGTLcW*SOeE^7 zBYzp2>T1n6x9&d#!M2Ba7d!%wnJvl%PRtNy*n&`N2*7oTMA@Ca>=sjKso%K`^)_@F z&)NL1GumLh&i{4Nkr=~IUb7LAS!8OD>%S*u43Y3$9CBno7m)%5rO}xqm$^_2cZ(~* z61d5Zf)ebOmhNy*Au~NlJ~qYrQd%;7a!|`8htFu4)7q#yVPjP{a%NuDvsvUg)z;L7 zk;L&tO3NgMhKDFKeT-Ve^`qKlnK`q740Q_Ooas2Gop-vI2AUFZH)rN2?5Yo8Y~!jw zty@K;(VEQj(WtK)aEep4KyrbS9PHe0i>1iT1B3M=Me=HtHSv;LB22E6D#ebAB0O^>-6CjrS}gsvMQWwKg5k5o0hy#zc27B`_6n yn5GC#Aus(9`g68Xw9o+VCO^e;s1M2u=}q8m8yL32j)n9$;BDVG&NAdd;NUNR+r>yPj zkiuHSFq>g6(`rTtpOK-4p;#$}t(Ix>Lnb+`8YGDlUWgI~283u6V+|uvIXgtT9zueV z0lV@N4wxZX{F4u|2%B@D+t0~RA_!Ac!%)MxnhC;7WI)%;$T_)}MV*m(@>UjkUak^x zxGv_&4_T!7nd_L#8Os?em?Ig=88x{#bF(gE6uu=G92(&0#!Xm~czdSD|KQW~^CM7j7 iN4GdRF(*|wDKR-aH7`Xsv9u%~B$AnzzIhL;feZk}r5+Lh delta 67 zcmezE{KlF4G%qg~0}%9wL~P{lVAafVwu%WYPAw{qDNjzbu!wQVFVD-#PfRI}NlPp) VNi4|JP0r8DOHD4>e45oj1_1ua7pVXM diff --git a/__pycache__/storage.cpython-312.pyc b/__pycache__/storage.cpython-312.pyc index 85536eda47b4ffab25861f7c4c9d2e91dbd6bb00..1133f41f1cda8efe29d93342c31e3e8e9d51c48a 100644 GIT binary patch delta 64 zcmeyrnXzvRBll@uUM>b8xVWinBlms|#;VDuIV9y$QWJA@i<1*`QgxFOle1IvQgjnb ROY%V?nR)4(KXdQ|0sz?_7b^e& delta 49 zcmeC%!uWqPBll@uUM>b8=nsk5$i1I~F?;f94oUvB#Nv{~f=u1y{Jgx> List[Dict[str, Any]]: + offset: Optional[int] = None, + is_admin: bool = False) -> List[Dict[str, Any]]: """ Fetch data from a table with optional filtering, ordering, and pagination. @@ -56,6 +59,7 @@ def fetch_data(self, method="GET", endpoint=endpoint, auth_token=auth_token, + is_admin=is_admin, params=params, headers={"Prefer": "return=representation"} ) @@ -64,7 +68,8 @@ def insert_data(self, table: str, data: Union[Dict[str, Any], List[Dict[str, Any]]], auth_token: Optional[str] = None, - upsert: bool = False) -> List[Dict[str, Any]]: + upsert: bool = False, + is_admin: bool = False) -> List[Dict[str, Any]]: """ Insert data into a table. @@ -73,6 +78,7 @@ def insert_data(self, data: Data to insert (single record or list of records) auth_token: Optional JWT token for authenticated requests upsert: Whether to upsert (update on conflict) + is_admin: Whether to use service role key (bypasses RLS) Returns: Inserted data @@ -87,6 +93,7 @@ def insert_data(self, method="POST", endpoint=endpoint, auth_token=auth_token, + is_admin=is_admin, data=data, headers=headers ) @@ -95,7 +102,8 @@ def update_data(self, table: str, data: Dict[str, Any], filters: Dict[str, Any], - auth_token: Optional[str] = None) -> List[Dict[str, Any]]: + auth_token: Optional[str] = None, + is_admin: bool = False) -> List[Dict[str, Any]]: """ Update data in a table. @@ -120,6 +128,7 @@ def update_data(self, method="PATCH", endpoint=endpoint, auth_token=auth_token, + is_admin=is_admin, # Pass the is_admin parameter to use service role key data=data, params=params, headers={"Prefer": "return=representation"} @@ -128,7 +137,8 @@ def update_data(self, def upsert_data(self, table: str, data: Union[Dict[str, Any], List[Dict[str, Any]]], - auth_token: Optional[str] = None) -> List[Dict[str, Any]]: + auth_token: Optional[str] = None, + is_admin: bool = False) -> List[Dict[str, Any]]: """ Upsert data in a table (insert or update). @@ -140,12 +150,13 @@ def upsert_data(self, Returns: Upserted data """ - return self.insert_data(table, data, auth_token, upsert=True) + return self.insert_data(table, data, auth_token, upsert=True, is_admin=is_admin) def delete_data(self, table: str, filters: Dict[str, Any], - auth_token: Optional[str] = None) -> List[Dict[str, Any]]: + auth_token: Optional[str] = None, + is_admin: bool = False) -> List[Dict[str, Any]]: """ Delete data from a table. @@ -169,6 +180,7 @@ def delete_data(self, method="DELETE", endpoint=endpoint, auth_token=auth_token, + is_admin=is_admin, # Pass the is_admin parameter to use service role key params=params, headers={"Prefer": "return=representation"} ) diff --git a/init.py b/init.py index 862a284..d9e10cf 100644 --- a/init.py +++ b/init.py @@ -53,10 +53,12 @@ def initialize_supabase() -> Client: # Check for required environment variables supabase_url = os.getenv("SUPABASE_URL") - # Use service role key for backend operations to bypass RLS - supabase_key = os.getenv("SUPABASE_SERVICE_ROLE_KEY") or os.getenv("SUPABASE_ANON_KEY") - - print(f"Supabase URL: {supabase_url}") # Added print statement to show the URL + # Determine which key to use: prefer service role key for admin operations + service_role_key = os.getenv("SUPABASE_SERVICE_ROLE_KEY") + if service_role_key: + supabase_key = service_role_key + else: + supabase_key = os.getenv("SUPABASE_ANON_KEY") if not supabase_url: error_msg = "SUPABASE_URL is not set in environment variables"