跳转到内容

org 治理设置写入(owner/admin,JWT 人类主体;org PAT 恒 403 principal_required):升 enforce/required 须带当前 preflight reportHash,缺席/过期 409 preflight_required;降档自助恒许恒审计;写恒 bundle 失效;poolTierCeiling = org→user 细分天花板(三态 undefined 不动/null 清除/值即设;user 位写面生效 min(平台,细分),org 位与签发工件恒不受影响;不涉 preflight)

PUT
/v1/org-governance
curl --request PUT \
--url https://api.tansr.com/v1/org-governance \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "resourceMode": "legacy", "licenseMode": "disabled", "memberDefault": "all", "memory": "allow", "poolTierCeiling": "low", "adjudicatorCallBudget": 1, "sessionRetentionDays": 1, "preflightHash": "example" }'
x-tansr-org
string

Org 作用域声明(org 公开 id);服务端校验成员资格与角色,非成员恒 404、角色不够 403

Media typeapplication/json
object
resourceMode
Any of:
string
Allowed value: legacy
licenseMode
Any of:
string
Allowed value: disabled
memberDefault
Any of:
string
Allowed value: all
memory
Any of:
string
Allowed value: allow
poolTierCeiling
Any of:
Any of:
string
Allowed value: low
adjudicatorCallBudget
Any of:
integer
>= 1 <= 10000
sessionRetentionDays
Any of:
integer
>= 1 <= 3650
preflightHash

升 enforce/required 时必带 = GET preflight 报告 reportHash 当前值

string
<= 64 characters

治理设置(写后)

Media typeapplication/json
object
settings
required
object
configured
required

False = org_governance_settings 无行(全旧语义);true = 有行

boolean
resourceMode
required
Any of:
string
Allowed value: legacy
licenseMode
required
Any of:
string
Allowed value: disabled
memberDefault
required
Any of:
string
Allowed value: all
memory
Any of:
string
Allowed value: allow
poolTierCeiling
Any of:
Any of:
string
Allowed value: low
adjudicatorCallBudget
Any of:
integer
>= 1 <= 10000
sessionRetentionDays
Any of:
integer
>= 1 <= 3650
ceilingVersion
required

天花板版本号(审批 TOCTOU 重验锚;C 变更单调递增)

integer
updatedAt
required
Any of:
string
Example
{
"settings": {
"resourceMode": "legacy",
"licenseMode": "disabled",
"memberDefault": "all",
"memory": "allow",
"poolTierCeiling": "low"
}
}

Forbidden(角色不够)/ principal_required(org PAT 打治理写面)

Media typeapplication/json
object
error
required
object
code
required

错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)

string
Allowed values: adjudicator_not_authorized admin_forbidden admin_key_invalid app_disabled app_ip_denied app_key_invalid approval_self_forbidden asr_not_configured asr_quota_exceeded auth_channel_undelivered bad_request conflict content_blocked context_window_exceeded currency_not_supported device_code_denied device_code_expired device_code_pending device_code_slow_down egress_blocked endpoint_disabled envelope_key_undelivered fence_denied forbidden idempotency_conflict idp_untrusted image_not_supported imagegen_not_configured imagegen_quota_exceeded insufficient_balance internal_error invalid_api_key license_required limit_exceeded liquidation_not_enabled model_not_authorized model_not_found nonce_replayed not_found order_state_invalid org_byok_not_available org_ceiling_exceeded otp_invalid otp_rate_limited pay_amount_mismatch pay_channel_undelivered pay_signature_invalid payload_too_large payment_required plan_apps_exceeded plan_concurrency_exceeded plan_end_users_exceeded plan_gate_unavailable plan_members_exceeded plan_required plan_tier_insufficient policy_locked pool_signing_undelivered preflight_required pricing_guard_tripped principal_required protocol_unsupported quota_exceeded rate_limited refund_not_eligible section_not_deliverable session_archived signature_invalid stream_backpressure token_expired tts_not_configured tts_quota_exceeded unauthorized upstream_connect_timeout upstream_disconnected upstream_error upstream_idle_timeout upstream_timeout upstream_total_timeout upstream_ttfb_timeout validation_failed videogen_not_configured videogen_quota_exceeded websearch_not_configured websearch_quota_exceeded
message
required
string
requestId
required
string
detail
object
Example
{
"error": {
"code": "adjudicator_not_authorized"
}
}

Preflight_required(升 enforce/required 缺 hash 确认;detail.expectedHash 携当前值)

Media typeapplication/json
object
error
required
object
code
required

错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)

string
Allowed values: adjudicator_not_authorized admin_forbidden admin_key_invalid app_disabled app_ip_denied app_key_invalid approval_self_forbidden asr_not_configured asr_quota_exceeded auth_channel_undelivered bad_request conflict content_blocked context_window_exceeded currency_not_supported device_code_denied device_code_expired device_code_pending device_code_slow_down egress_blocked endpoint_disabled envelope_key_undelivered fence_denied forbidden idempotency_conflict idp_untrusted image_not_supported imagegen_not_configured imagegen_quota_exceeded insufficient_balance internal_error invalid_api_key license_required limit_exceeded liquidation_not_enabled model_not_authorized model_not_found nonce_replayed not_found order_state_invalid org_byok_not_available org_ceiling_exceeded otp_invalid otp_rate_limited pay_amount_mismatch pay_channel_undelivered pay_signature_invalid payload_too_large payment_required plan_apps_exceeded plan_concurrency_exceeded plan_end_users_exceeded plan_gate_unavailable plan_members_exceeded plan_required plan_tier_insufficient policy_locked pool_signing_undelivered preflight_required pricing_guard_tripped principal_required protocol_unsupported quota_exceeded rate_limited refund_not_eligible section_not_deliverable session_archived signature_invalid stream_backpressure token_expired tts_not_configured tts_quota_exceeded unauthorized upstream_connect_timeout upstream_disconnected upstream_error upstream_idle_timeout upstream_timeout upstream_total_timeout upstream_ttfb_timeout validation_failed videogen_not_configured videogen_quota_exceeded websearch_not_configured websearch_quota_exceeded
message
required
string
requestId
required
string
detail
object
Example
{
"error": {
"code": "adjudicator_not_authorized"
}
}