An extension to the Autosubmit package that serves its information as an API
Project description
Autosubmit API
Table of Contents
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 wiki for documentation.
Autosubmit Big Picture
In this image you can see the flow of information in the Autosubmit environment.
- Autosubmit: Machines running Autosubmit.
- Remote Platforms: Platforms (HPCs in most cases) to which Autosubmit connects to run jobs.
- Experiment Database: Starting from Autosubmit
3.13.0
, each experiment generates a set of databases that save important (reusable) information about it. We have thehistorical database
,graph database
,structures database
. - File System: The file system where the experiment files are stored.
- Data Process Workers: Autosubmit API implements a set of workers that periodically collect information from the experiments or complement that information. In the current BSC implementation, these workers are running no
bscesweb04
underwebadmin
user. - Main Database: Autosubmit API uses a centralized database to keep track of important experiment information. The workers fill this information. Autosubmit also writes into this database.
- Autosubmit API: See Autosubmit API. Currently, under BSC implementation, this API is running on
bscesweb04
underwebadmin
user. This API exposes a set of requests that Autosubmit GUI consumes and serves to the users through the front end. - Autosubmit GUI: This project.
- Authentication Server: BSC Central Authentication Service.
- Users: Users that access the GUI through their web browsers from any device. The current implementation requires that an user generates a token using the Authentication server once every 5 days.
Installation
Autosubmit API can be easily installed via pip
pip install autosubmit-api # >=4.0 (recommended)
# Check installation and serving options
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
: DefaultALL
. Possible valuesALL
,WRITEONLY
,NONE
.- If set to
ALL
, all the endpoints will be protected by needing a valid token inside theAuthorization
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.
- If set to
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
: 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.
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file autosubmit_api-4.0.0b4.tar.gz
.
File metadata
- Download URL: autosubmit_api-4.0.0b4.tar.gz
- Upload date:
- Size: 2.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f2f4f28879708e5fa931c0bfa500fa1a8453722b728aa8416c071b01cb7c79f |
|
MD5 | 9243db811d611eda1ace7f69a39b288b |
|
BLAKE2b-256 | 0a7d575e20da0595e81d6c09cbc6d8de676e7fe5151a76b8b06aa35af74855c8 |
File details
Details for the file autosubmit_api-4.0.0b4-py3-none-any.whl
.
File metadata
- Download URL: autosubmit_api-4.0.0b4-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0aaa9138afeaaa7c9be447ed8f7b2e70ab2ef6d27bce663a2f08ae92aa83472c |
|
MD5 | 8f00170c58c0bc734b073fc5cbbebb87 |
|
BLAKE2b-256 | d7909c8e5ac0eb75459e524e580d1689c5adbfad84aa88141815148f98cef587 |