jaraco / jaraco/keyring

Question on intended interactivity

Open
#753 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
1.5k
Forks
196
PR merge metrics
No merged PRs in 30d

Description

Hi! I'm the maintainer of [bitwarden-keyring](https://github.com/ewjoachim/bitwarden-keyring). After a large part of a decade without changes in the lib, there has been some activity recently, and we may have some opportunities to improve the plugin.

One question we have is around interactivity: when the plugin was created a while ago, we assumed that (the program using) keyring was always ok to fall back to using stdin and stdout for interacting with the user, especially in 2 cases: when their bitwarden vault is locked, and when there are multiple secrets matching what they want to read or delete. I now believe that to be a bad pattern, but in order to correct it, I need some information, which I believe would deserve to live in the plugin chapter of keyring's doc:

- can the plugin be interactive (print, input)
- is it the plugin's responsibility to test the presence of a tty or something ?
- should the plugin indicate to keyring that it's interactive ?
- should the plugin log (and are there conventions as to how ?)
- what should a plugin do if there are multiple matches for reading or deleting ? And for setting, should we always create or use an "upsert" pattern ?
- what if there's no match ? When reading, we return None, what about deleting ?

Thanks

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the keyring plugin chapter referenced in the issue and review how plugins currently handle vault prompts, multiple matches, missing entries, and setting secrets. Resolve the listed questions about interactivity, TTY checks, logging, and operation semantics, then document the agreed conventions in that chapter.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.