Plugins ecosystem¶
Warren is extensible by design using a plugins architecture. Warren plugins are distributed as Python packages for the API service and indicators, or as NPM packages for UI components. This page intends to list known available plugins for Warren (feel free to open a pull request to add your plugin in this list!).
Plugins registry¶
Indicators (API service)¶
- Warren video : a series of indicators related to Video activity
― offical plugins (maintained by Warren’s core team)
Dataviz (Front-end / APP service)¶
- Warren video : a series of ReactJS component to explore Video activity in your Dashboards.
― offical plugins (maintained by Warren’s core team)
Create your own plugin for Warren¶
API¶
To make your plugin auto-magically discoverable by Warren, you should declare entry points in your module’s package. Two groups of entry points can be declared depending on what your plugin extends:
warren.routers
: add new routers to the core APIwarren.indicators
: allow to compute indicators from the CLI (seewarren indicator
command documentation)
As an example, the Warren Video plugin implements such entry points in its package definition:
# pyproject.toml
[project.entry-points."warren.routers"]
video = "warren_video.api:router"
[project.entry-points."warren.indicators"]
daily_views = "warren_video.indicators:DailyViews"
daily_unique_views = "warren_video.indicators:DailyUniqueViews"
daily_completed_views = "warren_video.indicators:DailyCompletedViews"
daily_unique_completed_views = "warren_video.indicators:DailyUniqueCompletedViews"
daily_downloads = "warren_video.indicators:DailyDownloads"
daily_unique_downloads = "warren_video.indicators:DailyUniqueDownloads"
You can check that your indicators are properly registered using the following command:
If only the warren_video
plugin is installed, the command output looks like:
warren_video.indicators:DailyCompletedViews
warren_video.indicators:DailyDownloads
warren_video.indicators:DailyUniqueCompletedViews
warren_video.indicators:DailyUniqueDownloads
warren_video.indicators:DailyUniqueViews
warren_video.indicators:DailyViews
Front-end¶
TODO