Taddes f8715d4e91
Some checks are pending
Glean probe-scraper / glean-probe-scraper (push) Waiting to run
feat: use poetry for dependency management (#1706)
feat: use poetry for dependency management
2025-07-28 21:48:46 -04:00

50 lines
2.5 KiB
Markdown

# 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.
1. Install `pyenv` using the [latest documentation](https://github.com/pyenv/pyenv#installation) for your platform.
2. Follow the instructions to install the `pyenv-virtualenv` plugin.
See the [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) documentation.
3. Ensure you've added `pyenv` and `pyenv-virtualenv` to your PATH.
Ex:
```shell
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
```
4. 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 using `poetry run`.
```shell
$ 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
```
5. 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](https://github.com/mozilla-services/syncstorage-rs/blob/master/tools/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/`.