smallstep-python is a Python library at allows you to interface with the Smallstep API.
We use openapi-python-client to generate a low level Python client that is located in smallstep/api_client/. See the smallstep/README.md for more information on using this generated library. We built a wrapper library on top of smallstep/api_client that is located in api.py. This adds a handful of helper features. At this time smallstep/api.py only supports a few API endpoints. See smallstep/api.py for details.

We publish this package to https://pypi.org/project/smallstep-python/ and it can be installed via pip.
pip install smallstep-pythonCreate a .env file in the project root and add the following lines:
# Not needed unless you are using our run anywhere offering
# SMALLSTEP_API_HOST="https://gateway.smallstep.com/api"
SMALLSTEP_API_TOKEN="your_smallstep_api_token"Adjust them to your needs. See config.py for configuration details. We use Pydantic Settings for easy settings management. Below is the order of precedence for configuration settings:
See the Pydantic Settings field value priority section for more information.
Install Poetry on your system with this.
Run this from the repo directory:
poetry installEnter the Poetry shell with this:
poetry shell
pre-commit installexport VIRTUAL_ENV=${PWD}/.venv
python3 -m venv $VIRTUAL_ENV
export PATH="$VIRTUAL_ENV/bin:$PATH"
pip install wheel
pip install -r requirements.txt
. .venv/bin/activate
pre-commit installAdd packages to Poetry and then run pre-commit which will generate a requirements.txt file for you.
Development:
poetry add --group=dev rich
pre-commitProduction:
poetry add rich
pre-commitApache License Version 2.0
Copyright 2023 Smallstep Labs Inc.