How the cached dataset is validated against the remote source.
content-hash: dataset has Luxar's content_hash attr; mismatch
triggers a full clear. Strongest guarantee.
zattrs-hash: dataset lacks content_hash; the SHA-256 of the raw
root .zattrs bytes serves as an implicit token. Luxar writers
re-stamp a per-save timestamp attr, so a dataset regenerated in
place at the same URL still invalidates. Weaker than content-hash
only for producers that rewrite data without touching root metadata.
archive-etag: a zipped store is identified by the archive's ETag,
or by its modification time and size when no ETag is available. A
changed token clears the cache for the whole archive.
ttl: root .zattrs unreachable (offline / headerless store) AND no
cached content hash to fall back on; we trust the cache for
cache.externalDatasetTtlMs and revalidate after. (A dataset that was
hash-validated online keeps its hash mode offline and is never
TTL-expired.)
none: .zattrs unreachable and no TTL configured — cache may be
stale indefinitely until manually cleared. Surfaced in the UI as a
warning badge so the user knows what they're getting.
How the cached dataset is validated against the remote source.
content-hash: dataset has Luxar'scontent_hashattr; mismatch triggers a full clear. Strongest guarantee.zattrs-hash: dataset lackscontent_hash; the SHA-256 of the raw root.zattrsbytes serves as an implicit token. Luxar writers re-stamp a per-savetimestampattr, so a dataset regenerated in place at the same URL still invalidates. Weaker thancontent-hashonly for producers that rewrite data without touching root metadata.archive-etag: a zipped store is identified by the archive's ETag, or by its modification time and size when no ETag is available. A changed token clears the cache for the whole archive.ttl: root.zattrsunreachable (offline / headerless store) AND no cached content hash to fall back on; we trust the cache forcache.externalDatasetTtlMsand revalidate after. (A dataset that was hash-validated online keeps its hash mode offline and is never TTL-expired.)none:.zattrsunreachable and no TTL configured — cache may be stale indefinitely until manually cleared. Surfaced in the UI as a warning badge so the user knows what they're getting.