Skip to content

Webhook Management Page #298

@ElioNeto

Description

@ElioNeto

Webhook Management Page

Create an Angular page for managing webhook triggers and monitoring webhook events using the existing WebhookRegistry and WebhookAwareEngine.

Backend Endpoints Needed

GET    /admin/webhooks               — List all registered webhooks
POST   /admin/webhooks               — Register a new webhook
DELETE /admin/webhooks/{id}          — Unregister a webhook
GET    /admin/webhooks/{id}/events   — List events triggered for this webhook
GET    /admin/webhooks/events        — Global event log

UI Requirements

Webhook List

  • Cards/Table: URL, key prefix, status (active/inactive), last triggered, success count, failure count
  • Toggle: Enable/disable individual webhooks
  • Test Button: Send test event to verify webhook works
  • Delete: Remove webhook with confirmation

Registration Form

  • URL: Input with validation (must be valid HTTP/HTTPS URL)
  • Key Prefix: Input for key prefix to match
  • Events: Checkboxes for event types (PUT, DELETE, ALL)
  • Headers: Optional custom headers (key-value pairs table)
  • Retry Policy: Max retries, backoff interval

Event Log

  • Table: Timestamp, webhook URL, event type, key, HTTP status, duration, response body (truncated)
  • Filter: By webhook, by status (success/failure), by date range
  • Details: Expand row to see full request/response

Component Structure

app/
  pages/
    webhooks/
      webhooks.component.ts
      webhooks.component.html
      webhooks.component.scss
      webhook-form.component.ts
      webhook-form.component.html
      webhook-form.component.scss
      webhook-events.component.ts
      webhook-events.component.html
      webhook-events.component.scss

Acceptance Criteria

  • Webhook list loads and displays correctly
  • New webhook registration works with validation
  • Webhook enable/disable toggle works
  • Event log shows recent webhook calls
  • Error states for API failures
  • Loading states during operations
  • Responsive layout

Parent Epic

#290

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions