RunProof Series

Audit Pack Receipt(証拠束)Audit pack receipts for evidence bundles

複数ファイルの束(zip等)を1つの subject として扱い、bundle 全体の digest に対して receipt を発行します。Treat a bundle (e.g., evidence.zip) as a single subject and issue a receipt for the bundle digest.

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