Tunnels

Aiqaramba's agents and browsers run inside our network, so they cannot reach an application running on your own machine. A tunnel closes that gap. It exposes one local port to our agents and browsers — and only to them — so you can run your existing tests against a version of your app that is not deployed anywhere yet.

This is the tightest possible feedback loop. You change your app, run it locally, and test it with the same suite your team runs in QA, without waiting for a deploy or a review.

A tunnel is reachable only from inside Aiqaramba's network, never from the public internet. Traffic is encrypted in transit. This means you can test an app with real data behind it and it stays private.

Before you start

Tunnels are opened with the aiqa command-line client. Install it and set your API key first — see the Using the CLI guide. You also need your application running locally on a known port.

Open a tunnel

Run aiqa tunnel with the local port your app listens on. Here the app is on port 8080:

aiqa tunnel 8080

The client opens the tunnel and prints the hostname it was assigned:

Tunneling 127.0.0.1:8080 (only reachable by Aiqaramba's agents and browsers)

  https://hy26hiw.tunnel.aiqaramba.com

Press Ctrl-C to close the tunnel.

The tunnel lives exactly as long as the command. Leave it running while you test, and press Ctrl-C to close it. There is no automatic reconnect: if the connection drops, the command exits and you open a new tunnel, which is assigned a fresh hostname.

The hostname is random and belongs to your organization. You can list your open tunnels at any time:

aiqa tunnels list

Run tests against the tunnel

With the tunnel open, pass its hostname as the tunnel field when you start a run. It is accepted on running a test, running a test plan, and creating a single agent:

aiqa tests run <test-id> --tunnel hy26hiw.tunnel.aiqaramba.com

When you provide a tunnel, the agent is told to test against that host instead of any host named in the test's prompt. So a test written for https://app.example.com runs against your local app instead, with no change to the test itself. Other sites the test visits — for example a third-party login provider — are left on their real addresses.

Leave the tunnel field out and the run behaves exactly as normal, using whatever host the prompt names. Nothing about a test changes until you point it at a tunnel.

Good to know

  • The tunnel must stay open for the whole run. The run reaches your machine through the running command, so do not close it until the run finishes.
  • The hostname must belong to your organization. A run only accepts a tunnel your own organization opened, so one organization can never reach another's machine.
  • One tunnel forwards to one local port. To expose several services, open one tunnel per port.