api icon indicating copy to clipboard operation
api copied to clipboard

Mysterium Network API

Build Status pyVersion36

API for Node & Client

Setup

  • Start docker containers in background:
docker-compose up -d --build
  • Wait ~10s for database to setup.

  • Run database migrations:

docker-compose exec api bin/db-upgrade
  • API service should be running on http://127.0.0.1:8001
  • Dashboard on http://127.0.0.1:8002

Development

Pre-requisites

Follow Google cloud guide to setup python development environment.

Testing

Install the requirements using pip

$ pip install -r requirements.txt

To execute tests in docker container:

  • Run:
tests/run_tests

(Optional)

After that test database will be kept running in the background, so you can execute. To do that, you need to do additional steps:

  • Ensure that python 3.6+ is installed globally (python --version)
  • Add ENV variables:
DB_HOST=localhost:33062
DB_NAME=myst_api
DB_USER=myst_api
DB_PASSWORD=myst_api
  • Run tests from IDE or bash:
bin/test

Linter

To run linter:

bin/lint

Database schema changes

To change database schema:

  • Change schema in models.py (i.e. add new table, column or change existing schema)
  • Run bin/db-migrate to create migration script
  • Check created script manually to ensure it is correct. It sometimes fail, so you might need to modify it.
  • Run bin/db-upgrade to apply migration

That's it! As a bonus point, you can try running bin/db-migrate again. It should not create a new migration file - if it does, that means previous migration is incorrect and should be fixed.