Skip to main content

Expose an AiiDA database according to the OPTiMaDe specification.

Project description

Optimade API implementation for AiiDA

Latest release Build status Activity
AiiDA
PyPI
PyPI - Python Version
OPTiMaDe
GitHub Workflow Status
Codecov
GitHub last commit

This is a RESTful API server created with FastAPI that exposes an AiiDA database according to the OPTiMaDe specification.

It is mainly used by Materials Cloud to expose access to archived AiiDA databases through the OPTiMaDe API. But it may be freely implemented by any to fulfill a similar purpose.

The server is based on the test server "template" used in the optimade-python-tools package. Indeed, the filter grammar and parser and pydantic models from optimade-python-tools are used directly here.

Lastly, the server utilizes the FastAPI concept of routers, which means each endpoint can be "setup" several times, allowing multiple base URLs and more flexibility.

Prerequisites

Environment where AiiDA is installed.
AiiDA database containing StructureData nodes, since these are the only AiiDA nodes that are currently exposed with this API (under the /structures endpoint).

Installation

git clone https://github.com/Materials-Consortia/optimade-python-tools
pip install -e optimade-python-tools/
git clone https://github.com/aiidateam/aiida-optimade
pip install -e aiida-optimade/

Running the server locally

# specify AiiDA profile (will use default otherwise)
export AIIDA_PROFILE=optimade
./aiida-optimade/run.sh

Navigate to http://localhost:5000/v0/info

Running via docker

Adapt profiles/quicksetup.json and profiles/docker-compose.yml appropriately.

docker-compose -f profiles/docker-compose.yml up --build

Navigate to http://localhost:3253/v0/info

Stop by using

docker-compose -f profiles/docker-compose.yml down

Design choices

Q: Why create an individual config.json file instead of just mounting an existing .aiida directory and using that directly?
A: This, currently, wouldn't work because the REPOSITORY_URI needs to point to the right path inside the container, not on the host. Furthermore, storing all configurations in the same file can be fragile.

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

aiida-optimade-0.6.0.tar.gz (22.5 kB view details)

Uploaded Source

File details

Details for the file aiida-optimade-0.6.0.tar.gz.

File metadata

  • Download URL: aiida-optimade-0.6.0.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for aiida-optimade-0.6.0.tar.gz
Algorithm Hash digest
SHA256 854e2e5eacd81299a99d4c446622bf1e03d429c63d0ab131588c7abeccf925ba
MD5 6de93d9353e74122aa82dfeaaa921fca
BLAKE2b-256 63d97cbbfcec798776fe7e6f40427c49cf58f1c713dd84fa6779f30dc6349af6

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