If a request is made to the Pomerium metrics endpoint with an Accept header requesting the Prometheus protobuf exposition format, some metrics will be missing from the response. These missing metrics are obtained by replaying the incoming request to an OpenCensus metrics exporter. This exporter honors the request for the protobuf format, however Pomerium expects this response to be in the text format. We can avoid this mismatch by explicitly requesting the text format from the OpenCensus exporter, regardless of the incoming request's Accept header. (Note: the Pomerium metrics endpoint always responds with text format metrics, even if the protobuf format is requested.) |
||
---|---|---|
.github | ||
.vscode | ||
authenticate | ||
authorize | ||
cmd/pomerium | ||
config | ||
databroker | ||
examples | ||
integration | ||
internal | ||
ospkg | ||
pkg | ||
proxy | ||
scripts | ||
ui | ||
.codecov.yml | ||
.dockerignore | ||
.fossa.yml | ||
.gitattributes | ||
.gitignore | ||
.golangci.yml | ||
.pre-commit-config.yaml | ||
.tool-versions | ||
3RD-PARTY | ||
DEBUG.MD | ||
Dockerfile | ||
Dockerfile.debug | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
pomerium.go | ||
README.md | ||
RELEASING.md | ||
SECURITY.md |
Pomerium builds secure, clientless connections to internal web apps and services without a corporate VPN.
Pomerium is:
- Easier because you don’t have to maintain a client or software.
- Faster because it’s deployed directly where your apps and services are. No more expensive data backhauling.
- Safer because every single action is verified for trusted identity, device, and context.
It’s not a VPN alternative – it’s the trusted, foolproof way to protect your business.
Docs
For comprehensive docs, and tutorials see our documentation.
Integration Tests
To run the integration tests locally, first build a local development image:
./scripts/build-dev-docker.bash
Next go to the integration/clusters
folder and pick a cluster, for example google-single
, then use docker-compose to start the cluster. We use an environment variable to specify the dev
docker image we built earlier:
cd integration/clusters/google-single
env POMERIUM_TAG=dev docker-compose up -V
Once that's up and running you can run the integration tests from another terminal:
go test -count=1 -v ./integration/...
If you need to make a change to the clusters themselves, there's a tpl
folder that contains jsonnet
files. Make a change and then rebuild the clusters by running:
go run ./integration/cmd/pomerium-integration-tests/ generate-configuration