Skip to main content

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

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

# 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 --build or twine

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

xontrib_1password-0.3.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xontrib_1password-0.3.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file xontrib_1password-0.3.0.tar.gz.

File metadata

  • Download URL: xontrib_1password-0.3.0.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for xontrib_1password-0.3.0.tar.gz
Algorithm Hash digest
SHA256 79889076d96ef952627a6e6a29ccb4241d15505dc52de7a0294528aa3f2cbacb
MD5 9e34153882dd12463eef16b61cca0009
BLAKE2b-256 ab5d1b3a33d2c9863dff73fd81b4eade4c18fa35be0f32da8fa8f6b59b77a64d

See more details on using hashes here.

File details

Details for the file xontrib_1password-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for xontrib_1password-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d78db4b57e753fb3c299ee325e49c10b50667f721b4e9982e4d357ffe8a75972
MD5 f9915c1dfb7820f7ad1a055574dc5cf4
BLAKE2b-256 bc1d788afa66b193519c9344055fac2a2957e16c563909ba4d7d9442679cd974

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page