Skip to main content

An extension to the Autosubmit package that serves its information as an API

Project description

Autosubmit API

Table of Contents

  1. Overview
  2. Autosubmit Big Picture
  3. Installation
  4. Configuration options
  5. 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 wiki for documentation.

Autosubmit Big Picture

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 the historical 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 under webadmin 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 under webadmin 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: 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: 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 -U pytest pytest-cov

Run tests:

pytest tests/*

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autosubmit_api-4.0.0b3.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

autosubmit_api-4.0.0b3-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file autosubmit_api-4.0.0b3.tar.gz.

File metadata

  • Download URL: autosubmit_api-4.0.0b3.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

Hashes for autosubmit_api-4.0.0b3.tar.gz
Algorithm Hash digest
SHA256 2c0a24e25131fb133f5b841753c3396717084ab92f7df85496b3487e61c3b3c0
MD5 58bb145b06a6b7d63fff08210775e69d
BLAKE2b-256 7ab396aa53f0e9923123e4e0e00b1c19f06cb7fc8c0025a600e5495ee05783b6

See more details on using hashes here.

File details

Details for the file autosubmit_api-4.0.0b3-py3-none-any.whl.

File metadata

File hashes

Hashes for autosubmit_api-4.0.0b3-py3-none-any.whl
Algorithm Hash digest
SHA256 645e6bb58e6e5805f843dceb15acdc6d34334aca8b5e115f0092c1c7810b0b91
MD5 54c1d481f78a0bcb1cf154655c438080
BLAKE2b-256 2aa7334f4ebfa0ae0adb2a01ea1f77a8f62d85c1453bdf8b8ae9e34346796ecd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page