Add -password and -2fa-totp options and pre-commit linting / formatting#269
Add -password and -2fa-totp options and pre-commit linting / formatting#269znd4 wants to merge 20 commits intoemersion:masterfrom
Conversation
|
This was intentionally left out because CLI flags leak sensitive information in shell history files. It should be possible to pass that info via stdin instead. |
That is a reasonable enough concern, especially for such something this important. Unfortunately, piping to stdin hasn't worked for me so far (at least in fish, bash, and nushell): ❯ echo foo | hydroxide auth username
Password:$ echo foo | hydroxide auth username
Password:❯ echo foo | hydroxide auth username
Password:Would you be open to either
|
|
I'll split my more recent changes into a separate PR. a quick comment on them though: basically, hydroxide doesn't actually build any more for go <=1.17, and under some conditions, |
|
Switched over to environment variables, in case that seems more secure (FWIW, I feel like environment variable secrets seem somewhat less secure if people are just leaving them in their shell all the time, although I guess that's more obvious than the Also, I looked into supporting piped stdin, and it seems less trivial than I'd expected (e.g. charmbracelet/huh's inputs don't seem to support it), so environment variables or arguments seem like the lower hanging fruits. If you'd prefer to include neither of them, no hard feelings; I can always just maintain a slightly-deviated personal fork) |
|
I'd prefer to fix the stdin read issue. Here's an example of how to do it: https://git.sr.ht/~emersion/chathistorysync/tree/master/item/askpass.go |
|
Hmm it doesn't seem too difficult, but I think that supporting multiple passwords (e.g. login password and then the 2FA TOTP) will require either of two funky decisions:
I think 1 is probably the better option, even though the performance hit for 2 won't matter most of the time |
|
I'd be fine with either FWIW. |
This reverts commit 58c4f7c. fix askBridgePass
@emersion , when you get a chance to review, I've implemented this option |
|
Oh, I remember now why we used |
|
hmm. I think we could support that by implementing something like a singleton for accessing Also, it'd require replacing every existing use of |
|
This would be handy and would work. Another way to solve it is:
|
Hi, I'd like to be able to automate my hydroxide setup, e.g.:
hydroxide auth \ -password $(op item get Protonmail --fields password) \ -2fa-totp $(op item get Protonmail --otp) \ $(op item get Protonmail --fields username)I also probably went a bit overboard with a bit of refactoring (the
if a == nilgot flagged by gopls as tautological), and adding the pre-commit hooks (especiallygofumpt, which if run on every file withpre-commit run --allwould generate a lot of changes), but I'll leave them in in case you appreciate some of them.Also, obviously open to different flag names.
pre-commit comment
If you are interested in keeping
pre-commit, pre-commit.ci is pretty cool, although I'd recommend settingci.autoupdate_branchtoquarterly, because IMO it's really noisy at weekly