Iris
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
Setup database
- remove
ONLY_FULL_GROUP_BY
from MySQL configsql_mode
or run mysqld in permisive mode (i.e.--sql_mode=''
) - create mysql schema:
mysql -u USER -p < ./db/schema_0.sql
(WARNING: This will drop any existing tables) - import dummy data:
mysql -u USER -p -o iris < ./db/dummy_data.sql
dummy_data.sql
contains the following entities:
- user
demo
with passworddemo
- team
demo_team
- application
Autoalerts
with key:a7a9d7657ac8837cd7dfed0b93f4b8b864007724d7fa21422c24f4ff0adb2e49
Setup dev environment
- create & source your virtualenv
- install build dependencies:
libssl-dev libxml2-dev libxslt1-dev libsasl2-dev python-dev libldap2-dev
- run
pip install -e '.[dev,kazoo]'
- 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
- create the plugin file under
src/iris/plugins
dir - edit
src/iris/plugins/__init__.py
to add plugin module to__all__
list