1password support for xonsh
Project description
1password support for xonsh shell. This approach ensures your sensitive information remains secure while being easily accessible in your xonsh shell.
If you like the idea click ⭐ on the repo and tweet.
Installation
To install use pip:
xpip install xontrib-1password
# or: xpip install -U git+https://github.com/drmikecrowe/xontrib-1password
The xontrib will get loaded automatically.
Usage
For maximum security, enable your secrets dynamically using the command below when required. You may also enable permanently and expose your secrets at all times in your Run Control (RC) file:
$XONTRIB_1PASSWORD_ENABLED = True
Store your passwords in 1Password and setup op CLI locally.
Then:
mykey = OnePass("op://path/my/key")
echo @(mykey)
# my-key-value
$MYKEY = OnePass("op://path/my/key")
echo $MYKEY
# my-key-value
env | grep MYKEY
# MYKEY=my-key-value
Good to know
Disabling
To disable autoloading:
$XONTRIBS_AUTOLOAD_DISABLED = ["1password", ]
To turn off:
$XONTRIB_1PASSWORD_ENABLED = False
$MYKEY = OnePass("op://path/my/key")
$MYKEY
# op://path/my/key
Get certain key
Because of the URL is basically op://<Vault>/<title>/<field> to find this, here's the commands you can use to determine these fields:
op item list --format json | jq '.[].title | select(. | contains("OpenAI"))'
# "OpenAI-API-Key"
op item get OpenAI-API-Key --format json | jq '.fields[] | select(.type == "CONCEALED") | .label'
# "api-key"
Debug mode
$XONTRIB_1PASSWORD_DEBUG = True
Cache
You can set $XONTRIB_1PASSWORD_CACHE to string:
not_empty(default) - cache not empty values.all- cache all values.off- disable caching.
Known issues
Slowing down reading environment variables
If you disable cache (i.e. $XONTRIB_1PASSWORD_CACHE='off') in case of $MYVAR = OnePass(...) every time the shell read the env variables list the value will be requested from OnePassword and it takes time.
Development
- activate pre-commit hooks
# install pre-commit plugins and activate the commit hook
pre-commit install
pre-commit autoupdate
Releasing your package
- Bump the version of your package.
- Create a GitHub release (The release notes are automatically generated as a draft release after each push).
- And publish with
poetry publish --buildortwine
Credits
This package was created with xontrib template.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xontrib_1password-0.3.2.tar.gz.
File metadata
- Download URL: xontrib_1password-0.3.2.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc171689c014a946a0a5bee10bd7fbb16882b256c120c111f83e9f2fd6aed9f7
|
|
| MD5 |
e8892acb2e983b3b941c207f6c0befa3
|
|
| BLAKE2b-256 |
dfee6308a9474c0f391ce2b2f1c22c9b0c4bb9f10e80a11ad6b9c54177ebc93a
|
File details
Details for the file xontrib_1password-0.3.2-py3-none-any.whl.
File metadata
- Download URL: xontrib_1password-0.3.2-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51e84b7ae070a7c02d4d612b5c4ad563ada1e3e5c5eb820fb87b4fc40eb2bb8c
|
|
| MD5 |
f594a1dbe6a987861399e8797a39bc9a
|
|
| BLAKE2b-256 |
f25dbe1fdc0e86c7ba5dc9db3ef04c0fcece2f4970ec5c47f110f851c145b89e
|