2.2 KiB
2.2 KiB
Implemented and merged local key-value secret store support.
Merged commits:
cc2c9a2 secrets: add local key store7ddf745 secrets: polish key manager and docs629159a merge: local secret store
Review:
- Review approved in
c9e48b3 review: approve local secret store. - Focused follow-up review approved the docs example and key-manager terminal cleanup polish.
Summary:
- Added a provider-independent local
id -> valuesecret store under the user data directory. - Added id validation, atomic persistence, and lightweight at-rest obfuscation consistent with the ticket's modest security target.
- Added
insomnia keysinteractive TUI management for listing ids, setting values with masked display, deleting with confirmation, and quitting without displaying plaintext values. - Wired provider
secret_refauth through the store. - Added WebSearch
api_key_secretand removed normal WebSearch/provider credential env configuration. - Updated bundled resources and docs to point users to
insomnia keysplus explicit secret refs. - Left Codex OAuth behavior unchanged.
Validation after merge:
cargo fmt --check— passedcargo test -p secrets— passedcargo test -p manifest secret --lib— passedcargo test -p provider secret --lib— passedcargo test -p tools web::tests::search_requires_configuration --lib— passedcargo test -p tools web::tests::searches_brave_with_secret_ref --lib— passedcargo test -p tools web::tests::searches_brave_with_bounded_output --lib— passedcargo test -p tui keys::tests --lib— passedcargo test -p insomnia parse_keys_subcommand --bin insomnia— passedcargo check -p manifest -p provider -p tools -p tui -p insomnia— passed./tickets.sh doctor— passedgit diff --check— passed
Credential/env grep:
api_key_env,BRAVE_SEARCH_API_KEY,INSOMNIA_API_KEY, anddefault_env_varare absent fromcrates docs resourcesafter the merge.- Remaining
sk-/secret-value/test-secrethits are fake test values, docs/comments, or Codex OAuth test fixtures, not new persisted real credentials.
Caveat:
- The store should continue to be described as local obfuscation / limited at-rest protection, not a high-assurance password manager.