
    6jZ                        S r SSKJr  SSKJrJrJr  SSKJrJr  SSK	J
r
  SSKJr  SrSrS	rSS
 jrS\4SS jjrSS jrg)zOToken firmado de un solo uso para subida multipart desde el sandbox del agente.    )annotations)datetime	timedeltatimezone)JWTErrorjwt)settings)resolve_agent_idHS256workspace_agent_upload   c                     [         R                  =(       d    [         R                  =(       d    SR                  5       n U (       d  [	        S5      eU $ )N z8MCP_SECRET o SECRET_KEY requerido para tokens de subida.)r	   
mcp_secret
secret_keystrip
ValueError)keys    VC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\utils\agent_upload_token.py_signing_keyr      s:    ;("5"5;
B
B
DCSTTJ    r   c           	         [        U5      n[        R                  " [        R                  5      n[
        U R                  5       UUU[        US9-   S.n[        R                  " U[        5       [        S9$ )N)minutes)scopefilenameagent_idiatexp)	algorithm)r
   r   nowr   utc_UPLOAD_SCOPEr   r   r   encoder   
_ALGORITHM)r   r   r   aidr    payloads         r   create_upload_tokenr'      s\    
8
$C
,,x||
$CNN$Yw//G ::g|~DDr   c                |    [         R                  " U [        5       [        /S9nUR                  S5      [        :w  a  [        S5      eUR                  S5      =(       d    SR                  5       nU(       d  [        S5      eU[        UR                  S5      5      S	.$ ! [         a  n[        S5      UeS nAff = f)
N)
algorithmsu%   Token de subida inválido o expirado.r   u   Token de subida inválido.r   r   zToken sin filename.r   )r   r   )
r   decoder   r$   r   r   getr"   r   r
   )tokenr&   excr   s       r   verify_upload_tokenr.   %   s    K**ULN
|L {{7},566J'-2446H.//$W[[%<=   K@AsJKs   #B   
B;*B66B;N)returnstr)r   r0   r   r0   r   intr/   r0   )r,   r0   r/   dict)__doc__
__future__r   r   r   r   joser   r   app.backend.core.configr	   )app.backend.utils.agent_workspace_storager
   r$   r"   _DEFAULT_MINUTESr   r'   r.    r   r   <module>r:      sB    U " 2 2  , F
(  8:JZ 
Er   