docs(client-api): record approved HTTP compatibility (#237)

This commit is contained in:
QiuSW
2026-09-07 17:29:28 +08:00
parent 71f7751754
commit ac3c63ead6
5 changed files with 23 additions and 21 deletions
+4 -4
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Architecture-and-Code-Map
wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Architecture-and-Code-Map.-
wiki_revision: ba4f09e1fb62f45a097b3310860fc4138b0ce48e
synchronized_at: 2026-09-07T09:13:13Z
wiki_revision: 0b9d4e6e0e97f495d19a53e1aa0ecea3a66ba495
synchronized_at: 2026-09-07T09:27:49Z
<!-- gitea-wiki-mirror:end -->
# 架构与代码地图
@@ -336,10 +336,10 @@ PddProductDetailCollector
## 客户端密钥访问架构(#237)
代码基线 `57b0f15`,2026-09-07 完成 Server/Web 代码与隔离测试;实际迁移、权限写入和部署尚未执行,不表示现有线上能力。
代码基线 `71f7751`(含用户确认的默认 HTTP/HTTPS 兼容),2026-09-07 完成 Server/Web 代码与隔离测试;实际迁移、权限写入和部署尚未执行,不表示现有线上能力。
- `server/app/goauto/clientkey` 管理独立密钥、授权及审计;`clientapi/routes.go` 的显式 Inventory 将 `/api/client/v1` 映射到既有业务处理器,绝不转发任意 Admin 路由。
- `clientapi/gateway.go` 按 HTTPS、Bearer 密钥、模块及能力顺序校验,每次请求读取数据库,无授权缓存。`common/clientprincipal` 传递独立客户端身份,不生成或伪装管理员 JWT。
- `clientapi/gateway.go` 默认接受 HTTP 与 HTTPS,无协议开关或转发协议头门禁,按 Bearer 密钥、模块及能力顺序校验,每次请求读取数据库,无授权缓存。`common/clientprincipal` 传递独立客户端身份,不生成或伪装管理员 JWT。
- `client_api_key` 保存名称、随机 256 位密钥的 SHA-256 摘要、前缀、授权 JSON、启用状态、版本、创建/修改人和最后使用时间;完整密钥仅创建响应一次返回。`client_api_key_audit` 保存管理变更和客户端请求元数据,不保存请求正文、查询参数、响应正文或凭据。
- 编辑与停用采用启用状态和 version 条件更新,并与变更审计同事务提交;冲突返回 409。业务执行前先持久化请求审计意图,失败则不执行业务。完成后更新状态;更新失败或进程中断可能留下 status=0,表示结果待核对,不能据此自动重放。
- 部分既有业务操作人字段使用该密钥最近授权管理员的 ID 兼容现有外键;实际调用方以独立审计的 key_id 为准,不能把业务字段当成人工操作证据。