Skip to content

feat(backend): Build webhook delivery system with retry logic #417

Description

@KuchiMercy

Description

Webhook module has entity/controller stubs. Build complete webhook registration, delivery, and management system.

Existing: webhook.entity.ts, webhook.controller.ts, webhook.module.ts

Acceptance Criteria

  • Webhook entity: id, userId, url, secret, events, isActive, lastTriggeredAt, failureCount
  • WebhookDelivery entity: id, webhookId, event, payload, responseStatus, attemptCount, nextRetryAt
  • POST /webhooks (register with auto-generated signing secret)
  • GET /webhooks, PATCH /webhooks/:id, DELETE /webhooks/:id
  • GET /webhooks/:id/deliveries, POST retry
  • HTTP POST delivery with HMAC-SHA256 signing (X-Vaultix-Signature header)
  • Retry: 1min, 5min, 30min, 2h, 12h (max 5 attempts)
  • After 5 failures: mark inactive, notify user
  • URL validation: HTTPS required in production, test ping
  • POST /webhooks/:id/test for verification
  • Max 10 webhooks per user
  • Unit and integration tests

Points: 200

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programbackendenhancementNew feature or requestphase-2Sprint 3-4: Core Feature CompletionwebhookWebhook system

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions