Skip to main content
          __       __    __
.--.--.--|__.-----|  |--|  |--.-----.-----.-----.
|  |  |  |  |__ --|     |  _  |  _  |     |  -__|
|________|__|_____|__|__|_____|_____|__|__|_____|
                                   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)

Source distribution for wishbone-flow-jq 1.0.1
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

Release history Release notifications | RSS feed

This release

1.0.1 This release

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page