The documentation you're currently reading is for version 2.9.1. Click here to view documentation for the latest stable version.
You might be tempted to contribute to EWC by this point. Let us walk you through the code a bit.
EWC is made up of individual services:
EWC also has a CLI and client library. Code for all these services and components are laid out in different folders in the repo root.
Common code that contains DB and API data models, utility functions and common service code
that all of EWC needs. Each service package (deb/rpm) has a dependency on the
package. So if you want common code that should be shared amongst components written, you’d add
This folder contains code for API controllers in EWC. APIs are versioned and so are controllers.
Experimental controllers are added to
exp folder inside
st2api and when they mature, they are
moved to folders containing versioned controllers.
Contains code for
st2auth endpoint. Since this endpoint needs to deployed separately than
st2api, it is available as a separate app.
Contains code for action runners. A new runner written for EWC would be added to
st2actions/st2actions/runners. Also, this folder contains the code for worker node that scans
RabbitMQ for incoming executions.
Notifier and results tracker are also part of this code base. Notifier is the component that sends notification triggers and action triggers at the end of action execution. Results tracker is an advanced async results querier for certain kind of runners like Mistral, where execution of a workflow is kicked off remotely and you have to poll the Mistral APIs to collect results.
Contains code for both EWC client library and EWC CLI bundled into one folder. We will eventually split them.
If you are familiar with
st2-submit-debug-info tool, the code for that is present in this folder.
This tool provides a way to share logs and other info with a EWC engineer for troubleshooting.
Contains code for both sensor container and rules engine.
Shared code containing fixtures and test utilities that helps in unit and integration testing for all EWC components.