Skip to content

[FEAT] : add Outbound Webhooks Dashboard & Retry History (Advanced Integrations) #2999

Open
hrshjswniii wants to merge 4 commits into
Priyanshu-byte-coder:mainfrom
hrshjswniii:feature/Webhooks-Dashboard
Open

[FEAT] : add Outbound Webhooks Dashboard & Retry History (Advanced Integrations) #2999
hrshjswniii wants to merge 4 commits into
Priyanshu-byte-coder:mainfrom
hrshjswniii:feature/Webhooks-Dashboard

Conversation

@hrshjswniii

Copy link
Copy Markdown
Contributor

Summary

Implements payload inspection and delivery retry options for the Custom Webhooks manager, transforming the notification pipeline into an enterprise-grade utility. It also resolves a critical runtime crash in the details panel where config details and delivery histories failed to bind correctly from the API.

Closes #2983

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that changes existing behavior)
  • 📝 Documentation update
  • ♻️ Refactor / code cleanup (no functional change)
  • ⚡ Performance improvement
  • 🔒 Security fix
  • 🧪 Tests only

What Changed

  • [src/app/api/webhooks/custom/[id]/route.ts]:
    • Modified the GET route's select query on webhook_deliveries to include the payload column, enabling client-side details rendering.
  • [src/components/webhook/WebhookManager.tsx]:
    • Fixed a runtime exception where opening the details card would read from an undefined config namespace because of direct backend response object assignment (assigned data.webhook to config and data.recentDeliveries to deliveries).
    • Extended interface structures and states to track expanded delivery indexes, retrying spinner indicators, and response states.
    • Added accordion-style collapsible list items for deliveries that reveal stringified payload parameters inside formatted code blocks.
    • Added a Retry Delivery button that dispatches a retry POST to the retry API route and refreshes the delivery log history automatically on success.

How to Test

  1. Navigate to the dashboard Settings page and open Webhooks.
  2. Create or open an existing custom webhook card and click View details. Verify that the card opens successfully without crashing the page (fixes the mapping bug).
  3. Click the Test button next to your webhook to fire a test event.
  4. Locate the test run in the Recent Deliveries feed.
  5. Click on the delivery row: verify it expands smoothly to display the formatted JSON payload block and any server error trace descriptions.
  6. Click Retry Delivery inside the expanded detail card: verify the re-delivery starts (loading animation displays), completes, prints a success confirmation tag, and triggers a log history reload.

Expected result: Webhook delivery traces load without issues, payloads are fully inspectable, and retrying failed posts updates the delivery history instantly.


Checklist

  • Linked the related issue above
  • Self-reviewed my own diff
  • No unnecessary console.log, debug code, or commented-out blocks
  • npm run lint passes locally
  • No TypeScript errors (npm run type-check)
  • Added or updated tests where applicable
  • Updated documentation / comments if behavior changed

Accessibility (UI changes only)

  • Keyboard navigation works correctly (all lists and details are focusable and expandable via Enter/Space)
  • Color contrast meets WCAG AA standard
  • ARIA labels / roles added where needed
  • Tested on mobile / responsive layout (payload wrappers wrap cleanly inside responsive grids)

Additional Context

Payload delivery retry details are stored in the existing DB tables (webhook_deliveries), requiring zero database migration steps and keeping the payload trace data fully integrated.

@github-actions github-actions Bot added type:bug GSSoC type bonus: bug fix type:feature GSSoC type bonus: new feature type:design GSSoC type bonus: UI/design (+10 pts) type:performance GSSoC type bonus: performance (+15 pts) gssoc26 GSSoC 2026 contribution labels Jul 1, 2026
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

@hrshjswniii

Copy link
Copy Markdown
Contributor Author

Hiii @Priyanshu-byte-coder , do review the issue implemented and feel free to merge the Pr !!

@Priyanshu-byte-coder

Copy link
Copy Markdown
Owner

New feature/UI PRs are on hold during the code-quality sprint — see discussion #2651. We'll revisit this after the sprint; meanwhile tests, refactors, and bug-fix PRs are very welcome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature type:performance GSSoC type bonus: performance (+15 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] : . Outbound Webhooks Dashboard & Retry History (Advanced Integrations)

2 participants