审批决策(owner/admin 或经委托 approval.decide):CAS(pending→终态)+ ceiling_version 重验(TOCTOU)+ 效果落库 + 审计 + outbox 同事务;自批恒 409 approval_self_forbidden;harness_license 批准回显一次性 activationCode(hash 入库,由决策人转交受益人)
POST
/v1/approvals/{id}/decide
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”x-tansr-org
string
Org 作用域声明(org 公开 id);服务端校验成员资格与角色,非成员恒 404、角色不够 403
Request Bodyrequired
Section titled “Request Bodyrequired”Responses
Section titled “Responses”决策后审批单
Media typeapplication/json
object
approval
required
object
id
required
string
orgId
required
string
kind
required
requesterUserId
required
string
payload
required
object
payloadHash
required
Payload 稳定序列化 sha256(决策对象防换)
string
currentStep
required
integer
createdAt
required
string
activationCode
一次性激活码(仅 harness_license 批准回显一次;永不回读)
string
Example
{ "approval": { "kind": "expand_model", "level": "org", "status": "pending", "decisions": [ { "action": "approve" } ] }}Org_ceiling_exceeded(重验失败)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Approval_self_forbidden / conflict(已非 pending)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}本文是否有帮助?
感谢反馈,我们会持续改进这篇文章。