# Hello Webhook (example)

Example on-disk addon: provisions through the signed webhook engine and ships its own migration.

| Field | Value |
|---|---|
| Addon id | `hello-webhook` |
| Kind | `provisioning` |
| Provides | - |
| Engine | `webhook` |
| ABI | - |
| Version | 0.1.0 |
| Author | PeltyCMS |
| Source | `extensions/addons/hello-webhook` |
| Permissions (shown at install) | `provisioning.manage`, `network.outbound`, `db.migrate` |

## Capabilities

None. The addon only uses what its kind gives it.

## Events and hooks

| What | Value |
|---|---|
| Listens to (`events`) | none |
| Hooks | none |
| Emits | none |
| Mixins | none |
| Scheduled jobs | none |

## Settings and secrets

| Setting | Type | Required |
|---|---|---|
| `endpoint` | `text` | yes |
| `mode` | `select` | no |
| `verbose` | `bool` | no |

Secrets (stored encrypted, never returned by the API): none.

Outbound HTTP allowed to: none. `$server` is the hostname of the server configured for the product, `$setting:<key>` the host of that setting.

## addon.json

_extensions/addons/hello-webhook/addon.json_

```json
{
  "author": "PeltyCMS",
  "description": "Example on-disk addon: provisions through the signed webhook engine and ships its own migration.",
  "engine": "webhook",
  "files": {
    "migrations/0001_init.sql": "6169286965719c6263adb96b0ad3a34e4c91f28de17139600d07284737280b35"
  },
  "id": "hello-webhook",
  "kind": "provisioning",
  "migrations": [
    "migrations/0001_init.sql"
  ],
  "name": "Hello Webhook (example)",
  "permissions": [
    "provisioning.manage",
    "network.outbound",
    "db.migrate"
  ],
  "settings": [
    {
      "key": "endpoint",
      "kind": "text",
      "label": "Endpoint URL",
      "required": true
    },
    {
      "choices": [
        "live",
        "test"
      ],
      "default": "test",
      "key": "mode",
      "kind": "select",
      "label": "Mode"
    },
    {
      "key": "verbose",
      "kind": "bool",
      "label": "Verbose logging"
    }
  ],
  "version": "0.1.0"
}
```

