This template can be used to quickly create an Apollo Federation subgraph with the @apollo/subgraph and @apollo/server packages. You can use this template from Rover with rover template use --template subgraph-typescript-apollo-server
.
- A basic, Apollo Federation subgraph with simple examples for queries, entities, and mutations. You can run this subgraph with
npm start
. - nodemon is setup for
npm run dev
for a hot-reloading development environment. - Example tests in the
src/__tests__
directory. You can run these tests withnpm run test
. - GitHub Actions workflows which will:
- Run
npm run test
on every push. - Check the schema against Apollo Studio on every push.
- Publish the subgraph to Apollo Studio on every push to the
main
branch.
- Run
- GraphQL Code Generator pre-configured as a
build
step.
- Setup project with
npm install
- This will also run the
postinstall
script which will runcodegen
and compile the project
- This will also run the
- Download Rover and start it using the command printed out from
cargo run
to start a local version of Apollo Explorer. - Replace "name" in
package.json
with the name of your subgraph. - Start filling in your own schema in
schema.graphql
. - Start filling in your own types and resolvers in
src/resolvers
. - Set these secrets in GitHub Actions to enable all checks:
APOLLO_KEY
: An Apollo Studio API key for the supergraph to enable schema checks and publishing of the subgraph.APOLLO_GRAPH_REF
: The name of the supergraph in Apollo Studio.PRODUCTION_URL
: The URL of the deployed subgraph that the supergraph gateway will route to.
- Remove the if: false lines from .github/workflows/checks.yaml and .github/workflows/deploy.yaml to enable schema checks and publishing.
- Write your custom deploy logic in
.github/workflows/deploy.yaml
. - Send the Router-Authorization header from your Cloud router and set the ROUTER_SECRET environment variable wherever you deploy this to.