Registers an https endpoint (a public DNS name, no credentials in the URL) to receive events. Events are signed with an Overlane-Signature header (a timestamp t and v1, the HMAC-SHA256 of the timestamp, a dot and the body), carry an event ID (your idempotency key) and a sequence, and are retried with exponential backoff for up to 8 attempts. Events: task.created, task.updated, approval.requested, approval.answered, review.started, release.published, connector.connected, connector.revoked, webhook.test. Creating a webhook is in the bots autonomy class.
Usage
overlane webhook create [--service URL] [--team TENANT_ID] --url URL [--event TYPE...] [--dry-run]Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--service |
string | no | The service address (default: OVERLANE_SERVICE_URL, then the project’s binding, then the hosted service) | |
--team |
string | no | The team (tenant) to act on (default: the one your token belongs to) | |
--url |
string | yes | The https endpoint that receives events | |
--event |
string (repeatable) | no | An event type to send; repeat for more (default: task.updated) | |
--dry-run |
boolean | no | Print the requests and file changes this command would make, then stop. Needs no credentials. |
Examples
overlane webhook create --url https://hooks.example.com/overlane --event approval.requested --event task.updated
overlane webhook create --url https://hooks.example.com/overlane --dry-runBehavior
- Effect:
write(changes local or hosted state). - Needs credentials: yes. Uses the network: yes.
- Supports
--dry-run: yes. Accepts--force: no. - Machine-readable description:
overlane schema webhook create.
Result
With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.
{
"anyOf": [
{
"type": "object",
"properties": {
"tenantId": {
"type": "string"
},
"webhook": {
"type": "object",
"properties": {
"webhookId": {
"type": "string"
},
"url": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
},
"keyVersion": {
"type": "number"
},
"createdAt": {
"type": "string"
}
},
"required": [
"webhookId",
"url",
"events",
"status",
"keyVersion",
"createdAt"
],
"additionalProperties": false
},
"signingSecret": {
"type": "string"
},
"next": {
"type": "string"
}
},
"required": [
"tenantId",
"webhook",
"signingSecret",
"next"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"dryRun": {
"type": "boolean",
"const": true
},
"service": {
"type": "string"
},
"requests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"method": {
"type": "string"
},
"path": {
"type": "string"
},
"body": {},
"note": {
"type": "string"
}
},
"required": [
"method",
"path"
],
"additionalProperties": false
}
},
"commands": {
"type": "array",
"items": {
"type": "string"
}
},
"writes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"write",
"append",
"delete"
]
},
"description": {
"type": "string"
}
},
"required": [
"path",
"action",
"description"
],
"additionalProperties": false
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"dryRun",
"requests",
"commands",
"writes",
"notes"
],
"additionalProperties": false
}
]
}See exit codes for the status the process returns.