This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A Wishbone flow module for JSON pattern matching using jq expressions.

Project Description
          __       __    __
.--.--.--|__.-----|  |--|  |--.-----.-----.-----.
|  |  |  |  |__ --|     |  _  |  _  |     |  -__|
|________|__|_____|__|__|_____|_____|__|__|_____|
                                   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.
Release History

Release History

This version
History Node

1.0.1

History Node

1.0.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
wishbone-flow-jq-1.0.1.tar.gz (6.1 kB) Copy SHA256 Checksum SHA256 Source Aug 14, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting