In enterprises with strict network policies, all egress traffic to external services must go through an HTTP proxy. By the end of this tutorial, you will have an HTTP proxy running locally and the Kosli CLI configured to use it.Documentation Index
Fetch the complete documentation index at: https://kosli-reference-docs-v2-17-6.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
If you already have an HTTP proxy running, skip to Use the HTTP proxy with Kosli CLI.
Prerequisites
Start the HTTP proxy
We will use Tinyproxy running in Docker as our HTTP proxy. Create a minimal Tinyproxy configuration and start it:Use the HTTP proxy with Kosli CLI
In a new terminal, verify the setup by listing environments from the publiccyber-dojo demo org:
Persist the proxy configuration
Rather than passing--http-proxy on every command, save it to your Kosli config:
Scope of --http-proxy
The --http-proxy flag only applies to traffic between the CLI and the Kosli API. Commands that integrate with third-party services (GitHub, GitLab, Jira, SonarCloud/SonarQube, Azure, AWS) use separate HTTP clients that are not affected by this flag. To proxy that traffic, set the standard HTTPS_PROXY environment variable separately.
The table below shows every external endpoint the CLI may contact and how to proxy each one:
| Destination | Endpoint | Commands | Proxy method |
|---|---|---|---|
| Kosli API | https://app.kosli.com (configurable via --host) | All commands | --http-proxy or HTTPS_PROXY |
| GitHub | https://api.github.com (configurable via --github-base-url) | PR/commit attestations | HTTPS_PROXY only |
| GitLab | https://gitlab.com (configurable via --gitlab-base-url) | PR attestations | HTTPS_PROXY only |
| Jira | Configured via --jira-base-url | Jira attestations | HTTPS_PROXY only |
| SonarCloud/SonarQube | https://sonarcloud.io (configurable via --sonar-server-url) | Sonar attestations | HTTPS_PROXY only |
| Azure DevOps | Configured via --azure-org-url | Azure PR attestations | HTTPS_PROXY only |
| Azure management APIs | Azure ARM/IMDS endpoints | Azure app snapshots | HTTPS_PROXY only |
| AWS APIs | Regional AWS endpoints | ECS / Lambda / S3 snapshots | HTTPS_PROXY only |
| Container registries | OCI registries (ECR, GCR, DockerHub, etc.) | Artifact fingerprinting (--artifact-type oci) | HTTPS_PROXY only |
| Kubernetes API server | In-cluster or via kubeconfig | snapshot k8s | kubeconfig proxy-url or HTTPS_PROXY |
Kubernetes reporter
Thesnapshot k8s command makes two independent outbound connections:
- Kubernetes API server — uses the kubeconfig for connection and authentication. Configure the proxy via the kubeconfig
proxy-urlfield or theHTTPS_PROXYenvironment variable. - Kosli API — uses the standard Kosli HTTP client, controlled by
--http-proxy.
What you’ve accomplished
You have set up Tinyproxy as an HTTP proxy and configured the Kosli CLI to route all traffic through it. This pattern works with any HTTP proxy — replacehttp://localhost:8888 with your organisation’s proxy URL and run kosli config --http-proxy=<your-proxy-url> to apply it globally.