alloydwhitlock / iris

Iris is a highly configurable and flexible service for paging and messaging.

Home Page:https://iris.claims

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Iris core, API, UI and sender service. For third-party integration support, see iris-relay, a stateless proxy designed to sit at the edge of a production network and allow external traffic to pass through.

Setup database

  1. remove ONLY_FULL_GROUP_BY from MySQL config sql_mode
  2. create mysql schema: mysql -u USER -p < ./db/schema_0.sql
  3. import dummy data: mysql -u USER -p -o iris < ./db/dummy_data.sql

dummy_data.sql contains the following entities:

  • user demo
  • team demo_team
  • application Autoalerts with key: a7a9d7657ac8837cd7dfed0b93f4b8b864007724d7fa21422c24f4ff0adb2e49

Setup dev environment

  1. create & source your virtualenv
  2. run pip install -e .
  3. run pip install -r dev_requirements.txt
  4. edit ./configs/config.dev.yaml to setup database credential and other settings

To install iris with extra features, you can pass in feature flag with pip:

pip install -e '.[prometheus]'

For list of extra features, please see extras_require setting in setup.py.

Run everything

forego start

Run web server

make serve

Run sender

iris-sender configs/config.dev.yaml

Tests

Run tests:

make test  # all tests, e2e + unit
make e2e  # e2e tests
make unit  # unit tests

Generate test coverage reports:

make e2e-cov
make unit-cov

Adding new plugins

  1. create the plugin file under src/iris/plugins dir
  2. edit src/iris/plugins/__init__.py to add plugin module to __all__ list

About

Iris is a highly configurable and flexible service for paging and messaging.

https://iris.claims

License:BSD 2-Clause "Simplified" License


Languages

Language:Python 61.2%Language:JavaScript 23.7%Language:HTML 9.5%Language:CSS 3.4%Language:HCL 1.4%Language:Shell 0.3%Language:Smarty 0.2%Language:Nginx 0.2%Language:Makefile 0.1%