https://github.com/grycap/onetrigger
Trigger webhooks by Onedata events
https://github.com/grycap/onetrigger
events onedata webhooks
Last synced: 5 months ago
JSON representation
Trigger webhooks by Onedata events
- Host: GitHub
- URL: https://github.com/grycap/onetrigger
- Owner: grycap
- License: apache-2.0
- Created: 2019-01-16T12:56:20.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-06-05T16:28:03.000Z (about 7 years ago)
- Last Synced: 2025-01-31T17:05:58.345Z (over 1 year ago)
- Topics: events, onedata, webhooks
- Language: Python
- Size: 55.7 KB
- Stars: 1
- Watchers: 8
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OneTrigger
[](https://hub.docker.com/r/grycap/onetrigger/) [](https://travis-ci.org/grycap/onetrigger) [](https://pypi.org/project/onetrigger/) [](https://www.apache.org/licenses/LICENSE-2.0)
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:
```bash
pip3 install onetrigger
```
You can also download a binary in the [releases](https://github.com/grycap/onetrigger/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
```bash
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](https://hub.docker.com/r/grycap/onetrigger) by applying a YAML file like this:
```yaml
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:
```json
{
"Key": "/my-onedata-space/files/file.txt",
"Records": [
{
"objectKey": "file.txt",
"objectId": "0000034500046EE9C67756964233836666330363031303664303964623739666562393165336632306232613736236664323861626330656664643566313938313333336633356232333838623137",
"eventTime": "2019-02-07T09:51:04.347823",
"eventSource": "OneTrigger"
}
]
}
```