Skip to content

webhook

The webhook domain has 5 actions. On the meta surface they are all reached through arcane_webhook; on the individual surface each one is its own tool; on the dynamic surface run them with arcane_execute_action and the canonical ID.

ActionTitleKind
webhook.createCreate webhookwrite
webhook.deleteDelete webhookdestructive
webhook.listList webhooksread
webhook.triggerTrigger a webhookwrite
webhook.updateUpdate webhookwrite

Create webhook

Create a webhook that triggers a container or stack update. The token is only returned once.

  • Kind: write
  • Required parameters: actionType, name, targetId, targetType
  • Meta tool: arcane_webhook with "action": "create"
  • Individual tool: arcane_webhook_create
  • Arcane route: POST /api/environments/{id}/webhooks
  • Operation ID: create-webhook
  • Usage: targetType and actionType must match: container (update, start, stop, restart, redeploy, with targetId a container ID or name from container.list, which on the local environment must exist now, else the call fails with 400 ‘target container not found’), project (update, up, down, restart, redeploy, with targetId from project.list), gitops (sync, with targetId from gitops.list), updater (run, whole environment, pass targetId as ""). The result holds id and the full token (arc_wh_…), returned only this once. Store it for webhook.trigger, since webhook.list shows just tokenPrefix. The webhook is created enabled. Needs the webhooks:create permission.
  • Related actions: webhook.trigger, webhook.list, container.list, project.list, gitops.list

Delete webhook

Delete a webhook by ID

  • Kind: destructive — requires confirm: true
  • Required parameters: webhookId
  • Meta tool: arcane_webhook with "action": "delete"
  • Individual tool: arcane_webhook_delete
  • Arcane route: DELETE /api/environments/{id}/webhooks/{webhookId}
  • Operation ID: delete-webhook
  • Usage: webhookId from webhook.list. Removes the webhook permanently and its token stops working at once (webhook.trigger then returns 404). Use webhook.update with enabled=false to pause it instead.
  • Related actions: webhook.list, webhook.update

List webhooks

List all webhooks configured for this environment

  • Kind: read
  • Required parameters: none
  • Meta tool: arcane_webhook with "action": "list"
  • Individual tool: arcane_webhook_list
  • Arcane route: GET /api/environments/{id}/webhooks
  • Operation ID: list-webhooks
  • Usage: Source of every webhookId: returns the environment’s webhooks newest first with id, name, targetType, actionType, targetId, targetName, enabled, lastTriggeredAt and tokenPrefix. The full token is never listed. If it was lost, delete the webhook and create a new one.
  • Related actions: webhook.create, webhook.update, webhook.delete

Trigger a webhook

Fire a webhook by its token, running the action it is configured for (redeploy a project, update a container, run a GitOps sync…). This is the public endpoint external systems call, and it needs no credential besides the token

  • Kind: write
  • Required parameters: token
  • Meta tool: arcane_webhook with "action": "trigger"
  • Individual tool: arcane_webhook_trigger
  • Arcane route: POST /api/webhooks/trigger/{token}
  • Operation ID: webhook-trigger
  • Usage: token is the full arc_wh_… value returned once by webhook.create (webhook.list only shows tokenPrefix). Returns status accepted at once and runs the action in the background. A disabled webhook fails with 403, an unknown or deleted token with 404. Check the outcome with event.list (type webhook.trigger: ‘Webhook triggered’ on success, ‘Webhook trigger failed’ with the error otherwise).
  • Related actions: webhook.create, webhook.list, event.list

Update webhook

Update a webhook’s enabled state

  • Kind: write
  • Required parameters: webhookId, enabled
  • Meta tool: arcane_webhook with "action": "update"
  • Individual tool: arcane_webhook_update
  • Arcane route: PATCH /api/environments/{id}/webhooks/{webhookId}
  • Operation ID: update-webhook
  • Usage: Only toggles enabled (required boolean): name, target and action cannot be changed, so delete and recreate for that. webhookId from webhook.list. A disabled webhook keeps its token, and webhook.trigger answers 403 until it is enabled again.
  • Related actions: webhook.list, webhook.trigger, webhook.delete