Skip to main content

Apollo Router

Inigo distributes a custom build of the open-source Apollo Router that includes the Inigo Agent compiled an open-source Rust plugin. This distribution makes it easy to gain all of the observability, security, and Apollo Federation schema management of Inigo when using the open-source Apollo Router. The Inigo distribution of Apollo Router is available as a Docker image.

Note: Existing capabilities of the open-source Apollo Router code are not overridden or disabled by the Inigo Rust plugin. The Apollo Router is configured via input variables to achieve the desired behavior when used with Inigo.

Note: The Inigo distribution of Apollo Router can be freely deployed to your infrastructure per the terms of the Apollo Router Elastic License.

Run Apollo Router in Docker

The simplest way to get started with the Inigo distribution of Apollo Router is to run it locally with docker run and a locally composed supergraph schema.

Configure the router.yaml for Apollo Router

Apollo Router requires a YAML configuration to run.

router.yaml
supergraph:
introspection: true
listen: 0.0.0.0:8080
health_check:
listen: 0.0.0.0:8088
homepage:
enabled: false
sandbox:
enabled: false
include_subgraph_errors:
all: true
headers:
all:
request:
- propagate:
matching: .*
cors:
allow_any_origin: true
origins: []
plugins:
inigo.middleware: {}

Run docker run for the Inigo distribution of Apollo Router

IMPORTANT: An INIGO_SERVICE_TOKEN variable (-e) must be passed to the docker run command.

echo $INIGO_SERVICE_TOKEN

docker run --rm -p 4000:8080 \
-v ${PWD}/router.yaml:/dist/config/router.yaml \
-e APOLLO_ROUTER_CONFIG_PATH=/dist/config/router.yaml \
-e APOLLO_ROUTER_SUPERGRAPH_PATH=/dist/config/supergraph.graphql \
-e INIGO_SERVICE_TOKEN=$INIGO_SERVICE_TOKEN \
--name apollo_router inigohub/inigo_apollo_router:latest