Plugin is a function that tweaks the requests before sending them to your localhost services or before the answer from your localhost services are sent to the clients, you can use these built-in plugins without touching your services.

Modify request headers

Sometimes you need modify (add or delete) the request headers before reaching your local web server, you can do that by passing --request-header or -H in short then the header you want to edit for example:

loclx tunnel http --request-header host:dev.laravel --request-header token:secret

the above command will add two headers to the request host and token, if the headers already existed in the request then they will be overwritten, in case you want to delete a specific header from the request, you will need to pass an empty value for example --request-header 'host:'.

Modify response headers

Modify response headers before sending it back to the client (e.g. browser), you need to pass the --response-header or -R in short, then the value that you want to edit, for example:

loclx tunnel http --response-header role:admin --response-header user:admin

the above command will add two response headers to the response role and user, if the headers already existed in the response then they will be overwritten, in case you want to delete a specific header from the response, you will need to pass an empty value for example --response-header 'role:'.

Protected tunnel with basic authentication

Basic authentication plugin restricts access to your services to known users for example:

loclx tunnel http --basic-auth user:pass

Protected tunnel with key authentication

Key authentication plugin restricts access to your services to those who have the access token only, it is ideally used in local API services, when you want to access your localhost API service from external API client (e.g. curl, insomnia, SDKs), then from your API client you can authenticate against your local API services by passing X-TOKEN header with the token value, for example:

loclx tunnel http --key-auth secureToken

Then access your local services by doing curl https://hello.loclx.io -H 'X-TOKEN:secureToken' , otherwise you will get Access Denied

IP whitelisting

IP whitelisting plugin restricts access to specific IP addresses only, you can pass CIDR format for example:

loclx tunnel http --ip-whitelist 192.168.100.3 --ip-whitelist 10.20.100.10/24

Request rate limiter

Control the number of requests per second going to your local services, it ensures that services will receive a fair amount of requests, for example:

loclx tunnel http --rate-limit 20

This will only accept 20 requests per second otherwise you will receive 429 Too Many Requests.

Redirect HTTP to HTTPS

Add requests auto redirection from HTTP to HTTPS, for example a request to http://hello.loclx.io will be redirected to https://hello.loclx.io.

loclx tunnel http --https-redirect

Prefix path

Prefix the request path with a custom path, if your tunnel is hello.loclx.io , then adding prefix path like /foo/bar will update the incoming requests URL path before forwarding it to your localhost server.

loclx tunnel http --prefix-path /foo/bar

So if the incoming request is https://hello.loclx.io/api/v1 then after the modification it will become https://hello.loclx.io/foo/bar/api/v1.


© xLab 2023. All Rights Reserved