POST /api/com/{vendor}/{action}vendor ∈ {dingtalk, aliwork, beisen, teambition, feishu, fxiaoke, h3yun, ...}(以 mjava/service/ 下 vendor 包实际存在为准)action 为显式注册的 key,形如 user.get / form.save / attendance.listRecord(命名对应官方 API 文档语义)X-Caller-Id X-Signature X-Timestamp401 { code: "AUTH_FAILED", reason: "..." }(reason 不暴露具体环节,避免用户猜测)ActionRegistry 代码显式注册(反射调基座 Client 方法)application.yml 的 com.actions.enabled 列表启用allowedActions 包含该 action 才允许访问403 { code: "ACTION_FORBIDDEN" }McR<T>(基座已有):{ success, code, message, data }data 字段,保留全部原始结构(不做字段转义)McR.fail(),data 含 vendor 原始错误码RateLimiter,阈值取宜搭权限表单 rateLimit 字段429 { code: "RATE_LIMITED", retryAfter: 1 }mjava-baseline §3.5 基础上追加 callerId / vendorAction / signatureValidcom.caller.registry.formUuid)design.mdenabled=on 的调用方到内存 Map<callerId, CallerProfile>com.caller.registry.ttlSecondscallerSecret → 下次拉取后生效enabled=off 后,注册表下次刷新移除401 CALLER_DISABLED