Skip to content

feat: Implement signed webhook event system#330

Open
sungdark wants to merge 1 commit intorohitdash08:mainfrom
sungdark:feature/webhook-system
Open

feat: Implement signed webhook event system#330
sungdark wants to merge 1 commit intorohitdash08:mainfrom
sungdark:feature/webhook-system

Conversation

@sungdark
Copy link

@sungdark sungdark commented Mar 8, 2026

Summary

This PR implements the full webhook event system as requested in #77.

Features

Signed delivery: All webhooks include HMAC SHA-256 signatures for verification
Retry & failure handling: 7 retries with exponential backoff (1min → 1h)
9 core event types:

  • expense.created / updated / deleted
  • bill.created / updated / deleted / due
  • subscription.updated
  • profile.updated
    Full management API:
  • CRUD for webhook targets
  • Delivery history with status tracking
  • Manual redelivery of failed events
  • Test endpoint for debugging
  • Event type catalog with examples
    Database schema: Proper relational tables for targets and deliveries

Acceptance Criteria Met

  • Signed webhook delivery with HMAC signatures
  • Exponential backoff retry logic for failed deliveries
  • All event types fully documented with payload examples
  • Integrated with existing expense and bill flows (auto-triggers on CRUD operations)
  • Full webhook management REST API

Bounty Claim

Requesting 0 payout upon merge as specified in the issue.

Fixes #77

- Add WebhookEvent enum and database models
- Add WebhookService with HMAC signing, exponential backoff retries
- Add 9 core event types for expenses, bills, subscriptions, profiles
- Add webhook management API endpoints (CRUD for targets, delivery history, redeliver)
- Integrate webhook triggers in expense and bill routes
- Add database schema for webhook targets and deliveries
- Support 7 retry attempts with exponential backoff
- Include webhook signature verification and test endpoint
@sungdark sungdark requested a review from rohitdash08 as a code owner March 8, 2026 05:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Webhook Event System

1 participant