When developing services, there is often a need to receive real requests from external systems on a local machine. This can be useful for debugging, testing, or verifying changes before deploying them to production.
What options do developers typically have in this situation?
Use sample data provided in the service documentation. This is not always reliable, since documentation can lag behind the actual implementation. In addition, documentation often contains only minimal examples rather than real-world payloads.
Reuse requests captured previously. This approach is more reliable, but first you need a way to receive those requests. At that point, you still need a publicly accessible endpoint where the service can send data.
Use tunneling services. These tools can quickly expose a local server to the internet, but if the connection drops while a webhook is being delivered, the request may be lost. Once connectivity is restored, the service may not be able to resend it.
I ran into exactly this problem while building my own services. That's how Adal was created — a service for receiving, storing, and forwarding webhooks.
How Adal works?
After creating an Endpoint, you receive a URL similar to randomstring.se1.adal.cloud. This URL can be configured in any service that sends webhooks. Adal receives and stores incoming webhooks exactly as they arrive, including headers, request bodies, and other technical details.
Adal stores data in the region where the Endpoint was created. Currently, the Sweden region (
se1) is available, but the architecture allows additional regions to be added as needed.
Once a webhook has been received and stored by Adal, you can:
Inspect its technical details and metadata.
View request headers and query parameters.
Download the request body or view it directly in the dashboard. At the moment, built-in preview is available for JSON payloads, with support for additional formats being added over time.
To receive webhooks on your own device, simply download and run Adal CLI — a lightweight application that connects to Adal servers and forwards incoming requests to your local machine. You can download the version that matches your operating system from the releases page. Instructions for obtaining credentials and configuring Adal CLI can be found in the Quick Start Guide.
This makes it possible to receive webhooks on your local machine even when it is behind a firewall or NAT. It can save hours of development time when working with systems that depend on webhook delivery.
Instead of exposing your local machine to the internet or relying on workarounds, you can simply configure an Adal Endpoint and receive webhooks through Adal CLI.
Incoming requests are stored, available for inspection through the web dashboard, and can be delivered to your local machine even after a temporary connection interruption.
This workflow is especially useful when working with webhooks from Stripe, GitHub, Telegram, Slack, and other services that send HTTP requests to a predefined endpoint.
If you'd like to try Adal, start with the Quick Start Guide. Setup usually takes just a few minutes.