syncstorage-rs/tools/hawk
Taddes 77254b4a6e
Some checks failed
Glean probe-scraper / glean-probe-scraper (push) Has been cancelled
refactor: python imports (#1730)
refactor: unified python imports for consistency in local, production, and test environments
2025-08-04 15:37:46 -04:00
..
__init__.py refactor: python imports (#1730) 2025-08-04 15:37:46 -04:00
make_hawk_token.py feat: use poetry for dependency management (#1706) 2025-07-28 21:48:46 -04:00
poetry.lock feat: use poetry for dependency management (#1706) 2025-07-28 21:48:46 -04:00
pyproject.toml feat: use poetry for dependency management (#1706) 2025-07-28 21:48:46 -04:00
README.md feat: use poetry for dependency management (#1706) 2025-07-28 21:48:46 -04:00

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 for your platform.

  2. Follow the instructions to install the pyenv-virtualenv plugin. See the pyenv-virtualenv documentation.

  3. Ensure you've added pyenv and pyenv-virtualenv to your PATH.

    Ex:

    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.

    $ 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 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/.