Refactor webhook signature verification process

The signature verification process for webhooks has been abstracted. Instead of performing the check directly in the handleWebhook method, it has been moved to a separate service class: PostgresDatabaseWebhookVerifierService. This refactor improves modularity and enables extending or replacing the verification logic more comfortably. The WEBHOOK_SENDER_PROVIDER environment variable is used to determine which verifier service to use.
This commit is contained in:
giancarlo
2024-04-18 21:03:36 +08:00
parent 98a4c02020
commit 4914a56460
6 changed files with 70 additions and 22 deletions

View File

@@ -5,4 +5,20 @@ This package is responsible for handling webhooks from database changes.
For example:
1. when an account is deleted, we handle the cleanup of all related data in the third-party services.
2. when a user is invited, we send an email to the user.
3. when an account member is added, we update the subscription in the third-party services
3. when an account member is added, we update the subscription in the third-party services
The default sender provider is directly from the Postgres database.
```
WEBHOOK_SENDER_PROVIDER=postgres
```
Should you add a middleware to the webhook sender provider, you can do so by adding the following to the `WEBHOOK_SENDER_PROVIDER` environment variable.
```
WEBHOOK_SENDER_PROVIDER=svix
```
For example, you can add [https://docs.svix.com/quickstart]](Swix) as a webhook sender provider that receives webhooks from the database changes and forwards them to your application.
Svix is not implemented yet.