Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .changesets/docs_proxy_certificates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
### Add documentation for adding proxy root certificates to router containers ([PR #8823](https://github.com/apollographql/router/pull/8823))

Adds documentation explaining how to add corporate proxy root certificates to Apollo Router containers. This is necessary for enterprise environments where TLS inspection proxies intercept HTTPS traffic.

The new documentation includes:
- Instructions for Docker deployments (runtime mount and custom image approaches)
- Instructions for Kubernetes deployments (init container and custom image approaches)
- Guidance for cloud deployments (AWS, Azure, GCP)
- Links added to all containerization deployment guides

By [@the-gigi-apollo](https://github.com/the-gigi-apollo) in https://github.com/apollographql/router/pull/8823
2 changes: 2 additions & 0 deletions docs/source/_sidebar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,8 @@ items:
children:
- label: "Google Cloud Run"
href: "./self-hosted/containerization/gcp"
- label: "Proxy Certificates"
href: "./self-hosted/containerization/proxy-certificates"
- label: "Managed Hosting"
children:
- label: "Railway"
Expand Down
6 changes: 6 additions & 0 deletions docs/source/routing/self-hosted/containerization/aws.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@
- Set up an Elastic Cloud Registry and push your router image to it.
- Create an ECS task definition for your router and deploy it.

<Note>

If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates).

Check notice on line 16 in docs/source/routing/self-hosted/containerization/aws.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/aws.mdx#L16

**Structural Elements**: Include two newlines between the admonition components and content. **Text Formatting**: Avoid using vague link text; use a descriptive phrase that suggests the linked content. ```suggestion If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates). ```

</Note>

## Prerequisites

Before you start:
Expand Down
6 changes: 6 additions & 0 deletions docs/source/routing/self-hosted/containerization/azure.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@
- Set up an Azure Container Registry and push your router image to it.
- Create and deploy an Azure Container App for your router.

<Note>

If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates).

Check warning on line 16 in docs/source/routing/self-hosted/containerization/azure.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/azure.mdx#L16

**Structural Elements**: Ensure there are two newlines between the admonition component and its content for proper rendering. **Text Formatting**: Avoid using the link text as a direct instruction; use a descriptive noun or verb phrase for the link. **Word and Symbol Usage**: Use the contraction "proxy's" for better readability. ```suggestion If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates). ```

</Note>

## Prerequisites

Before you start:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@

<Note>This container image only contains the router. Apollo recommends using the [Apollo Runtime container](docker.mdx), which contains all Apollo runtime services.</Note>

<Note>

If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates).

Check warning on line 27 in docs/source/routing/self-hosted/containerization/docker-router-only.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/docker-router-only.mdx#L27

**Structural Elements**: Include two newlines between the admonition components and content. **Text Formatting**: Avoid vague link text; use a rich noun phrase or the page title. ```suggestion If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates). ```

</Note>

## Basic example running router in Docker

To run the router, set the [`APOLLO_GRAPH_REF`](/graphos/routing/configuration/envvars#apollo_graph_ref) and [`APOLLO_KEY`](/graphos/routing/configuration/envvars#apollo_key) environment variables in your Docker container to your graph ref and API key.
Expand Down Expand Up @@ -198,4 +204,4 @@
build_docker_image.sh -d v0.9.1
```

The example uses [debian:bookwork-slim image](https://hub.docker.com/_/debian/) for the final image build. Feel free to modify the script to use images which better suit your own needs, but be careful if using the `-d` flag because it makes the assumption that there is a `heaptrack` package available to install.
The example uses the [debian:bookworm-slim image](https://hub.docker.com/_/debian/) for the final image build. Modify the script to use images that better suit your needs. When you use the `-d` flag, ensure a `heaptrack` package is available to install.

Check warning on line 207 in docs/source/routing/self-hosted/containerization/docker-router-only.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/docker-router-only.mdx#L207

**Text Formatting**: Use code font for CLI flags like `-d`. **Voice**: The phrase 'Modify the script to use images that better suit your needs' is unopinionated. Stick to the recommended path. **Word and Symbol Usage**: The line is acceptable, but ensure 'debian:bookworm-slim' is not considered a discouraged term; however, the text contains no violations of the provided style guide section. ```suggestion The example uses the [debian:bookworm-slim image](https://hub.docker.com/_/debian/) for the final image build. Modify the script to use images that better suit your needs. When you use the `-d` flag, ensure a `heaptrack` package is available to install. ```
6 changes: 6 additions & 0 deletions docs/source/routing/self-hosted/containerization/docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@

<ElasticNotice />

<Note>

If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates).

Check notice on line 33 in docs/source/routing/self-hosted/containerization/docker.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/docker.mdx#L33

**Structural Elements**: Include two newlines between the admonition components and content for proper spacing. **Text Formatting**: Avoid using vague link text; use a descriptive phrase that suggests the linked content. ```suggestion If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates). ```

</Note>

## Quick start

Run the following command, replacing the `APOLLO_GRAPH_REF` and `APOLLO_KEY` values with your own.
Expand Down
6 changes: 6 additions & 0 deletions docs/source/routing/self-hosted/containerization/gcp.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@
- Set up a container registry and push your router image to it.
- Create a Cloud Run service and configure it to deploy your router.

<Note>

If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates).

Check notice on line 16 in docs/source/routing/self-hosted/containerization/gcp.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/gcp.mdx#L16

**Structural Elements**: Ensure there are two newlines between the admonition component and its content. **Text Formatting**: Avoid using vague phrases like 'add your proxy's root certificate to the container' as link text; use a descriptive noun or verb phrase. ```suggestion If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](proxy-certificates). ```

</Note>

## Prerequisites

Before you start:
Expand Down
4 changes: 4 additions & 0 deletions docs/source/routing/self-hosted/containerization/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,7 @@
- [Azure using Azure Container Apps](/graphos/routing/self-hosted/containerization/azure)
- [GCP using Google Cloud Run](/graphos/routing/self-hosted/containerization/gcp)
- [Kubernetes](/router/containerization/kubernetes/)

## Additional configuration

Check warning on line 33 in docs/source/routing/self-hosted/containerization/index.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/index.mdx#L33

**Structural Elements**: Headings must use sentence case. Only the first word and proper nouns should be capitalized. ```suggestion ## Additional configuration ```

- [Proxy certificates](/graphos/routing/self-hosted/containerization/proxy-certificates): Add your proxy's root certificate for TLS inspection environments

Check notice on line 35 in docs/source/routing/self-hosted/containerization/index.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/index.mdx#L35

**Structural Elements**: Unordered list items that are fragments should omit ending punctuation. **Text Formatting**: The link text 'Proxy certificates' is a rich noun phrase and follows the style guide; no change needed for the link itself. **Word and Symbol Usage**: Add a period to the end of the list item for consistency. ```suggestion - [Proxy certificates](/graphos/routing/self-hosted/containerization/proxy-certificates): Add your proxy's root certificate for TLS inspection environments ```
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@

<ElasticNotice />

<Note>

If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](/graphos/routing/self-hosted/containerization/proxy-certificates).

Check notice on line 32 in docs/source/routing/self-hosted/containerization/kubernetes/quickstart.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/kubernetes/quickstart.mdx#L32

**Structural Elements**: Include two newlines between the admonition components and content. **Text Formatting**: Use a rich noun or verb phrase for link text, such as the title of the linked page, rather than embedding the link in a sentence fragment. **Word and Symbol Usage**: Use 'graph' instead of 'graphos' when referring to the data graph, though the URL path itself should remain as defined by the system. No change needed to the prose here as it follows the guide. ```suggestion If your organization uses a corporate proxy with TLS inspection, [add your proxy's root certificate to the container](/graphos/routing/self-hosted/containerization/proxy-certificates). ```

</Note>

This guide uses Helm charts to deploy a self-hosted router in Kubernetes. Using Helm is suitable for quick deployments, testing, or when you prefer direct Helm chart management.

This guide shows how to:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
title: Add Proxy Certificates to Router Containers

Check notice on line 2 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L2

**Products and Features**: Add "Apollo" to the product name for clarity and consistency. ```suggestion title: Add Proxy Certificates to Apollo Router Containers ```
subtitle: Configure trust for your proxy's root certificate
description: Add your corporate proxy's root certificate to Apollo Router containers to enable TLS inspection in enterprise environments.
---

import ElasticNotice from '../../../../shared/elastic-notice.mdx';

If your organization uses a corporate proxy that performs TLS inspection (SSL inspection or HTTPS interception), add the proxy's root certificate to your router container. Without this certificate, Apollo Router can't establish secure connections to GraphOS or your subgraphs.

Check warning on line 9 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L9

**Framing Apollo Products**: Focus on the advantage of adding the certificate rather than the failure that occurs without it. **Products and Features**: Avoid using "your" as a possessive before a standalone product name. **Word and Symbol Usage**: Avoid 'since' or 'without' when used as a synonym for 'because' to improve clarity. ```suggestion If your organization uses a corporate proxy that performs TLS inspection (SSL inspection or HTTPS interception), add the proxy's root certificate to your router container. Adding this certificate enables Apollo Router to establish secure connections to GraphOS or your subgraphs. ```

<ElasticNotice />

## Understanding proxy certificate requirements

Check warning on line 13 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L13

**Structural Elements**: Headings must use sentence case. Capitalize only the first word and proper nouns. ```suggestion ## Understanding proxy certificate requirements ```

Corporate proxies often intercept HTTPS traffic for security monitoring. They decrypt and re-encrypt traffic using their own certificate. Apollo Router must have the proxy's root certificate authority (CA) certificate installed in its trust store to trust these connections.

A missing proxy certificate causes these common symptoms:

Check notice on line 17 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L17

**Structural Elements**: Introduce lists with a sentence or fragment that ends in a colon. ```suggestion A missing proxy certificate causes these common symptoms: ```
- Connection failures to Apollo Uplink

Check notice on line 18 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L18

**Products and Features**: Apollo Uplink is a proper feature name; ensure it is treated as such. ```suggestion - Connection failures to Apollo Uplink ```
- TLS handshake errors when fetching the supergraph schema
- Certificate verification failures when connecting to subgraphs

## Adding certificates to Docker containers

Check warning on line 22 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L22

**Structural Elements**: Headings must use sentence case. Capitalize only the first word and proper nouns. ```suggestion ## Adding certificates to Docker containers ```

Apollo Router container images are based on Debian and use the system CA certificate store at `/etc/ssl/certs/`.

### Mounting the certificate at runtime

Check warning on line 26 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L26

**Structural Elements**: Headings must use sentence case. Capitalize only the first word and proper nouns. ```suggestion ### Mounting the certificate at runtime ```

Mount your proxy's root certificate and update the CA store when you start the container.

Check notice on line 28 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L28

**Voice**: Prescribe a specific 'happy path' to be more authoritative and helpful. ```suggestion The recommended approach is to mount your proxy's root certificate and update the CA store when you start the container. ```

```bash title="Docker"
docker run -p 4000:4000 \
--env APOLLO_GRAPH_REF="<your-graph-ref>" \
--env APOLLO_KEY="<your-graph-api-key>" \
-v /path/to/proxy-ca.crt:/usr/local/share/ca-certificates/proxy-ca.crt:ro \
--user root \
--entrypoint /bin/bash \
ghcr.io/apollographql/router:<router-image-version> \

Check notice on line 37 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L37

**Text Formatting**: Use v#.#.# format for version numbers. ```suggestion ghcr.io/apollographql/router:v<router-image-version> \ ```
-c "update-ca-certificates && su -s /bin/bash router -c '/dist/router_wrapper.sh'"
```

### Building a custom image

For production deployments, build a custom image that includes your proxy's root certificate.

```dockerfile title="Dockerfile"
FROM ghcr.io/apollographql/router:<router-image-version>

USER root
COPY proxy-ca.crt /usr/local/share/ca-certificates/proxy-ca.crt
RUN update-ca-certificates
USER router
```

Build and run the custom image.

```bash
docker build -t router-with-proxy-cert .
docker run -p 4000:4000 \
--env APOLLO_GRAPH_REF="<your-graph-ref>" \
--env APOLLO_KEY="<your-graph-api-key>" \
router-with-proxy-cert
```

## Adding certificates in Kubernetes

When deploying with Kubernetes, use a ConfigMap or Secret to provide the certificate and an init container to install it.

### Using an init container

Check notice on line 68 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L68

**Structural Elements**: Tutorial headings should use imperative verbs. ```suggestion ### Use an init container ```

1. Create a ConfigMap with your proxy certificate.

```bash

Check notice on line 72 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L72

**Structural Elements**: Remove line numbering for terminal commands. ```suggestion ```bash showLineNumbers=false ```
kubectl create configmap proxy-ca-cert --from-file=proxy-ca.crt=/path/to/proxy-ca.crt
```

2. Configure your deployment to use an init container that installs the certificate.

```yaml title="values.yaml"

Check warning on line 78 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L78

**Structural Elements**: Specify the programming language for syntax highlighting. ```suggestion ```yaml title="values.yaml" ```
extraVolumes:
- name: proxy-ca-cert
configMap:
name: proxy-ca-cert
- name: ca-certs
emptyDir: {}

extraVolumeMounts:
- name: ca-certs
mountPath: /etc/ssl/certs

initContainers:
- name: install-proxy-cert
image: ghcr.io/apollographql/router:<router-image-version>

Check notice on line 92 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L92

**Text Formatting**: State version numbers with a 'v' and no space. ```suggestion image: ghcr.io/apollographql/router:v<router-image-version> ```
command: ["/bin/bash", "-c"]
args:
- |
cp -r /etc/ssl/certs/* /ca-certs/
cp /proxy-cert/proxy-ca.crt /usr/local/share/ca-certificates/
update-ca-certificates
cp -r /etc/ssl/certs/* /ca-certs/
securityContext:
runAsUser: 0
volumeMounts:
- name: proxy-ca-cert
mountPath: /proxy-cert
- name: ca-certs
mountPath: /ca-certs
```

### Building a custom image for Kubernetes

Check warning on line 109 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L109

**Structural Elements**: Tutorial headings should use imperative verbs. ```suggestion ### Build a custom image for Kubernetes ```

Build a custom Docker image with the certificate as described in [Building a custom image](#building-a-custom-image) and reference it in your Helm values.

Check notice on line 111 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L111

**Text Formatting**: Avoid using vague link text like 'here'; however, the existing link text 'Building a custom image' is already a rich noun phrase, so no change is required for the link itself. Ensure no other formatting issues exist. ```suggestion Build a custom Docker image with the certificate as described in [Building a custom image](#building-a-custom-image) and reference it in your Helm values. ```

```yaml title="values.yaml"
image:
repository: your-registry/router-with-proxy-cert
tag: <your-tag>
```

## Adding certificates for cloud deployments

For cloud deployments (AWS ECS, Azure Container Apps, GCP Cloud Run), build a custom Docker image that includes your proxy's root certificate, then push that image to your cloud provider's container registry.

Follow the [custom image instructions](#building-a-custom-image), then push the image to your registry before you deploy.

Check notice on line 123 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L123

**Text Formatting**: The link text is descriptive. No changes needed based on the provided style guide section. **Voice**: Use an authoritative and opinionated voice to prescribe the best path. ```suggestion Follow the [custom image instructions](#building-a-custom-image), then push the image to your registry before you deploy. ```

## Verifying the certificate installation

Check warning on line 125 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L125

**Structural Elements**: Tutorial headings should use imperative verbs. ```suggestion ## Verify the certificate installation ```

Check the container's CA store:

Check warning on line 127 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L127

**Structural Elements**: Unordered list introductions must end with a colon. ```suggestion Check the container's CA store: ```

```bash
docker run --entrypoint /bin/bash -it router-with-proxy-cert -c "ls /etc/ssl/certs | grep proxy"
```

Test connectivity to a service through the proxy:

Check warning on line 133 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L133

**Structural Elements**: Unordered list introductions must end with a colon. ```suggestion Test connectivity to a service through the proxy: ```

```bash
docker run --entrypoint /bin/bash -it router-with-proxy-cert -c "curl -v https://uplink.api.apollographql.com/"

Check warning on line 136 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L136

**Word and Symbol Usage**: Do not use curl as a verb. Instead say 'run the following curl command'. ```suggestion docker run --entrypoint /bin/bash -it router-with-proxy-cert -c "run the following curl command -v https://uplink.api.apollographql.com/" ```
```

## Related Topics

Check warning on line 139 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L139

**Structural Elements**: Headings must use sentence case. ```suggestion ## Related topics ```

- [TLS configuration](/graphos/routing/security/tls): Configure TLS settings for Apollo Router
- [Docker deployment](/graphos/routing/self-hosted/containerization/docker): Deploy Apollo Runtime using Docker
- [Kubernetes deployment](/graphos/routing/self-hosted/containerization/kubernetes/quickstart): Deploy Apollo Router using Helm

Check warning on line 143 in docs/source/routing/self-hosted/containerization/proxy-certificates.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/containerization/proxy-certificates.mdx#L143

**Framing**: Use reader-centric language by adding 'your' to clarify ownership of the router instance. **Products and Features**: Remove 'the' before the standalone product name 'Apollo Router'. ```suggestion - [Kubernetes deployment](/graphos/routing/self-hosted/containerization/kubernetes/quickstart): Deploy your Apollo Router using Helm ```
6 changes: 6 additions & 0 deletions docs/source/routing/self-hosted/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@

</Note>

<Note>

If your organization uses a transparent or egress proxy (such as Zscaler or Netskope), [add your proxy's root CA certificate to your container image](/graphos/routing/self-hosted/containerization/proxy-certificates). Without it, the router can't establish TLS connections to Apollo Uplink, resulting in certificate validation errors or "invalid license" failures.

Check warning on line 35 in docs/source/routing/self-hosted/index.mdx

View check run for this annotation

Apollo Librarian / AI Style Review

docs/source/routing/self-hosted/index.mdx#L35

**Framing Apollo Products**: Focus on the advantage of adding the certificate rather than the negative consequences of missing it. **Products and Features**: Remove the article 'the' before the standalone product name 'Apollo Uplink'. **Structural Elements**: Include two newlines between the admonition components and the content. **Text Formatting**: The link text is descriptive and follows the rich noun phrase guideline. No formatting changes required for bold or italics as none are present. **Voice**: Use an authoritative and helpful tone to prescribe the necessary action for proxy configurations. **Word and Symbol Usage**: The word "can't" is already used correctly as a contraction, and the sentence structure is clear. No changes required based on the provided style guide section. ```suggestion If your organization uses a transparent or egress proxy (such as Zscaler or Netskope), [add your proxy's root CA certificate to your container image](/graphos/routing/self-hosted/containerization/proxy-certificates). Adding the certificate allows the router to establish TLS connections to Apollo Uplink and prevents certificate validation errors or "invalid license" failures. ```

</Note>

## Kubernetes

### Apollo GraphOS Operator
Expand Down