Detecting logs from different sources and applying them to different outputs.
The particular objective of this system is to allow me to automate my timesheet work, while my clients keep changing the way that they want it logged.
- Inputs read worklogs from different data sources. Each worklog represents a particular instance of work to be outputed somewhere. After reading the input from all the sources, they all get added into a WorklogSet instance.
- WorklogSetOperations allow to transform that end-result of worklog set. For example, operations like adding new worklogs or merging different worklogs together would work here. The worklog set gets modified to leave a new set of worklogs.
- Transformation actions operate on each particular worklog, by reading and modifying data on it. Most of the modifications will be done over a tagging system: every worklog has tags that will determine if it goes through any particular flow. These transformations will create more tags to them.
- Conditions will filter worklogs from reaching a particular action.
- Outputs will write on an output channel the resulting worklog set.
- Conditions will filter worklogs from reaching a particular output.
- Formatters will transform the WorklogSet into a data format that this particular output can use. Note that a formatter is tied to a particular Output.
There are three big ways to set up worklogger.
- Docker containers (recommended)
- Serverless framework
- Local installation
Also, here is information on how to setup the different input/output integrations.
- General configuration
- Inputs
- Conditions
- Transformations
- Formatters
- Outputs