Skip to content
/ iris Public

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

License

Notifications You must be signed in to change notification settings

linkedin/iris

Folders and files

NameName
Last commit message
Last commit date
Apr 28, 2021
Apr 28, 2021
Jan 18, 2024
Mar 23, 2022
Feb 8, 2021
Sep 13, 2021
Mar 23, 2022
Jun 27, 2022
Sep 13, 2021
Feb 6, 2019
Apr 15, 2022
Apr 15, 2022
Jan 23, 2017
Oct 5, 2017
Apr 19, 2022
Jan 23, 2017
Feb 12, 2020
Jan 26, 2018
Apr 25, 2017
May 16, 2017
Apr 15, 2022
Apr 19, 2022
Mar 23, 2022
Mar 23, 2022
Jan 2, 2018

Repository files navigation

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. We also have an Iris mobile app for iOS/Android, at the iris-mobile repo.

Quick Start with Gitpod

Open in Gitpod

Setup database

  1. remove ONLY_FULL_GROUP_BY from MySQL config sql_mode or run mysqld in permisive mode (i.e. --sql_mode='')
  2. create mysql schema: mysql -u USER -p < ./db/schema_0.sql (WARNING: This will drop any existing tables)
  3. import dummy data: mysql -u USER -p -o iris < ./db/dummy_data.sql

dummy_data.sql contains the following entities:

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

Setup dev environment

  1. create & source your virtualenv
  2. install build dependencies: libssl-dev libxml2-dev libxslt1-dev libsasl2-dev python-dev libldap2-dev
  3. run pip install -e '.[dev,kazoo]'
  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