1.6 KiB
1.6 KiB
Ledger Observability Prep — PREP-LEDGER-OBS-54-001
Status: Prep complete (2025-11-20)
Owners: Findings Ledger Guild · Provenance Guild
Scope: Minimal HTTP surface plus determinism/telemetry hooks for /v1/ledger/attestations.
Agreed contract (PREP-LEDGER-OBS-54-001)
- HTTP surface published in
docs/modules/findings-ledger/prep/ledger-attestations-http.md. - Endpoint:
GET /v1/ledger/attestationswith tenant headerX-Stella-Tenantand bearer scopeledger.attest.read(or mTLS). - Filters:
artifactId,findingId,attestationId,status,sinceRecordedAt,untilRecordedAt,limit. - Ordering/pagination: deterministic by
recordedAt ASC, attestationId ASC; pagination token encodes{recordedAt, attestationId, filtersHash}. - Response shape (JSON or NDJSON): ids, verification status/time, DSSE digest, optional Rekor entry id, evidence bundle ref, source ledger event id, Merkle leaf + root hashes.
- Offline posture: no live Rekor calls; all hashes lowercase SHA-256; times UTC; deterministic sort only.
Telemetry hooks
- Log events:
ledger.attestations.query(tenant, filtersHash, limit, duration_ms, result_count). - Metrics:
ledger_attestations_queries_total{tenant,status};ledger_attestations_failures_total{reason}. - Tracing: span
ledger.attestations.querywith attributesfiltersHash,next_page_token_present.
Handoff
- Use
docs/modules/findings-ledger/prep/ledger-attestations-http.mdas the binding prep artefact for LEDGER-OBS-54-001 / 55-001 implementation. - Service scaffolding and OAS wiring land in LEDGER-OBS-54-001 once the web-service handler is added.