Skip to main content

Python library and script to access the API of the pleasant password server.

Project description

pypleasant

pypleasant is a Python script and library which interfaces with the API of Pleasant Password Server.

pleasant-cli /path/to/entry --password  # print an entry's password
pleasant-cli /path/to/entry --attachments secret_file.txt  # download an attachment
pleasant-cli /path/to/entry --custom-field test  # print value of a custom field
pleasant-cli 36a9f39f-78a1-4ec5-ae1a-421d91f59d2a --password # alternatively you can also use the uuid of the entry

Requirements

pypleasant requires Python >= 3.6 and is only compatible with Pleasant Password Server API v5.

Installation

pypleasant is available on PyPi and can be easily installed via pip:

pip install pypleasant

In order to use the command-line client pleasant-cli, ensure that your PATH variable includes Python's bin directory (adapt if necessary):

export PATH+=":$HOME/.local/bin"

Use the --help switch to check whether everything is setup correctly:

pleasant-cli --help

Alternatively, pypleasant can be executed as a Python module without modifying the PATH variable:

python -m pypleasant --help

Configuration

pleasant-cli prompts the user for missing login information required for the Pleasant API. This information can be configured (partially or completely) using command-line parameters or environment variables:

  • --api-url or PYPLEASANT_API_URL
  • --api-user or PYPLEASANT_API_USER
  • --api-password (NOT RECOMMENDED) or PYPLEASANT_API_PASSWORD

In case self-signed certificates are used, consider disabling the HTTPS certificate check via --disable-cert-check or by setting PYPLEASANT_DISABLE_CERT_CHECK=true.

Usage

Print entry attributes:

pleasant-cli /path/to/entry --username
pleasant-cli /path/to/entry --password
pleasant-cli /path/to/entry --url

Access a custom field's value:

pleasant-cli /path/to/entry --custom-field test

Download attachments (defaults to the current directory):

pleasant-cli /path/to/entry --attachments  # downloads all attachments
pleasant-cli /path/to/entry --attachments secret_file.txt
pleasant-cli /path/to/entry --attachments file_1.txt file_2.txt --download-dir /path/to/download/dir

For a complete overview of all parameters, run pleasant-cli with the --help switch:

> pleasant-cli --help
usage: pleasant-client [-h]
                       (--username | --password | --url | --custom-field [CUSTOM_FIELD] | --attachments [ATTACHMENTS [ATTACHMENTS ...]])
                       [--download-dir DOWNLOAD_DIR] [--api-url API_URL]
                       [--api-user API_USER] [--api-password API_PASSWORD]
                       [--disable-cert-check] [--verbose] [--debug]
                       PATH | ENTRY-ID

positional arguments:
  PATH | ENTRY-ID       the path (e.g. /Development/git) or entry-id (e.g.
                        36a9f39f-78a1-4ec5-ae1a-421d91f59d2a) on the pleasant
                        server to the credential entry (env var:
                        PYPLEASANT_PATH_TO_ENTRY)

optional arguments:
  -h, --help            show this help message and exit
  --username            print the username
  --password            print the password
  --url                 print the URL
  --custom-field [CUSTOM_FIELD]
                        print the given custom field
  --attachments [ATTACHMENTS [ATTACHMENTS ...]]
                        download the given attachment(s); if no attachment is
                        given, all attachments are downloaded
  --download-dir DOWNLOAD_DIR
                        attachments are downloaded to this directory (DEFAULT:
                        '.', env var: PYPLEASANT_DOWNLOAD_DIR)
  --api-url API_URL     URL of the pleasant server API (env var:
                        PYPLEASANT_API_URL)
  --api-user API_USER   user for the pleasant server API (env var:
                        PYPLEASANT_API_USER)
  --api-password API_PASSWORD
                        password for the pleasant server API (env var:
                        PYPLEASANT_API_PASSWORD)
  --disable-cert-check  disable HTTPS cert check (env var:
                        PYPLEASANT_DISABLE_CERT_CHECK)
  --verbose             activate verbose output
  --debug               activate debug output (env var: PYPLEASANT_DEBUG)

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

pypleasant-2.0.0.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

pypleasant-2.0.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file pypleasant-2.0.0.tar.gz.

File metadata

  • Download URL: pypleasant-2.0.0.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.6.9

File hashes

Hashes for pypleasant-2.0.0.tar.gz
Algorithm Hash digest
SHA256 2179bd41c6f8f1af2496b6098bac66e9d1a345907137e12aeea8a33abbb51371
MD5 cff6e6d2f57a146acd09b18ee4894f2c
BLAKE2b-256 e501200e2d561482f12c9e7fefe0ced43ccf091bf2d3772244a639543b4ad8f3

See more details on using hashes here.

File details

Details for the file pypleasant-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: pypleasant-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.6.9

File hashes

Hashes for pypleasant-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e33f453a15fe62504abd4a208c0fc998312332c2166bb7c8e699c3257d89bf01
MD5 d383b61f6bf0d477443ca8500ee3719c
BLAKE2b-256 72b8b201107f978d9f8536e8312068b154dfcaaa51fe84c36c2c25e72e99ed79

See more details on using hashes here.

Supported by

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