onetrigger

Trigger webhooks by Onedata events


Keywords
events, onedata, webhooks
License
Apache-2.0
Install
pip install onetrigger==1.0.4

Documentation

OneTrigger

Docker Build Status Build Status PyPi version License

A command-line tool to detect Onedata file events in order to trigger a webhook.

Installation

OneTrigger requires python3 and the python3-pip tool. A package is available at the Python Package Index (PyPI) under the name onetrigger, so you can easily install it executing:

pip3 install onetrigger

You can also download a binary in the releases section.

Usage

Parameters can be passed via arguments or environment variables. All available commands and his parameters are described below:

Command run

Subscribe to file events.

Argument Environment variable Description
-H HOST, --oneprovider-host HOST ONEPROVIDER_HOST Oneprovider hostname or IP.
-t TOKEN, --token TOKEN ONEDATA_ACCESS_TOKEN Onedata access token.
-s SPACE, --space SPACE ONEDATA_SPACE Onedata space.
-w WEBHOOK, --webhook WEBHOOK ONETRIGGER_WEBHOOK Webhook to send events.
-f FOLDER, --folder FOLDER ONEDATA_SPACE_FOLDER Folder to listen events (Optional).
-i, --insecure ONEPROVIDER_INSECURE Connect to a provider without a trusted certificate (Optional). Default: False.

Command list-spaces

List your available spaces in Oneprovider.

Argument Environment variable Description
-H HOST, --oneprovider-host HOST ONEPROVIDER_HOST Oneprovider hostname or IP.
-t TOKEN, --token TOKEN ONEDATA_ACCESS_TOKEN Onedata access token.
-i, --insecure ONEPROVIDER_INSECURE Connect to a provider without a trusted certificate (Optional). Default: False.

Examples

Subscribing to file events

onetrigger run -H example.com -t xxxxx -s my-onedata-space -w http://example.com/webhook -f my-folder

Deploy on Kubernetes

OneTrigger can be deployed on Kubernetes using our public Docker Hub image grycap/onetrigger by applying a YAML file like this:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: onetrigger
spec:
  replicas: 1
    spec:
      containers:
      - name:  onetrigger
        image: grycap/onetrigger:latest
        imagePullPolicy: Always
        env:
        - name: ONEPROVIDER_HOST
          value: "example.com"
        - name: ONEDATA_ACCESS_TOKEN
          value: "xxxxx"
        - name: ONEDATA_SPACE
          value: "my-onedata-space"
        - name: ONETRIGGER_WEBHOOK
          value: "http://example.com/webhook"
        - name: ONEDATA_SPACE_FOLDER
          value: "my-folder"

Event format

When a new file is created inside the space (or the specified folder) a JSON formatted event is sent to the webhook following the structure of the example shown below:

{
    "Key": "/my-onedata-space/files/file.txt",
    "Records": [
        {
            "objectKey": "file.txt",
            "objectId": "0000034500046EE9C67756964233836666330363031303664303964623739666562393165336632306232613736236664323861626330656664643566313938313333336633356232333838623137",
            "eventTime": "2019-02-07T09:51:04.347823",
            "eventSource": "OneTrigger"
        }
    ]
}