Skip to main content

Trigger webhooks by Onedata events

Project description

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"
        }
    ]
}

Project details


Download files

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

Files for onetrigger, version 1.0.4
Filename, size File type Python version Upload date Hashes
Filename, size onetrigger-1.0.4.tar.gz (6.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page