Catalog · privacy-code
NO_PERSISTENT_STORAGE
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/projectSee the claim standard for the exact formats, or the developer guide to get started.