From 2bf0992992e0cdd50b8b7b884a5cdb4b84f7ee01 Mon Sep 17 00:00:00 2001 From: Korijn van Golen Date: Fri, 28 Jul 2023 21:19:54 +0200 Subject: [PATCH 1/2] more docs --- README.md | 68 ++++++++++++++++++++++++++++++++++++++----- docs/wcm-add-key.png | Bin 0 -> 7447 bytes docs/wcm.png | Bin 0 -> 52726 bytes 3 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 docs/wcm-add-key.png create mode 100644 docs/wcm.png diff --git a/README.md b/README.md index 6d2ae16..306682c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,9 @@ The most common use case is to load credentials for package managers such as pip Install `keycmd` from pypi using `pip install keycmd`, or whatever alternative python package manager you prefer. -Note that the executable `keycmd` has to be installed to a folder that is on your `PATH` environment variable, or the command won't be available globally. Assuming you were able to run `pip` just now, the `keycmd` executable should end up in the exact same location and everything should be fine. To confirm, you can try running `keycmd --version` after installation is complete. +Note that the executable `keycmd` has to be installed to a folder that is on your `PATH` environment variable, or the command won't be available globally. Assuming you were able to run `pip` just now, the `keycmd` executable should end up in the exact same location and everything should be fine. + +To verify keycmd is installed and available, run `keycmd --version`. ### pyenv installation @@ -33,10 +35,9 @@ Now, if you're using pyenv, you're going to have to jump through a few hoops sin This guide assumes you've also installed [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv), in order to get you the cleanest of setups. ✨ -```bash -## make sure your .bashrc (or .zshrc) contains the following: -# export PATH="$HOME/.local/bin:$PATH" +Run the following commands one by one to install keycmd into its own standalone environment: +```bash # run the following commands one by one pyenv virtualenv 3.9 keycmd pyenv activate keycmd @@ -47,18 +48,63 @@ mkdir -p $HOME/.local/bin ln -s $pathToKeycmd $HOME/.local/bin/keycmd ``` -Explanation: a virtual environment is created just so that keycmd can be installed independently. Then an empty folder `~/.local/bin` is created and added to the `PATH` environment variable. Finally, a symlink is created to add the `keycmd` binary to the folder, making it available globally, regardless of what pyenv is trying to do with its fancy shims. Now you can use keycmd anywhere! 😎 +Finally, edit your `~/.bashrc` file (or whatever shell profile you use) to include `~/.local/bin` in your `PATH` variable: + +```bash +export PATH="$HOME/.local/bin:$PATH" +``` + +> **Note** +> This line already be in place in your `~/.bashrc`, for example if you installed poetry, since it's a common trick used to expose specific binaries on `PATH` when they are in folders with other binaries that you do _not_ want to expose on `PATH`. -For the sharp observer: Yes, you're right, this is the exact same approach poetry takes to install itself globally and make itself available on `PATH` without disturbing pyenv. 🧠 +To verify keycmd is installed and available, run `keycmd --version`. ### WSL installation +First, you have to install keycmd according to the above instructions (globally, or with pyenv). Then, there's some additional setup to take care of... + If you're using WSL, you'll run into a wall when you first try to use keycmd. That's because keycmd uses the keyring library to connect to OS keyrings, and keyring will attempt to connect to your linux distro's (probably Ubuntu) keyring background service, which by default isn't actually running in a WSL environment! If you did actually set up your linux distro's keyring background service, that's fine, you can continue using it and don't need to perform any additional steps. However, if you would like keyring to connect from the WSL environment to your Windows Credential Manager instead, you can install [keyring-pybridge](https://github.com/ClinicalGraphics/keyring-pybridge) in the same python environment where you installed `keycmd`. Please refer to the [installation instructions for WSL](https://github.com/ClinicalGraphics/keyring-pybridge#installation). +## Quickstart + +Now that keycmd is installed, we can perform a quick test to see how it works! + +Let's add a new key to our OS keyring, and then see how we can expose it with keycmd. + +For the purpose of this example, use `my-secret` as the credential name and `my-username` as the... username. I used `foobar` as the password. + +On Windows, that means clicking Start and typing "Credential Manager" to find the app. Click the Windows Credentials tab, and click "Add a generic credential". See the screenshots below. + +![Credential Manager](docs/wcm.png) + +![Add Key](docs/wcm-add-key.png) + +> **Note** +> Pull requests to add visual guides for other platforms are most welcome! + +Now, create a `.keycmd` config file in your user home folder. Put the following configuration in the file and save: + +```toml +[keys] +SECRET = { credential = "my-secret", username = "my-username" } +``` + +Finally, open a terminal and run a command to print the secret, so we can see if it worked. That's going to look different depending on what shell you're using, so here's a couple examples: + +* Cmd: `keycmd echo %SECRET%` +* Powershell: `keycmd 'echo $env:SECRET'` +* Bash: `keycmd 'echo $SECRET'` + +You should see the text `foobar` being printed to the terminal. + +You've successfully set up keycmd! 👏 + +See the [advanced configuration example](#advanced-example) below for a more involved usecase for keycmd, where poetry, npm and docker-compose are all put together. + ## Usage The CLI has the following options: @@ -117,7 +163,9 @@ You can define as many keys as you like. For each key, you are required to defin Optionally, you can also set `b64` to `true` to apply base64 encoding to the credential. -## Example configuration for Poetry, npm and docker-compose +## Advanced example + +This is an example configuration for Poetry, npm and docker-compose. It should inspire you to see the possibilities keycmd provides thanks to its configuration system. In this example, I've stored the following configuration in `~/.keycmd`: @@ -183,3 +231,9 @@ keycmd: detected shell: C:\Windows\System32\cmd.exe keycmd: running command: ['C:\\Windows\\System32\\cmd.exe', '/C', 'echo', '%ARTIFACTS_TOKEN_B64%'] aSdtIG5vdCB0aGF0IHN0dXBpZCA6KQ== ``` + +## Note on keyring backends + +Since keycmd uses keyring as its backend, you're not limited to just working with OS keyrings. 🤯 Any keyring backend will work with keycmd. No special configuration required! + +See the [third party backends](https://github.com/jaraco/keyring/#third-party-backends) list for all options. diff --git a/docs/wcm-add-key.png b/docs/wcm-add-key.png new file mode 100644 index 0000000000000000000000000000000000000000..8e61321d059369b67eda6c74e0d34e60563a04c1 GIT binary patch literal 7447 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 aMmf{_fns(MrA#Le@Y+dg}NO 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%0De?Y5jxmQHRCljLO)c2Q&}c86{D*p&S3e#rEf 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%0AVcO#$ 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 I5yOE02OG&~*8l(j literal 0 HcmV?d00001 From 0ba17cea3fa4d8095e84d16800542152a98b0414 Mon Sep 17 00:00:00 2001 From: Korijn van Golen Date: Fri, 28 Jul 2023 21:25:07 +0200 Subject: [PATCH 2/2] fix typos --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 306682c..1eb7a41 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ export PATH="$HOME/.local/bin:$PATH" ``` > **Note** -> This line already be in place in your `~/.bashrc`, for example if you installed poetry, since it's a common trick used to expose specific binaries on `PATH` when they are in folders with other binaries that you do _not_ want to expose on `PATH`. +> This line may already be in place in your `~/.bashrc`, for example, if you installed poetry! It's a common trick used to expose specific binaries on `PATH` when they are in folders that also include binaries that should _not_ be exposed on `PATH`. To verify keycmd is installed and available, run `keycmd --version`. @@ -84,7 +84,7 @@ On Windows, that means clicking Start and typing "Credential Manager" to find th ![Add Key](docs/wcm-add-key.png) > **Note** -> Pull requests to add visual guides for other platforms are most welcome! +> Pull requests to add visual guides for macOS and linux keyrings are most welcome! Now, create a `.keycmd` config file in your user home folder. Put the following configuration in the file and save: