refactor deployment config and exchange integrations

Simplify runtime configuration and remove legacy database and settings surface so new installs are easier to operate.
Refresh deployment assets, docs, and order execution behavior to keep the packaged app aligned with the current backend.

Made-with: Cursor
This commit is contained in:
Dinger
2026-03-21 18:32:04 +08:00
parent 9473e50d59
commit 05f07ee544
138 changed files with 1530 additions and 860 deletions
-12
View File
@@ -81,18 +81,6 @@ class MetaAPIKeys(type):
return [k.strip() for k in val.split(',') if k.strip()]
return []
@property
def BOCHA_API_KEYS(cls):
"""Bocha Search API keys (comma-separated for rotation)"""
env_val = os.getenv('BOCHA_API_KEYS', '').strip()
if env_val:
return [k.strip() for k in env_val.split(',') if k.strip()]
from app.utils.config_loader import load_addon_config
val = load_addon_config().get('bocha', {}).get('api_keys', '')
if val:
return [k.strip() for k in val.split(',') if k.strip()]
return []
@property
def SERPAPI_KEYS(cls):
"""SerpAPI keys (comma-separated for rotation)"""
+2 -19
View File
@@ -130,30 +130,13 @@ class MetaCCXTConfig(type):
@property
def PROXY(cls):
from app.utils.config_loader import load_addon_config
val = load_addon_config().get('ccxt', {}).get('proxy')
if val:
return val
# 1) Direct CCXT proxy env
ccxt_proxy = (os.getenv('CCXT_PROXY') or '').strip()
if ccxt_proxy:
return ccxt_proxy
# 2) Local proxy helpers from backend_api_python/.env
# 1) Local proxy helpers from backend_api_python/.env
# PROXY_URL has the highest priority if provided.
proxy_url = (os.getenv('PROXY_URL') or '').strip()
if proxy_url:
return proxy_url
# Build from parts: PROXY_SCHEME/PROXY_HOST/PROXY_PORT
proxy_port = (os.getenv('PROXY_PORT') or '').strip()
if proxy_port:
proxy_scheme = (os.getenv('PROXY_SCHEME') or 'socks5h').strip()
proxy_host = (os.getenv('PROXY_HOST') or '127.0.0.1').strip()
return f"{proxy_scheme}://{proxy_host}:{proxy_port}"
# 3) Standard proxy envs (fallback)
# 2) Standard proxy envs (fallback)
for key in ['HTTPS_PROXY', 'HTTP_PROXY', 'ALL_PROXY']:
v = (os.getenv(key) or '').strip()
if v:
-15
View File
@@ -65,12 +65,6 @@ class MetaConfig(type):
# ==================== 安全配置 ====================
@property
def CORS_ORIGINS(cls):
from app.utils.config_loader import load_addon_config
val = load_addon_config().get('app', {}).get('cors_origins')
return val if val else os.getenv('CORS_ORIGINS', '*')
@property
def RATE_LIMIT(cls):
from app.utils.config_loader import load_addon_config
@@ -95,15 +89,6 @@ class MetaConfig(type):
return bool(val)
return os.getenv('ENABLE_REQUEST_LOG', 'True').lower() == 'true'
@property
def ENABLE_AI_ANALYSIS(cls):
from app.utils.config_loader import load_addon_config
val = load_addon_config().get('app', {}).get('enable_ai_analysis')
if val is not None:
return bool(val)
return os.getenv('ENABLE_AI_ANALYSIS', 'True').lower() == 'true'
class Config(metaclass=MetaConfig):
"""应用配置类"""