feat: ruff for python lint and format
Make a Hawk compatible Auth header
Dependencies and Environment Setup:
To use the syncstorage-rs make_hawk_token.py script, you'll need a Python =>3.10 development environment with Poetry installed. You can also directly call the script using Poetry as described in step 5.
The easiest solution recommended to use pyenv and the pyenv-virtualenv plugin for your virtual environments
as a way to isolate the dependencies from other directories.
-
Install
pyenvusing the latest documentation for your platform. -
Follow the instructions to install the
pyenv-virtualenvplugin. See the pyenv-virtualenv documentation. -
Ensure you've added
pyenvandpyenv-virtualenvto your PATH.Ex:
export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" -
Install version, create virtualenv, activate and install dependencies from inside the
hawk/directory. Note you can simply install dependencies, not create a virtual environment and invoke the script usingpoetry run.$ cd syncstorage-rs/tools/hawk # pyenv version install $ pyenv install 3.10 # creates named, associated virtualenv $ pyenv virtualenv 3.10 hawk # or whatever project name you like. $ pyenv local hawk # activates virtual env whenever you enter this directory. # Install dependencies $ pip install poetry $ poetry install -
In general, to run the script with the Poetry managed dependencies - once you're already in your virtual env - run the following (more details in #3):
poetry run python make_hawk_token.py
Create a Token Header:
You'll need to pass along your SYNC_MASTER_SECRET and the uri you'll be testing in order to generate a valid Hawk Id:
poetry run python make_hawk_token.py --uri /1.5/1/storage/meta/global --secret=$SYNC_MASTER_SECRET --as_header
** For testing against uri's using methods other than GET, you'll need to pass along the --method flag to generate your token. Ie, poetry run python make_hawk_token.py --method PUT --uri /1.5/1/storage/meta/global --secret=$SYNC_MASTER_SECRET --as_header. See examples/put.bash for an example of this.
Use -h for help.
By default, with no passed arguments, a default Hawk Id token will be generated mapping to your localhost:8000 with
the path http://localhost:8000/1.5/1/storage/col2/.