Catalog · privacy-code

NO_PERSISTENT_STORAGE

v1Deterministic

Sensitive values are never logged or written to a database

What it says

No value wrapped in Sensitive<T> reaches a logging macro or a database write.

This wording is for a person to read. What gets verified is the identifier and version — NO_PERSISTENT_STORAGE@1 — not the prose. Rewording it does not change what the claim means; changing the meaning requires a new version.

What it does not cover

Every limitation this claim has, in the same type size as the result. The catalog loader refuses to publish a claim that states none.

  • Only Rust source can be analyzed today. This claim is about the whole subject, not about its Rust parts, so a subject containing source in any other language is reported not_evaluable rather than passing on the strength of the half that was read. The outcome names the languages that were missed.
  • Macros are not expanded, so a value that reaches a log through a macro body is not seen.
  • Taint is tracked within one function body. A sensitive value handed to a helper in another function is not followed, and taint does not pass through format! into whatever consumes the resulting String.
  • Logging and database calls are recognised by name. A function called `execute` is assumed to write to a database, and a sink with an unfamiliar name is not recognised at all.
  • Describes source at a commit, not the binary you run. Closing that gap is what the planned build-provenance pack is for.
  • Files excluded by the published skip rules are not examined. Every exclusion is reported in the outcome's coverage, with the rule that caused it.

How it is decided

Evidence required
source_tree
Subject kind
source_tree
Evaluator
privacy-code/no_persistent_storage
Determinism
deterministic

Parameters

Part of the claim: two subjects evaluated with different parameters are not comparable.

languages
["rust"]

Check it yourself

The evaluator is open source and runs offline. Same code, same evidence, same bytes — if it disagrees with what we published, that is a bug and we want to hear about it.

cargo run -p claimer -- check /path/to/project

See the claim standard for the exact formats, or the developer guide to get started.