/sa-test-task

SpeechAnalytics test task.

Primary LanguagePython

Test task for SpeechAnalytics

Test task.

Initially generated from cookiecutter aiohttp uvloop project template.

Publicly available: sa-test-task.herokuapp.com

Features

  • Python 3.6, 3.7 support.
  • Asyncio & aiohttp used.
  • Gunicorn with UVloop event loop (read why).
  • Pipenv for Python dependency management.
  • Yandex.Disk async lib used.
  • JSON schemas for input validation.
  • JWT tokens used for auth.
  • Heroku deployment support.
  • Travis CI autobuilds.

Getting started

Firstly set required environment variable:

export YADISK_TOKEN=...

Upload speechanalytics-connect directory from fixtures to yours Ya.Disk root.

Run production ready gunicorn server with uvloop:

make daemon

Or alternatively run devserver:

make dev

Settings

This environment variables available:

SECRET_KEY - секретный ключ авторизации (по дефолту равен токену я.диска).

YADISK_TOKEN - единственный обязательный параметр, забирается тут.

YADISK_CALLDATA - путь на я.диске, по дефолту '/speechanalytics-connect/meta/calls-info.csv'.

WHITELIST_URLS - список URL без авторизации (изначально /ping, /health).

WHITELIST_IPS - список разрешенных для доступа IP (используется в firewall middleware).

FIREWALL_ENABLED - включение ограничения доступа по спискам (остальные получают 403).

License

See LICENSE.md.