An open API service indexing awesome lists of open source software.

https://github.com/keygen-sh/example-webhook-handler

An example Node.js app that handles webhook events from Keygen
https://github.com/keygen-sh/example-webhook-handler

keygen platform-example sample-code webhook-events webhook-handler webhook-server

Last synced: 6 months ago
JSON representation

An example Node.js app that handles webhook events from Keygen

Awesome Lists containing this project

README

          

# Example Keygen Webhook Handler
The following web app is written in Node.js and shows how to set up a simple
webhook handler for [Keygen](https://keygen.sh), allowing you to listen for
and act upon particular events on your Keygen account.

> **This example application is not 100% production-ready**, but it should
> get you 90% of the way there. You may need to add additional logging,
> error handling, validation, features, etc.

## Running the app

First up, configure a few environment variables:
```bash
# Your Keygen account's Ed25519 verify key
export KEYGEN_VERIFY_KEY="YOUR_KEYGEN_ED25519_VERIFY_KEY"

# Your Keygen account ID.
export KEYGEN_ACCOUNT_ID="YOUR_KEYGEN_ACCOUNT_ID"
```

You can either run each line above within your terminal session before
starting the app, or you can add the above contents to your `~/.bashrc`
file and then run `source ~/.bashrc` after saving the file.

Next, install dependencies with [`yarn`](https://yarnpkg.comg):
```
yarn
```

Then start the app:
```
yarn start
```

## Testing webhooks locally

For local development, create an [`ngrok`](https://ngrok.com) tunnel:
```
ngrok http 8080
```

Next up, add the secure `ngrok` URL to your Keygen account to listen
for webhook events.

1. **Keygen:** add `https://{YOUR_NGROK_URL}/keygen` to https://app.keygen.sh/webhook-endpoints

You can now create events within your Keygen account, e.g. create a new
license, and the webhook event will be sent to your local server.

## Questions?

Reach out at [support@keygen.sh](mailto:support@keygen.sh) if you have any
questions or concerns!