概念
证据与内容寻址快照
每个答复都带着它的原始字节的引用。派生结论可以重算,原始数据不能被改写。
一个你无法重新推导的答复,是一个意见。这套 API 的构造让每个答复都能落回到它所来自的字节。
快照引用
凡是 API 转述上游来源说过的话,返回的都是一个 SnapshotRef,而不是一个光秃秃的布尔值。
cas:sha256:EXAMPLE00000000000000000000000000000000000000000000000000000000
这个引用是内容寻址的。快照追加写、版本锁定,因此一个引用永远解析到同一批字节。派生结论可以重算;它们背后的原始数据不能被改写——包括被我们改写。
它出现在每个 LayerAHit 的 snapshot_ref、每个 VendorResult 与来自供应商的 reason 上的 raw_ref,以及暴露面匹配、撤销与裁决上的 evidence_ref。
证据包
GET /v1/decisions/{decision_id}/evidence 以 ZIP 返回一条裁决的证据包。
manifest.json 裁决字段、evidence_hash 与验证说明
layer_a/*.json 各权威名单来源的原始响应快照
layer_b/*.json 供应商原始响应体,受供应商许可条款约束
rule/{rule_version}.json
chain/{tx_hash}.json
report.pdf
manifest.json 里的 evidence_hash 让你可以独立验证这个包,不必信任我们。
当供应商许可不允许再分发其原始响应时,layer_b/ 放的是调用记录摘要加供应商名与名单版本,而不是原始响应体。包里会声明用的是哪一种形式,所以缺失的原始体是可见的,而不是静默的。
一次请求一条裁决。证据没有批量导出,也没有按日期范围的导出,更没有能产生它的参数。
裁决记录
裁决记录只追加。decision_id 标识它,它永不被更新或删除。rule_version 记录是你规则集的哪个版本产生了它——规则版本被存储、经双人复核、可复现,所以一条过去的裁决可以按当时实际生效的规则重放,而不是按今天的。
把 decision_id 存在账本条目旁边。它是「我们贷记了这一笔」与「这是原因,这是字节」之间的连接键。
没有批量导出
这条规则不是伪装成限流的东西。不存在任何接口、参数或格式能倾倒非终态的执法数据——/v1/exposure 不行,它是带硬上限 limit 的变更流;证据也不行,它一次只给一条裁决。