Metadata-Version: 2.1
Name: irisapi
Version: 1.0.3
Summary: Iris is a highly configurable and flexible service for paging and messaging.
Home-page: https://github.com/linkedin/iris
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: streql (==3.0.2)
Requires-Dist: dnspython (==1.16.0)
Requires-Dist: phonenumbers (==7.4.1)
Requires-Dist: twilio (==6.25.0)
Requires-Dist: google-api-python-client (==1.4.2)
Requires-Dist: oauth2client (==1.4.12)
Requires-Dist: slackclient (==0.16)
Requires-Dist: PyYAML (==3.13)
Requires-Dist: gevent (==1.4.0)
Requires-Dist: falcon (==1.1.0)
Requires-Dist: falcon-cors (==1.1.2)
Requires-Dist: ujson (==1.35)
Requires-Dist: requests
Requires-Dist: PyMySQL (==0.9.3)
Requires-Dist: SQLAlchemy (==1.3.0)
Requires-Dist: Jinja2 (==2.10.1)
Requires-Dist: Markdown (==2.4.1)
Requires-Dist: click
Requires-Dist: msgpack-python (==0.4.5)
Requires-Dist: cssmin (==0.2.0)
Requires-Dist: beaker (==1.10.0)
Requires-Dist: cryptography (==2.3)
Requires-Dist: webassets (==0.12.1)
Requires-Dist: python-ldap (==3.1.0)
Requires-Dist: exchangelib (==2.1.0)
Requires-Dist: setproctitle (==1.1.8)
Requires-Dist: pyfcm (==1.4.3)
Requires-Dist: oncallclient (==1.0.0)
Requires-Dist: idna (==2.7)
Requires-Dist: pyqrcode (==1.2.1)
Provides-Extra: dev
Requires-Dist: gunicorn ; extra == 'dev'
Requires-Dist: Sphinx (==1.5.6) ; extra == 'dev'
Requires-Dist: sphinxcontrib-httpdomain ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
Requires-Dist: mock (==2.0.0) ; extra == 'dev'
Requires-Dist: pytest (==5.2.0) ; extra == 'dev'
Requires-Dist: pytest-mock (==1.5.0) ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: flake8 (==3.5.0) ; extra == 'dev'
Requires-Dist: tox ; extra == 'dev'
Requires-Dist: requests-mock (==1.1.0) ; extra == 'dev'
Provides-Extra: influxdb
Requires-Dist: influxdb ; extra == 'influxdb'
Provides-Extra: kazoo
Requires-Dist: kazoo (==2.6.1) ; extra == 'kazoo'
Provides-Extra: prometheus
Requires-Dist: prometheus-client ; extra == 'prometheus'

[Iris](http://iris.claims) [![Build Status](https://circleci.com/gh/linkedin/iris.svg?style=shield)](https://circleci.com/gh/linkedin/iris) [![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause) [![Gitter chat](https://badges.gitter.im/irisoncall/Lobby.png)](https://gitter.im/irisoncall/Lobby)
========

Iris core, API, UI and sender service. For third-party integration support, see [iris-relay](https://github.com/linkedin/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](https://github.com/linkedin/iris-mobile) repo.

<p align="center"><img src="https://github.com/linkedin/iris/raw/master/docs/source/_static/demo.png" width="600"></p>


Setup database
--------------

1. remove `ONLY_FULL_GROUP_BY` from MySQL config `sql_mode`
1. create mysql schema: `mysql -u USER -p < ./db/schema_0.sql`
1. 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
1. install build dependencies: `libssl-dev libxml2-dev libxslt1-dev libsasl2-dev python-dev libldap2-dev`
1. run `pip install -e '.[dev,kazoo]'`
1. 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:

```bash
pip install -e '.[prometheus]'
```

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


Run everything
--------------

```bash
forego start
```


Run web server
--------------

```bash
make serve
```


Run sender
---------

```bash
iris-sender configs/config.dev.yaml
```

Tests
-----

Run tests:

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

Generate test coverage reports:

```bash
make e2e-cov
make unit-cov
```


Adding new plugins
------------------

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


