SmartUp Developer
|
e2129d3796
|
fix: 防止分页漏读和上游异常快照误标 orphaned
|
2026-07-02 14:21:09 +08:00 |
|
 SmartUp DeveloperandClaude Sonnet 4.6
|
c96d55665d
|
feat: 优化上游认证复用与 wangwang888 分组接口
## 上游认证优化
### 核心改进
- login_password 类型上游优先复用已保存 token,过期后自动 refresh,失败再重新登录
- 新增 ensure_authenticated() 方法替代直接调用 login(),减少不必要的登录请求
- 初始化时从 auth_config 自动加载已保存的 token 和 user_id
- 请求遇到 401 时自动尝试 refresh 或 login 并重试一次
### 实现细节
- UpstreamClient.__init__: 初始化时加载 auth_config 中的 token/new_api_user
- _is_login_password_with_refresh(): 判断是否支持 refresh
- _token_is_expired(): 检查 token 是否过期(提前 60 秒)
- _refresh_login_password_token(): 刷新 login_password 类型的 token
- ensure_authenticated(): 优先复用 token,过期后 refresh,失败再 login
- _send_request(): 401 时针对 login_password 类型先 refresh 再 login 并重试
### 调用点更新
- scheduler.py: _check_upstream, _sync_upstream_keys
- website_sync.py: reconcile_upstream_keys_full
- upstreams.py: list_generated_keys, generate_keys_by_groups, test_all, check_now
## wangwang888 分组接口优化
- 提供数据库更新脚本 update_wangwang888_groups_endpoint.py
- 将 wangwang888 的 groups_endpoint 从 /groups 改为 /groups/all
- 减少不必要的 /api/v1/admin/groups 统计开销
- website_client 已有 fallback 逻辑保证兼容性
## 测试
- 新增 test_upstream_login_password_refresh.py(7 个测试用例)
- 验证 token 复用、refresh、401 重试等逻辑
- 更新 test_upstream_key_sync.py 的 FakeClient 增加 ensure_authenticated
- 所有现有测试保持通过(87 passed)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-07-02 09:26:19 +08:00 |
|
liumangmang
|
6065e824e3
|
fix(upstreams): add db.rollback() on exception to prevent dirty replaced status leak
|
2026-06-30 17:33:43 +08:00 |
|
liumangmang
|
edc00444dc
|
fix(nox-api): address duplicate creation risks, pending upgrading issues, cache warm error handling, test speedups, and frontend display support for pending keys
|
2026-06-30 17:25:18 +08:00 |
|
liumangmang
|
4fa6a79c5a
|
feat(nox-api): implement batch creation rate limit resilience and pending backfilling
|
2026-06-30 17:00:26 +08:00 |
|
liumangmang
|
854a640d48
|
fix: shorten New-API token names
|
2026-06-30 16:12:46 +08:00 |
|
SmartUp Developer
|
b866b387e0
|
feat: sync upstream keys and reorder priorities
|
2026-06-03 17:03:11 +08:00 |
|
liumangmang
|
84148f4a69
|
feat: support real browser auth import
|
2026-06-02 13:51:29 +08:00 |
|
SmartUp Developer
|
3a31d185a4
|
fix: reuse upstream keys for account import
|
2026-05-24 23:18:40 +08:00 |
|
liumangmang
|
6044b00685
|
feat: 上游 Key 唯一化、分组导入跳过、账号导入平台识别&远端校验&base_url 注入
- 上游 Key 命名改为 {prefix}-{upstream.id}-{safe_group_name}-{group_id}
- 唯一约束 (upstream_id, group_id, managed_prefix) 加 managed_prefix 列
- 上游检测成功时同步 Key 状态,远端已删/分组已删自动清理
- 重复分组导入跳过,目标网站已存在同名分组返回 exists
- 账号导入平台自动识别(auto/manual 模式)
- 全选可导入 Key 按钮 + 目标分组自动匹配
- 导入幂等:已导入过的 Key 校验远端账号,不存在则重建
- 新增同步接口 POST /sync-imported-upstream-keys
- account_exists() 通过拉取账号列表判断,避免 404 误判
- credentials.base_url 注入来源上游地址,避免 401
- 前端导入弹窗自动同步+刷新按钮+并发/优先级设置
- 新增 12 个测试覆盖同步、幂等、远端删除、校验失败路径
|
2026-05-21 01:16:39 +08:00 |
|