Files
deerflow-code/offline-backend-20260512/backend/app/gateway/routers/public_config.py
AdministratorandClaude Opus 4.8 d2be3b206d feat(y-log): 操作日志上报(前端直连 + 后端公开只读下发地址)
- 后端新增 y_log 公开只读配置:YLogConfig + AppConfig.y_log +
  GET /api/public/config/y-log,地址写在 config.yaml(mtime 热重载)
- 前端核心 src/core/log/:writeYLog(双门控/异步即发即忘/永不抛错/
  去ip-host/对象序列化裁剪/optResult恒0)+ 配置加载 + token1 隔离存取
- 登录(token)持久化 token1 并报登录、登出先报后清;启动预热配置
- 各 API client 成功路径埋点:敏感词/菜单/按钮/技能地址/轻应用、
  会商草稿+任务草稿+后台任务、智能体/定时任务/知识库、Word导出,
  以及问答完成钩子(ChatPage/AgentChatPage onFinish)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 17:46:08 +08:00

36 lines
1.2 KiB
Python

"""公开只读配置接口(前端运行时读取 config.yaml 派生值)。
目前只暴露 ``task_deeplink`` 段(任务深链 rwfx 的目的树闸门地址 + 测试开关 +
测试假数据),供前端登录深链流程在运行时读取——无需把这些地址硬编码进前端,
改 ``config.yaml`` 即时生效(Gateway mtime 热重载)。
**无鉴权**:路由挂在 ``/api/public/`` 前缀下,已被
``auth_middleware._PUBLIC_PATH_PREFIXES`` 白名单放行。段内只有地址与开关,不含密钥。
"""
from __future__ import annotations
import logging
from fastapi import APIRouter
from deerflow.config import get_app_config
logger = logging.getLogger(__name__)
router = APIRouter(prefix="/api/public/config", tags=["public-config"])
@router.get("/task-deeplink")
async def get_task_deeplink_config() -> dict:
"""返回 ``config.yaml`` 的 ``task_deeplink`` 段(含 test/delete_test/各 URL/mock)。"""
config = get_app_config()
return config.task_deeplink.model_dump()
@router.get("/y-log")
async def get_y_log_config() -> dict:
"""返回 ``config.yaml`` 的 ``y_log`` 段(enabled / write_url),无密钥,公开只读。"""
config = get_app_config()
return config.y_log.model_dump()