[PM-26542] Add listing items functionality with session-based authentication with environment variable support for API key login #492
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-26542
📔 Objective
Implements session-based authentication for the Rust Bitwarden CLI, enabling stateless command execution similar to the Node.js CLI. Users can now authenticate once with
bw login api-key
and reuse the session for subsequent commands.Added environment variable support (BW_CLIENTID, BW_CLIENTSECRET, BW_PASSWORD) to the bw login api-key command and made it return a base64-encoded session key (like the Node.js CLI, although this one is reaally long) that can be potentially used with --session (or BW_SESSION) for subsequent vault operations.
Session Management
export_session()
to serialize full client stateimport_session()
to restore complete authenticated state from session stringEnvironment Variable Support
Added support for environment variables in
bw login api-key
:BW_CLIENTID
(orBW_CLIENT_ID
): API client IDBW_CLIENTSECRET
(orBW_CLIENT_SECRET
): API client secretBW_PASSWORD
: Master passwordList Command Implementation
bw list items
with filtering options:--search
: Text search across items--folderid
: Filter by folder--collectionid
: Filter by collection--organizationid
: Filter by organization--trash
: Show deleted itemsSession Usage
The global
--session
flag andBW_SESSION
environment variable now work across all commands, automatically restoring client state before execution.Usage Example
⏰ Reminders before review
team
🦮 Reviewer guidelines
:+1:
) or similar for great changes:memo:
) or ℹ️ (:information_source:
) for notes or general info:question:
) for questions:thinking:
) or 💭 (:thought_balloon:
) for more open inquiry that's not quite a confirmedissue and could potentially benefit from discussion
:art:
) for suggestions / improvements:x:
) or:warning:
) for more significant problems or concerns needing attention:seedling:
) or ♻️ (:recycle:
) for future improvements or indications of technical debt:pick:
) for minor or nitpick changes