__ __ __
.--.--.--|__.-----| |--| |--.-----.-----.-----.
| | | | |__ --| | _ | _ | | -__|
|________|__|_____|__|__|_____|_____|__|__|_____|
version 2.2.0
Build composable event pipeline servers with minimal effort.
================
wishbone.flow.jq
================
Version: 1.0.0
JSON pattern matching using jq expressions.
-------------------------------------------
Evalutes (JSON) data structures against a set of jq expressions to decide
which queue to forward the event to.
JQ expressions
--------------
More information about jq expressions can be found here:
- https://stedolan.github.io/jq/manual/
Jq expressions need to return either **True** or **False**, otherwise this
module will consider the result to be invalid and therefor skip the
condition.
Module level conditions
-----------------------
The module accepts the <conditions> parameter which is a list of
conditions to evaluate against each data structure coming in.
Each condition should have following format:
JSON-schema::
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"expression": {
"type": "string"
},
"queue": {
"type": "string"
},
"payload": {
"type": "object",
"patternProperties": {
".*": {
"type": [
"string",
"number"
],
}
}
},
},
"required": ["name", "expression", "queue"],
"additionalProperties": False
}
Example::
{ "name": "test",
"expression": ".greeting | test( "hello" )",
"queue": "outbox",
"payload": {
"@tmp.some.key": 1,
}
}
Disk level conditions
---------------------
The directory <location> contains the conditions in YAML format. One
condition is one file. Files not having '.yaml' extension are ignored.
This directory is monitored for changes and automatically reloaded
whenever something changes.
The rules should have following format:
JSON-schema::
{
"type": "object",
"properties": {
"expression": {
"type": "string"
},
"queue": {
"type": "string"
},
"payload": {
"type": "object",
"patternProperties": {
".*": {
"type": [
"string",
"number"
],
}
}
},
},
"required": ["expression", "queue"],
"additionalProperties": False
}
Example::
queue: nagios
expression: '.type | test( "nagios" )'
payload
-------
The payload is a dictionary where keys are wishbone event references.
Parameters:
- selection(str)("@data")
| The root part of the event to evaluate.
| Use an empty string to refer to the complete event.
- conditions(dict)([])
| A dictionary consisting out of expression, queue, payload.
- location(str)("")
| A directory containing rules. This directory will be monitored
| for changes and automatically read for changes.
| An empty value disables this functionality.
Queues:
- inbox
| Incoming events.
- no_match
| Events which did not match at least one rule.
Metadata
Release files for wishbone-flow-jq 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wishbone-flow-jq-1.0.1.tar.gz | 6.1 kB | Details |
Release files / wishbone-flow-jq-1.0.1.tar.gz
| Download URL | wishbone-flow-jq-1.0.1.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ebf35ed8d9c4263d8413a1dd816ca0ee6be5891225a4ccb4a7504baa1aa4868
|
|
BLAKE2b-256 checksum How to use checksums |
100c9bca117fabfa3f182441c3cc32ba8901440bdae4677e903e7299412d1431
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |