Spectre.Receipt.Sink.Conformance (Spectre v0.3.4)

Copy Markdown View Source

Adapter-neutral checks for the idempotent receipt sink contract.

Successful reports distinguish optional payload erasure that is not exported from erasure that was verified. Failures identify the exact contract phase so adapter authors can diagnose a rejected callback without relying on the callback order inside this runner.

Summary

Functions

Runs the receipt and optional payload-erasure contract.

Types

failure()

@type failure() :: {:receipt_sink_conformance_failed, phase(), term()}

phase()

@type phase() ::
  :configuration
  | :append
  | :idempotency
  | :lookup
  | :missing_lookup
  | :payload_store
  | :payload_identity
  | :payload_readback
  | :payload_erasure_capability
  | :payload_neighbor_setup
  | :payload_neighbor_identity
  | :payload_erasure
  | :payload_erasure_readback
  | :payload_neighbor_isolation
  | :payload_erasure_idempotency
  | :payload_neighbor_cleanup

report()

@type report() :: %{
  append: :verified,
  idempotency: :verified,
  lookup: :verified,
  payload_store: :verified,
  payload_erasure: :verified | :not_exported,
  payload_neighbor_isolation: :verified | :not_exported
}

Functions

run(config)

@spec run(Spectre.Receipt.Sink.config()) :: {:ok, report()} | {:error, failure()}

Runs the receipt and optional payload-erasure contract.