# Apollo GraphQL ## Docs > Schema Design > Federated Schemas - [Introduction to Apollo Federation](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/federation.md): Learn how Apollo Federation helps you declaratively orchestrate your APIs and services into a unified, federated GraphQL API using a microservices architecture. - [Federated Schemas](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/schema-types.md): Learn about subgraph, supergraph, and API schemas in federated GraphQL architectures. - [Schema Composition](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/composition.md): Learn about schema composition in a federated GraphQL architecture. Explore strategies for handling conflicting types and directives. - [Value Types in Apollo Federation](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/sharing-types.md): Learn how to share GraphQL types and fields across subgraphs with Apollo Federation. ## Docs > Schema Design > Federated Schemas > Federation Reference - [Apollo Federation Changelog](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/versions.md): Understand changes between Apollo Federation major and minor versions. - [Apollo Federation Directives](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/directives.md): Reference for GraphQL federation directives including @key, @extends, @sharable, @override, @requires and more. - [Composition Rules](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/composition-rules.md): Learn what rules subgraph schemas must follow to successfully compose in a federated GraphQL architecture. ## Docs > Schema Design > Federated Schemas > Federation Reference > Subgraph Reference - [Apollo Federation Subgraph Specification](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/subgraph-spec.md): Learn about Apollo Federation 2 subgraph specifications, enhanced introspection, and entity field resolution for GraphQL server libraries. - [Subgraph Specific Fields](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/subgraph-specific-fields.md): Subgraph-compatible server libraries automatically add some federation-specific definitions to your subgraph schema such as Query._service and Query._entities. - [Federation-Compatible Subgraph Implementations](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/compatible-subgraphs.md): Reference for open-source GraphQL server libraries and hosted solutions that are compatible with Apollo Federation. ## Docs > Schema Design > Federated Schemas > Federation Reference > Development and Tooling - [Query Plans](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/query-plans.md): Learn how your router orchestrates operations across subgraphs, ensuring seamless data retrieval for complex GraphQL operations in a federated architecture. - [Composition Hints](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/hints.md): Learn about hints flagged during Apollo Federation schema composition using GraphOS Studio or the Rover CLI. - [Apollo Federation Error Codes](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/errors.md): Reference the error codes encountered during Apollo Federation schema composition, identifying root causes and solutions for GraphQL debugging. ## Docs > Schema Design > Federated Schemas > Federation Reference > From Federation 1 to 2 - [Moving to Apollo Federation 2](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/moving-to-federation-2.md): Upgrade from Apollo Federation 1 to Federation 2 to benefit from improved composition logic and schema flexibility. - [Backward Compatibility in Apollo Federation 2](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/backward-compatibility.md): Frequently asked questions when transitioning from Apollo Federation 1 to Federation 2. ## Docs > Schema Design > Entities - [Introduction to Entities](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/intro.md): Learn to define, contribute to, and reference entities, the fundamental object types of Apollo Federation that resolve their fields across one or more subgraphs. ## Docs > Schema Design > Entities > Entity Essentials - [Contribute and Reference Entity Fields](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/contribute-fields.md): Learn individual subgraphs can contribute to and reference entity fields in a federated GraphQL architecture using the @required and @external directives. - [Define Advanced Keys](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/define-keys.md): Learn how to define compound keys, nested key fields, and multiple keys for the same entity in a federated GraphQL architecture. - [Entity Interfaces](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/interfaces.md): Discover how to efficiently add polymorphic fields to GraphQL interfaces using Apollo Federation's Entity Interfaces and the @interfaceObject directive. ## Docs > Schema Design > Entities > Entity Guides - [Thinking in Entities](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/best-practices.md): Schema design best practices for entities, including when to define, reference and extend entities. - [Migrate Entity and Root Fields](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/migrate-fields.md): Learn how to safely move parts of one subgraph to another subgraph in a federated GraphQL architecture using the @override directive. - [Resolve another subgraph's fields](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/resolve-another-subgraphs-fields.md): Learn how different subgraphs can resolve the same field using @shareable and @provides directives in a federated GraphQL architecture. - [Enforcing Entity Ownership in Apollo Federation](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/enforce-ownership.md): Learn how to designate entity ownership and make "entity extension" a first-class concept in your Apollo Federation 2 supergraph. - [Use contexts to share data](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/entities/use-contexts.md): Use the @context and @fromContext directives to enable a subgraph to share fields. These directives define contexts that enable data sharing along type hierarchies. ## Docs > Schema Design > Schema Design Guides > Schema Design Principles - [Demand Oriented Schema Design](https://www.apollographql.com/docs/graphos/schema-design/guides/demand-oriented-schema-design.md): Support GraphQL client applications that consume data from our federated graph by designing schemas in an abstract, demand-oriented way. - [Schema Naming Conventions](https://www.apollographql.com/docs/graphos/schema-design/guides/naming-conventions.md): Learn naming and casing conventions for GraphQL schema types, fields, and arguments and how to enforce them with GraphOS. - [Namespacing by Separation of Concerns](https://www.apollographql.com/docs/graphos/schema-design/guides/namespacing-by-separation-of-concerns.md): Organize root-level operation fields into namespaces to improve the logical structure to your GraphQL schema. ## Docs > Schema Design > Schema Design Guides > Schema Design Principles > Server-Driven UI - [Server-Driven UI Basics](https://www.apollographql.com/docs/graphos/schema-design/guides/sdui/basics.md): Server-driven UI is an architectural pattern that aims to reduce client-side logic and provide consistency across client platforms. - [Server-Driven UI Schema Design](https://www.apollographql.com/docs/graphos/schema-design/guides/sdui/schema-design.md): Explore SDUI UI patterns to structure your graph's schema for encoding and representing UI elements, using enums, contracts, and interfaces. - [Server-Driven UI Client Design](https://www.apollographql.com/docs/graphos/schema-design/guides/sdui/client-design.md): Use a component registry and design systems and tokens to simplify client logic with SDUI. ## Docs > Schema Design > Schema Design Guides > Data Handling Techniques - [Handling the N+1 Problem](https://www.apollographql.com/docs/graphos/schema-design/guides/handling-n-plus-one.md): Learn how to optimize subgraph performance in GraphQL by efficiently handling reference resolvers to avoid the N+1 problem. - [Nullability](https://www.apollographql.com/docs/graphos/schema-design/guides/nullability.md): Weigh the implications of choices about nullability for every GraphQL type, field, and argument in a schema. - [Recommended Usage for GraphQL Interfaces](https://www.apollographql.com/docs/graphos/schema-design/guides/interfaces.md): Interfaces enable schema fields to return one of multiple object types. Explore examples and avoid common pitfalls in using interfaces. - [Designing Response Types](https://www.apollographql.com/docs/graphos/schema-design/guides/response-type-pattern.md): Learn different response type patterns for GraphQL queries and mutations. - [Errors as Data Explained](https://www.apollographql.com/docs/graphos/schema-design/guides/errors-as-data-explained.md): Union types can represent multiple types of data in a single field and can help you handle GraphQL responses with clarity and flexibility. - [Aggregating Data Across Subgraphs](https://www.apollographql.com/docs/graphos/schema-design/guides/aggregating-data-across-subgraphs.md): If product requirements don't align with a single domain, it may suggest the need for a new domain or subgraph. - [Graph Identities](https://www.apollographql.com/docs/graphos/schema-design/guides/graph-identities.md): The purpose of this technote is to demonstrate queries/mutations for identifying an actor attempting to use the graph. ## Docs > Schema Design > Schema Design Guides > Schema Development and Evolution - [Mocking to Unblock Development](https://www.apollographql.com/docs/graphos/schema-design/guides/mocking.md): Mock parts of your supergraph as you develop both your subgraphs and clients to enable teams to work in parallel without blocking each other. - [Schema Deprecations](https://www.apollographql.com/docs/graphos/schema-design/guides/deprecations.md): Gracefully manage GraphQL type and field deprecations by using field metrics and the @deprecated type system directive. - [Mutation Management with Apollo Federation](https://www.apollographql.com/docs/graphos/schema-design/guides/distributed-orchestration.md): Apollo Federation sequences mutation fields but additional considerations are necessary when handling state changes across distributed systems. - [Moving a GraphQL Monolith to Apollo Federation](https://www.apollographql.com/docs/graphos/schema-design/guides/from-monolith.md): A step-by-step guide for migrating from a GraphQL monolith to a federated supergraph with Apollo Federation. - [Migrating from Schema Stitching](https://www.apollographql.com/docs/graphos/schema-design/guides/migrating-from-stitching.md): Learn how to smoothly transition from schema stitching to Apollo Federation for your distributed federated GraphQL services. ## Docs > Connectors - [Why use Apollo Connectors?](https://www.apollographql.com/docs/graphos/connectors/why-connectors.md): Integrate and orchestrate REST services with your supergraph ## Docs > Connectors > Connectors Essentials - [Apollo Connectors Requirements](https://www.apollographql.com/docs/graphos/connectors/requirements.md): Understand the version requirements for Apollo Connectors, including Federation spec, build pipeline, and router compatibility for successful supergraph composition and runtime. - [Making HTTP Requests](https://www.apollographql.com/docs/graphos/connectors/requests.md): Learn how to make HTTP requests with Apollo Connectors, including specifying HTTP methods, dynamic URLs, headers, and creating request bodies. - [Mapping GraphQL Responses](https://www.apollographql.com/docs/graphos/connectors/responses.md): Configure the selection string that determines how an API endpoint's JSON response corresponds to your GraphQL schema using Apollo Connectors. - [Working with Router](https://www.apollographql.com/docs/graphos/connectors/router.md): Configuring GraphOS Router for Apollo Connectors. ## Docs > Connectors > Usage Patterns - [Common Usage Patterns for Apollo Connectors](https://www.apollographql.com/docs/graphos/connectors/usage-patterns.md): Guides demonstrating common patterns of how to use Connectors directives with Apollo GraphOS. - [Working with Entities](https://www.apollographql.com/docs/graphos/connectors/entities.md): Use Apollo Connectors to enrich and reference shared object types in a GraphQL API using REST APIs ## Docs > Connectors > Development and Tooling - [Connector Observability](https://www.apollographql.com/docs/graphos/connectors/observability.md): Understand and observe Apollo Connectors' behavior and performance with query plans and tracing in GraphOS Studio and GraphOS Router. - [Troubleshooting Connectors](https://www.apollographql.com/docs/graphos/connectors/troubleshooting.md): Fixes and workarounds for logged errors and general issues with using REST API Connectors. ## Docs > Connectors > Connectors Reference - [Apollo Connectors Preview Features](https://www.apollographql.com/docs/graphos/connectors/preview-features.md): Experimental features for Apollo Connectors - [Apollo Connectors Changelog](https://www.apollographql.com/docs/graphos/connectors/changelog.md): Documenting all changes between preview versions of Connectors - [Apollo Connectors Directives](https://www.apollographql.com/docs/graphos/connectors/directives.md): Connect REST API endpoints to GraphQL subgraphs by using declarative schema directives - [Mapping Language](https://www.apollographql.com/docs/graphos/connectors/mapping.md): Reference for Apollo Connectors mapping language. Use its declarative approach to build URIs, construct request bodies, and transform response data. - [Limitations of Apollo Connectors](https://www.apollographql.com/docs/graphos/connectors/limitations.md): Limitations of Apollo Connectors. ## Docs > GraphOS Platform - [Apollo Sandbox](https://www.apollographql.com/docs/graphos/platform/sandbox.md): Learn how Apollo Sandbox loads a running GraphQL server's schema and facilitates schema introspection, schema checks, offline usage, and more. - [The GraphOS Platform API](https://www.apollographql.com/docs/graphos/platform/platform-api.md): Fetch graph details, publish schemas, run schema checks, manage proposals, and more. Access API documentation within GraphOS Studio. ## Docs > GraphOS Platform > Schema Management - [GraphOS Schema Management](https://www.apollographql.com/docs/graphos/platform/schema-management.md): Efficiently develop and deploy changes to your GraphQL schema with the Apollo GraphOS suite of schema governance and delivery tools. ## Docs > GraphOS Platform > Schema Management > Schema Delivery > Publishing - [Publishing Schemas to GraphOS](https://www.apollographql.com/docs/graphos/platform/schema-management/delivery/publishing.md): Publish your GraphQL schemas to Apollo GraphOS using the Rover CLI or Platform API in your continuous delivery pipeline. - [Publish Schemas to GraphOS using Rover](https://www.apollographql.com/docs/graphos/platform/schema-management/delivery/publishing/rover.md): Publish your GraphQL schemas to Apollo GraphOS using the Rover CLI in your continuous delivery pipeline. - [Publish Schemas to GraphOS using the Platform API](https://www.apollographql.com/docs/graphos/platform/schema-management/delivery/publishing/platform-api.md): Publish your GraphQL schemas to Apollo GraphOS using the Apollo Platform API in your continuous delivery pipeline. ## Docs > GraphOS Platform > Schema Management > Schema Delivery - [Launches](https://www.apollographql.com/docs/graphos/platform/schema-management/delivery/launch.md): Discover what changes trigger a launch, how to monitor launch status, and the steps involved in an Apollo GraphOS launch. ## Docs > GraphOS Platform > Schema Management > Schema Delivery > Contracts - [Contracts Overview](https://www.apollographql.com/docs/graphos/platform/schema-management/delivery/contracts/overview.md): Use Apollo GraphOS contracts to tailor access to your federated GraphQL supergraph for different consumers. - [Creating and Using Contracts](https://www.apollographql.com/docs/graphos/platform/schema-management/delivery/contracts/create.md): Learn how to use the @tag directive in subgraph schemas and how to create, edit, and validate contracts in GraphOS Studio. - [Contracts Usage Patterns](https://www.apollographql.com/docs/graphos/platform/schema-management/delivery/contracts/usage-patterns.md): Learn how contracts enable teams to contribute to a single unified graph and also deliver use-case-specific schemas to different consumers. - [Contract Reference](https://www.apollographql.com/docs/graphos/platform/schema-management/delivery/contracts/reference.md): Reference for valid @tag locations, naming conventions, dependent tag relationships, and errors for Apollo GraphOS contracts. ## Docs > GraphOS Platform > Schema Management > Schema Checks - [Schema Checks](https://www.apollographql.com/docs/graphos/platform/schema-management/checks.md): Use GraphOS Schema checks to identify and validate potential breaking changes in your GraphQL schema before deployment. - [Run Schema Checks](https://www.apollographql.com/docs/graphos/platform/schema-management/checks/run.md): Learn how to run GraphOS schema checks against GraphQL schema changes—including as part of your CI pipeline. - [Run Custom Schema Checks](https://www.apollographql.com/docs/graphos/platform/schema-management/checks/custom.md): Learn how to extend the GraphOS schema checks workflow by configuring custom schema checks that allow your organization to enforce unique validation rules using your own services. - [Check Configurations](https://www.apollographql.com/docs/graphos/platform/schema-management/checks/configure.md): Configure and customize GraphOS schema checks using Apollo GraphOS Studio or Rover CLI. - [Connecting Apollo to GitHub](https://www.apollographql.com/docs/graphos/platform/schema-management/checks/github-integration.md): Enhance graphQL schema checks with the Apollo Studio GitHub app to link results to pull requests and run checks on each commit. - [Schema Checks Reference](https://www.apollographql.com/docs/graphos/platform/schema-management/checks/reference.md): GraphOS Schema checks reference for schema changes in your GraphQL schema. ## Docs > GraphOS Platform > Schema Management > Schema Linting - [Schema Linting](https://www.apollographql.com/docs/graphos/platform/schema-management/linting.md): Enforce GraphQL formatting conventions and best practices with Apollo GraphOS schema linting. - [Schema Linter Rules](https://www.apollographql.com/docs/graphos/platform/schema-management/linting/rules.md): Reference for GraphQL schema linter rules. Ensure consistent naming conventions, type definitions, and directive usage with examples for each violation. ## Docs > GraphOS Platform > Schema Management > Schema Proposals - [Schema Proposals](https://www.apollographql.com/docs/graphos/platform/schema-management/proposals.md): Use GraphOS's native GraphQL schema change management process propose, review, and track schema changes before and after publication. - [Schema Proposal Configurations](https://www.apollographql.com/docs/graphos/platform/schema-management/proposals/configure.md): Fine-tune the GraphQL schema proposal workflow by configuring permissions, default reviewers, approval requirements, and schema checks with GraphOS. - [Propose Schema Changes](https://www.apollographql.com/docs/graphos/platform/schema-management/proposals/create.md): Propose GraphQL schema changes in GraphOS Studio. Edit and lint schemas, save and check revisions, and request reviews for async collaboration. - [Review Schema Proposals](https://www.apollographql.com/docs/graphos/platform/schema-management/proposals/review.md): Review and provide feedback on GraphQL schema proposals in GraphOS Studio. Explore changes, add comments, and approve proposals. - [Implement Approved Proposals](https://www.apollographql.com/docs/graphos/platform/schema-management/proposals/implement.md): Pull GraphQL schema changes from schema proposals using Rover, validate them with schema checks, and publish them to GraphOS. ## Docs > GraphOS Platform > Explorer IDE - [GraphOS Studio Explorer](https://www.apollographql.com/docs/graphos/platform/explorer.md): Learn about the Apollo GraphOS Studio Explorer—a powerful web IDE for creating, running, and managing GraphQL operations. - [Connecting and Authenticating with the Explorer](https://www.apollographql.com/docs/graphos/platform/explorer/connect.md): Configure CORS policies, request headers, cookies, and env variables so the Apollo GraphOS Explorer can connect to your GraphQL server. - [Operation Collections](https://www.apollographql.com/docs/graphos/platform/explorer/operation-collections.md): Organize and share frequently used GraphQL operations with operation collections in GraphOS Studio Explorer. - [GraphQL Subscription Support](https://www.apollographql.com/docs/graphos/platform/explorer/subscription-support.md): Execute GraphQL subscription operations in GraphOS Studio Explorer using WebSocket or HTTP protocols. - [Embedding the Explorer](https://www.apollographql.com/docs/graphos/platform/explorer/embed.md): Embed the GraphOS Studio Explorer in your webpage, customize its appearance and behavior, and set default GraphQL operations for easy testing. - [Custom Scripts in the Explorer](https://www.apollographql.com/docs/graphos/platform/explorer/scripting.md): Use preflight and postflight scripts to manage authentication and validate GraphQL operations in the Apollo GraphOS Explorer. - [Additional Explorer Features](https://www.apollographql.com/docs/graphos/platform/explorer/additional-features.md): Explore additional features including dark mode, table layout for GraphQL response data, file uploads, and more. ## Docs > GraphOS Platform > Graph Security - [Graph Security](https://www.apollographql.com/docs/graphos/platform/security/overview.md): Best practices for securing GraphQL APIs, including limiting discoverability, error obfuscation, query depth limits, and more. - [Safelisting with Persisted Queries](https://www.apollographql.com/docs/graphos/platform/security/persisted-queries.md): Secure your GraphQL APIs by maintaining an allowlist of trusted operations. Configure security levels for incremental adoption. ## Docs > GraphOS Platform > Metrics and Insights - [GraphOS Metrics and Insights](https://www.apollographql.com/docs/graphos/platform/insights.md) ## Docs > GraphOS Platform > Metrics and Insights > Metrics Collection and Forwarding - [Sending Metrics to GraphOS](https://www.apollographql.com/docs/graphos/platform/insights/sending-operation-metrics.md): Learn how to report GraphQL operation and field usage metrics from the Apollo Router, Apollo Server, and third-party server libraries. - [Operation Signatures](https://www.apollographql.com/docs/graphos/platform/insights/operation-signatures.md): Learn how Apollo generates GraphQL operation signatures to group functionally identical operations for accurate performance analysis. - [Forwarding Metrics to Datadog](https://www.apollographql.com/docs/graphos/platform/insights/datadog-forwarding.md): Integrate Apollo with Datadog to forward GraphQL metrics from GraphOS. Visualize and set up alerts with Datadog for enhanced performance monitoring. ## Docs > GraphOS Platform > Metrics and Insights > Insights and Analysis - [Operation Metrics in GraphOS](https://www.apollographql.com/docs/graphos/platform/insights/operation-metrics.md): Apollo GraphOS empowers you to visualize key GraphQL metrics such as request rate, latency, and more for in-depth performance analysis of your graph. - [Field Usage in GraphOS](https://www.apollographql.com/docs/graphos/platform/insights/field-usage.md): Explore GraphQL schema field usage in Apollo GraphOS Studio. Analyze field requests and executions to understand your graph's performance. - [Error Diagnostics in GraphOS](https://www.apollographql.com/docs/graphos/platform/insights/errors.md): Leverage error insights in GraphOS Studio to view GraphQL errors by service, code and more. - [Segmenting Metrics by Client](https://www.apollographql.com/docs/graphos/platform/insights/client-segmentation.md): Leverage client awareness in GraphOS Studio to view GraphQL operation metrics segmented by clients, including client versions. ## Docs > GraphOS Platform > Metrics and Insights > Notifications and Alerts - [GraphOS Notifications and Alerts](https://www.apollographql.com/docs/graphos/platform/insights/notifications.md): Set up notifications for your GraphQL API's performance, schema changes, and more. Stay updated and address issues effectively using custom alerts. - [Daily Reports from GraphOS](https://www.apollographql.com/docs/graphos/platform/insights/notifications/daily-reports.md): Receive daily GraphQL activity summaries with Apollo GraphOS notifications. Analyze metrics to identify and resolve issues. - [Schema Change Notifications](https://www.apollographql.com/docs/graphos/platform/insights/notifications/schema-changes.md): Set up Apollo GraphOS notifications for GraphQL schema changes. Receive real-time alerts whenever your registered schema is modified. - [Schema Proposals Notifications](https://www.apollographql.com/docs/graphos/platform/insights/notifications/schema-proposals.md): Set up Apollo GraphOS notifications for GraphQL schema proposals. Receive real-time alerts whenever schema proposals are created or revised, or if their status changes. - [Performance Alerts from GraphOS](https://www.apollographql.com/docs/graphos/platform/insights/notifications/performance-alerts.md): Configure alerts to receive notifications in Slack or PagerDuty instance when specific operation metrics surpass defined thresholds. - [Build Status Notifications](https://www.apollographql.com/docs/graphos/platform/insights/notifications/build-status.md): Configure Apollo GraphOS to notify your team via webhook about schema build attempts in your federated GraphQL API. ## Docs > GraphOS Platform > Access Management - [GraphOS Organizations](https://www.apollographql.com/docs/graphos/platform/access-management/org.md): Discover how GraphOS organizes data through organizations, members, and roles. Learn about managing access, assigning roles, and utilizing fine-grained controls to ensure secure data handling within your organization. - [API Keys](https://www.apollographql.com/docs/graphos/platform/access-management/api-keys.md): Use API keys to authenticate requests to your federated GraphQL API. Generate and manage graph and personal API keys using Apollo GraphOS Studio. - [Members, Roles, and Permissions](https://www.apollographql.com/docs/graphos/platform/access-management/member-roles.md): Learn about Apollo GraphOS organization roles, access control permissions, member management, and API key roles for efficient collaboration. - [Export and Read Audit Logs](https://www.apollographql.com/docs/graphos/platform/access-management/audit-log.md): GraphOS Enterprise users can export and download an audit log of organizational events. Learn how to export and read audit logs from GraphOS Studio. ## Docs > GraphOS Platform > Access Management > SSO - [GraphOS Single Sign-On](https://www.apollographql.com/docs/graphos/platform/access-management/sso/overview.md): Learn how to set up Single Sign-On (SSO) for Apollo GraphOS using SAML or OIDC. Explore both self-service and assisted setup options for secure, centralized access management. - [Multi-organization SSO](https://www.apollographql.com/docs/graphos/platform/access-management/sso/multi-organization.md): Set up multi-organization SSO to switch between organizations in GraphOS Studio without needing to reauthenticate. ## Docs > GraphOS Platform > Access Management > SSO > SAML - [Set up SAML SSO with Okta](https://www.apollographql.com/docs/graphos/platform/access-management/sso/saml-okta.md): Configure Okta as your Apollo GraphOS organization's SSO provider with this SAML setup guide. - [Set up SAML SSO with Microsoft Entra ID (formerly Azure AD)](https://www.apollographql.com/docs/graphos/platform/access-management/sso/saml-microsoft-entra-id.md): Configure Microsoft Entra ID (formerly Azure AD) as your Apollo GraphOS organization's SAML SSO provider with this SAML setup guide. - [Set up SSO with a SAML-based IdP](https://www.apollographql.com/docs/graphos/platform/access-management/sso/saml-integration-guide.md): Configure a SAML-based identity provider as your Apollo GraphOS organization's SSO provider. ## Docs > GraphOS Platform > Access Management > SSO > OIDC - [Set up OIDC SSO with Okta](https://www.apollographql.com/docs/graphos/platform/access-management/sso/oidc-okta.md): Configure Okta as your Apollo GraphOS organization's SSO provider with this OIDC setup guide. - [Set up OIDC SSO with Microsoft Entra ID (formerly Azure AD)](https://www.apollographql.com/docs/graphos/platform/access-management/sso/oidc-microsoft-entra-id.md): Configure Microsoft Entra ID (formerly Azure AD) as your Apollo GraphOS organization's SSO provider with this OIDC setup guide. - [Set up SSO with an OIDC-based IdP](https://www.apollographql.com/docs/graphos/platform/access-management/sso/oidc-integration-guide.md): Configure a OpenID Connect (OIDC) based identity provider as your Apollo GraphOS organization's SSO provider. ## Docs > GraphOS Platform > Graph Management - [Add and Manage Variants](https://www.apollographql.com/docs/graphos/platform/graph-management/variants.md): Use graph variants in Apollo GraphOS to distinguish between instances of the same graph running in different environments. - [Add a Subgraph](https://www.apollographql.com/docs/graphos/platform/graph-management/add-subgraphs.md): Access templates to build a new subgraph that you can add to your GraphOS supergraph, whether you already have a GraphQL API or are building from scratch. - [Manage Subgraphs](https://www.apollographql.com/docs/graphos/platform/graph-management/manage-subgraphs.md): Learn how to view, modify, and delete subgraphs in GraphOS Studio. This guide covers managing subgraph routing URLs, understanding schema composition, and using contact info and tagging directives to enhance your supergraph's functionality. - [Updating Graph Components](https://www.apollographql.com/docs/graphos/platform/graph-management/updates.md): This tutorial shows how to update your federated GraphQL API safely. Upgrade your components in the recommended order to avoid errors. It also covers graph ownership transfer and deletion. - [Transfer graphs](https://www.apollographql.com/docs/graphos/platform/graph-management/transfers.md): Transfer graphs from one Apollo GraphOS Studio organization to another. ## Docs > GraphOS Platform > Production Readiness - [Production Readiness Checklist](https://www.apollographql.com/docs/graphos/platform/production-readiness/checklist.md): Use this checklist—covering the GraphOS Router, subgraphs, and clients—to identify potential gaps before your graph handles production traffic. ## Docs > GraphOS Platform > Production Readiness > Testing and Load Management - [Overload Protection](https://www.apollographql.com/docs/graphos/platform/production-readiness/overload-protection.md): Implement GraphQL server overload protection for high traffic scenarios to ensure availability and reduce error rates. - [Load Testing a Federated GraphQL API](https://www.apollographql.com/docs/graphos/platform/production-readiness/load-testing.md): Considerations for load testing with GraphQL in the Apollo ecosystem. - [Testing with Apollo Federation](https://www.apollographql.com/docs/graphos/platform/production-readiness/testing-with-apollo-federation.md): Test your GraphQL architecture comprehensively with unit, integration, end-to-end, composition, and component and operation testing. ## Docs > GraphOS Platform > Production Readiness > Environment and Deployment - [Graph Environment Best Practices](https://www.apollographql.com/docs/graphos/platform/production-readiness/environment-best-practices.md): Learn CI/CD best practices and examples when using graph variants for multiple deployment environments. - [Deploying API Changes with GraphOS](https://www.apollographql.com/docs/graphos/platform/production-readiness/change-management.md): Use tools like GraphOS Studio, Rover, and contracts to ensure smooth releases and minimize client impact. - [Keeping Schemas Up-To-Date in Client Apps](https://www.apollographql.com/docs/graphos/platform/production-readiness/updating-client-schema.md): Apollo's recommendations and best practices for keeping client apps up-to-date with supergraph schema changes. - [Deployment Best Practices](https://www.apollographql.com/docs/graphos/platform/production-readiness/deployment-best-practices.md): Best practices and workflows for deploying a federated GraphQL API with Apollo Federation and GraphOS. ## Docs > Routing - [Apollo Router Quickstart](https://www.apollographql.com/docs/graphos/routing/get-started.md): This quickstart tutorial walks you through installing an Apollo Router binary, running it with an example supergraph schema and a YAML configuration file, and making test queries with Apollo Sandbox. - [Router Request Lifecycle](https://www.apollographql.com/docs/graphos/routing/request-lifecycle.md): Understand how GraphQL client requests get processed through the request lifecycle pipeline of an Apollo Router. ## Docs > Routing > Configuration - [Router Configuration Overview](https://www.apollographql.com/docs/graphos/routing/configuration/overview.md): Learn how to configure the Apollo GraphOS Router or Apollo Router Core with environment variables, command-line options and commands, and YAML configuration files. - [Router Environment Variable Configuration Reference](https://www.apollographql.com/docs/graphos/routing/configuration/envvars.md): Reference of YAML configuration properties for Apollo GraphOS Router and Apollo Router Core. - [Router CLI Configuration Reference](https://www.apollographql.com/docs/graphos/routing/configuration/cli.md): Reference of command-line options for Apollo GraphOS Router and Apollo Router Core. - [Router YAML Configuration Reference](https://www.apollographql.com/docs/graphos/routing/configuration/yaml.md): Reference of YAML configuration properties for Apollo GraphOS Router and Apollo Router Core. ## Docs > Routing > Features > Security - [Supergraph Security with GraphOS Router](https://www.apollographql.com/docs/graphos/routing/security.md) - [Safelisting with Persisted Queries](https://www.apollographql.com/docs/graphos/routing/security/persisted-queries.md): Secure your federated GraphQL API by creating an allowlist of trusted operations. Minimize request latency and enhance performance. - [Authorization in the GraphOS Router](https://www.apollographql.com/docs/graphos/routing/security/authorization.md): Enforce authorization in the GraphOS Router with the @requireScopes, @authenticated, and @policy directives. - [Configuring CORS](https://www.apollographql.com/docs/graphos/routing/security/cors.md): Manage browser access to your Apollo GraphOS Router or Apollo Router Core with CORS configuration options, including origin whitelisting, wildcard origins, and credential passing. - [Cross-Site Request Forgery (CSRF) Prevention](https://www.apollographql.com/docs/graphos/routing/security/csrf.md): Prevent cross-site request forgery (CSRF) attacks in the Apollo GraphOS Router or Apollo Router Core. - [TLS](https://www.apollographql.com/docs/graphos/routing/security/tls.md) - [Request Limits](https://www.apollographql.com/docs/graphos/routing/security/request-limits.md) - [Demand Control](https://www.apollographql.com/docs/graphos/routing/security/demand-control.md): Protect your graph from malicious or demanding clients with Apollo GraphOS Router's demand control features. Estimate, calculate, observe, and reject high-cost GraphQL operations. ## Docs > Routing > Features > Security > Authentication - [JWT Authentication in the GraphOS Router](https://www.apollographql.com/docs/graphos/routing/security/jwt.md): Protect sensitive data by enabling JWT authentication in the Apollo GraphOS Router. Restrict access to credentialed users and systems. - [Authenticating Requests with the GraphOS Router](https://www.apollographql.com/docs/graphos/routing/security/router-authentication.md): Combine authorization and authentication strategies with the GraphOS Router to secure your graph through defense in depth. - [Subgraph Authentication](https://www.apollographql.com/docs/graphos/routing/security/subgraph-authentication.md): Secure communication to AWS subgraphs via the Apollo GraphOS Router or Apollo Router Core using AWS Signature Version 4 (SigV4). ## Docs > Routing > Features > Observability - [GraphOS Observability Overview](https://www.apollographql.com/docs/graphos/routing/observability.md): Learn how to collect supergraph metrics in order to monitor and optimize your GraphQL usage and performance. Collect raw metrics, insights, and alerts with Apollo GraphOS, GraphOS Studio, and GraphOS Router and Apollo Router Core. - [Federated Trace Data](https://www.apollographql.com/docs/graphos/routing/observability/federated-trace-data.md): Explore how federated traces enable fine-grained performance metrics reporting. Learn about the reporting flow and how tracing data is exposed and aggregated. ## Docs > Routing > Features > Observability > Router Telemetry - [Router Telemetry](https://www.apollographql.com/docs/graphos/routing/observability/telemetry.md): Observe and monitor the health and performance of GraphQL operations in the Apollo GraphOS Router or Apollo Router Core by collecting and exporting telemetry logs, metrics, and traces. ## Docs > Routing > Features > Observability > Router Telemetry > Log Exporters - [Router Logging](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/log-exporters/overview.md): Configure logging in the Apollo GraphOS Router or Apollo Router Core. Set the log level and output format. - [Router Logging to stdout](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/log-exporters/stdout.md): Configure logging output to stdout in the Apollo GraphOS Router or Apollo Router Core. Format in human-readable text or machine-readable JSON. ## Docs > Routing > Features > Observability > Router Telemetry > Metrics Exporters - [Metrics exporters](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/metrics-exporters/overview.md): Collect and export metrics from the Apollo GraphOS Router or Apollo Router Core for Prometheus, OpenTelemetry Protocol (OTLP), Datadog, and New Relic. - [Datadog configuration of OTLP exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/metrics-exporters/datadog.md): Configure the OpenTelemetry Protocol (OTLP) metrics exporter for Datadog in the Apollo GraphOS Router or Apollo Router Core. - [Dynatrace configuration of OTLP exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/metrics-exporters/dynatrace.md): Configure the OTLP metrics exporter for Dynatrace via OpenTelemetry Protocol (OTLP) in the Apollo Router. - [New Relic configuration of OTLP exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/metrics-exporters/new-relic.md): Configure the New Relic exporter for metrics via OpenTelemetry Protocol (OTLP) in the Apollo GraphOS Router or Apollo Router Core. - [OpenTelemetry Protocol (OTLP) exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/metrics-exporters/otlp.md): Configure the OpenTelemetry Protocol (OTLP) exporter for metrics in the Apollo GraphOS Router or Apollo Router Core. - [Prometheus exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/metrics-exporters/prometheus.md): Configure the Prometheus metrics exporter endpoint in the Apollo GraphOS Router or Apollo Router Core. ## Docs > Routing > Features > Observability > Router Telemetry > Trace Exporters - [Router Tracing](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/trace-exporters/overview.md): Collect and export tracing information from the Apollo GraphOS Router or Apollo Router Core. Supports OpenTelemetry Protocol (OTLP), Datadog, New Relic, Jaeger, Zipkin. - [Datadog configuration of OTLP exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/trace-exporters/datadog.md): Configure the OpenTelemetry Protocol (OTLP) trace exporter for Datadog in the Apollo GraphOS Router or Apollo Router Core. - [Dynatrace configuration of OTLP exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/trace-exporters/dynatrace.md): Configure the OpenTelemetry Protocol (OTLP) trace exporter for Dynatrace in the Apollo GraphOS Router or Apollo Router Core. - [Jaeger configuration of OTLP exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/trace-exporters/jaeger.md): Configure the OpenTelemetry Protocol (OTLP) trace exporter for Jaeger in the Apollo GraphOS Router or Apollo Router Core. - [New Relic configuration of OTLP exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/trace-exporters/new-relic.md): Configure the OpenTelemetry Protocol (OTLP) trace exporter for New Relic in the Apollo GraphOS Router or Apollo Router Core. - [OpenTelemetry Protocol (OTLP) exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/trace-exporters/otlp.md): Configure the OpenTelemetry Protocol (OTLP) exporter for tracing in the Apollo GraphOS Router or Apollo Router Core. - [Zipkin exporter](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/trace-exporters/zipkin.md): Enable and configure the Zipkin exporter for tracing in the Apollo GraphOS Router or Apollo Router Core. ## Docs > Routing > Features > Observability > Router Telemetry > Instrumentation - [Instruments](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/instrumentation/instruments.md): Create and customize instruments to collect data and report measurements from the Apollo GraphOS Router's request lifecycle services. - [Events](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/instrumentation/events.md): Capture standard and custom events from the Apollo GraphOS Router's request lifecycle services. - [Conditions](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/instrumentation/conditions.md): Set conditions for when events or instruments are triggered in the Apollo GraphOS Router. - [Spans](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/instrumentation/spans.md): Use spans to add contextual information from the Apollo GraphOS Router or Apollo Router Core to traces displayed by your application performance monitors (APM). - [Selectors](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/instrumentation/selectors.md): Extract and select data from the Apollo GraphOS Router's pipeline services to attach to telemetry. - [OpenTelemetry standard attributes](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/instrumentation/standard-attributes.md): Attach OpenTelemetry (OTel) standard attributes to Apollo GraphOS Router or Apollo Router Core telemetry. - [Router Instruments](https://www.apollographql.com/docs/graphos/routing/observability/telemetry/instrumentation/standard-instruments.md): Reference of standard metric instruments for the request lifecycle of GraphOS Router and Apollo Router Core. Consumable via the router's metrics exporters. ## Docs > Routing > Features > Observability > Subgraph Observability - [Subgraph Error Inclusion](https://www.apollographql.com/docs/graphos/routing/observability/subgraph-error-inclusion.md): Configure the Apollo GraphOS Router or Apollo Router Core to propagate subgraph errors to clients for all subgraphs or on a per-subgraph basis. - [Debugging Subgraph Requests from the GraphOS Router or @apollo/gateway](https://www.apollographql.com/docs/graphos/routing/observability/debugging-subgraph-requests.md): Log query plans and subgraph calls with the Apollo GraphOS Router and @apollo/gateway to help debug problematic queries. ## Docs > Routing > Features > Observability > Client Observability - [Debugging Client Requests to GraphOS Router](https://www.apollographql.com/docs/graphos/routing/observability/debugging-client-requests.md): Learn how to use GraphOS router telemetry and GraphOS Insights to inspect and debug incoming HTTP client requests. - [Client Awareness and Enforcement](https://www.apollographql.com/docs/graphos/routing/observability/client-id-enforcement.md): Improve GraphQL operation monitoring by tagging operations with with client details. See code examples for Apollo GraphOS Router and Apollo Server. ## Docs > Routing > Features > Observability > OpenTelemetry - [OpenTelemetry in Apollo Federation](https://www.apollographql.com/docs/graphos/routing/observability/otel.md): Learn how to configure your federated GraphQL services to generate and process telemetry data, including logs, traces, and metrics. - [Connecting OpenTelemetry Traces to Prometheus](https://www.apollographql.com/docs/graphos/routing/observability/otel-traces-to-prometheus.md): Convert operation traces into aggregated metrics using OpenTelemetry Collector and Prometheus for a broader view of your graph's performance. ## Docs > Routing > Features > Query Planning - [Native Query Planner](https://www.apollographql.com/docs/graphos/routing/query-planning/native-query-planner.md) - [Best Practices for Query Planning](https://www.apollographql.com/docs/graphos/routing/query-planning/query-planning-best-practices.md): Learn best practices in GraphQL schema design to achieve efficient query planning of your graphs using Apollo Federation and Apollo Router ## Docs > Routing > Features > Caching - [In-Memory Caching](https://www.apollographql.com/docs/graphos/routing/performance/caching/in-memory.md): Configure in-memory caching for improved performance in Apollo GraphOS Router or Apollo Router Core. Configure query plans and automatic persisted queries caching. - [Distributed Caching for the GraphOS Router](https://www.apollographql.com/docs/graphos/routing/performance/caching/distributed.md): Distributed caching for GraphOS Router with GraphOS Enterprise. Configure a Redis-backed cache for query plans and automatic persisted queries (APQ). - [Subgraph Entity Caching for the GraphOS Router](https://www.apollographql.com/docs/graphos/routing/performance/caching/entity.md): Subgraph entity caching for GraphOS Router with GraphOS Enterprise. Cache and reuse individual entities across queries. ## Docs > Routing > Features > Performance and Scaling - [Traffic Shaping](https://www.apollographql.com/docs/graphos/routing/performance/traffic-shaping.md): Fine-tune traffic performance and reliability in GraphOS Router and Apollo Router Core with YAML configuration for client and subgraph traffic shaping. - [Query Batching](https://www.apollographql.com/docs/graphos/routing/performance/query-batching.md): Handle multiple GraphQL requests with GraphOS Router's query batching capabilities. Aggregate operations into single HTTP requests to preserve data consistency. ## Docs > Routing > Features > Client Features - [Header Propagation](https://www.apollographql.com/docs/graphos/routing/header-propagation.md): Configure which HTTP headers the Apollo GraphOS Router or Apollo Router Core sends to which subgraphs. Define per-subgraph header rules, along with rules that apply to all subgraphs. - [@defer Directive Support](https://www.apollographql.com/docs/graphos/routing/operations/defer.md): Improve your GraphQL query performance with GraphOS Router and Apollo Router Core's support for the @defer directive. Incrementally deliver response data by deferring certain fields. - [File uploads](https://www.apollographql.com/docs/graphos/routing/operations/file-upload.md): Configure the GraphOS Router to receive file uploads using the GraphQL multipart request spec. ## Docs > Routing > Features > Client Features > GraphQL Subscriptions - [Overview of GraphQL Subscription Support](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/overview.md): Configure your router to support GraphQL subscriptions, enabling clients to receive real-time updates via WebSocket or HTTP callbacks. - [Configure GraphQL Subscription Support](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/configuration.md): Configure your router to support GraphQL subscriptions, enabling clients to receive real-time updates via WebSocket or HTTP callbacks. - [HTTP Callback Protocol for GraphQL Subscriptions](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/callback-protocol.md): Understand the HTTP Callback Protocol for GraphQL Subscriptions with the GraphOS Router. Learn initialization, main loop, message types, and error handling. - [Multipart HTTP protocol for GraphQL Subscriptions](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/multipart-protocol.md): Enable real-time updates via multipart HTTP protocol for GraphQL subscriptions with the GraphOS Router. Learn about execution, heartbeats, and error handling. - [Enabling HTTP Subscriptions with the GraphOS Router and an API Gateway](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/api-gateway.md): Enable HTTP multipart subscriptions when using an API gateway in front of the router. ## Docs > Routing > Features > Customization - [Router Customizations](https://www.apollographql.com/docs/graphos/routing/customization/overview.md): Extend the GraphOS Router or Apollo Router Core with custom functionality. Understand the request lifecycle and how customizations intervene at specific points. ## Docs > Routing > Features > Customization > Coprocessors - [External Coprocessing](https://www.apollographql.com/docs/graphos/routing/customization/coprocessor.md): Customize the Apollo GraphOS Router with external coprocessing. Write standalone code in any language, hook into request lifecycle, and modify request/response details. - [Coprocessor Reference](https://www.apollographql.com/docs/graphos/routing/customization/coprocessor/reference.md) ## Docs > Routing > Features > Customization > Rhai Scripts - [Rhai Scripts to customize routers](https://www.apollographql.com/docs/graphos/routing/customization/rhai.md): Customize your Apollo Router Core or GraphOS Router functionality with Rhai scripts. Manipulate strings, process headers and more for enhanced performance. - [Rhai Script API Reference](https://www.apollographql.com/docs/graphos/routing/customization/rhai/reference.md): This reference documents the symbols and behaviors that are specific to Rhai customizations for the Apollo GraphOS Router and Apollo Router Core. Includes entry point hooks, logging, and more. ## Docs > Routing > Features > Customization > Custom Builds - [Creating a Custom Apollo Router Core Binary](https://www.apollographql.com/docs/graphos/routing/customization/custom-binary.md): Compile a custom Apollo Router Core binary from source. Learn to create native Rust plugins. - [Writing Native Rust Plugins](https://www.apollographql.com/docs/graphos/routing/customization/native-plugins.md): Extend the Apollo GraphOS Router or Apollo Router Core with custom Rust code. Plan, build, and register plugins. Define plugin configuration and implement lifecycle hooks. ## Docs > Routing > Deployment - [Deploying Self-Hosted Apollo Router](https://www.apollographql.com/docs/graphos/routing/self-hosted.md) - [Deploying GraphOS Router in Docker](https://www.apollographql.com/docs/graphos/routing/self-hosted/containerization/docker.md): Run an Apollo Router container image in Docker with examples covering basic setup, configuration overrides, debugging, and building custom Docker images. - [Deploy in Kubernetes](https://www.apollographql.com/docs/graphos/routing/self-hosted/containerization/kubernetes.md): Deploy the Apollo GraphOS Router or Apollo Router Core in Kubernetes using Helm charts. Customize configurations, enable metrics, and choose values for migration. ## Docs > Routing > Deployment > AWS - [Deploying GraphOS Router on AWS](https://www.apollographql.com/docs/graphos/routing/self-hosted/containerization/aws.md): Build and deploy Apollo Router on Amazon Web Services (AWS) with Amazon Elastic Container Service (ECS) ## Docs > Routing > Deployment > Azure - [Deploying GraphOS Router on Azure](https://www.apollographql.com/docs/graphos/routing/self-hosted/containerization/azure.md): Build and deploy Apollo GraphOS Router as an Azure Container App ## Docs > Routing > Deployment > GCP - [Deploying GraphOS Router on GCP](https://www.apollographql.com/docs/graphos/routing/self-hosted/containerization/gcp.md): Build and deploy Apollo GraphOS Router or Apollo Router Core to Google Cloud Platform (GCP) with Google Cloud Run. ## Docs > Routing > Deployment > Apollo Cloud Routing - [Cloud Routing](https://www.apollographql.com/docs/graphos/routing/cloud.md) - [Cloud Router Configuration](https://www.apollographql.com/docs/graphos/routing/cloud/configuration.md): Learn about cloud router configurations including HTTP header rules, CORSs settings, secret management, and more in GraphOS Studio. - [Secure Subgraphs](https://www.apollographql.com/docs/graphos/routing/cloud/secure-subgraphs.md): Generate a shared secret and configure your graph router and subgraphs to secure your federated GraphQL API. - [GraphQL Subscriptions in Cloud Supergraphs](https://www.apollographql.com/docs/graphos/routing/cloud/subscriptions.md): Cloud routers support GraphQL subscriptions by default, enabling clients to receive real-time updates via WebSocket or HTTP callbacks. - [Cloud Serverless Overview](https://www.apollographql.com/docs/graphos/routing/cloud/serverless.md): Learn about Apollo GraphOS Serverless cloud routers, including intended use cases, limitations, and router statuses. ## Docs > Routing > Deployment > Apollo Cloud Routing > Dedicated - [Cloud Dedicated Overview](https://www.apollographql.com/docs/graphos/routing/cloud/dedicated.md): Learn about Apollo's dedicated cloud routing for GraphQL APIs including available AWS regions and pricing. - [Get Started with Cloud Dedicated](https://www.apollographql.com/docs/graphos/routing/cloud/dedicated-quickstart.md): Run a cloud router for your GraphQL APIs on dedicated infrastructure that Apollo provisions and manages. - [Custom Domains](https://www.apollographql.com/docs/graphos/routing/cloud/custom-domains.md): Use a custom domain for your cloud router endpoint to minimize client-side changes, use existing security policies, and shield against DDoS attacks. - [Throughput Guide](https://www.apollographql.com/docs/graphos/routing/cloud/throughput-guide.md): Learn about Graph Compute Units (GCUs)—a measure of throughput—and how to calculate and manage them for your supergraph on GraphOS Dedicated - [Migrate to Dedicated](https://www.apollographql.com/docs/graphos/routing/cloud/migrate-to-dedicated.md): Migrate your self-hosted GraphQL APIs to a federated cloud supergraph with a pre-provisioned router on dedicated infrastructure. ## Docs > Routing > Deployment > Apollo Cloud Routing > Dedicated > AWS Lattice - [Amazon VPC Lattice Configuration](https://www.apollographql.com/docs/graphos/routing/cloud/lattice-configuration.md): Configure Amazon VPC Lattice to send traffic to and receive traffic from your Apollo GraphOS cloud router. - [Amazon VPC Lattice Management](https://www.apollographql.com/docs/graphos/routing/cloud/lattice-management.md): Manage your Apollo GraphOS cloud router with Amazon VPC Lattice to monitor, restrict, and remove access to subgraphs. - [Lattice Troubleshooting Guide](https://www.apollographql.com/docs/graphos/routing/cloud/lattice-troubleshooting.md): Troubleshoot common issues and errors with Amazon VPC Lattice and an Apollo Cloud Dedicated router ## Docs > Routing > Deployment > Tools - [Router Resource Estimator](https://www.apollographql.com/docs/graphos/routing/self-hosted/resource-estimator.md): Estimate the system resources you need to allocate for the Apollo GraphOS Router to run production traffic. - [Health Checks](https://www.apollographql.com/docs/graphos/routing/self-hosted/health-checks.md): Learn how to run health checks to determine whether an Apollo GraphOS Router or Apollo Router Core is available and ready to start serving traffic. - [Managing GraphOS Router Resources in Kubernetes](https://www.apollographql.com/docs/graphos/routing/self-hosted/resource-management.md): Recommendations and considerations for determining the correct resource requests and limits for application pods in a Kubernetes system. ## Docs > Routing > Releases - [Apollo Router Changelogs](https://www.apollographql.com/docs/graphos/routing/changelog.md): Changelog of latest Apollo Router release - [What's New in GraphOS Router v2.x](https://www.apollographql.com/docs/graphos/routing/about-v2.md): What's new in Apollo GraphOS Router version 2.x, including Long Term Release (LTS) status, key features, and how to upgrade - [Upgrading from Versions 1.x](https://www.apollographql.com/docs/graphos/routing/upgrade/from-router-v1.md): Learn how to upgrade from version 1.x to 2.x of Apollo GraphOS Router. - [Gateway Migration Guide](https://www.apollographql.com/docs/graphos/routing/migration/from-gateway.md): Learn how to migrate a federated graph from @apollo/gateway to the Apollo GraphOS Router or Apollo Router Core without any changes to your subgraphs. - [Does GraphOS Router Replace My API Gateway?](https://www.apollographql.com/docs/graphos/routing/router-api-gateway-comparison.md): The GraphOS Router is not based on service mapping, it's a solution to handle your API orchestration for all your different clients operations. ## Docs > Routing > GraphOS Integration - [GraphOS Router License](https://www.apollographql.com/docs/graphos/routing/license.md): Learn how to manage the license for an Apollo GraphOS Router, including offline license configuration. - [Licensed GraphOS Router Features](https://www.apollographql.com/docs/graphos/routing/graphos-features.md): Unlock Enterprise features for the GraphOS Router by connecting it to Apollo GraphOS. - [Apollo Uplink](https://www.apollographql.com/docs/graphos/routing/uplink.md): Learn how to configure Apollo Uplink for managed GraphQL federation, including polling behavior and Uplink URLs. - [GraphOS reporting](https://www.apollographql.com/docs/graphos/routing/graphos-reporting.md): Report GraphQL operation usage metrics from the Apollo GraphOS Router to GraphOS to enable schema checks and metrics visualization in GraphOS Studio. ## Docs > Routing > Reference - [Federation Version Support](https://www.apollographql.com/docs/graphos/routing/federation-version-support.md): This reference shows which version of Apollo Federation each GraphOS Router and Apollo Router Core release is compiled against. Ensure your router uses at least the listed federation version. - [Router Errors](https://www.apollographql.com/docs/graphos/routing/errors.md): Reference of error codes and HTTP status codes returned by Apollo GraphOS Router and Apollo Router Core, including explanations and solutions. ## Docs > Resources - [Apollo Product Changelogs](https://www.apollographql.com/docs/graphos/resources/changelog.md) - [Apollo Glossary](https://www.apollographql.com/docs/graphos/resources/glossary.md): Glossary of Apollo and GraphQL terminology - [Apollo Solutions](https://www.apollographql.com/docs/graphos/resources/solutions.md): Explore Apollo's collection of GitHub repositories featuring examples, tools, and CLI utilities to accelerate your GraphQL journey. Discover resources, demos, and solutions designed by the Apollo Solutions team. ## Docs > Resources > Release Policies - [Apollo Feature Launch Stages](https://www.apollographql.com/docs/graphos/resources/feature-launch-stages.md) - [GraphOS Router Release Lifecycle](https://www.apollographql.com/docs/graphos/resources/router-release-lifecycle.md) - [Apollo Client Library Release Lifecycle](https://www.apollographql.com/docs/graphos/resources/client-library-release-lifecycle.md) ## Docs > Resources > Architecture - [Reference Architecture](https://www.apollographql.com/docs/graphos/resources/architecture.md): Learn about the fundamental concepts and configuration underlying Apollo's reference architecture for enterprise deployment of GraphOS with a self-hosted router. ## Docs > Resources > Architecture > Supergraph Architecture Framework - [Supergraph Architecture Framework](https://www.apollographql.com/docs/graphos/resources/saf.md): Learn about best practices and assess your graph's current state - [Operational Excellence](https://www.apollographql.com/docs/graphos/resources/saf/operational-excellence.md): Learn best practices for GraphQL schema design, organization structure, standards enforcement, and supergraph scaling and health maintenance. - [Security](https://www.apollographql.com/docs/graphos/resources/saf/security.md): Secure your federated GraphQL API with Apollo GraphOS and a defense-in-depth approach. Prevent data leakage and protect upstream resources. - [Reliability](https://www.apollographql.com/docs/graphos/resources/saf/reliability.md): Boost your federated GraphQL API's reliability via effective testing, efficient resource usage, and preventing issues before they reach production. - [Performance](https://www.apollographql.com/docs/graphos/resources/saf/performance.md): Enhance federated GraphQL API performance with optimization techniques including subscriptions, caching, and observability tools. - [Developer Experience](https://www.apollographql.com/docs/graphos/resources/saf/developer-experience.md): Enhance developer productivity with GraphQL Federation via streamlined workflows, effective schema management, and comprehensive onboarding. ## Docs > Resources > GraphQL Adoption Guides - [GraphQL Adoption Patterns](https://www.apollographql.com/docs/graphos/resources/guides/graphql-adoption-patterns.md): Learn shortcomings and solutions for GraphQL adoption patterns and anti-patterns, including monoliths, BFFs.queries a single GraphQL server. - [GraphQL as an Abstraction Layer](https://www.apollographql.com/docs/graphos/resources/guides/using-graphql-for-abstraction.md): Avoid BFF sprawl by using GraphQL as an abstraction between service consumers and backend services. - [Supergraph Stewardship](https://www.apollographql.com/docs/graphos/resources/guides/supergraph-stewardship.md): Strong stewardship practices maintain a supergraph's integrity while simultaneously driving its adoption across teams. ## Docs > Tools & SDKs > Rover CLI - [The Rover CLI](https://www.apollographql.com/docs/rover.md): Manage, maintain, and compose GraphQL graphs effortlessly with Rover CLI, the command-line interface for Apollo GraphOS. - [Installing Rover](https://www.apollographql.com/docs/rover/getting-started.md) - [Configuring Rover](https://www.apollographql.com/docs/rover/configuring.md): Configure Rover CLI for interaction with GraphOS. Learn to authenticate, set up configuration profiles, manage logging, output formats, and more. - [Using Rover with a Proxy Server](https://www.apollographql.com/docs/rover/proxy.md): Learn to configure Rover CLI for HTTP or SOCKS5 proxy servers. Optimize communication with Apollo's endpoints. - [Using Rover in CI/CD](https://www.apollographql.com/docs/rover/ci-cd.md): Run Rover commands on popular CI/CD providers like CircleCI, GitHub Actions, Bitbucket Pipelines, Jenkins, and Gitlab CI/CD. - [Rover Conventions](https://www.apollographql.com/docs/rover/conventions.md): Reference for Rover command conventions including key terminology like graph, subgraph, supergraph, and graph refs to specify GraphOS variants. - [Privacy and Data Collection](https://www.apollographql.com/docs/rover/privacy.md): Understand what data Rover collects and how to opt out of data collection - [Contributing to Rover](https://www.apollographql.com/docs/rover/contributing.md): How to contribute to Rover, including prerequisites, workflows for building and testing the CLI, IDE recommendations, and PR guidelines. - [Rover CLI Error Codes](https://www.apollographql.com/docs/rover/errors.md): This page serves as an index for quick reference to all error codes in Rover, their descriptions, and potential solutions. ## Docs > Tools & SDKs > Rover CLI > Commands - [Rover cloud commands](https://www.apollographql.com/docs/rover/commands/cloud.md): Fetch and manage cloud resources with the `rover cloud` set of commands. - [Rover config Commands](https://www.apollographql.com/docs/rover/commands/config.md): Create and manage configuration profiles, or different GraphOS identities, with the rover config set of commands. - [Rover contract Commands](https://www.apollographql.com/docs/rover/commands/contracts.md): Learn how to publish GraphOS contracts, fetch contract details, and manage contract configurations with Reover contract commands. - [The Rover dev Command](https://www.apollographql.com/docs/rover/commands/dev.md): Use the Rover CLI dev command to run your federated GraphQL API in your local development environment. Learn how to start a router session, add and remove subgraphs, and more. - [The Rover explain Command](https://www.apollographql.com/docs/rover/commands/explain.md): Use the explain command to get descriptions of Rover CLI error codes. This command helps you troubleshoot and understand the reasons behind errors. - [Rover graph Commands](https://www.apollographql.com/docs/rover/commands/graphs.md): Use Rover CLI commands to interact with graphs and fetch GraphQL API schemas from GraphOS or via introspection. - [The Rover init Command](https://www.apollographql.com/docs/rover/commands/init.md): Use the Rover CLI init command to initialize a federated GraphQL API using Apollo Federation and the GraphOS Router. - [The Rover license Command](https://www.apollographql.com/docs/rover/commands/license.md): Learn how to manage GraphOS Enterprise licenses, including offline licenses, using the Rover CLI license command. - [The Rover persisted-queries Command](https://www.apollographql.com/docs/rover/commands/persisted-queries.md): Publish persisted query manifests for safelisting and performance optimization by using the Rover CLI persisted-queries command. - [Rover README Commands](https://www.apollographql.com/docs/rover/commands/readmes.md): Learn how to publish and retrieve your Apollo GraphOS graph variant's README using Rover CLI commands. - [Rover subgraph Commands](https://www.apollographql.com/docs/rover/commands/subgraphs.md): Explore Rover CLI commands for fetching, publishing, and managing subgraphs within federated GraphQL supergraphs. - [Rover supergraph Commands](https://www.apollographql.com/docs/rover/commands/supergraphs.md): Learn Rover CLI commands for fetching, composing, and managing supergraphs within federated GraphQL architectures. - [Rover template Commands](https://www.apollographql.com/docs/rover/commands/template.md): Use Rover CLI template commands to generate boilerplate code for new subgraph projects, selecting from various GraphQL Federation compatible implementations. ## Docs > Tools & SDKs > Rover CLI > The Apollo CLI (deprecated) - [The Apollo CLI](https://www.apollographql.com/docs/rover/apollo-cli.md): Learn about the partially deprecated Apollo CLI and how to install it. - [Validating Client Operations](https://www.apollographql.com/docs/rover/validating-client-operations.md) - [Migrating to Rover](https://www.apollographql.com/docs/rover/migration.md): Learn about the partially deprecated Apollo CLI and how to transition to the Rover CLI for interacting with Apollo GraphOS services. ## Docs > Tools & SDKs > IDE Support > IDE Support - [IDE Support for Graph Development](https://www.apollographql.com/docs/ide-support.md): Enhance your development workflow with federation-specific features in VS Code, Vim, and IntelliJ-based IDEs. - [Graph Development in VS Code](https://www.apollographql.com/docs/ide-support/vs-code.md): Configure Apollo's VS Code Extension to validate GraphQL schemas with Apollo Federation and Apollo Connectors. - [Graph Development in JetBrains IDEs](https://www.apollographql.com/docs/ide-support/jetbrains.md): Configure Apollo's Plugin to validate GraphQL schemas with Apollo Federation and Apollo Connectors. - [Graph Development in Vim and NeoVim](https://www.apollographql.com/docs/ide-support/vim.md): Configure Vim/NeoVim to validate GraphQL schemas with Apollo Federation and Apollo Connectors. ## Docs > Tools & SDKs > Apollo Client (Web) - [Introduction to Apollo Client](https://www.apollographql.com/docs/react.md): Discover Apollo Client, a powerful state management library for JavaScript. Learn how it simplifies fetching, caching, and more with GraphQL. - [Why Apollo Client?](https://www.apollographql.com/docs/react/why-apollo.md): Learn how Apollo Client simplifies data management with GraphQL, offers intelligent caching, and unifies remote and local data. - [Get started with Apollo Client](https://www.apollographql.com/docs/react/get-started.md): Learn how to set up your React app, fetch GraphQL data, and integrate Apollo Client seamlessly into your UI with this step-by-step tutorial. ## Docs > Tools & SDKs > Apollo Client (Web) > Fetching - [Queries](https://www.apollographql.com/docs/react/data/queries.md): Fetch data with the useQuery hook - [Suspense](https://www.apollographql.com/docs/react/data/suspense.md): Use React 18 Suspense features with Apollo Client - [Fragments](https://www.apollographql.com/docs/react/data/fragments.md): Share fields between operations - [Mutations in Apollo Client](https://www.apollographql.com/docs/react/data/mutations.md): Modify data with the useMutation hook - [Refetching queries in Apollo Client](https://www.apollographql.com/docs/react/data/refetching.md) - [Subscriptions](https://www.apollographql.com/docs/react/data/subscriptions.md): Get real-time updates from your GraphQL server - [Using GraphQL directives in Apollo Client](https://www.apollographql.com/docs/react/data/directives.md): Configure GraphQL fields and fragments - [Handling operation errors](https://www.apollographql.com/docs/react/data/error-handling.md) - [Document transforms](https://www.apollographql.com/docs/react/data/document-transforms.md): Make custom modifications to your GraphQL documents - [Using the @defer directive in Apollo Client](https://www.apollographql.com/docs/react/data/defer.md): Receive query response data incrementally - [GraphQL query best practices](https://www.apollographql.com/docs/react/data/operation-best-practices.md): Operation naming, GraphQL variables, and more ## Docs > Tools & SDKs > Apollo Client (Web) > Caching - [Caching in Apollo Client](https://www.apollographql.com/docs/react/caching/overview.md): Overview - [Configuring the Apollo Client cache](https://www.apollographql.com/docs/react/caching/cache-configuration.md) - [Reading and writing data to the cache](https://www.apollographql.com/docs/react/caching/cache-interaction.md) - [Garbage collection and cache eviction](https://www.apollographql.com/docs/react/caching/garbage-collection.md) - [Customizing the behavior of cached fields](https://www.apollographql.com/docs/react/caching/cache-field-behavior.md) - [Memory management](https://www.apollographql.com/docs/react/caching/memory-management.md): Learn how to choose and set custom cache sizes with Apollo Client. - [Advanced topics on caching in Apollo Client](https://www.apollographql.com/docs/react/caching/advanced-topics.md) ## Docs > Tools & SDKs > Apollo Client (Web) > Pagination - [Pagination in Apollo Client](https://www.apollographql.com/docs/react/pagination/overview.md): Overview - [Core pagination API](https://www.apollographql.com/docs/react/pagination/core-api.md): Fetching and caching paginated results - [Offset-based pagination](https://www.apollographql.com/docs/react/pagination/offset-based.md) - [Cursor-based pagination](https://www.apollographql.com/docs/react/pagination/cursor-based.md) - [Key arguments in Apollo Client](https://www.apollographql.com/docs/react/pagination/key-args.md): Using the keyArgs API ## Docs > Tools & SDKs > Apollo Client (Web) > Local State - [Managing local state](https://www.apollographql.com/docs/react/local-state/local-state-management.md): Interacting with local data in Apollo Client - [Local-only fields in Apollo Client](https://www.apollographql.com/docs/react/local-state/managing-state-with-field-policies.md): Fetch local and remote data with one GraphQL query - [Reactive variables](https://www.apollographql.com/docs/react/local-state/reactive-variables.md): State containers integrated into Apollo Client's reactivity model - [Client-side schema](https://www.apollographql.com/docs/react/local-state/client-side-schema.md): Extend your schema with client-specific fields - [Local resolvers](https://www.apollographql.com/docs/react/local-state/local-resolvers.md): Manage local data with GraphQL like resolvers ## Docs > Tools & SDKs > Apollo Client (Web) > Development & Testing - [Developer tools](https://www.apollographql.com/docs/react/development-testing/developer-tooling.md): Improve your developer experience with these services and extensions - [TypeScript with Apollo Client](https://www.apollographql.com/docs/react/development-testing/static-typing.md) - [Testing React components](https://www.apollographql.com/docs/react/development-testing/testing.md): Using MockedProvider and associated APIs - [Schema-driven testing](https://www.apollographql.com/docs/react/development-testing/schema-driven-testing.md): Using createTestSchema and associated APIs - [Mocking schema capabilities](https://www.apollographql.com/docs/react/development-testing/client-schema-mocking.md): Start on client-side features before your server supports them - [Reducing bundle size](https://www.apollographql.com/docs/react/development-testing/reducing-bundle-size.md): Squeeze those last few bytes out of your production build ## Docs > Tools & SDKs > Apollo Client (Web) > Performance - [Improving performance in Apollo Client](https://www.apollographql.com/docs/react/performance/performance.md) - [Optimistic mutation results](https://www.apollographql.com/docs/react/performance/optimistic-ui.md): Update your UI before your server responds - [Server-side rendering](https://www.apollographql.com/docs/react/performance/server-side-rendering.md) - [Compiling queries with Transpilers](https://www.apollographql.com/docs/react/performance/babel.md) ## Docs > Tools & SDKs > Apollo Client (Web) > Integrations - [View integrations](https://www.apollographql.com/docs/react/integrations/integrations.md): How to use Apollo Client with the view layer your application is developed in! - [Integrating with React Native](https://www.apollographql.com/docs/react/integrations/react-native.md) - [Loading queries with Webpack](https://www.apollographql.com/docs/react/integrations/webpack.md) ## Docs > Tools & SDKs > Apollo Client (Web) > Networking - [Basic HTTP networking](https://www.apollographql.com/docs/react/networking/basic-http-networking.md): Communicate with a GraphQL server over HTTP - [Advanced HTTP networking](https://www.apollographql.com/docs/react/networking/advanced-http-networking.md): Take full network control with Apollo Link - [Authentication](https://www.apollographql.com/docs/react/networking/authentication.md) ## Docs > Tools & SDKs > Apollo Client (Web) > Migrating - [Migrating to Apollo Client 3.0](https://www.apollographql.com/docs/react/migrating/apollo-client-3-migration.md) - [Hooks migration guide](https://www.apollographql.com/docs/react/migrating/hooks-migration.md): How to integrate the new hooks API into your existing Apollo app ## Docs > Tools & SDKs > Apollo Client (Web) > API Reference > Core - [class ApolloClient](https://www.apollographql.com/docs/react/api/core/ApolloClient.md): API reference - [class InMemoryCache](https://www.apollographql.com/docs/react/api/cache/InMemoryCache.md): API reference - [ObservableQuery](https://www.apollographql.com/docs/react/api/core/ObservableQuery.md): API reference ## Docs > Tools & SDKs > Apollo Client (Web) > API Reference > React - [Hooks](https://www.apollographql.com/docs/react/api/react/hooks.md): Apollo Client react hooks API reference - [Preloading](https://www.apollographql.com/docs/react/api/react/preloading.md): Apollo Client preloading API reference - [Testing](https://www.apollographql.com/docs/react/api/react/testing.md): Apollo Client React testing API - [SSR](https://www.apollographql.com/docs/react/api/react/ssr.md): Apollo Client React server side rendering API - [Components](https://www.apollographql.com/docs/react/api/react/components.md): Deprecated React Apollo render prop component API - [HOC](https://www.apollographql.com/docs/react/api/react/hoc.md): Deprecated React Apollo HOC API ## Docs > Tools & SDKs > Apollo Client (Web) > API Reference > Apollo Link - [Apollo Link overview](https://www.apollographql.com/docs/react/api/link/introduction.md): Customize Apollo Client's data flow - [HTTP Link](https://www.apollographql.com/docs/react/api/link/apollo-link-http.md): Get GraphQL results over a network using HTTP fetch. - [Batch HTTP Link](https://www.apollographql.com/docs/react/api/link/apollo-link-batch-http.md): Batch multiple operations into a single HTTP request - [Context Link](https://www.apollographql.com/docs/react/api/link/apollo-link-context.md): Easily set a context on your operation, which is used by other links further down the chain. - [Error Link](https://www.apollographql.com/docs/react/api/link/apollo-link-error.md): Handle and inspect errors in your GraphQL network stack. - [Persisted Queries Link](https://www.apollographql.com/docs/react/api/link/persisted-queries.md): Secure your graph while minimizing request latency. - [Remove Typename Link](https://www.apollographql.com/docs/react/api/link/apollo-link-remove-typename.md): Automatically remove __typename fields from variables. - [REST Link](https://www.apollographql.com/docs/react/api/link/apollo-link-rest.md): Call REST APIs inside your GraphQL queries. - [Retry Link](https://www.apollographql.com/docs/react/api/link/apollo-link-retry.md): Attempt an operation multiple times if it fails due to network or server errors. - [Schema Link](https://www.apollographql.com/docs/react/api/link/apollo-link-schema.md): Assists with mocking and server-side rendering - [Subscriptions Link](https://www.apollographql.com/docs/react/api/link/apollo-link-subscriptions.md): Execute subscriptions (or other operations) over WebSocket with the graphql-ws library - [WebSocket Link](https://www.apollographql.com/docs/react/api/link/apollo-link-ws.md): Execute subscriptions (or other operations) over WebSocket with the subscriptions-transport-ws library - [Community links](https://www.apollographql.com/docs/react/api/link/community-links.md) ## Docs > Tools & SDKs > Apollo iOS - [Introduction to Apollo iOS](https://www.apollographql.com/docs/ios.md): Discover how Apollo iOS, a Swift-first, open-source GraphQL client offers type-safe code generation, caching, and robust networking. - [Getting Started with Apollo iOS](https://www.apollographql.com/docs/ios/get-started.md): Learn how to add Apollo iOS to your app with step-by-step instructions for installation, schema integration, code generation, and setting up a client instance for type-safe GraphQL operations. ## Docs > Tools & SDKs > Apollo iOS > Project Configuration - [Project configuration](https://www.apollographql.com/docs/ios/project-configuration/intro.md): Structuring a GraphQL application with the Apollo iOS SDK - [Project Modularization](https://www.apollographql.com/docs/ios/project-configuration/modularization.md): Configuring Apollo iOS with single target vs multi-module projects - [Schema Types Configuration](https://www.apollographql.com/docs/ios/project-configuration/schema-types.md): Configuring schema generation for your projects needs - [Operation Models Configuration](https://www.apollographql.com/docs/ios/project-configuration/operation-models.md): Configuring operation models for your projects needs - [](https://www.apollographql.com/docs/ios/project-configuration/sdk-components.md) ## Docs > Tools & SDKs > Apollo iOS > Migration Guides - [Apollo iOS 1.0 migration guide](https://www.apollographql.com/docs/ios/migrations/1.0.md): From 0.x to 1.0 - [Apollo iOS 1.2 migration guide](https://www.apollographql.com/docs/ios/migrations/1.2.md): From 1.0 - 1.1 to 1.2 - [Apollo iOS 1.3 migration guide](https://www.apollographql.com/docs/ios/migrations/1.3.md): From 1.2 to 1.3 - [Apollo iOS 1.5 migration guide](https://www.apollographql.com/docs/ios/migrations/1.5.md): From 1.3 - 1.4 to 1.5 - [Apollo iOS 1.6 migration guide](https://www.apollographql.com/docs/ios/migrations/1.6.md): From 1.5 to 1.6 - [Apollo iOS 1.7 migration guide](https://www.apollographql.com/docs/ios/migrations/1.7.md): From 1.6 to 1.7 ## Docs > Tools & SDKs > Apollo iOS > Tutorial - [Get started with Apollo iOS codegen](https://www.apollographql.com/docs/ios/tutorial/codegen-getting-started.md) ## Docs > Tools & SDKs > Apollo iOS > Tutorial > Build a project with Apollo - [Introduction](https://www.apollographql.com/docs/ios/tutorial/tutorial-introduction.md) - [1. Configure your project](https://www.apollographql.com/docs/ios/tutorial/tutorial-configure-project.md) - [2. Add the GraphQL Schema](https://www.apollographql.com/docs/ios/tutorial/tutorial-add-graphql-schema.md) - [3. Write your first query](https://www.apollographql.com/docs/ios/tutorial/tutorial-write-your-first-query.md) - [4. Running code generation](https://www.apollographql.com/docs/ios/tutorial/tutorial-running-code-generation.md) - [5. Execute your first query](https://www.apollographql.com/docs/ios/tutorial/tutorial-execute-first-query.md) - [6. Connect your queries to your UI](https://www.apollographql.com/docs/ios/tutorial/tutorial-connect-queries-to-ui.md) - [7. Add more info to the list](https://www.apollographql.com/docs/ios/tutorial/tutorial-add-more-info-to-list.md) - [8. Paginate results](https://www.apollographql.com/docs/ios/tutorial/tutorial-paginate-results.md) - [9. Complete the details view](https://www.apollographql.com/docs/ios/tutorial/tutorial-complete-details-view.md) - [10. Write your first mutation](https://www.apollographql.com/docs/ios/tutorial/tutorial-first-mutation.md) - [11. Authenticate your operations](https://www.apollographql.com/docs/ios/tutorial/tutorial-authenticate-operations.md) - [12. Define additional mutations](https://www.apollographql.com/docs/ios/tutorial/tutorial-define-additional-mutations.md) - [13. Write your first subscription](https://www.apollographql.com/docs/ios/tutorial/tutorial-subscriptions.md) ## Docs > Tools & SDKs > Apollo iOS > API Reference - [Client Directives](https://www.apollographql.com/docs/ios/client-directives.md): Custom GraphQL directives used by the Apollo iOS SDK ## Docs > Tools & SDKs > Apollo iOS > Code Generation - [Code generation](https://www.apollographql.com/docs/ios/code-generation/introduction.md) - [The Codegen CLI](https://www.apollographql.com/docs/ios/code-generation/codegen-cli.md) - [Codegen configuration](https://www.apollographql.com/docs/ios/code-generation/codegen-configuration.md) - [Downloading a schema](https://www.apollographql.com/docs/ios/code-generation/downloading-schema.md) - [Running code generation in Swift code](https://www.apollographql.com/docs/ios/code-generation/run-codegen-in-swift-code.md) - [Code Generation Troubleshooting](https://www.apollographql.com/docs/ios/troubleshooting/codegen-troubleshooting.md) ## Docs > Tools & SDKs > Apollo iOS > Fetching - [Fetching Data](https://www.apollographql.com/docs/ios/fetching/fetching-data.md) - [Operation Arguments](https://www.apollographql.com/docs/ios/fetching/operation-arguments.md) - [Error Handling](https://www.apollographql.com/docs/ios/fetching/error-handling.md) - [Type Conditions](https://www.apollographql.com/docs/ios/fetching/type-conditions.md) - [Custom Scalars](https://www.apollographql.com/docs/ios/custom-scalars.md) - [Persisted Queries](https://www.apollographql.com/docs/ios/fetching/persisted-queries.md): Secure your graph while minimizing request latency - [Using the @defer directive in Apollo iOS](https://www.apollographql.com/docs/ios/fetching/defer.md) ## Docs > Tools & SDKs > Apollo iOS > Fetching > Operations - [Queries](https://www.apollographql.com/docs/ios/fetching/queries.md) - [Mutations](https://www.apollographql.com/docs/ios/fetching/mutations.md) - [Subscriptions](https://www.apollographql.com/docs/ios/fetching/subscriptions.md) - [Fragments](https://www.apollographql.com/docs/ios/fetching/fragments.md) ## Docs > Tools & SDKs > Apollo iOS > Caching - [Client-side caching](https://www.apollographql.com/docs/ios/caching/introduction.md) - [Cache setup](https://www.apollographql.com/docs/ios/caching/cache-setup.md) - [Direct cache access](https://www.apollographql.com/docs/ios/caching/cache-transactions.md) - [Custom cache keys](https://www.apollographql.com/docs/ios/caching/cache-key-resolution.md) - [Programmatic Cache Keys](https://www.apollographql.com/docs/ios/caching/programmatic-cache-keys.md) ## Docs > Tools & SDKs > Apollo iOS > Networking - [Creating a client](https://www.apollographql.com/docs/ios/networking/client-creation.md) ## Docs > Tools & SDKs > Apollo iOS > Pagination - [Pagination](https://www.apollographql.com/docs/ios/pagination/introduction.md) - [Using custom response models](https://www.apollographql.com/docs/ios/pagination/custom-types.md) - [Directional Pagination](https://www.apollographql.com/docs/ios/pagination/directional-pagers.md) - [Multi-Query Pagination](https://www.apollographql.com/docs/ios/pagination/multi-query.md) ## Docs > Tools & SDKs > Apollo iOS > Development & Testing - [Test mocks](https://www.apollographql.com/docs/ios/testing/test-mocks.md) - [Using Apollo as an XCFramework](https://www.apollographql.com/docs/ios/development/using-xcframework.md) ## Docs > Tools & SDKs > Apollo iOS > Advanced - [File uploads](https://www.apollographql.com/docs/ios/advanced/file-uploads.md): Enabling file uploads in Apollo Client for iOS - [Request Chain Customization](https://www.apollographql.com/docs/ios/advanced/request-pipeline.md): Learn how to customize the Apollo iOS request chain via custom interceptors - [Request Configuration](https://www.apollographql.com/docs/ios/advanced/request-configuration.md): Learn how to customize GraphQL requests in Apollo iOS ## Docs > Tools & SDKs > Apollo Kotlin - [Introduction to Apollo Kotlin](https://www.apollographql.com/docs/kotlin.md): Discover Apollo Kotlin, a robust GraphQL client for JVM, Android, and Kotlin multiplatform. Learn its features, setup, and usage to simplify your GraphQL operations. - [Migrating to Apollo Kotlin 4](https://www.apollographql.com/docs/kotlin/migration/4.0.md): Learn how to migrate from version 3 with key changes, new features, and tools designed for improved stability and maintainability. Follow step-by-step guidance and make a seamless transition - [Modules](https://www.apollographql.com/docs/kotlin/essentials/modules.md): Explore Apollo Kotlin's modular architecture and customize your setup by selecting only the features you need. Learn about the main, deprecated, and internal modules, and understand how they contribute to optimizing performance and maintainability. - [Evolution policy](https://www.apollographql.com/docs/kotlin/essentials/evolution.md): Explore Apollo Kotlin's evolution policy, including semantic versioning, breaking changes, and symbol lifecycle management. ## Docs > Tools & SDKs > Apollo Kotlin > Configuration - [Gradle plugin configuration](https://www.apollographql.com/docs/kotlin/advanced/plugin-configuration.md) - [Gradle plugin recipes](https://www.apollographql.com/docs/kotlin/advanced/plugin-recipes.md) - [Multi Modules codegen](https://www.apollographql.com/docs/kotlin/advanced/multi-modules.md) - [GraphQL file types in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/essentials/file-types.md) - [Client Awareness](https://www.apollographql.com/docs/kotlin/advanced/client-awareness.md) ## Docs > Tools & SDKs > Apollo Kotlin > Fetching - [Queries in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/essentials/queries.md) - [Mutations in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/essentials/mutations.md) - [Subscriptions in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/essentials/subscriptions.md) - [Using GraphQL variables in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/advanced/operation-variables.md) - [Error handling](https://www.apollographql.com/docs/kotlin/essentials/errors.md) - [Custom scalar types in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/essentials/custom-scalars.md) - [Fragments in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/essentials/fragments.md) - [Using the @defer directive in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/fetching/defer.md): Fetch slower schema fields asynchronously - [Persisted queries](https://www.apollographql.com/docs/kotlin/advanced/persisted-queries.md): Secure your graph while minimizing request latency ## Docs > Tools & SDKs > Apollo Kotlin > Caching - [Caching in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/caching/introduction.md): Introduction - [Normalized caches in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/caching/normalized-cache.md) - [Declarative cache IDs in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/caching/declarative-ids.md) - [Programmatic cache IDs in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/caching/programmatic-ids.md) - [Watching cached data](https://www.apollographql.com/docs/kotlin/caching/query-watchers.md): Update your UI in response to cache changes - [ApolloStore](https://www.apollographql.com/docs/kotlin/caching/store.md) - [HTTP cache](https://www.apollographql.com/docs/kotlin/caching/http-cache.md) - [Troubleshooting](https://www.apollographql.com/docs/kotlin/caching/troubleshooting.md) ## Docs > Tools & SDKs > Apollo Kotlin > Networking - [Interceptors](https://www.apollographql.com/docs/kotlin/advanced/interceptors-http.md) - [Using a custom HTTP client](https://www.apollographql.com/docs/kotlin/advanced/http-engine.md) - [Using the models without apollo-runtime](https://www.apollographql.com/docs/kotlin/advanced/no-runtime.md) - [Authenticate your operations](https://www.apollographql.com/docs/kotlin/advanced/authentication.md) - [Handle WebSocket errors](https://www.apollographql.com/docs/kotlin/advanced/websocket-errors.md) - [Batching operations](https://www.apollographql.com/docs/kotlin/advanced/query-batching.md) ## Docs > Tools & SDKs > Apollo Kotlin > Development & Testing - [Testing in Apollo Kotlin](https://www.apollographql.com/docs/kotlin/testing/overview.md): Overview - [Mocking HTTP responses (experimental)](https://www.apollographql.com/docs/kotlin/testing/mocking-http-responses.md) - [Mocking GraphQL responses](https://www.apollographql.com/docs/kotlin/testing/mocking-graphql-responses.md) - [Data builders](https://www.apollographql.com/docs/kotlin/testing/data-builders.md) - [Android Studio / IntelliJ plugin](https://www.apollographql.com/docs/kotlin/testing/android-studio-plugin.md) - [Apollo Debug Server](https://www.apollographql.com/docs/kotlin/testing/apollo-debug-server.md) ## Docs > Tools & SDKs > Apollo Kotlin > Advanced - [Uploading files](https://www.apollographql.com/docs/kotlin/advanced/upload.md) - [Monitor the network state to reduce latency](https://www.apollographql.com/docs/kotlin/advanced/network-connectivity.md) - [Handling nullability and errors](https://www.apollographql.com/docs/kotlin/advanced/nullability.md): Make your queries even more typesafe - [Experimental WebSockets](https://www.apollographql.com/docs/kotlin/advanced/experimental-websockets.md) - [Using aliases](https://www.apollographql.com/docs/kotlin/advanced/using-aliases.md) - [Using Java](https://www.apollographql.com/docs/kotlin/advanced/java.md) - [Apollo AST](https://www.apollographql.com/docs/kotlin/advanced/apollo-ast.md) - [Apollo compiler plugins](https://www.apollographql.com/docs/kotlin/advanced/compiler-plugins.md) - [JS Interoperability](https://www.apollographql.com/docs/kotlin/advanced/js-interop.md) - [Response based codegen](https://www.apollographql.com/docs/kotlin/advanced/response-based.md) - [Apollo Kotlin galaxy](https://www.apollographql.com/docs/kotlin/advanced/galaxy.md) ## Docs > Tools & SDKs > Apollo Server - [Introduction to Apollo Server](https://www.apollographql.com/docs/apollo-server.md): Learn how Apollo Server simplifies building GraphQL APIs with its straightforward setup and support for any data source or client. - [Get Started with Apollo Server](https://www.apollographql.com/docs/apollo-server/getting-started.md): Learn how to create a basic GraphQL server with Apollo Server using TypeScript or JavaScript. This tutorial covers schema definition, data management, and executing queries. ## Docs > Tools & SDKs > Apollo Server > New in v4 - [Migrating to Apollo Server 4](https://www.apollographql.com/docs/apollo-server/migration.md) - [Previous Versions of Apollo Server](https://www.apollographql.com/docs/apollo-server/previous-versions.md) ## Docs > Tools & SDKs > Apollo Server > Defining a Schema - [GraphQL Schema Basics](https://www.apollographql.com/docs/apollo-server/schema/schema.md) - [Unions and Interfaces](https://www.apollographql.com/docs/apollo-server/schema/unions-interfaces.md): Abstract schema types - [Custom Scalars](https://www.apollographql.com/docs/apollo-server/schema/custom-scalars.md) - [Directives](https://www.apollographql.com/docs/apollo-server/schema/directives.md): Configure GraphQL types, fields, and arguments ## Docs > Tools & SDKs > Apollo Server > Resolving Operations - [Resolvers](https://www.apollographql.com/docs/apollo-server/data/resolvers.md): How Apollo Server processes GraphQL operations - [Context and contextValue](https://www.apollographql.com/docs/apollo-server/data/context.md): Sharing information and request details throughout your server - [Error Handling](https://www.apollographql.com/docs/apollo-server/data/errors.md): Making errors actionable on the client and server - [Subscriptions in Apollo Server](https://www.apollographql.com/docs/apollo-server/data/subscriptions.md): Persistent GraphQL read operations ## Docs > Tools & SDKs > Apollo Server > Fetching Data - [Fetching Data](https://www.apollographql.com/docs/apollo-server/data/fetching-data.md): Manage connections to databases and other data sources - [Fetching from REST](https://www.apollographql.com/docs/apollo-server/data/fetching-rest.md): Using RESTDataSource to fetch data from REST APIs ## Docs > Tools & SDKs > Apollo Server > Web Frameworks - [Apollo Server Integrations](https://www.apollographql.com/docs/apollo-server/integrations/integration-index.md) - [Building Web Framework Integrations for Apollo Server](https://www.apollographql.com/docs/apollo-server/integrations/building-integrations.md) - [Teaching the MERN Stack to Speak GraphQL](https://www.apollographql.com/docs/apollo-server/integrations/mern.md) ## Docs > Tools & SDKs > Apollo Server > Development Workflow - [Build and Run Queries Against Apollo Server](https://www.apollographql.com/docs/apollo-server/workflow/build-run-queries.md) - [Operation Request Format](https://www.apollographql.com/docs/apollo-server/workflow/requests.md): How to send requests to Apollo Server over HTTP - [Generating Types from a GraphQL Schema](https://www.apollographql.com/docs/apollo-server/workflow/generate-types.md): How to ensure your resolvers are type safe - [Mocking](https://www.apollographql.com/docs/apollo-server/testing/mocking.md): Mock your GraphQL data based on a schema. - [Integration Testing](https://www.apollographql.com/docs/apollo-server/testing/testing.md): Utilities for testing Apollo Server ## Docs > Tools & SDKs > Apollo Server > Performance - [Server-Side Caching](https://www.apollographql.com/docs/apollo-server/performance/caching.md): Configure caching behavior on a per-field basis - [Configuring Cache Backends](https://www.apollographql.com/docs/apollo-server/performance/cache-backends.md): How to configure Apollo Server's cache - [Response Cache Eviction](https://www.apollographql.com/docs/apollo-server/performance/response-cache-eviction.md): Use advanced cache eviction patterns with custom cache keys to selectively evict cached responses when relevant events occur. - [Automatic Persisted Queries](https://www.apollographql.com/docs/apollo-server/performance/apq.md): Improve network performance by sending smaller requests ## Docs > Tools & SDKs > Apollo Server > Security - [Authentication and Authorization](https://www.apollographql.com/docs/apollo-server/security/authentication.md): Control access to your GraphQL API - [Configuring CORS](https://www.apollographql.com/docs/apollo-server/security/cors.md): Control access to your server's resources - [Terminating SSL](https://www.apollographql.com/docs/apollo-server/security/terminating-ssl.md) - [Proxy Configuration](https://www.apollographql.com/docs/apollo-server/security/proxy-configuration.md): Configuring proxy settings for outgoing requests ## Docs > Tools & SDKs > Apollo Server > Deployment - [Deploying with AWS Lambda](https://www.apollographql.com/docs/apollo-server/deployment/lambda.md): How to deploy Apollo Server with AWS Lambda - [Deploying with Heroku](https://www.apollographql.com/docs/apollo-server/deployment/heroku.md) ## Docs > Tools & SDKs > Apollo Server > Monitoring - [Metrics and Logging](https://www.apollographql.com/docs/apollo-server/monitoring/metrics.md): How to monitor Apollo Server's performance - [Health Checks](https://www.apollographql.com/docs/apollo-server/monitoring/health-checks.md): Determining the health status of Apollo Server ## Docs > Tools & SDKs > Apollo Server > API Reference - [API Reference: ApolloServer](https://www.apollographql.com/docs/apollo-server/api/apollo-server.md) - [API Reference: startStandaloneServer](https://www.apollographql.com/docs/apollo-server/api/standalone.md) - [API Reference: expressMiddleware](https://www.apollographql.com/docs/apollo-server/api/express-middleware.md) ## Docs > Tools & SDKs > Apollo Server > Plugins - [Built-In Plugins](https://www.apollographql.com/docs/apollo-server/builtin-plugins.md) ## Docs > Tools & SDKs > Apollo Server > Plugins > Built-in - [API Reference: Usage Reporting Plugin](https://www.apollographql.com/docs/apollo-server/api/plugin/usage-reporting.md) - [API Reference: Schema Reporting Plugin](https://www.apollographql.com/docs/apollo-server/api/plugin/schema-reporting.md) - [API Reference: Inline Trace Plugin](https://www.apollographql.com/docs/apollo-server/api/plugin/inline-trace.md) - [API Reference: Drain HTTP Server Plugin](https://www.apollographql.com/docs/apollo-server/api/plugin/drain-http-server.md) - [API Reference: Cache Control Plugin](https://www.apollographql.com/docs/apollo-server/api/plugin/cache-control.md) - [API Reference: Landing Page Plugins](https://www.apollographql.com/docs/apollo-server/api/plugin/landing-pages.md) - [API Reference: Subscription Callback Plugin](https://www.apollographql.com/docs/apollo-server/api/plugin/subscription-callback.md) ## Docs > Tools & SDKs > Apollo Server > Plugins > Custom - [Creating Apollo Server Plugins](https://www.apollographql.com/docs/apollo-server/integrations/plugins.md): Extend Apollo Server with custom functionality - [Apollo Server Plugin Event Reference](https://www.apollographql.com/docs/apollo-server/integrations/plugins-event-reference.md) ## Docs > Tools & SDKs > Apollo Server > Using with Federation > As a subgraph - [Implementing a Subgraph with Apollo Server](https://www.apollographql.com/docs/apollo-server/using-federation/apollo-subgraph-setup.md) - [API Reference: @apollo/subgraph](https://www.apollographql.com/docs/apollo-server/using-federation/api/apollo-subgraph.md) ## Docs > Tools & SDKs > Apollo Server > Using with Federation > As a gateway - [Implementing a Gateway with Apollo Server](https://www.apollographql.com/docs/apollo-server/using-federation/apollo-gateway-setup.md): Using a Node.js gateway as your graph router - [Improving Gateway Performance](https://www.apollographql.com/docs/apollo-server/using-federation/gateway-performance.md): Recommendations for improving your gateway's performance when using Apollo Server with the @apollo/gateway library. - [API Reference: @apollo/gateway](https://www.apollographql.com/docs/apollo-server/using-federation/api/apollo-gateway.md)