Autosubmit API
Table of Contents
- Overview
- Installation
- Configuration options
- How to run tests
Overview
Autosubmit API is a package that consumes the information generated by Autosubmit and serves it as an API.
Distribution: https://pypi.org/project/autosubmit-api/
See the openapi.json
specification and the repository wiki for more information.
Installation
Autosubmit API can be easily installed via pip
pip install autosubmit-api
autosubmit_api start -h
Start the server:
autosubmit_api start
Configuration options
The Autosubmit API have some configuration options that can be modified by setting their specific environment variable before starting the server:
PROTECTION_LEVEL
: Default ALL
. Possible values ALL
, WRITEONLY
, NONE
.
- If set to
ALL
, all the endpoints will be protected by needing a valid token inside the Authorization
header of the request. - If set to
WRITEONLY
, only a subset of the endpoints will be protected. - If set to
NONE
, none of the endpoints will be protected.
SECRET_KEY
: The secret key to encode the JWT tokens from the Authorization Module. Important to be set up on production.CAS_SERVER_URL
: CAS Protocol server base URL to request a ticket and verify it. Used for /v4
endpoints. CAS_LOGIN_URL
and CAS_VERIFY_URL
can be empty if this variable is set (the API will append the protocol URL subpaths).CAS_LOGIN_URL
: CAS Protocol URL to request a ticket. Used for /v3
endpoints.CAS_VERIFY_URL
: CAS Protocol URL to verify a given ticket. Used for /v3
endpoints.GITHUB_OAUTH_CLIENT_ID
: Client ID of the Github Oauth app.GITHUB_OAUTH_CLIENT_SECRET
: Secret key of the Github Oauth app.GITHUB_OAUTH_WHITELIST_ORGANIZATION
: Used to use authorization based on the membership of a Github organization.GITHUB_OAUTH_WHITELIST_TEAM
: Used to use authorization based on the membership of a Github team in an organization. GITHUB_OAUTH_WHITELIST_ORGANIZATION
is required
How to run tests
Install pytest
pip install -e .[test]
Run tests:
pytest
Run tests with coverage HTML report:
pytest --cov=autosubmit_api --cov-config=.coveragerc --cov-report=html tests/
You will find the report in htmlcov/index.html