Skip to content

Commit 1d26b1b

Browse files
authored
Adds new Zero IA (#1439)
* moves cluster status * changes to sidebar * fixes breaking links * removes releases, adds versioning partial to changelogs * moves k8s, adds redirects * removes production-deployment page * moves clients, adds redirects * creates upstream services guides directory * removes Client from sidebar labels * updates text * Revert "creates upstream services guides directory" This reverts commit f61e4bd. * creates guides subsections * removes securing tcp guide, adds to capabilities examples * removes js-sdk guide, redirects to capabilities page * removes local oidc, redirects to idp oidc guide * updates sidebar to move guide locations * removes idp and integrations sidebar slices * splits up certificates concepts page & creates new mTLS guide * adds integrations to capabilities section * adds zero install page * runs yarn format * fixes breaking links * fixes cspell errors * runs prettier
1 parent a3fdaea commit 1d26b1b

File tree

160 files changed

+715
-1315
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+715
-1315
lines changed

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ repos:
66
additional_dependencies:
77
88
files: ^content\/.*$
9-
exclude: content/docs/deploy/k8s/reference.md
9+
exclude: content/docs/k8s/reference.md
1010
- repo: https://github.com/streetsidesoftware/cspell-cli
1111
rev: v6.2.0
1212
hooks:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
### Versioning
2+
3+
Pomerium uses [Semantic Versioning](https://semver.org/). In practice, this means for a given version number **vMAJOR**.**MINOR**.**PATCH** (for example, `v0.1.0`):
4+
5+
- **MAJOR** indicates an incompatible API change
6+
- **MINOR** indicates a new, backwards-compatible functionality
7+
- **PATCH** indicates a backwards-compatible bug fix
8+
9+
As Pomerium is still pre-`v1.0.0`, you should expect breaking changes between releases.
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
**Before you upgrade:** Set your Core and Enterprise instances to the same **MINOR** version number. For example, if your Core instance is on **v0.22.1**, Enterprise should be set to **v0.22.0**. See [Versioning](/docs/deploy/releases#versioning) for more information.
1+
**Before you upgrade:** Set your Core and Enterprise instances to the same **MINOR** version number. For example, if your Core instance is on **v0.22.1**, Enterprise should be set to **v0.22.0**.

content/docs/capabilities/authentication.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ By configuring your applications to route requests to Pomerium’s Proxy service
5656

5757
:::enterprise
5858

59-
[Enterprise customers](https://www.pomerium.com/enterprise-sales/) can enforce context-aware access with Pomerium’s [external data sources](/docs/integrations) feature (directory sync).
59+
[Enterprise customers](https://www.pomerium.com/enterprise-sales/) can enforce context-aware access with Pomerium’s [external data sources](/docs/capabilities/integrations) feature (directory sync).
6060

6161
:::
6262

content/docs/capabilities/authorization.mdx

+3-3
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ In this example, Pomerium will grant a user access if their email address ends i
108108

109109
:::enterprise
110110

111-
The Enterprise Console provides a policy builder GUI so you can build policies and reapply them to multiple routes and namespaces. See our [**Enterprise**](/docs/deploy/enterprise) page to learn more.
111+
The Enterprise Console provides a policy builder GUI so you can build policies and reapply them to multiple routes and namespaces. See our [**Enterprise**](/docs/enterprise) page to learn more.
112112

113113
:::
114114

@@ -274,7 +274,7 @@ This example pulls session data from the Databroker service using `type.googleap
274274

275275
::::enterprise
276276

277-
In the [**Enterprise Console**](/docs/deploy/enterprise), you can write policies in Rego with the PPL builder:
277+
In the [**Enterprise Console**](/docs/enterprise), you can write policies in Rego with the PPL builder:
278278

279279
![Apply Rego in Console editor](./img/authorization/ppl-rego-policy.png)
280280

@@ -311,7 +311,7 @@ For routes with policies that allow public, unauthenticated access, Pomerium _wi
311311

312312
:::enterprise
313313

314-
[Device identity](/docs/capabilities/device-identity) is an Enterprise feature. Check out our [Enterprise](/docs/deploy/enterprise) page to learn more.
314+
[Device identity](/docs/capabilities/device-identity) is an Enterprise feature. Check out our [Enterprise](/docs/enterprise) page to learn more.
315315

316316
:::
317317

content/docs/capabilities/branding.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ description: Add custom colors, logos, and error messages.
77

88
:::enterprise
99

10-
This article describes a use case available to [Pomerium Enterprise](/docs/deploy/enterprise/install) customers.
10+
This article describes a use case available to [Pomerium Enterprise](/docs/enterprise/install) customers.
1111

1212
:::
1313

content/docs/capabilities/device-identity.mdx

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Device identity is the unique ID associated with a device. In the context of zer
3232

3333
## Device identity with Pomerium
3434

35-
Pomerium versions [0.16.0](/docs/deploy/core/upgrading#policy-for-device-identity) and up support the use of device identity as a criteria in authorization policies. Pomerium uses the [Web Authentication](https://www.w3.org/TR/webauthn-2/#registration-extension) (WebAuthn) API to bring authentication and authorization based on device identity into your security framework. With Pomerium’s device identity support, users can register devices and administrators can limit access to devices they trust.
35+
Pomerium versions [0.16.0](/docs/core/upgrading#policy-for-device-identity) and up support the use of device identity as a criteria in authorization policies. Pomerium uses the [Web Authentication](https://www.w3.org/TR/webauthn-2/#registration-extension) (WebAuthn) API to bring authentication and authorization based on device identity into your security framework. With Pomerium’s device identity support, users can register devices and administrators can limit access to devices they trust.
3636

3737
## Device identity features
3838

@@ -102,7 +102,7 @@ Give the link to the user.
102102

103103
If a Pomerium route [requires device authentication](/docs/capabilities/ppl#device-matcher), the user must register a [trusted execution environment](/docs/concepts/device-identity#authenticated-device-types) (**TEE**) device before accessing the route. Registration differs depending on the device.
104104

105-
The steps below cover enrollment of a device by a user. This is available for both Pomerium Core and [Pomerium Enterprise](/docs/deploy/enterprise/install) installations. However, Enterprise users may also receive registration links [generated by their administrators](/docs/capabilities/device-identity), which will mark the newly enrolled device as approved in the Enterprise Console.
105+
The steps below cover enrollment of a device by a user. This is available for both Pomerium Core and [Pomerium Enterprise](/docs/enterprise/install) installations. However, Enterprise users may also receive registration links [generated by their administrators](/docs/capabilities/device-identity), which will mark the newly enrolled device as approved in the Enterprise Console.
106106

107107
1. Users are prompted to register a new device when accessing a route that requires device authentication:
108108

content/docs/capabilities/enterprise-api.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ The Pomerium Enterprise Console supports programmatic interaction through a gRPC
1717

1818
This doc assumes:
1919

20-
- You've installed [Pomerium Core](/docs/deploy/core) and [Pomerium Enterprise](/docs/deploy/enterprise/install)
20+
- You've installed [Pomerium Core](/docs/core) and [Pomerium Enterprise](/docs/enterprise/install)
2121
- The connection to the Enterprise Console service is encrypted
2222

2323
## Configure a new route

content/docs/capabilities/getting-users-identity.md

-2
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,6 @@ A single-page javascript application can verify the JWT using the [JavaScript SD
118118

119119
<ReactApp />
120120

121-
See the [JavaScript SDK guide](/docs/guides/js-sdk) for more information.
122-
123121
### Manual verification
124122

125123
Though you will likely verify signed headers programmatically in your application's middleware with a third-party JWT library, if you are new to JWT it may be helpful to show what manual verification looks like.

content/docs/capabilities/high-availability.mdx

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Pomerium's individual components can be divided into two categories; the data pl
4040

4141
:::tip
4242

43-
Our [Kubernetes](/docs/deploy/k8s/quickstart) supports [Horizontal Pod Autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/).
43+
Our [Kubernetes](/docs/k8s/quickstart) supports [Horizontal Pod Autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/).
4444

4545
:::
4646

@@ -92,7 +92,7 @@ In any production deployment, running multiple replicas of each Pomerium service
9292

9393
You should deploy Layer 4 load balancing between end users and Pomerium Proxy services to provide high availability and horizontal scaling. Do not use L7 load balancers, since the Proxy service handles redirects, sticky sessions, etc.
9494

95-
Note that deployments on Kubernetes can utilize The [Pomerium Ingress Controller](/docs/deploy/k8s/ingress) to simplify configuration.
95+
Note that deployments on Kubernetes can utilize The [Pomerium Ingress Controller](/docs/k8s/ingress) to simplify configuration.
9696

9797
### Authenticate
9898

content/docs/capabilities/hosted-authenticate-service.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Pomerium's hosted services solution removes the tedium of configuring your own i
3636

3737
If you're testing Pomerium for the first time, run [Pomerium with Docker](/docs/quickstart) using our hosted services – you can run Pomerium Core in **under 5 minutes** with minimal setup.
3838

39-
Current Pomerium users who are interested in our [Enterprise Console](https://www.pomerium.com/enterprise-sales/) can test out the [Docker Enterprise Quickstart](/docs/deploy/enterprise/quickstart) using hosted services as well.
39+
Current Pomerium users who are interested in our [Enterprise Console](https://www.pomerium.com/enterprise-sales/) can test out the [Docker Enterprise Quickstart](/docs/enterprise/quickstart) using hosted services as well.
4040

4141
## Configure the Hosted Authenticate Service
4242

content/docs/capabilities/jwt-verification.mdx

-6
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,6 @@ The following code provides a minimum working example of how JWT verification wo
3838

3939
<ReactApp />
4040

41-
:::tip
42-
43-
See the [JavaScript SDK guide](/docs/guides/js-sdk) for more complete client- and server-side examples using React and Express.
44-
45-
:::
46-
4741
<details>
4842
<summary>Trust on first use (TOFU)</summary>
4943
<div>

content/docs/capabilities/kubernetes-access.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,19 @@ Pomerium can be leveraged as a proxy for user requests to the API Server.
3737

3838
## How it works
3939

40-
![Kubernetes Integration](../deploy/k8s/img/kubernetes-integration.svg)
40+
![Kubernetes Integration](./img/kubernetes/kubernetes-integration.svg)
4141

4242
Building on top of a standard Kubernetes and Pomerium deployment:
4343

4444
1. Pomerium is given access to a Kubernetes service account with [impersonation](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#user-impersonation) permissions
4545
2. A [route's policy](/docs/reference/routes/policy) is created for the API server and [configured](/docs/reference/routes/kubernetes-service-account-token) to use the service account token
4646
3. Kubernetes RoleBindings operate against IdP Users and Group subjects
47-
4. Users access the protected cluster through their standard tools, using [pomerium-cli](/docs/deploy/clients/pomerium-cli) as an auth provider in `~/.kube/config`
47+
4. Users access the protected cluster through their standard tools, using [pomerium-cli](/docs/clients/pomerium-cli) as an auth provider in `~/.kube/config`
4848
5. Pomerium authorizes requests and passes the user identity to the API server for fine grained RBAC
4949

5050
## Kubeconfig Setup
5151

52-
After installing the [pomerium-cli](/docs/deploy/clients/pomerium-cli), you must configure your `kubeconfig` for authentication.
52+
After installing the [pomerium-cli](/docs/clients/pomerium-cli), you must configure your `kubeconfig` for authentication.
5353

5454
Substitute `mycluster.pomerium.io` with your own API Server's `from` in Pomerium's policy:
5555

content/docs/capabilities/metrics.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,4 @@ To take advantage of Prometheus embedded in Pomerium Enterprise, edit Pomerium C
7676
prometheus_data_dir: /var/lib/pomerium-console/tsdb
7777
```
7878

79-
The directory path can be any location that the `pomerium` system user can write to. The example above uses the default location created by the [OS packages](/docs/deploy/enterprise/quickstart).
79+
The directory path can be any location that the `pomerium` system user can write to. The example above uses the default location created by the [OS packages](/docs/enterprise/quickstart).

content/docs/capabilities/mtls-services.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ To provide a general explanation, in this guide you will use [mkcert](https://gi
4343

4444
To complete this proof-of-concept guide:
4545

46-
- Run Pomerium in [all-in-one mode](/docs/internals/configuration#all-in-one-vs-split-service-mode) as a system service with a configuration file in the [standard location](/docs/deploy/core/from-source#configure)
46+
- Run Pomerium in [all-in-one mode](/docs/internals/configuration#all-in-one-vs-split-service-mode) as a system service with a configuration file in the [standard location](/docs/core/from-source#configure)
4747
- Configure an [identity provider](/docs/identity-providers) (IdP) to communicate with your Pomerium instance
4848
- Run all commands on the same host (You may have to move files or adjust paths and commands to match a different configuration)
4949
- Install [`mkcert`](https://github.com/FiloSottile/mkcert) to generate self-signed certificates and a root Certificate Authority (CA) (`mkcert` will take the place of your trusted certificate tooling solution)

content/docs/capabilities/original-request-context.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description: This article describes how the original user context is passed seco
99

1010
:::enterprise
1111

12-
This article describes a use case available to [Pomerium Enterprise](/docs/deploy/enterprise/install) customers.
12+
This article describes a use case available to [Pomerium Enterprise](/docs/enterprise/install) customers.
1313

1414
:::
1515

content/docs/capabilities/ppl.mdx

+4-4
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ deny:
136136

137137
Below is an exhaustive list of PPL criteria.
138138

139-
Entries marked with `*` denote criteria that are only available in the [Enterprise Console](/docs/deploy/enterprise) PPL builder. All other entries are available in both Pomerium Core and Pomerium Enterprise.
139+
Entries marked with `*` denote criteria that are only available in the [Enterprise Console](/docs/enterprise) PPL builder. All other entries are available in both Pomerium Core and Pomerium Enterprise.
140140

141141
| Criterion Name | Data Format | Description |
142142
| --- | --- | --- |
@@ -155,12 +155,12 @@ Entries marked with `*` denote criteria that are only available in the [Enterpri
155155
| `http_path` | [String Matcher] | Returns true if the HTTP path matches the given value. |
156156
| `invalid_client_certificate` | Anything. Typically `true`. | Returns true if the incoming request does not have a trusted client certificate. By default, a `deny` rule using this criterion is added to all Pomerium policies when [downstream mTLS] is configured (but this default can be changed using the [Enforcement Mode](/docs/reference/downstream-mtls-settings#enforcement-mode) setting.) |
157157
| `pomerium_routes` | Anything. Typically `true`. | Returns true if the incoming request is for the special `.pomerium` routes. A default `allow` rule using this criterion is added to all Pomerium policies. |
158-
| \* `record` | variable | Allows policies to be extended using data from [external data sources](/docs/integrations) |
158+
| \* `record` | variable | Allows policies to be extended using data from [external data sources](/docs/capabilities/integrations) |
159159
| `reject` | Anything. Typically `true`. | Always returns false. The opposite of `accept`. |
160160
| \* `time_of_day` | [Time of Day Matcher] | Returns true if the time of the request (for the current day) matches the constraints. |
161161
| `user` | [String Matcher] | Returns `true` if the logged-in user's ID matches the supplied value. (The actual value of the user ID claim depends on how the identity provider sets this value.) |
162162

163-
Entries marked with `*` denote criteria that are only available in the [Enterprise Console](/docs/deploy/enterprise) PPL builder. All other entries are available in both Pomerium Core and Pomerium Enterprise.
163+
Entries marked with `*` denote criteria that are only available in the [Enterprise Console](/docs/enterprise) PPL builder. All other entries are available in both Pomerium Core and Pomerium Enterprise.
164164

165165
## Matchers
166166

@@ -385,7 +385,7 @@ allow:
385385
[`allow_any_authenticated_user`]: /docs/reference/routes/allow-any-authenticated-user
386386
[cors pre-flight requests]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#preflighted_requests
387387
[downstream mtls]: /docs/reference/downstream-mtls-settings
388-
[pomerium enterprise]: /docs/deploy/enterprise/install
388+
[pomerium enterprise]: /docs/enterprise/install
389389
[yaml]: https://en.wikipedia.org/wiki/YAML
390390
[string matcher]: #string-matcher
391391
[string list matcher]: #string-list-matcher

content/docs/capabilities/service-accounts.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Service accounts offer a protected and standardized method of authenticating mac
1919

2020
:::enterprise
2121

22-
Service Accounts are a Pomerium Enterprise feature. The steps below show you how to create and use a Service Account in the Enterprise Console. See our [Pomerium Enterprise](/docs/deploy/enterprise) page for more information.
22+
Service Accounts are a Pomerium Enterprise feature. The steps below show you how to create and use a Service Account in the Enterprise Console. See our [Pomerium Enterprise](/docs/enterprise) page for more information.
2323

2424
:::
2525

content/docs/capabilities/single-sign-out.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Note, a CSRF token is required for the single sign out endpoint (despite support
6565

6666
### Single sign-out example with Pomerium
6767

68-
The example below demonstrates how to correctly implement SSO using the [JavaScript SDK](/docs/guides/js-sdk):
68+
The example below demonstrates how to correctly implement SSO using the [JavaScript SDK](/docs/capabilities/jwt-verification):
6969

7070
```js
7171
export const signOut = (redirectUrl) => {

content/docs/capabilities/tcp.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import LongLivedConnections from '@site/content/docs/admonitions/_long-lived-con
2222

2323
# TCP over HTTP Support
2424

25-
In addition to managing HTTP based applications, Pomerium can be used to protect non-HTTP systems with the same consistent authorization policy. This is achieved by tunneling TCP over HTTP with the help of a client side command built into [`pomerium-cli`](/docs/deploy/clients/pomerium-cli).
25+
In addition to managing HTTP based applications, Pomerium can be used to protect non-HTTP systems with the same consistent authorization policy. This is achieved by tunneling TCP over HTTP with the help of a client side command built into [`pomerium-cli`](/docs/clients/pomerium-cli).
2626

2727
Operations and engineering teams frequently require access to lower level administrative and data protocols such as SSH, RDP, Postgres, MySQL, Redis, etc.
2828

content/docs/capabilities/tcp/client.mdx

+3-3
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ You can connect to this route with either the Pomerium CLI or Pomerium Desktop c
8989

9090
### Desktop client steps
9191

92-
If you haven't, install [Pomerium Desktop](/docs/deploy/clients/pomerium-desktop).
92+
If you haven't, install [Pomerium Desktop](/docs/clients/pomerium-desktop).
9393

9494
Then, add a connection by filling in the fields defined below:
9595

@@ -110,7 +110,7 @@ Then, add a connection by filling in the fields defined below:
110110

111111
### Pomerium CLI steps
112112

113-
If you haven't, install [Pomerium CLI](/docs/deploy/clients/pomerium-cli).
113+
If you haven't, install [Pomerium CLI](/docs/clients/pomerium-cli).
114114

115115
Then, connect to a TCP route:
116116

@@ -147,7 +147,7 @@ Then, connect to a TCP route:
147147
For more examples and detailed usage information, see the following docs:
148148

149149
- [**TCP Reference**](/docs/capabilities/tcp/reference)
150-
- [**Securing TCP-based Services**](/docs/guides/securing-tcp)
150+
- [**Securing TCP-based Services**](/docs/capabilities/tcp)
151151

152152
:::
153153

content/docs/capabilities/tcp/examples/_service-template.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ This example assumes you've already [created a TCP route](/docs/capabilities/tcp
2121

2222
## Basic Connection
2323

24-
1. Create a TCP tunnel, using either [`pomerium-cli`](/docs/deploy/clients/pomerium-cli) or the Pomerium Desktop client:
24+
1. Create a TCP tunnel, using either [`pomerium-cli`](/docs/clients/pomerium-cli) or the Pomerium Desktop client:
2525

2626
<Tabs>
2727
<TabItem value="pomerium-cli" label="pomerium-cli">

content/docs/capabilities/tcp/examples/git.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ This example assumes you've already [created a TCP route](/docs/capabilities/tcp
2323

2424
## Basic Connection
2525

26-
1. Create a TCP tunnel, using either [`pomerium-cli`](/docs/deploy/clients/pomerium-cli) or the Pomerium Desktop client. These examples use Git connections over SSH:
26+
1. Create a TCP tunnel, using either [`pomerium-cli`](/docs/clients/pomerium-cli) or the Pomerium Desktop client. These examples use Git connections over SSH:
2727

2828
<Tabs>
2929
<TabItem value="pomerium-cli" label="pomerium-cli">
Loading

content/docs/capabilities/tcp/examples/ms-sql.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ This example assumes you've already [created a TCP route](/docs/capabilities/tcp
2626

2727
## Basic Connection
2828

29-
1. Create a TCP tunnel, using either [`pomerium-cli`](/docs/deploy/clients/pomerium-cli) or the Pomerium Desktop client:
29+
1. Create a TCP tunnel, using either [`pomerium-cli`](/docs/clients/pomerium-cli) or the Pomerium Desktop client:
3030

3131
<Tabs>
3232
<TabItem value="pomerium-cli" label="pomerium-cli">

content/docs/capabilities/tcp/examples/mysql.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ This example assumes you've already [created a TCP route](/docs/capabilities/tcp
2323

2424
## Basic Connection
2525

26-
1. Create a TCP tunnel, using either [`pomerium-cli`](/docs/deploy/clients/pomerium-cli) or the Pomerium Desktop client:
26+
1. Create a TCP tunnel, using either [`pomerium-cli`](/docs/clients/pomerium-cli) or the Pomerium Desktop client:
2727

2828
<Tabs>
2929
<TabItem value="pomerium-cli" label="pomerium-cli">

0 commit comments

Comments
 (0)