![Docs](https://img.shields.io/readthedocs/laborchestratorlib-auth)
Lab Orchestrator Lib Auth
This package contains the lab orchestrator library authentication module.
Github
PyPi
Read The Docs
Installation
pip3 install lab-orchestrator-lib-auth
Documentation
Check out the developer documentation at laborchestratorlib-auth.readthedocs.io.
Usage
The library contains one module called auth that contains 3 methods and one dataclass.
The first method generate_auth_token
is used to generate a JWT token. The token contains the user id, and some information about the lab instance for which this token is created. That also contains a list of vmi_names
the user should be allowed to connect to. HS256
is used as algorithm which is a symmetric algorithm, so you need to use the same secret for both: encryption and decryption of the key.
The next method decode_auth_token
decodes the previously encoded JWT token. It returns the information that is contained in the token.
The third method verify_auth_token
contains the parameter vmi_name
and checks if this vmi_name
is allowed. If it's not allowed the method will return none.
See more at: laborchestratorlib-auth.readthedocs.io.
Examples
There is one example that shows how to create a token with the library. For other examples you need to look into the LabOrchestratorLib or WebsocketProxy.
Contributing
Issues
Feel free to open issues.
Project Structure
The src
folder contains the source code of the library. The tests
folder contains the test cases. examples
contains some example scripts of how to use the library. There is a makefile that contains some shortcuts for example to run the test cases and to make a release. Run make help
to see all targets. The docs
folder contains rst docs that are used in read the docs.
Developer Dependencies
- Python 3.8
- Make
pip install -r requirements.txt
pip install -r requirements-dev.txt
Releases
Your part:
- Create branch for your feature (
issue/ISSUE_ID-SHORT_DESCRIPTION
) - Code
- Make sure test cases are running and add new ones for your feature
- Create MR into master
- Increase version number in
src/lab_orchestrator_lib_auth/__init__.py
(semantic versioning)
Admin part:
- Check and accept MR
- Merge MR
- Run
make release
Docs
To generate the docs run: cd docs && make html
.