Skip to content

[FEAT] Implement outbound workspace webhooks (CRUD, signed delivery, logs) #195

Description

@martian56

Type / Priority

Feature / High

Summary

Outbound webhooks are scaffolded but never delivered and have no management UI.

Current state (evidence)

  • queue.PublishWebhook (api/internal/queue/queue.go:92) is never called; the consumer uses NoopWebhookDeliverer (cmd/api/main.go:120, queue/consumer.go:173-174) which only logs.
  • model/webhook.go has no event-type columns; no webhook_logs table; no webhook CRUD routes (only inbound /webhooks/github, router.go:494); the settings tab is a placeholder ("Webhooks settings will be available when the API is connected", SettingsPage.tsx:3866-3874). No webhookService.

Proposed scope

Add event-type columns; fire PublishWebhook from mutating services; a real HTTP deliverer with HMAC-SHA256 signing + retries; a webhook_logs table + delivery history; CRUD handlers/routes under /api/workspaces/:slug/webhooks/; a webhookService and management UI.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions