Skip to main content

GraphQL RFC Tracker

The following is a rough tracker of GraphQL RFCs, compiled and maintained by Benjie. It does not claim to be a complete, accurate, or up to date representation of the RFCs; it is generated in part by automated scripts but may be helpful for people to keep track of the various RFCs.

Not up to date?

Ping @benjie on the GraphQL Discord (#wg channel) and ask for him to run an update!

Last updated: 2024-01-29T11:58:37.293Z

Stage 2: Draft​

RFCChampionTitleLatest
#793@benjieDefault value coercion rulesAdded to 2023-12-07 WG agenda (more)
#860@benjiePrevent @skip and @include on root subscription selection setAdded to 2023-12-07 WG agenda (more)
#825@benjieOneOf Input ObjectsCommit pushed: Merge branch 'main' into oneof-v2 on 2023-11-13 by @benjie (more)
#742@robrichardSpec edits for @defer/@streamCommit pushed: CollectFields does not require path or asyncRecord (#11) on 2023-01-16 by @yaacovCR (more)
#794@magicmarkSchema CoordinatesAdded to 2021-06-03 WG agenda (more)

Stage 1: Proposal​

RFCChampionTitleLatest
#1010@mjmahoneFragment Arguments: Spec ImplementationAdded to 2024-02-01 WG agenda (more)
#1053@benjieImplementations may not deprecate a field that the interface hasn't deprecatedAdded to 2023-12-07 WG agenda (more)
#1056@benjieFix CoerceArgumentValues() hasValueAdded to 2023-12-07 WG agenda (more)
#1058@benjieList coercion algorithmAdded to 2023-12-07 WG agenda (more)
#1059@benjieIntroduce Strict and Legacy All Variable Usages Are AllowedAdded to 2023-12-07 WG agenda (more)
#997@fotoetienneExpand @deprecated to ObjectsAdded to 2023-06-01 WG agenda (more)
#950@yaacovCRallow unions to include interfaces and unionsAdded to 2022-08-04 WG agenda (more)
#955@benjaminjkraftAdd validation rule that operation types exist2 commits pushed: (latest) on 2022-06-13 by @benjaminjkraft (more)
#939@yaacovCRallow unions to declare implementation of interfacesAdded to 2022-06-02 WG agenda (more)
#907@IvanGoncharovAdd support for directives on directivesAdded to 2022-01-06 WG agenda (more)
#892@IvanGoncharovAdd descriptions to executable definitionsSpec PR created on 2021-10-07 by IvanGoncharov (more)
#733@benjieTagged typeCommit pushed: Separate input and output tagged types on 2021-01-21 by @benjie (more)
#509@taionAllow singular variables in list locationsCommit pushed: Remove CoerceVariableValues on 2018-09-01 by @taion (more)

Stage 0: Strawman​

RFCChampionTitleLatest
#1052@yaacovCRdeduplicated incremental delivery2 commits pushed: (latest) on 2024-01-28 by @yaacovCR (more)
#1063@benjieType system ordering of: object interfaces, directive arguments, input object fields, enum valuesAdded to 2024-01-04 WG agenda (more)
#1065@benjieSemanticNonNull type (null only on error)Commit pushed: Add IsValidImplementationFieldType updates on 2024-01-03 by @benjie (more)
#1057@benjieFix coercion table for listAdded to 2023-12-07 WG agenda (more)
ClientControl…-Client Controlled NullabilityRFC document updated on 2023-11-28 by Benjie Gillam (more)
InputUnion-GraphQL Input UnionRFC document updated on 2023-11-28 by Benjie Gillam (more)
FeatureDiscov…-Feature DiscoveryRFC document updated on 2023-11-28 by Benjie Gillam (more)
Struct-Polymorphic-capable composite symmetric input/output type (`struct`)RFC document updated on 2023-11-28 by Benjie (more)
#1049@martinbonninIntroduce SourceSchemaDocument and FullSchemaDocument2 commits pushed: (latest) on 2023-11-20 by @martinbonnin (more)
wg#1410@leebyronStrict Semantic NullabilityWG discussion created on 2023-10-05 by leebyron (more)
#1050@benjieDirective proposal for opting out of null bubblingSpec PR created on 2023-10-05 by benjie (more)
wg#1394@captbaritoneTrue Nullability SchemaWG discussion created on 2023-09-12 by captbaritone (more)
#1045@benjieRemove fragmentSpreadName from visitedFragments when visit is completeSpec PR created on 2023-09-11 by benjie (more)
FullSchemas-Full SchemasRFC document created on 2023-08-26 by Martin Bonnin (more)
#999@yaacovCRintroduce ExecuteGroupedFieldSet, CollectRootFields and CollectSubfieldsAdded to 2023-06-01 WG agenda (more)
#1015@leebyron"Root" Types clarity → "Operation Type"Added to 2023-03-02 WG agenda (more)
FragmentArgum…-Fragment ArgumentsRFC document created on 2023-02-10 by Matt Mahoney (more)
wg#1239@mjmahoneFragment Arguments: RFC + Implementation DetailsWG discussion created on 2023-01-19 by mjmahone (more)
#998@yaacovCRadd spec edits for referencesSpec PR created on 2022-11-03 by yaacovCR (more)
OptInFeatures-Opt-in featuresRFC document updated on 2022-09-30 by Martin Bonnin (more)
ExpandingSubt…-Expanding Subtyping (for output types)RFC document created on 2022-08-31 by Yaacov Rydzinski (more)
AnnotationStr…-Annotation StructsRFC document updated on 2022-08-31 by Benjie (more)
MetadataStructs-Metadata StructsRFC document updated on 2022-08-16 by Benjie (more)
wg#1096@leebyron"Metadata Directives" ProposalWG discussion created on 2022-08-04 by leebyron (more)
CompositeSche…-GraphQL Composite SchemasRFC document updated on 2022-07-22 by Daniel Winter (more)
wg#1071@benjieStruct typeWG discussion created on 2022-07-18 by benjie (more)
#960@yaacovCRAllow recursion within ResolveAbstractTypeAdded to 2022-07-07 WG agenda (more)
#673@spawniaServers must preserve lexical ordering between SDL and introspection2 commits pushed: (latest) on 2022-06-16 by @spawnia (more)
#948@benjieOneOf ObjectsAdded to 2022-06-02 WG agenda (more)
wg#944@yaacovCRNew Intersection TypeWG discussion created on 2022-04-30 by yaacovCR (more)
DeferStream-GraphQL Defer and Stream DirectivesRFC document updated on 2022-01-17 by Rob Richard (more)
wg#857@mjmahoneFragment ModularityWG discussion created on 2022-01-07 by mjmahone (more)
FragmentModul…-Fragment ModularityRFC document created on 2022-01-06 by Matt Mahoney (more)
wg#815@leebyronNested GraphQL MutationsWG discussion created on 2021-12-02 by leebyron (more)
ImplicitInher…-Implicit InheritanceRFC document updated on 2021-09-03 by Lee Byron (more)
OperationExpr…-Operation ExpressionsRFC document created on 2021-09-02 by Benjie Gillam (more)
SchemaFragments-Schema FragmentsRFC document created on 2021-09-02 by Daniel Starns (more)
#879@mjmahone__fulfilled meta fieldAdded to 2021-09-02 WG agenda (more)
SchemaCoordin…-Schema CoordinatesRFC document created on 2021-01-07 by Mark Larah (more)
Subscriptions-NOTE: this document is kept for historic purposes; GraphQL Subscriptions have been specified and released as part of the official [June 2018 GraphQL Specification](https://spec.graphql.org/June2018/).RFC document updated on 2020-08-19 by Benjie Gillam (more)
#710@chemisusAdd namedType and punctuatedName to __TypeAdded to 2020-05-07 WG agenda (more)
#706@francisuAdd support for directives for an object field nameSpec PR created on 2020-04-07 by francisu (more)
#674@kassensallow empty selectionsSpec PR created on 2020-01-21 by kassens (more)
#631@victorandreeMake root query operation type optionalAdded to 2019-12-05 WG agenda (more)
#567@benheadallow directives on directive definitionsSpec PR created on 2019-02-28 by benhead (more)
#556@langpavelDocument DirectivesCommit pushed: Document directives are not special on 2019-02-01 by @langpavel (more)
#521@IvanGoncharovScalar serialize as built-in scalar typeSpec PR created on 2018-10-14 by IvanGoncharov (more)
#325@IvanGoncharovAdd "Any" scalar typeSpec PR created on 2017-06-19 by IvanGoncharov (more)

Stage 3: Accepted​

RFCChampionTitleLatest
#525@smitt04Allow deprecation of input valuesMentioned in 2021-02-04 WG notes (more)
#823@benjieoperation expressions2 commits pushed: (latest) on 2021-03-16 by @benjie (more)
#667@lilianammmatos[RFC Sketch] Defer and Stream DirectivesAdded to 2020-01-09 WG agenda (more)
#987@benjieFix ambiguity around when schema definition may be omittedCommit pushed: add related definition and specific example on 2023-02-09 by @leebyron (more)
#891@dugenkui03Add explanation about argument name uniqueness.Added to 2023-02-02 WG agenda (more)
#805@IvanGoncharovAllow deprecation of input values (field args, directive args, input fields)Commit pushed: Editorial on 2022-06-03 by @leebyron (more)
#849@leebyronAllow full unicode rangeCommit pushed: Editorial on 2022-06-02 by @leebyron (more)
#776@benjie__typename is not valid at subscription rootAdded to 2021-05-13 WG agenda (more)
#649@eapacheCustom Scalar Specification URLs2 commits pushed: (latest) on 2021-04-09 by @leebyron (more)
#803@benjieReplace 'query error' with 'request error'2 commits pushed: (latest) on 2021-04-07 by @leebyron (more)
#701@spawniaDisallow non-breakable chains of circular references in Input Objects2 commits pushed: (latest) on 2021-01-11 by @leebyron (more)
#373@mike-marcacciAllow interfaces to implement other interfaces5 commits pushed: (latest) on 2020-01-11 by @leebyron (more)
#472@OlegIlyenkoRepeatable directives2 commits pushed: (latest) on 2020-01-10 by @leebyron (more)
#599@leebyronClarify that lexing is greedyAdded to 2019-10-10 WG agenda (more)
#601@leebyronNumber value literal lookahead restrictionsAdded to 2019-10-10 WG agenda (more)
#598@leebyronAvoid parse ambiguity on types & extensionsAdded to 2019-08-01 WG agenda (more)
#510@mjmahoneAllow directives on variable definitionsSpec PR created on 2018-08-29 by mjmahone (more)
#470@OlegIlyenko"Directive order is significant" sectionSpec PR created on 2018-06-23 by OlegIlyenko (more)
#466@IvanGoncharovAdd description to SchemaSpec PR created on 2018-06-13 by IvanGoncharov (more)
#463@leebyronEnsure validation of directive argumentsSpec PR created on 2018-06-11 by leebyron (more)
#462@leebyronInput & Output type definitionSpec PR created on 2018-06-11 by leebyron (more)
#459@mjmahoneRemove Interface is implemented by 1+ Objects validationSpec PR created on 2018-06-08 by mjmahone (more)
#454@IvanGoncharovAdd validation steps for schema extensionsSpec PR created on 2018-06-04 by IvanGoncharov (more)

Stage X: Rejected​

RFCChampionTitleLatest
#865@mjmahoneFragment Arguments (parameterized fragments) for GraphQLCommit pushed: Split RFC doc into graphql-wg PR on 2023-01-11 by @mjmahone (more)
#895@twofClient Controlled NullabilityCommit pushed: updated to reflect newest behavior on 2022-05-13 by @twof (more)
#883@IvanGoncharovRelax SameResponseShape algorithm to be compatible with covariant fieldsSpec PR created on 2021-09-02 by IvanGoncharov (more)
#877@IvanGoncharovForbid duplicating argument namesSpec PR created on 2021-07-01 by IvanGoncharov (more)
#395@tgriesserinputUnion typeSpec PR created on 2018-01-11 by tgriesser (more)
#1048@benjieNull-Only-On-Error / Semantically-Non-Null type (asterisk)Added to 2023-10-05 WG agenda (more)
#1034@yaacovCRincremental delivery with deduplication + concurrent executionCommit pushed: use identifiers instead of records when possible on 2023-09-28 by @yaacovCR (more)
#1026@yaacovCRincremental delivery with deduplication + concurrent executionAdded to 2023-06-01 WG agenda (more)
#1018@benjieAlternative proposal for `@stream`/`@defer`Added to 2023-04-06 WG agenda (more)
#1023@yaacovCRincremental delivery without branchingSpec PR created on 2023-03-24 by yaacovCR (more)
#888@nojvekMap typeAdded to 2021-10-07 WG agenda (more)
#806@benjie__typename should be valid at subscription rootSpec PR created on 2020-12-05 by benjie (more)
#586@benjieInput Objects accepting exactly @oneField2 commits pushed: (latest) on 2019-07-22 by @benjie (more)
#471@OlegIlyenkoLimit uniqueness to `@skip`, `@include` and `@deprecated` directivesCommit pushed: Include `@deprecated` directive in the validation rule on 2018-06-25 by @OlegIlyenko (more)
#326@leebyronScalar serialize as built-in scalar typeSpec PR created on 2017-06-20 by leebyron (more)
#319@IvanGoncharovAdd '@ignoreIfUnknown' to allow forward compatibility for clientsMentioned in 2020-02-06 WG notes (more)
#606@victorandreeSupport empty composite typesAdded to 2019-12-05 WG agenda (more)
#460@mjmahoneRequire Interfaces to have 1+ Objects implementingCommit pushed: Merge branch 'master' into rfc-interfaces-implemented on 2018-06-11 by @leebyron (more)
#315@excitement-engineerSupport DateTime scalarSpec PR created on 2017-05-26 by excitement-engineer (more)
#232@stubailo__id field for unique identifiersCommit pushed: Remove .vscode from gitignore on 2016-10-31 by Sashko Stubailo (more)
#445@spawniaDisallow non-breakable chains of circular references in Input ObjectsAdded to 2019-11-07 WG agenda (more)