3. Registering our schema

📝 Let's register our schema!

The first step of getting our app into production is registering our schema with Apollo.

Let's go to Apollo Studio in the browser. You'll need an Apollo account set up with an organization.

In previous courses, we've tested our locally running using Sandbox. This helped us easily prototype and iterate on our schema changes. To register a schema deployed in production, we need to create a deployed graph, which integrates with the schema registry. A deployed graph is visible to all members of your organization.

Sandbox is a 
 environment where we can explore and test a GraphQL schema. To register a 
schema and track our changes over time, we can create a
 in Apollo Studio, which is visible to

Drag items from this box to the blanks above

  • destructible graph

  • deployed graph

  • production

  • the whole world

  • the whole organization

  • development

📈 Creating a graph

Note: Depending on when you created your account and what plan you're on, your Studio account might look a bit different than what we're showing in the video or lesson instructions.

Before continuing with the lesson, expand the section below to find your specific steps on how to create a .

Give it a title. Select Monolith as the architecture, then click Next.

Screenshot of the modal for creating a new graph with the correct inputs

From here, we have a few ways to register our schema, but we'll focus on the first option: . This method uses a protocol called schema reporting, where our automatically registers its latest schema every time it starts up! To enable this, we need to set up the three environment variables shown on the page:


Note: We used to have separate for APOLLO_GRAPH_ID and APOLLO_GRAPH_VARIANT, but those have now been combined into a single environment variable: APOLLO_GRAPH_REF. (Under the hood, the structure of the erence is really <APOLLO_GRAPH_ID>@<APOLLO_GRAPH_VARIANT>.)

How does Apollo Server automatically register its schema in production?

We'll use these environment variables when we get our into production!


Share your questions and comments about this lesson

Your feedback helps us improve! If you're stuck or confused, let us know and we'll help you out. All comments are public and must follow the Apollo Code of Conduct. Note that comments that have been resolved or addressed may be removed.

You'll need a GitHub account to post below. Don't have one? Post in our Odyssey forum instead.