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.
For Authenticating to Artifact Registry Read More this is only needed by accounts that build images and upload them to Google Cloud Platform.
For Deploying to GCP Cloud Run Read More this is only needed by accounts that deploy hosted images on Google Cloud Platform to be run in Cloud Run.