43 Commits

Author SHA1 Message Date
f8de29d8f2 fix: 恢复format_exc()调用, 框架已预加载 2026-05-30 00:43:05 +08:00
fadde32ecc fix: 移除rl_callback中未定义的http_request变量, 直接用params_kw获取GET参数 2026-05-30 00:42:25 +08:00
c9bc2da46b ui: 认证弹窗正文和按钮改为上下排列,点击打开后关闭弹窗 2026-05-30 00:38:46 +08:00
967d1c728c fix: 移除所有dspy文件中多余的import语句, 框架已预加载 2026-05-30 00:32:16 +08:00
38cea985f1 debug: rl_callback添加详细日志和异常捕获 2026-05-30 00:28:47 +08:00
93780ac01d feat: 真人认证增加可选name参数, 记录到rl_org_group供列表展示
- rl_verify_user(): 新增name参数, 存入rl_asset_group.name/title
- rl_handle_callback(): 回调时将name从rl_asset_group复制到rl_org_group
- rl_query_groups(): 返回结果增加name字段
- rl_org_group模型: 新增name字段(str/200)
- rl_verify.dspy/submit_create_validate.dspy: 接收name参数
- create_validate.ui: 表单增加认证名称输入框(可选)
- api_downapp.md: 文档同步更新
2026-05-30 00:20:55 +08:00
5fa1040adc fix: rl_callback支持火山GET回调(bytedToken参数名), 添加调试日志 2026-05-30 00:11:47 +08:00
ccb9430a25 fix: 还原rl_callback.dspy, 供应商回调返回格式由供应商决定 2026-05-29 23:48:04 +08:00
211b628c78 refactor: API响应统一标准格式{status,data}, 前端Form分离
- rl_verify.dspy: 返回{status:ok/data:{id,h5_link,byted_token}}
- rl_upload.dspy: 返回{status:ok/data:{id,vendor_asset_id,status}}
- rl_query_groups.dspy: 返回{status:ok/data:{groups:[...]}}
- rl_status.dspy: 返回{status:ok/data:{status,url}}
- rl_callback.dspy: 返回{status:ok/data:{vendor_group_id}}
- 新增submit_create_validate.dspy: 前端专用,返回bricks Message/Error widget
- create_validate.ui: Form指向新dspy + submited事件绑定
- api_downapp.md: 文档同步更新
2026-05-29 23:40:19 +08:00
2533e4f22e fix: 修正 SQLor 插入方法调用,sor.I() 改为 sor.C() 2026-05-29 19:24:58 +08:00
9ada9a5a77 fix: use 'default' as project name for Volcengine API calls 2026-05-29 19:18:37 +08:00
1b6c51f712 fix: use compact JSON (no spaces) for body hash consistency 2026-05-29 18:48:45 +08:00
2fd15eeb1e fix: rewrite V4 signing to match official Volcengine Python example 2026-05-29 18:43:10 +08:00
073bd711c8 fix: correct V4 signing - URI encode query params, fix canonical headers format 2026-05-29 18:30:32 +08:00
03e1639ffc fix: remove SK decryption, use plaintext AK/SK directly 2026-05-29 18:15:07 +08:00
bd70011c01 feat: rl_verify认证成功后用NewWindow控件在新窗口打开认证链接 2026-05-29 14:39:50 +08:00
414d0e66ed refactor: 移除uapi依赖,改用直接V4签名调用火山引擎API
- 新增 rl_volcengine_client.py: V4 HMAC-SHA256签名 + StreamHttpClient
- rl_vendor_config 表新增 ak/sk 字段,AK/SK直接存储(不再经过uapi/upappkey)
- init.py: _call_vendor 改用 rl_volcengine_client.call_volcengine_api
- api_mapping 改为直接映射Volcengine API Action(如CreateAsset)
- SQL: 移除upappkey部分,ak/sk存入rl_vendor_config
2026-05-29 14:13:47 +08:00
af3368c019 chore: cleanup swp file, add gitignore 2026-05-29 13:29:51 +08:00
39f98a7136 add: 火山引擎AK/SK凭证 2026-05-29 13:28:34 +08:00
1264a6a2fa add: 火山引擎真人人像模块配置SQL
- rl_vendor_config: api_mapping映射内部操作到uapi.name
- upappkey: AK/SK存储(需替换实际凭证)
- appcodes_kv: 供应商下拉代码
2026-05-29 13:27:11 +08:00
da5a67f23b fix: 删除手写list dspy,让Sage CRUD框架自动生成list端点
手写文件遮蔽了框架自动生成的端点,导致:
- get_rl_vendor_config_list 500: org_id不在rl_vendor_config表
- get_rl_org_group_list 403: 手写文件绕过框架RBAC处理
Sage CRUD框架从json/定义自动生成list端点,不需要手写
2026-05-29 11:16:30 +08:00
db881a52e2 fix: 去掉多余的返回首页按钮和外部提交/重置按钮,Form自带 2026-05-29 10:46:33 +08:00
ac50a223b5 fix: 客户UI改用client API,简化表单字段
- create_validate.ui: 去掉callback_url/project_name,只保留vendor下拉,提交到rl_verify.dspy
- rl_verify.dspy: 自动用orgid作为project_name,返回Message widget含h5_link
- upload_asset.ui: 增加vendor下拉,vendor_group_id改为可选下拉(从已认证组合中选)
- 新增get_org_groups.dspy: 返回当前org已认证的vendor_group_id列表
- rl_upload.dspy: 返回Message widget格式
2026-05-29 10:44:19 +08:00
38650389b1 feat: add load_path.py with role-based wildcard % coverage 2026-05-29 00:52:24 +08:00
598ca58a26 fix: wrap cards+content in VScrollPanel 2026-05-29 00:10:55 +08:00
5d17fa5604 refactor(index.ui): 改用cwidth/cheight/cfontsize替代固定px值
- 卡片容器: height:140px/width:280px → cheight:12/cwidth:23
- 卡片标题: fontSize:18px + fontWeight:bold → Title5控件(内置bold)
- 描述文字: fontSize:14px → cfontsize:1.2
- 页面标题: fontSize:24px → Title2控件(内置bold+cfontsize:1.80)
- borderRadius保留px值(8px),已加入widget.js keys支持

所有尺寸基于charsize响应式缩放,浏览器放大缩小时保持一致
2026-05-28 23:46:53 +08:00
57383dfa7b chore: remove vim swap file 2026-05-28 23:36:16 +08:00
0371bf3a12 refactor(index.ui): 卡片从Button改为VBox容器
Button在bricks中不是容器控件,不支持subwidgets嵌套。
改用VBox作为卡片容器,支持click事件+嵌套Text子控件。
固定尺寸: height=140px, width=280px
2026-05-28 23:36:07 +08:00
8f0c2a84e2 bugfix 2026-05-28 22:17:02 +08:00
19bae64494 bugfix 2026-05-28 22:16:26 +08:00
9ebd8e7a80 fix(index.ui): 客户卡片用customer.*角色控制显示
- customer.*角色: 看到真人认证、上传素材(2张)
- owner.superuser/reseller.operator: 看到全部6张
- 无角色/未登录: 不显示任何卡片
2026-05-28 22:08:06 +08:00
54184aedfe feat(index.ui): 功能卡片固定高度140px + 角色分级显示
- 所有卡片固定height:140px,布局整齐统一
- 客户(已登录用户): 可见真人认证、上传素材(2张)
- 管理员(owner.superuser/reseller.operator): 可见全部6张卡片
  额外: 素材组合管理、素材资产管理、供应商配置、机构映射管理
- 移除描述文字硬编码color:#666,跟随主题
2026-05-28 22:02:40 +08:00
a21eabbb11 refactor(reallife_asset): uapi网关架构重构 + UI全面修复
架构变更:
- 废弃volcengine_client.py直连,改为通过Sage uapi网关调用供应商API
- rl_vendor_config表新增upappid和api_mapping(JSON)字段
- 新增_call_vendor()统一路由: vendor→upappid→apiname→UpAppApi.call()
- 支持多供应商灵活映射,各家API数量/逻辑不同通过api_mapping配置

管理端UI:
- vendor_config_manage.ui: Tabular列表展示供应商配置
- vendor_config_edit.ui: 供应商配置编辑页(AK/SK通过upapp/upappkey管理)
- org_group_manage.ui: 机构映射管理页
- 新增api/get_upapp_list.dspy获取上位系统下拉选项
- 新增api/get_status_list.dspy获取状态下拉选项

客户端UI:
- create_validate.ui: 真人认证页面,支持选择供应商创建H5认证
- upload_asset.ui: 上传素材页面,支持URL/base64上传
- index.ui: 新增客户端入口卡片(真人认证、上传素材)
- 所有Form字段使用正确uitype(code/str/text),确保可输入

清理:
- 废弃rl_app_user表,统一使用rl_asset_group+rl_org_group
- 简化API签名,去除冗余apikey/secretkey透传
2026-05-28 18:49:46 +08:00
1d05b7e36b feat: support base64 file upload in rl_upload, clarify API docs
- rl_upload.dspy: use b64media2url to convert base64/local path to
  public URL before calling vendor API
- docs/api_downapp.md:
  - Clarify dapi Bearer Token auth flow (dapi middleware -> get_user/get_userorgid)
  - Add base64 upload example for rl_upload
  - Clarify rl_status URL is a temporary signed download link (12h),
    asset is permanently stored on volcengine, permanent ref is vendor_asset_id
  - Update overview with auth, upload, and key management sections
2026-05-28 17:45:07 +08:00
36be53699d fix: replace local_group_id with vendor_group_id in all client-facing APIs
- rl_upload_user: accept vendor_group_id instead of group_id,
  validate directly via rl_org_group(org_id, vendor_group_id)
- rl_query_groups: remove local_group_id from response, only return
  vendor_group_id, vendor, status, create_time
- rl_handle_callback: remove local_group_id from return value
- rl_upload.dspy: rename param group_id -> vendor_group_id
- docs/api_downapp.md: update all examples and descriptions
2026-05-28 17:27:26 +08:00
dbf8473b1b fix: remove downapp_id parameter from all APIs, use Bearer token auth
- All APIs now identify caller via Bearer Token, dapi module
  automatically provides user_id and org_id
- rl_verify.dspy: use (await get_user()) instead of downapp_id param
- rl_verify_user: rename downapp_id -> user_id param
- rl_upload_user: rename downapp_id -> user_id param
- rl_sync_asset_status_user: rename downapp_id -> user_id param
- Update docs/api_downapp.md: remove all downapp_id references,
  add Bearer token auth description, add rl_query_groups and
  rl_callback documentation
2026-05-28 17:21:02 +08:00
af65c307f8 feat: add callback handler and group query API for client auth flow
- Add rl_handle_callback() to init.py: handles Volcengine H5 auth callback,
  queries vendor for result, registers rl_org_group mapping
- Add rl_query_groups() to init.py: client API to query authenticated
  group_ids for an org
- Add wwwroot/api/rl_callback.dspy endpoint (no auth required for vendor POST)
- Add wwwroot/api/rl_query_groups.dspy endpoint (login required)
- Remove deprecated rl_app_user_* files (no longer used)
- Update scripts/load_path.py: rl_callback -> any role, rl_query_groups -> logined
2026-05-28 16:57:04 +08:00
3ad9b2bb46 update docs 2026-05-28 16:45:31 +08:00
2cd0974909 refactor: vendor config and org-group mapping 2026-05-28 16:44:00 +08:00
4280ad6894 docs: add Downapp API documentation 2026-05-28 16:29:13 +08:00
530f337704 feat: add downapp user API interfaces and ops management table
- New table rl_app_user for application tracking
- APIs: rl_apply, rl_verify, rl_upload, rl_status, rl_check_app_status
- Ops CRUD for managing applications and keys
- Multi-vendor support reserved via vendor field
2026-05-28 16:25:02 +08:00
78036b9640 fix: .dspy文件按开发规范重写
- 移除所有import语句(json/DBPools/datetime均为ahserver预加载全局)
- ret=json.dumps(result) 改为 return result
- 提前return简化if/else嵌套逻辑
- 12个.dspy文件全部修正
2026-05-28 11:17:30 +08:00
0e5696f5da feat: 真人人像素材管理模块初始版本
- 支持火山方舟(Volcengine Ark)真人人像素材API
- AK/SK HMAC-SHA256签名(纯stdlib实现)
- 素材组合(Asset Group)管理: 创建认证、查询、删除
- 素材资产(Asset)管理: 上传、状态同步、删除
- 多供应商可扩展架构
- 完整CRUD + 前端UI + uapi SQL配置
- 12个API端点 + 6个前端页面
- 数据库表: rl_asset_group, rl_asset
2026-05-28 08:55:09 +08:00