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 graph 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.
Graphs!
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
development
the whole organization
📈 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 graph.
First things first, do you have an GraphOS account?
After creating your account, you'll see something that looks like this:
Click the "Coming from Apollo Odyssey..." link.
You'll see a modal pop up to create a classic graph.
Then, skip the next two questions. Jump back into this lesson's instructions and follow along.
If you do have an account already and you're logged in to Studio, what do you see
on the top right of the homepage's navigation bar?
You'll need to upgrade your plan to the serverless (free) plan.
Click "Convert to Serverless (Free)" on the top right.
A modal will pop up explaining the plan's features.
Click "Yes, convert my account".
Next, what do you see on the Studio homepage? Expand another collapsible section below that best matches what you see.
Click "Create New Graph".
You'll see a modal pop up to create a graph.
Skip the next question, jump back into this lesson's instructions and follow along.
If you chose 1A) and finished converting your account, what do you see on the Studio homepage?
Your page looks like this:
Click the "Coming from Apollo Odyssey..." link.
You'll see a modal pop up to create a classic graph.
Then, jump back into this lesson's instructions and follow along.
Your page looks like this:
Scroll down to find a notice on the bottom right corner of the screen. Click "Head over to our classic graph flow".
You'll see a modal pop up to create a classic graph.
Jump back into this lesson's instructions and follow along.
Your page looks like this:
Click the arrow beside "Create New Graph", then click "New Classic Graph".
You'll see a modal pop up to create a classic graph.
Jump back into this lesson's instructions and follow along.
Give it a title. Select Monolith as the graph architecture, then click Next.
https://studio.apollographql.com
From here, we have a few ways to register our schema, but we'll focus on the first option: Apollo Server. This method uses a protocol called schema reporting, where our GraphQL server 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:
APOLLO_KEY=service:xxxxx
APOLLO_GRAPH_REF=xxxxxx
APOLLO_SCHEMA_REPORTING=true
Note: We used to have separate variables 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 graph reference variable 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 GraphQL server 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.