pub async fn admin_reload(
__arg0: State<RestState>,
) -> Result<Json<Value>, (StatusCode, Json<Value>)>Expand description
POST /api/admin/reload — 重置 trade cipher 缓存(同步)+ 后台刷 credentials
同步阶段(v1.4.106 codex 0554 F1+F3, response return 前已生效):
- 走
TrdCache::clear_all_ciphers_and_bump_versions()清所有 cipher 同时 bump 各账户的cipher_state_version(v1.4.73 BUG-008 idem cache 失效, 防 stale “cached success” 复活) - 客户端必须重新调
/api/unlock-trade(带密码 + 可选 OTP)才能下单
后台阶段(v1.4.106 codex 0554 F3 [P2] tokio::spawn):
- 跑
refresh_credentials_on_disk→remember_login刷新磁盘 tgtgt; 下次 Platform 断线重连时自动用新 tgtgt - 状态写
bridge.last_reload_refresh, ops 通过/api/admin/status看last_reload_refresh字段(Running / Succeeded / Failed / Skipped / NotApplicable)监控后台 refresh 进度
不做的事(设计 scope 边界):
- 不重跑 HTTP auth(那需要重新持有 login_pwd;opend 启动后就不 保留 plaintext 密码)
- 不重建 Platform TCP / broker TCP 连接(心跳退出自然会触发 per-broker
reconnect watcher 重建;手动重建需要
push_cb线索,复杂度太高) - 不重启 daemon 进程(用
/api/admin/shutdown+ supervisor restart 实现)
实际使用场景:用户换了交易密码 / 解锁状态错乱 / 想“重新来过“ → 调这个。
§Request body 校验
仅接受 empty / {} / null(v1.4.106 F2 [P2] strict)。任何 user-supplied
字段返 400 列出 unknown fields(handler 完全不读 body,防 silent-accept)。