Skip to main content

admin_reload

Function admin_reload 

Source
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_diskremember_login 刷新磁盘 tgtgt; 下次 Platform 断线重连时自动用新 tgtgt
  • 状态写 bridge.last_reload_refresh, ops 通过 /api/admin/statuslast_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)。