OTA 管理台

用管理员账号登录(初始为 admin@ota.local / admin)

OTA 管理台
App 与渠道 版本与发布 名单 实验 报表 审计 用户 修改密码

App

预检公钥:—
仅用于 上传时预检签名(CI 用错密钥就立刻 400)。它不下发给设备、不参与分流决策——
设备验签用的是烤在 App 原生包里的那份公钥。

渠道

App-Key(分发面 X-App-Key)

明文只在创建时返回一次;库里只存 sha256。

版本

上传后不会自动发布;发布是独立动作。当前 serve:

上传新版本

签名由 CI 用私钥生成(私钥不进服务端、也不进本面板)。没有签名无法上传: 设备配了 publicKey 后只认签名, 无签名的包会被设备拒绝。

发布 / 回滚

发布历史

名单(Group)

名单按 email 匹配,导入与分流用的是同一个归一化函数 (trim + 小写 + 去空格),所以 Beta@Example.com 与 beta@example.com 是同一个人。
未登录的设备没有 email,永远不会命中名单。

成员

重复的邮箱会被跳过(不会报错),非法值会在结果里列出来。导入是幂等的。

实验(A/B)

只有 email 在 variant 对应名单里的设备才会命中实验;不在名单 / 未登录的设备走渠道 serve version。多个实验同时 running 时 priority 大的先匹配,组内按 sortOrder 小的先匹配,命中即停止。

分组

报表

只有技术指标(offer / 下载 / apply / rollback);转化率、留存这类业务指标不在 OTA 里。
apply 与 rollback 只有在设备回传 experimentId+variantId 时才能归到某个分组,其余落在 unassigned。

实验效果

版本影响面

审计

谁在什么时候发布了什么 / 回滚了什么 / 下架了什么,以及熔断什么时候动的手。
设备自己上报的 rollback 属于遥测,不在这一页(去「报表」看);熔断的判定依据(次数/比率/样本/窗口) 记录在每行的详情里。

用户

没有公开注册入口;账号只能在这里创建。

修改密码

App-Key 已签发

这是明文唯一一次出现的地方——库里只存 sha256,关闭后无法再取回。