|
@@ -9,11 +9,11 @@ import uuid
|
|
|
from collections.abc import Generator, Mapping
|
|
|
from datetime import datetime
|
|
|
from hashlib import sha256
|
|
|
-from typing import Any, Optional, Union
|
|
|
+from typing import Any, Optional, Union, cast
|
|
|
from zoneinfo import available_timezones
|
|
|
|
|
|
from flask import Response, stream_with_context
|
|
|
-from flask_restful import fields
|
|
|
+from flask_restful import fields # type: ignore
|
|
|
|
|
|
from configs import dify_config
|
|
|
from core.app.features.rate_limiting.rate_limit import RateLimitGenerator
|
|
@@ -168,11 +168,11 @@ def generate_string(n):
|
|
|
|
|
|
def extract_remote_ip(request) -> str:
|
|
|
if request.headers.get("CF-Connecting-IP"):
|
|
|
- return request.headers.get("Cf-Connecting-Ip")
|
|
|
+ return cast(str, request.headers.get("Cf-Connecting-Ip"))
|
|
|
elif request.headers.getlist("X-Forwarded-For"):
|
|
|
- return request.headers.getlist("X-Forwarded-For")[0]
|
|
|
+ return cast(str, request.headers.getlist("X-Forwarded-For")[0])
|
|
|
else:
|
|
|
- return request.remote_addr
|
|
|
+ return cast(str, request.remote_addr)
|
|
|
|
|
|
|
|
|
def generate_text_hash(text: str) -> str:
|
|
@@ -221,12 +221,14 @@ class TokenManager:
|
|
|
token_data.update(additional_data)
|
|
|
|
|
|
expiry_minutes = dify_config.model_dump().get(f"{token_type.upper()}_TOKEN_EXPIRY_MINUTES")
|
|
|
+ if expiry_minutes is None:
|
|
|
+ raise ValueError(f"Expiry minutes for {token_type} token is not set")
|
|
|
token_key = cls._get_token_key(token, token_type)
|
|
|
expiry_time = int(expiry_minutes * 60)
|
|
|
redis_client.setex(token_key, expiry_time, json.dumps(token_data))
|
|
|
|
|
|
if account_id:
|
|
|
- cls._set_current_token_for_account(account.id, token, token_type, expiry_minutes)
|
|
|
+ cls._set_current_token_for_account(account_id, token, token_type, expiry_minutes)
|
|
|
|
|
|
return token
|
|
|
|