# Convoy

Convoy KVM panel: servers, users, SSO, power

| Field | Value |
|---|---|
| Addon id | `provisioning-convoy` |
| Kind | `provisioning` |
| Provides | `convoy` |
| Engine | `wasm` |
| ABI | `0.2.0` |
| Version | 0.1.0 |
| Author | MythicalSystems |
| Source | `extensions/addons/prov-convoy` |
| Permissions (shown at install) | `provisioning.manage`, `network.outbound` |

## Capabilities

| Capability | Value |
|---|---|
| [`http`](capabilities.md) | `$server` |
| [`secrets`](capabilities.md) | `api_key` |

## Events and hooks

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

## Settings and secrets

No admin settings are declared in `addon.json` or in the source.

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

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

## Module fields

Product fields (entered per product, module settings tab):

| Field | Type | Required |
|---|---|---|
| `node_id` | `number` | yes |
| `template_uuid` | `text` | yes |
| `cpu` | `number` | yes |
| `memory` | `number` | yes |
| `disk` | `number` | yes |
| `snapshots` | `number` | no |
| `backups` | `number` | no |
| `bandwidth` | `number` | no |

Extra service actions: `start`, `stop`, `restart`, `kill`, `change_password`.

## addon.json

_extensions/addons/prov-convoy/addon.json_

```json
{
  "abi": "0.2.0",
  "author": "MythicalSystems",
  "capabilities": {
    "http": [
      "$server"
    ],
    "secrets": [
      "api_key"
    ]
  },
  "description": "addons.desc.provisioning.convoy",
  "engine": "wasm",
  "id": "provisioning-convoy",
  "kind": "provisioning",
  "name": "Convoy",
  "permissions": [
    "provisioning.manage",
    "network.outbound"
  ],
  "provides": "convoy",
  "settings": [],
  "version": "0.1.0",
  "wasm": "addon.wasm"
}
```

