Skip to content

feat: add Bitwarden Secrets Manager provider (bws://)#69

Open
nickdichev wants to merge 3 commits intocachix:mainfrom
nickdichev:bws-provider
Open

feat: add Bitwarden Secrets Manager provider (bws://)#69
nickdichev wants to merge 3 commits intocachix:mainfrom
nickdichev:bws-provider

Conversation

@nickdichev
Copy link
Copy Markdown

Adds a provider for Bitwarden Secrets Manager (BWS). Note: this is only for BWS side but I think that adding the password manager implementation would now be straight forward with the addition of the bitwarden crate.

I'd also like to point out that I don't know Rust and Claude did a majority of the work. I read the code and it looks reasonable to me -- but I'm really not sure.

  • Add Bitwarden Secrets Manager provider (bws://) with feature flag --features bws
  • Uses machine account access tokens via BWS_ACCESS_TOKEN environment variable
  • Secrets namespaced by BWS project UUID in URI: bws://project-uuid
  • Flat key names (no secretspec/{project}/{profile} prefix) — the project UUID provides isolation
  • OnceLock-based client and secrets list caching for efficient API usage
  • Full read-write support with batch get via get_by_ids
  • Uses shared block_on helper for async-to-sync bridging (consistent with awssm/gcsm/vault)
  • Includes provider documentation, tests, changelog entry, and all doc site updates

nickdichev and others added 3 commits March 24, 2026 13:20
Co-authored-by: Claude <noreply@anthropic.com>
Implement a native BWS provider using the bitwarden SDK v2.0.0 (async,
feature-gated behind `--features bws`).

- URI format: bws://<project-uuid>
- Auth via BWS_ACCESS_TOKEN environment variable
- Flat key names with project UUID providing namespace isolation
- OnceLock-based client caching (login once, reuse across calls)
- OnceLock-based secret list caching (single list_by_project + get_by_ids)
- Full read-write support (get, set, get_batch)
- Unit tests for config parsing, provider metadata, and error handling

Implements PLAN.md Issues cachix#1, cachix#3, cachix#4.

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant