Attention

This is the documentation for HARP Proxy, actually published as an early preview. Both the software and documentation are a work in progress, and although we already use it on various production servers, they may contain inaccuracies, typographical errors, huge mistakes and empty pages. We work hard to eradicate all mistakes and implement stuff, but it is a long and tedious process. We appreciate your patience and understanding. Of course, any help will be greatly appreciated.

Quick start

The main goal of HARP is to be a nearline proxy to remote HTTP APIs, to enhance observability and reliability while lowering development, operations and maintenance costs.

Todo

You can read more about the core HTTP proxy features in the … section of the documentation.

By default, HARP proxies respects HTTP headers (cache …) and will speed up your API calls without further configuration. Of course, a lot of APIs are non-standard or behave strangely, and one goal of HARP is to give you a toolkit for fixing those.

Installation

The easiest way to run it is to use our docker image. It is available on docker hub as makersquad/harp-proxy.

docker run -it --rm \
           -p 4000-4100:4000-4100 \
           makersquad/harp-proxy:latest \
           server --endpoint httpbin=4000:http://httpbin.org/

For more informations about installation options, please refer the section of your taste:

Todo

add link to configuration section

First glance

Once the container runs, it will serve two different ports from your local host:

  • localhost:4000 serves a proxy to httpbin.org (an example external api that we’ll use as our first proxy target)

  • localhost:4080 serves a dashboard allowing to observe the network traffic going through the proxy. It is activated and unsecure by default but for production environments you can disable it or add authentication.

Open the dashboard and go to the «Transactions» tab. It should be empty.

Now make a few requests through the proxy:

curl -X GET "http://localhost:4000/get" -H "accept: application/json"
curl -X POST "http://localhost:4000/post" -H "accept: application/json"
curl -X PUT "http://localhost:4000/put" -H "accept: application/json"

If you go back to the dashboard, you’ll now see the transactions.

Congratulations, you just ran your first harp proxy.

Next steps

Todo

And now what?

  • configure your endpoints

  • configure your dashboard: auth, …

  • write an extension application