Expand description
The node read path — GET {base}/s/<storeId>[:<root>]/<resourceKey>.
A loopback dig-node can answer in one of TWO shapes, distinguished DETERMINISTICALLY by headers (never by assuming “node ⇒ plaintext”):
- Verified PLAINTEXT — the node decrypted + verified server-side and attests
X-Dig-Verified: true. Trusted directly (no client crypto), sound because:- Loopback only — this path is reached ONLY for an asserted-loopback host
(the ladder’s
crate::ladder::classifyguard); a remote/override host is routed to the client-verified rpc path instead. - Attested — a missing/false
X-Dig-Verifiedis rejected fail-closed.
- Loopback only — this path is reached ONLY for an asserted-loopback host
(the ladder’s
- CIPHERTEXT — the node relayed opaque ciphertext (marked by
X-Dig-Encrypted: trueor anX-Dig-Inclusion-Proofheader). This is client-side VERIFIED + DECRYPTED exactly like the rpc path (merkle proof + AES-256-GCM-SIV viadigstore-core, URN salt threaded in) — a node returning ciphertext is NOT blindly trusted.
A response that is neither attested plaintext nor decryptable ciphertext fails closed.