Pomerium is an identity and context-aware access proxy.
Find a file
Kenneth Jenkins a16bdd9cb0
config: support arbitrary nested config structs (#4440)
Update bindEnvs() to add support for binding nested fields of the
Options struct to environment variables. The variable names are formed
by joining the nested fields' mapstructure tags with underscores (after
first converting to uppercase).

This is in preparation for adding a new nested struct for downstream
mTLS settings that will look something like this:

  downstream_mtls:
    ca_file: /path/to/CA/cert.pem
    enforcement: reject_connection

With this change, these fields would be bound to the variables
DOWNSTREAM_MTLS_CA_FILE and DOWNSTREAM_MTLS_ENFORCEMENT.
2023-08-07 12:39:37 -07:00
.github chore(deps): bump actions/setup-python from 4.6.1 to 4.7.0 (#4429) 2023-08-02 09:01:32 -06:00
.vscode use tlsClientConfig instead of custom dialer (#3830) 2022-12-27 09:55:36 -07:00
authenticate chore: unnecessary use of fmt.Sprintf (#4349) 2023-07-12 09:44:29 -07:00
authorize authorize: implement client certificate CRL check (#4439) 2023-08-03 15:59:11 -07:00
cmd/pomerium chore(deps): bump github.com/golangci/golangci-lint from 1.48.0 to 1.50.0 (#3667) 2022-10-19 09:36:59 -06:00
config config: support arbitrary nested config structs (#4440) 2023-08-07 12:39:37 -07:00
databroker config: remove source, remove deadcode, fix linting issues (#4118) 2023-04-21 17:25:11 -06:00
examples Update grafana.ini.yml (#4045) 2023-03-08 09:18:50 -07:00
integration authorize: implement client certificate CRL check (#4439) 2023-08-03 15:59:11 -07:00
internal autocert: use new OCSP error type (#4437) 2023-08-04 14:41:25 -07:00
ospkg move directory providers (#3633) 2022-11-03 11:33:56 -06:00
pkg authorize: add "client-certificate-required" reason (#4389) 2023-07-25 10:03:51 -07:00
proxy config: add cookie_same_site option (#4148) 2023-05-03 14:36:42 -06:00
scripts dependencies: upgrade go and envoy (#4116) 2023-04-17 16:44:58 -06:00
ui chore(deps): bump word-wrap from 1.2.3 to 1.2.4 in /ui (#4369) 2023-07-19 06:10:27 -07:00
.codecov.yml development: change codecov precision 2019-07-18 16:49:37 -07:00
.dockerignore frontend: react+mui (#3004) 2022-02-07 08:47:58 -07:00
.fossa.yml rm cli code (#2824) 2021-12-15 16:25:21 -05:00
.gitattributes assets: use embed instead of statik (#1960) 2021-03-03 18:56:55 -07:00
.gitignore tls: wildcard catch-all cert must be at the end of cert list (#4119) 2023-04-21 12:37:32 -04:00
.golangci.yml config: remove source, remove deadcode, fix linting issues (#4118) 2023-04-21 17:25:11 -06:00
.pre-commit-config.yaml integration: add single-cluster integration tests (#2516) 2021-08-24 15:35:05 -06:00
.tool-versions dependencies: upgrade go and envoy (#4116) 2023-04-17 16:44:58 -06:00
3RD-PARTY dependencies: vendor base58, remove shortuuid (#2739) 2021-11-02 09:23:15 -06:00
DEBUG.MD deplyoment: add debug build / container / docs (#1513) 2020-10-13 16:54:21 -04:00
Dockerfile chore(deps): bump node from 3801c22 to 850d8e1 (#4416) 2023-08-02 09:01:18 -06:00
Dockerfile.debug chore(deps): bump node from 3801c22 to 850d8e1 (#4416) 2023-08-02 09:01:18 -06:00
go.mod chore(deps): bump github.com/go-chi/chi/v5 from 5.0.8 to 5.0.10 (#4407) 2023-08-02 10:12:06 -06:00
go.sum chore(deps): bump github.com/go-chi/chi/v5 from 5.0.8 to 5.0.10 (#4407) 2023-08-02 10:12:06 -06:00
LICENSE initial release 2019-01-02 12:13:36 -08:00
Makefile config: remove source, remove deadcode, fix linting issues (#4118) 2023-04-21 17:25:11 -06:00
pomerium.go fix go get, improve redis test (#2450) 2021-08-06 12:07:20 -06:00
README.md Docs: updates pomerium/pomerium readme file with new blurb (#4345) 2023-07-06 17:30:12 -04:00
RELEASING.md deployment: update RELEASING.md (#3503) 2022-08-16 10:40:03 -07:00
SECURITY.md Update SECURITY.md (#4144) 2023-05-01 15:17:50 -04:00
tools.go config: remove source, remove deadcode, fix linting issues (#4118) 2023-04-21 17:25:11 -06:00

pomerium logo

Go Report Card GoDoc LICENSE Docker Pulls

Pomerium builds secure, clientless connections to internal web apps and services without a corporate VPN.

Pomerium is:

  • Easier because you dont have to maintain a client or software.
  • Faster because its 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.

Its not a VPN alternative its the trusted, full-proof 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