Webhooks
========

Aurora has an optional feature which allows operator to specify a file to configure a HTTP webhook
to receive task state change events. It can be enabled with a scheduler flag eg
`-webhook_config=/path/to/webhook.json`. At this point, webhooks are still considered *experimental*.

Below is a sample configuration:

```json
{
  "headers": {
    "Content-Type": "application/vnd.kafka.json.v1+json",
    "Producer-Type": "reliable"
  },
  "targetURL": "http://localhost:5000/",
  "timeoutMsec": 5
}
```

And an example of a response that you will get back:

```json
{
    "task":
    {
        "cachedHashCode":0,
        "assignedTask": {
            "cachedHashCode":0,
            "taskId":"vagrant-test-http_example-8-a6cf7ec5-d793-49c7-b10f-0e14ab80bfff",
            "task": {
                "cachedHashCode":-1819348376,
                "job": {
                    "cachedHashCode":803049425,
                    "role":"vagrant",
                    "environment":"test",
                    "name":"http_example"
                    },
                "owner": {
                    "cachedHashCode":226895216,
                    "user":"vagrant"
                    },
                "isService":true,
                "numCpus":0.1,
                "ramMb":16,
                "diskMb":8,
                "priority":0,
                "maxTaskFailures":1,
                "production":false,
                "resources":[
                    {"cachedHashCode":729800451,"setField":"NUM_CPUS","value":0.1},
                    {"cachedHashCode":552899914,"setField":"RAM_MB","value":16},
                    {"cachedHashCode":-1547868317,"setField":"DISK_MB","value":8},
                    {"cachedHashCode":1957328227,"setField":"NAMED_PORT","value":"http"},
                    {"cachedHashCode":1954229436,"setField":"NAMED_PORT","value":"tcp"}
                    ],
                "constraints":[],
                "requestedPorts":["http","tcp"],
                "taskLinks":{"http":"http://%host%:%port:http%"},
                "contactEmail":"vagrant@localhost",
                "executorConfig": {
                    "cachedHashCode":-1194797325,
                    "name":"AuroraExecutor",
                    "data": "{\"environment\": \"test\", \"health_check_config\": {\"initial_interval_secs\": 5.0, \"health_checker\": { \"http\": {\"expected_response_code\": 0, \"endpoint\": \"/health\", \"expected_response\": \"ok\"}}, \"max_consecutive_failures\": 0, \"timeout_secs\": 1.0, \"interval_secs\": 1.0}, \"name\": \"http_example\", \"service\": true, \"max_task_failures\": 1, \"cron_collision_policy\": \"KILL_EXISTING\", \"enable_hooks\": false, \"cluster\": \"devcluster\", \"task\": {\"processes\": [{\"daemon\": false, \"name\": \"echo_ports\", \"ephemeral\": false, \"max_failures\": 1, \"min_duration\": 5, \"cmdline\": \"echo \\\"tcp port: {{thermos.ports[tcp]}}; http port: {{thermos.ports[http]}}; alias: {{thermos.ports[alias]}}\\\"\", \"final\": false}, {\"daemon\": false, \"name\": \"stage_server\", \"ephemeral\": false, \"max_failures\": 1, \"min_duration\": 5, \"cmdline\": \"cp /vagrant/src/test/sh/org/apache/aurora/e2e/http_example.py .\", \"final\": false}, {\"daemon\": false, \"name\": \"run_server\", \"ephemeral\": false, \"max_failures\": 1, \"min_duration\": 5, \"cmdline\": \"python http_example.py {{thermos.ports[http]}}\", \"final\": false}], \"name\": \"http_example\", \"finalization_wait\": 30, \"max_failures\": 1, \"max_concurrency\": 0, \"resources\": {\"disk\": 8388608, \"ram\": 16777216, \"cpu\": 0.1}, \"constraints\": [{\"order\": [\"echo_ports\", \"stage_server\", \"run_server\"]}]}, \"production\": false, \"role\": \"vagrant\", \"contact\": \"vagrant@localhost\", \"announce\": {\"primary_port\": \"http\", \"portmap\": {\"alias\": \"http\"}}, \"lifecycle\": {\"http\": {\"graceful_shutdown_endpoint\": \"/quitquitquit\", \"port\": \"health\", \"shutdown_endpoint\": \"/abortabortabort\"}}, \"priority\": 0}"},
                    "metadata":[],
                    "container":{
                        "cachedHashCode":-1955376216,
                        "setField":"MESOS",
                        "value":{"cachedHashCode":31}}
                    },
                    "assignedPorts":{},
                    "instanceId":8
        },
        "status":"PENDING",
        "failureCount":0,
        "taskEvents":[
            {"cachedHashCode":0,"timestamp":1464992060258,"status":"PENDING","scheduler":"aurora"}]
        },
        "oldState":{}}
```

By default, the webhook watches all TaskStateChanges and sends events to configured endpoint. If you
are only interested in certain types of TaskStateChange (transition to `LOST` or `FAILED` statuses),
you can specify a whitelist of the desired task statuses in webhook.json. The webhook will only send
the corresponding events for the whitelisted statuses to the configured endpoint.

```json
{
  "headers": {
    "Content-Type": "application/vnd.kafka.json.v1+json",
    "Producer-Type": "reliable"
  },
  "targetURL": "http://localhost:5000/",
  "timeoutMsec": 50,
  "statuses": ["LOST", "FAILED"]
}
```

If you want to whitelist all TaskStateChanges, you can add a wildcard character `*` to your whitelist
like below, or simply leave out the `statuses` field in webhook.json.

```json
{
  "headers": {
    "Content-Type": "application/vnd.kafka.json.v1+json",
    "Producer-Type": "reliable"
  },
  "targetURL": "http://localhost:5000/",
  "timeoutMsec": 50,
  "statuses": ["*"]
}
```
