subject の定義
subject は「bundle ファイル全体」です。bundle 内の各ファイルの真実性や manifest の妥当性は保証しません。
プラン上の扱い
Series 3種は全プラン共通で利用できます。ただし Free は Free の利用上限(レート / カウンタ / 運用条件)の範囲で利用します。All three Series templates are available on every plan. Free can use them within Free limits.
最小 tags テンプレ
{
"receipt_kind": "audit_pack",
"tags": {
"subject_name": "evidence_pack_20260308.zip",
"subject_type": "audit_bundle",
"subject_ref": "audit:CASE-20260308-01"
}
}
bundle 内の manifest 生成や内容説明は後続版で拡張可能ですが、MVPでは保証範囲を広げません。
保証 / 非保証
- 保証:bundle の digest と tags に基づき receipt を生成し、署名し、検証できること。
- 非保証:bundle 内部の真実性・法的有効性・適法性・内部構成の正確性。
receipt_kind の扱い
receipt_kind は用途テンプレ識別と冪等性安定化のために使いますが、署名・verify ロジックの分岐条件には用いません。Series は同じ receipts / verify 基盤の上に置く Docs/UI レイヤです。
サンプル(PowerShell)
公開配布物では scripts/examples/ を前提にしません。以下の最小例をそのまま PowerShell に貼り、bundle 全体の digest を receipt_kind=audit_pack で送ります。
$BaseUrl = "https://runproof.chamia-20260215.workers.dev"
$ApiKey = "rk_..."
$FilePath = ".\evidence\evidence_pack_20260308.zip"
$BundleRef = "audit:CASE-20260308-01"
$hex = (Get-FileHash -Algorithm SHA256 $FilePath).Hash.ToLower()
$payload = @{
input_hash = "sha256:$hex"
receipt_kind = "audit_pack"
tags = @{
template = "audit_pack"
subject_name = [IO.Path]::GetFileName($FilePath)
subject_type = "zip"
bundle_ref = $BundleRef
}
} | ConvertTo-Json -Depth 6
$headers = @{ Authorization = "Bearer $ApiKey"; "Content-Type" = "application/json" }
Invoke-RestMethod -Method Post -Uri "$BaseUrl/v1/receipts" -Headers $headers -Body $payload