TPOT-API

TPOT-API

tpot-api is a framework for a web service that provides an API for aggregated TPOT outcomes. The default setting for the server is Heroku with Heroku Postgres database. The goal is for every institution to have an easy deployment for their TPOT outcomes that could be used in more sophisticated tools, analyses and downstream applications by developers.

Design and Documentation

The folder .openapi was generated automatically by SwaggerHub. We have set up Github Sync for the API spec on Swaggerhub. It promises to automatically update the spec on Github with changes done in SwaggerrHub. The API design and documentation process, therefore, is that all stakeholders collaborate on SwaggerHub and the update is synced on Github upon save.

NB

We noted however that this integration is still buggy (It doesn't sync with Github on save). The integration works well for setting up this workflow for a new repo. So we activated Github Push for the syncing. The spec file is at .openapi/swagger.yaml.

To confirm if habitat is installed, re-open your terminal and type hab then press enter. You should see a list menu with all the habitat options available. Moving on swiftly!

Setup a habitat origin

Run hab setup and set the origin name to brighthive.

Go to Settings on your github account and create a Personal Access Token under Developer Settings. Here's a link to get you there.

The GitHub personal access token needs information provided from the user:email and read:org OAuth scopes. Habitat uses the information provided through these scopes for authentication and to determine features based on team membership.

This is how it should look like when running the setup:

Running tpot-api using habitat

Cd into the repo's directory

cd tpot-api

Enter the habitat studio

hab studio enter

This is an awesome isolated environment for building great things so that when building, it doesn't affect anything on your computer.
Let's go ahead and build the tpot-api!

Inside the studio, run the build command to execute the tpot-api plan

[5][default:/src:0]# build

When finished building, you should see this message
tpot-api: I love it when a plan.sh comes together.

The build bundles up the tpot-api source code, dependencies, runtime and other server configurations into a habitat .hart package. This package can now be exported to docker.

In linux environments, the package can then be run directly using this simple command:

$ hab start brighthive/tpot-api

Exporting to docker

You can export the created .hart package into a docker container using the hab pkg export docker command as follows:

[5][default:/src:0]# hab pkg export docker brighthive/tpot-api

All systems go!

After exiting the studio by typing exit, run the docker container as follows:

$ docker run -it -p 8080:8080 brighthive/tpot-api

We're cooking with gas! 🔥 🚀

License

This project is licensed under the MIT License - see the LICENSE.md file for details.