Skip to content

BoundaryAttest provenance-addon v0.1 → next technical decisions #1

Description

@markusvankempen

Context

Follow-up to Cullen Meyers' review of the public provenance-addon/ PoC (BoundaryAttest collaboration context).

The v0.1 PoC addressed the main review concerns:

  • artifact_hash — binds the signed claim to exact produced file/patch/scaffold content without storing raw bytes in the receipt
  • previous_receipt_hash — clearly reserved/future; v0.1 does not imply active receipt chaining
  • createLocalSigner() — clearly marked ephemeral/dev-only; cross-run verification requires persisted keys or KMS/HSM-backed signing
  • Failure model — distinguishes tool failure (valid signed receipt with status: failed) from sink failure (fail-open, tool path unchanged)
  • Visualizer — timeline replay, session/task drilldown, tamper detection demo with Web Crypto Ed25519 verification

This issue tracks concrete next decisions before moving beyond PoC.


Decision areas

1. Persisted key / external verifier from disk

  • Define dev/PoC persisted key file format (PEM path, permissions, rotation notes)
  • Document cross-run verification workflow (verifySignedReceipt against saved public key)
  • Clarify when to move from local PEM → KMS/HSM (IBM Key Protect, etc.)
  • Add example: sign in one run, verify in another using persisted public key

Open questions:

  • Should the public repo include a verify-receipt.mjs CLI, or is README + example sufficient?
  • Where should trusted public keys live for verifiers (config file, env, org registry)?

2. Schema validation in CI

  • Define JSON Schema (or TypeBox/Zod export) for receipt v0.1 wire format
  • Validate demo receipt fixtures in CI (receipts/*/ sample files)
  • Fail CI if claim shape drifts without version bump

Open questions:

  • Strict schema for optional fields (session_id, task_id, artifact_hash) — required vs omitted?
  • Separate schema for _public_key.json manifest?

3. Artifact hash verification flow

  • Document end-to-end: produce artifact → compute hash → sign receipt with artifact_hash → later verify artifact bytes match claim
  • Add verifier helper: given receipt + artifact file on disk, confirm hashRaw(artifact) === claim.artifact_hash
  • Clarify relationship between artifact_hash (raw content) and input_hash (redacted structure)

Open questions:

  • Should artifact verification be a separate CLI step or part of unified receipt verifier?
  • Patch/diff artifacts: same artifact_hash field or future patch_hash?

4. Trust model wording

  • Align README FAQ with BoundaryAttest trust language (what signature proves vs does not prove)
  • Document client_observed vs future server_attested for Code Engine MCP boundary
  • Add short "verifier checklist" for auditors reviewing receipts out-of-band

Open questions:

  • Any wording Cullen wants mirrored in BoundaryAttest repo vs Code Engine-specific phrasing here?

5. Receipt chaining (previous_receipt_hash)

  • Confirm v0.1 stays null always until explicitly implemented
  • If implemented: single-writer sequential chain vs per-session/task chains vs DAG/lineage
  • Document retention/pruning impact on chain verification (retained-chain semantics)

Open questions:

  • Is chaining needed for Code Engine MCP deploy flows, or is session_id + task_id + trace_ref sufficient for v0.2?
  • Should BoundaryAttestProvenanceSink maintain previousReceiptHash when enabled?

References

Collaborators

  • @markusvankempen — Code Engine MCP / provenance-addon
  • Cullen Meyers — BoundaryAttest review context (decisions that become BoundaryAttest-general may be mirrored upstream)

Opened per review feedback, Jun 2026.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions