GraphQL has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via a new monthly GraphQL Foundation newsletter.

All work on GraphQL and related projects, both big and small, is important to the growth and maturity of the project, which has already seen adoption from many of the world’s largest internet-scale companies.

Many of these items are just in beginning discussions while some are further along. The goal of this monthly post is to summarize and share what’s top of mind for the community and help others get involved. These are only initial discussion topics. For notes on the full discussion during the monthly WG calls please refer to these call notes

Updates

GraphQL over WebSocket refresh, existing issues and security implications

This discussion topic proposes taking on the following two critical items of security and bypassing the onConnect event. And possibly re-writing the WebSocket protocol from scratch with full RFCs

Tagged Type RFC

This is an RFC for a new “Tagged” type to be added to GraphQL, to help address the input polymorphism feature gap. Originally proposed as the @oneField directive, the Tagged type has evolved into an entire new type in the type system, and is currently the lead proposal from the Input Unions Working Group.

A Tagged type defines a list of named member fields each with an associated type (like the fields in Object and Input Object types); but with the stipulation that exactly one of these fields must be present (no more, no less). Depending on the types of the member fields, a Tagged type could be appropriate for input, output, or both, which is proving to be quite controversial; it’s possible that the tagged type might be scoped to input only before release. The Tagged type was most recently introduced to the GraphQL Working Group in August and is undergoing feedback and revision before an expected update with the working group in October or November.

If you have use-cases for input polymorphism, please take a look - feedback is very welcome.

Standardize naming for Field coordinates

This PR proposes the following 2 RFCs

  1. Formalizing the naming and definition of field coordinates (as discussed in #735)
  2. Formalizing the way in which a Field Node (and list thereof) contained within a query document can be serialized as field coordinates

Adding generics to DocumentNode and Source to allow TypeScript type inference

@dotansimha from The Guild had recently implemented an improved version of DocumentNode, called TypedDocumentNode, that allows type generics for result type and variable type and contributed it to graphql-js.

This improved version allows TypeScript to infer the types automatically when an object that matches the signature is used.

You can learn more by reading about it on his blog post.

In Other News

Get Involved!

Developers can get involved in the community and contribute to the project at https://github.com/graphql.

Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our member page. If you have questions about membership, please send an email to membership@graphql.org.