orka-vector-api

Rest API for orka vector data


License
Apache-2.0
Install
pip install orka-vector-api==0.1.0

Documentation

OrKa-Vector-API

The OrKa Vector REST API

Install

Requires a postgres database with postgis extension installed.

pip install orka-vector-api

Development

Run Dev Server

FLASK_APP=orka_vector_api FLASK_ENV=development flask run

Configs

config.py

A config.py must be added to the instance folder that allows following additional configs:

  • PG_USER - username of the user that has access to the vector layers
  • PG_PASSWORD = password of the user
  • PG_HOST = database host
  • PG_PORT = database port
  • PG_DATABASE = database name
  • ORKA_DB_USER = application database username
  • ORKA_DB_PASSWORD = application database password
  • ORKA_DB_HOST = application database host
  • ORKA_DB_PORT = application database port
  • ORKA_DB_DATABASE = application database name
  • ORKA_DB_SCHEMA = application database schema
  • ORKA_DB_MIN_CONNECTION = application database min connections
  • ORKA_DB_MAX_CONNECTION = application database max connections
  • ORKA_GPKG_PATH = path to where the created gpkg files should be placed
  • ORKA_LAYERS_PATH = path to folder containing the layer sqls. This folder must be located within the instance folder
  • ORKA_THREAD_TIMEOUT = timeout in seconds after which a running thread should be killed.
  • ORKA_MAX_THREADS = number of allowed threads
  • ORKA_LOG_FILE = path to log file
  • ORKA_STYLE_PATH = path to the file that contains all styles, etc.
  • ORKA_STYLE_FILE = name of the zip file (including .zip) that contains all styles, etc.
  • ORKA_LAYER_GROUPS_FILE = name of the json file (including .json) that contains the configuration for layer groups.
  • ORKA_MAX_BBOX = maximum allowed size of the bbox in sqkm.
  • ORKA_LOG_LEVEL = log level
  • ORKA_APP_PORT = the port under which the app is running on

Example config.py:

PG_USER = 'user'
PG_PASSWORD = 'password'
PG_HOST = 'localhost'
PG_PORT = 5432
PG_DATABASE = 'postgres'

ORKA_DB_USER = 'user2'
ORKA_DB_PASSWORD = 'password2'
ORKA_DB_HOST = 'localhost'
ORKA_DB_PORT = 5555
ORKA_DB_DATABASE = 'postgres'
ORKA_DB_SCHEMA = 'public'
ORKA_DB_MIN_CONNECTION = 1
ORKA_DB_MAX_CONNECTION = 1

ORKA_GPKG_PATH = 'data/'
ORKA_LAYERS_PATH = 'layers/'
ORKA_THREAD_TIMEOUT = 60
ORKA_MAX_THREADS = 4

ORKA_LOG_FILE = '/var/log/orka_vector_api/orka_vector_api.log'
ORKA_LOG_LEVEL = 'WARNING'

ORKA_STYLE_PATH = 'styles/'
ORKA_STYLE_FILE = 'style.zip'
ORKA_LAYER_GROUPS_FILE = 'groups.json'
ORKA_MAX_BBOX = 23211

ORKA_APP_PORT = 5000

Publishing

  • update version number in setup.py and orka_vector_api/init.py
  • run following commands:
python3 -m venv venv_publish
source venv_publish/bin/activate
pip install -r requirements_publish.txt
python setup.py sdist bdist_wheel
# make sure following command prints 'passed' on all files in dist/
twine check dist/*
twine upload dist/*