Polaris Backend
virtualenv
First, you should create a virtual environment to start the development:
$ pip3 install virtualenv
$ virtualenv env
$ source env/bin/activate
Setup environment
$ pip3 install -r requirements.txt
$ cp backend/.env.dist backend/.env
Set all variables in the file backend/.env
. TODO Explain each variable
The jwt files can be generated using the following command:
$ cd backend
$ ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key
$ openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub
Dev server
Adding export to .bashrc
$ export DJANGO_DEVELOPMENT=true
or
$ DJANGO_DEVELOPMENT=true python manage.py runserver
Migrations and create mongo index
$ python manage.py migrate
$ python manage.py create_mongo_index
Make migration
$ python manage.py makemigrations
Create superuser
$ python3 manage.py createsuperuser
Create normal user
Role provider
$ python3 manage.py create_user provider@polaris.com polaris321 -p
Role provider, provider manager and analyst
$ python3 manage.py create_user provider@polaris.com polaris321 -p -m -a
Role user
$ python3 manage.py create_user user1@polaris.com polaris321
Clear database
$ python3 manage.py sqlflush | python3 manage.py dbshell
Background jobs
Start redis server
$ redis-server
Start celery worker
$ celery -A backend worker --loglevel=info
Start celery worker for scheduled tasks
$ celery -A backend beat -l info
API Documentation
Set DEBUG=True
in .env
and open http://localhost:[PORT]/redoc/
in browser.
Create visualization token
$ curl -X POST 127.0.0.1:8003/api/v1/provider/visualization-tokens/create --data '{"engine_names": ["my_engine", "count_statements_one_week"]}' -H "Content-Type: application/json"
Polaris Architecture Overview
Running tests
$ python manage.py test