nyxt icon indicating copy to clipboard operation
nyxt copied to clipboard

password-manager/password-secret-service: Implement and document

Open johanwiden opened this issue 11 months ago • 5 comments

An interface to https://specifications.freedesktop.org/secret-service

Description

Implement a password interface that uses Secret Service: https://specifications.freedesktop.org/secret-service

One can normally use this service without having to provide a master password at each interaction.

Depends on two python packages, and three script files:

  • Password entries are retrieved using python package SecretStorage. This package may be provided by your linux distribution. In Ubuntu python3-secretstorage.
  • Password entries are written using python package keyring. This package may be provided by your linux distribution. In Ubuntu python3-keyring.
  • The three extra command line scripts are documented in the interface lisp file. They may also be retrieved from secret-service-scripts

Fixes # (issue) No issue has currently been created.

Discussion

A current limitation of the interface, is that it does not generate a new password, if the user saves an empty password. The user must use some other facility to generate a new password.

Checklist:

Everything in this checklist is required for each PR. Please do not approve a PR that does not have all of these items.

  • [v] Git hygiene:
    • I have pulled from master before submitting this PR yes
    • There are no merge conflicts. yes
  • [v] I've added the new dependencies as:
    • ASDF dependencies, yes, in nyxt.asd
    • Git submodules,
      cd /path/to/nyxt/checkout
      git submodule add https://gitlab.common-lisp.net/nyxt/py-configparser _build/py-configparser
      
    • and Guix dependencies.
  • [v] My code follows the style guidelines for Common Lisp code. See:
  • [v] I have performed a self-review of my own code.
  • [ ] My code has been reviewed by at least one peer. (The peer review to approve a PR counts. The reviewer must download and test the code.)
  • [v] Documentation:
    • All my code has docstrings and :documentations written in the aforementioned style. (It's OK to skip the docstring for really trivial parts.) Docstrings are provided by the super class: password.lisp
    • I have updated the existing documentation to match my changes. yes
    • I have commented my code in hard-to-understand areas. yes
    • I have updated the changelog.lisp with my changes if it's anything user-facing (new features, important bug fix, compatibility breakage). no
      • Changelog update should be a separate commit.
    • I have added a migration.lisp entry for all compatibility-breaking changes. It is not compatibility-breaking.
    • (If this changes something about the features showcased on Nyxt website) I have these changes described in the new/existing article at Nyxt website or will notify one of maintainters to do so.
  • [ ] Compilation and tests:
    • My changes generate no new warnings.
    • I have added tests that prove my fix is effective or that my feature works. (If possible.) no
    • I ran the tests locally ((asdf:test-system :nyxt) and (asdf:test-system :nyxt/gi-gtk)) and they pass.

johanwiden avatar Jul 15 '23 18:07 johanwiden

I have created issue #3084 for this pull request.

johanwiden avatar Jul 16 '23 07:07 johanwiden

Really cool, thank you for this PR! I'll have to install password secret service to give it a try! :-)

jmercouris avatar Jul 16 '23 20:07 jmercouris

This might be related to #1996.

aartaka avatar Jul 21 '23 12:07 aartaka

Not a priority @jmercouris, but it would be nice to have a conclusion on this one at me point.

aadcg avatar Dec 14 '23 21:12 aadcg

Yes, just need to install that software...

jmercouris avatar Dec 14 '23 21:12 jmercouris