legacy source route @a86af60;生产无 credential service → /robot/token/:id
Bot Token 与运行凭证
Token 只显示一次且服务端只存 hash;按用途拆 scope、期限和 last-used,并优先由 ServicePrincipal 交换短期凭证
/robot/token/:idminiapp-open-platformBot Token 与运行凭证 · 页面级细化任务包
替换旧页面直接回显/复制完整 Robot.token 与立即重置的危险交互,建立只显示一次、hash/KMS、scope、expiry、双窗口轮换与撤销证据。
从 Bot identity 或运行主体进入;OpenSDK `obot_<hex32>` 只是客户端格式合同,20 仓审计未找到签发服务端。
返回 one-time secret result、rotation 或 revocation receipt;列表永远只返回 credential ID/fingerprint/prefix。
Prefer workload exchange;compat credential: create → one-time reveal → overlap/observe → revoke predecessor;泄漏场景立即撤销。
桌面 policy + credential index + detail;手机先显示用途/scope/expiry/status,完整 secret 只在一次性全屏结果出现。
credential_index_view · create_submit · rotate_submit · revoke_submit;不记录 secret、token prefix 全值、assertion 或 IP 原文。
- 2026-07-17 认证遍历 Gitea `reits` 组织共 20 个仓库;精确 `/openapi/v1/bot/*` 服务端实现数为 0
- xtalk-open-source main@a86af60 含旧 React 机器人 UI 与 `/api/bots/*` 客户端合同,但没有部署证据
- miniapp-open-platform source fa9283d / production fb1a1b:`developer_apps.kind=bot` 只是通用 App 字段,没有 Bot/Installation/Command/Credential/Event/Delivery 表或 handler
- opensdk main@e50cb8a 提供 6 个 Bot 客户端路径、HMAC-SHA256 验签、5 分钟窗口与 1 MiB body 上限;go test/vet 通过
- im-core origin/main@9849051 仍只提供 `/im/chat/create_bot` 的 typ=11 会话壳;最新提交只推进 iOS QA handoff,公网 Bot OpenAPI 探测仍为 404
- reits-auth source/production@157b859 没有 Bot resource authorization、ServicePrincipal 或 workload exchange
- legacy Token 页把 `robot.token` 填入只读 TextArea 并提供复制,reset 后旧 token 立即失效
- OpenSDK 每次请求发送 Bearer token;没有 scope/expiry/revocation server evidence
- 生产没有 BotCredential 表、签发/轮换/撤销 API 或 KMS reference
- 没有 workload exchange、scope、expiry、last-used、successor 或异常使用证据
- 旧 token re-display/copy 是安全缺陷,不能作为目标 UI 复刻
七页分别改变身份、配置、命令、凭证与交付证据边界
legacy risk + target credential policy
BOT-CREDENTIAL-READY→ 查看凭证迁移合同credential metadata / activity
BOT-CREDENTIAL-LOAD→ 返回机器人资料credential index
BOT-CREDENTIAL-NO-SERVICE→ 定义凭证后端last-used / exchange evidence
BOT-CREDENTIAL-ACTIVITY-PARTIAL→ 重试活动证据credential command
BOT-CREDENTIAL-COMMAND-FAILED→ 确认命令状态redacted credential snapshot
BOT-CREDENTIAL-OFFLINE→ 重新连接bot.credential.manage
BOT-CREDENTIAL-DENY→ 申请凭证权限create/rotate/revoke command
BOT-CREDENTIAL-CONFIRM→ 确认凭证命令one-time secret / receipt
BOT-CREDENTIAL-UPDATED→ 确认已安全保存target-open-bot-tokens- 1机器人与环境上下文凭证策略提示
- 2凭证任务头Token 目录
- 3工作负载身份提示遮罩 prefix
- 4Token 表格有效 scopes
IMPLEMENTATION MAP
目标定义与下一轮逐页细化入口
当前处于 B1/B2:可以拆出架构、设计、交互和 QA 任务,但完成 D01–D12、通过 B3/B4 之前,不得宣称页面已经可以照稿实现。
页面区域
- 机器人与环境上下文
- 凭证任务头
- 工作负载身份提示
- Token 表格
- 凭证详情
- Scope 与期限
- 轮换计划
- 撤销与审计
用户动作
- 创建 scoped token
- 配置 token exchange
- 查看使用审计
- 轮换凭证
- 立即撤销
- 导出脱敏清单
- 调查异常使用
必须状态
- 凭证目录就绪
- 凭证与使用活动加载
- 尚无运行凭证
- last-used 部分失败
- 凭证操作失败
- 离线只读目录
- 缺少 bot.credential:manage
- 创建/轮换/撤销确认
- 凭证变更已记录
数据契约
- BotCredentialIndex
- BotCredential
- CredentialScope
- CredentialHash
- ServicePrincipalTokenExchange
- CredentialRotation
- CredentialRevocation
- AuditReceipt
TARGET MODULES
目标页面必须交付的模块
- 01凭证策略提示
- 02Token 目录
- 03遮罩 prefix
- 04有效 scopes
- 05创建者/last-used/expiry
- 06双 token 轮换
- 07立即撤销
- 08使用审计
ARCHITECTURE GUARDS
实现不得越过的安全边界
- legacy `/robot/token/:id` 会把完整 `robot.token` 重新填入 TextArea 并允许复制,重置后旧 token 立即失效;这是安全缺陷,不得复刻
- OpenSDK 约定 obot_<hex32> Bearer token 但 20 仓未发现签发服务端;完整 secret 只能在创建结果显示一次
- 生产没有 BotCredential/scope/expiry/last-used/revocation/KMS 模型;SDK 固定 2 秒单次 429 retry 且忽略 Retry-After
PRODUCT ROUTE INDEX
开放平台 · 自动化 的 38 个稳定 Screen ID
同一产品内的页面共享 token、导航和状态语言,但每个 Screen ID 保留自己的字段、数据契约和 QA 基线。
/login/apps/apps/new/apps/:id/publish/apps/apps/new/apps/:appId/releases/new/apps/:appId/settings/apps/:appId/config/apps/:appId/versions/apps/:appId/capabilities/apps/:appId/capability-requests/mini-company/list/mini-company/create/console/development/console/developer/console/member/console/role/console/service-accounts/console/log/robot/list/robot/create/robot/baseInfo/:id/robot/devConfig/:id/robot/command/:id/robot/token/:id/robot/:id/deliveries/mini/:type/paymentOrders/:id/mini/:type/userData/:id/mini/:type/payApply/:id/console/finance//mini/mini-company/robot/business/notice/console/my