Skip to content

Latest commit

 

History

History
510 lines (358 loc) · 27.5 KB

CHANGELOG.md

File metadata and controls

510 lines (358 loc) · 27.5 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Added

[10.4.0]

Added

  • We now infer default values from parameters and properties. #1471
  • Added support for un-ignore #1458
  • Introduced new state attributes #1478
  • Added new subscription pub/sub system API. #1480
  • Added support for value task to the type discovery.
  • Added DataLoader Base Classes #1505
  • Added support for IQueryable Projections #1446

Changed

  • Changed type member discovery #1502
  • The context data on types now use less memory.
  • Changed result serialization from Json.NET to System.Text.Json.

Fixed

  • Fixed issue where the backing type was rejected during deserialization.
  • Fixed issue where nullable properties lead to errors in the sorting middleware #1419
  • Fixed introspection issue where the __type field caused an error when the type specified in the argument did not exist.
  • Fixed the generation of not equal expression for IComparable types.
  • Fixed issue where the type dependencies of type extension where not correctly merged with the target type.
  • Fixed UUID type serialization.

[10.3.6]

Fixed

  • Fixed handling of variables when delegating data fetching through the stitching context. #1390

[10.3.5]

Fixed

  • Fixed issue that caused errors when collecting fields on a directive context

[10.3.4]

Fixed

  • Fixed default hash provider dependency injection configuration #1363

[10.3.3]

Fixed

  • Fixed argument non-null validation.
  • Fixed variable coercion.

[10.3.2]

Fixed

  • Fixed issue where input fields were no longer automatically converted.
  • Fixed issue where the float was rounded when provided as variable.

[10.3.1]

Fixed

  • Fixed issue that private setters where not used during input deserialization.

[10.3.0]

Added

  • Infer non-nullability from C# ref types enhancement. #1236
  • Descriptor Attributes. #1238
  • Introduced Subscribe Resolver for IAsyncEnumerable #1262
  • Added support for generic object type extensions. #1297
  • Added authorize attribute. #1238
  • Added paging attribute. #1306
  • Added filter attribute. #1306
  • Added sorting attribute. #1306
  • Added initial support for Optional<T>. #1317
  • Added support for immutable input types. #1317

Changed

  • Stop adding the __typename field when it's in selection on schema stitching. #1248
  • Improved Type Discovery. #1281

Fixed

  • Create a new service scope when cloning RequestContext in subscriptions. #1211
  • Explicit binding of sorting types lead to errors. #1055
  • Detect if an IQueryable already has a sorting. #1253
  • Fixed issue with custom scalar types in delegated fields (schema stitching). #1221
  • Fixed issue where the rented buffer was too early returned. #1277
  • Fixed handling of rewritten non-null reference types. #1288
  • Fixed clr type binding for issue with new type discovery. #1304
  • Fixed parser error handling in middleware. #1028
  • Fixed directive delegation (@skip/@include) in stitching. #937

[10.2.0]

Added

  • Added Any type. #1055
  • Added non-generic Type(Type type) methods on field descriptors to allow for more dynamic schema generation. #1079
  • Added ArgumentKind(name) to resolver context (#1134)
  • Added FilterInputType customization methods. (#1150)

Changed

  • Made filter operation fields public and introduced interfaces.
  • Use original operation name in stitched queries. #1124

Fixed

  • FilterTypes produce schema errors when filters properties are nullable. #1034
  • MongoDB & Filter on Boolean property: the "_not" filter throws an exception. #1033
  • Input object is not validated when given entirely as a variable #1074
  • Variables parsing: Issue with nested DateTime fields in variables #1037
  • DateTime Filters not working. #1036
  • Date Filters not returning any result for equals filter #1035
  • Subscription is not working with variables #1176
  • Relay node field did not show in SDL #1175
  • Filter issues and added more filter tests. #1170
  • SelectionSetNode.AddSelections() did not add the new selections but duplicated the old ones. #1142
  • The complecity middleware when multiplier where activated did only take the firs level into account. #1137
  • Errors when attempting to filter on nullable types. #1121

[10.1.0]

Added

  • Added more error codes. #1030
  • Added better exceptions to the service factory. #1040

Changed

  • Distinguish between HTTP and remote schema errors with schema stitching. #1063

Fixed

  • Fixed issue with the request parser when requests are issued from relay-modern-http-transport. #1024
  • Fixed Utf8GraphQLRequestParser handling of Apollo AQP signature query.
  • Fixed Apollo Active Query Persistence Flow #1049
  • Fixed scoped service handling. #1066
  • Fixed Duplicate service registration. #1066

[10.0.0]

Added

  • Added support to infer if a field or enum value is deprecated. #826
  • Added filter types. #861
  • Added UTF-8 request parser. #869
  • Added new syntax visitor API.
  • Added Redis subscription provider #902
  • Added support for batching over HTTP #933
  • Added support for persisted queries and added a middleware to enable the active persisted query flow. #858
  • Provide access to variables through IResolverContext. #958
  • Added ability to control when the schem stitching will pull in the remote schemas. #964
  • Added support to register class DataLoader with the standard dependency injection. #966
  • Added support for ObsoleteAttribute. Fields & enum values that are annotated with ObsoleteAttribute become deprecated.
  • Add Redis Provider for Subscriptions #902
  • Added not authenticated error code.
  • Added TryAddProperty, TryAddExtension and TryAddVariable to query request builder
  • Added support for persisted queries with providers for the file system and Redis. #858
  • Added support for middleware on introspection fields. #962
  • Added default binding behavior option to schema options. #963
  • Added support for directives on enum values with schema first #815
  • Added DataLoader Dependency Injection Support. #966
  • Added AddDocumentFromFile to SchemaBuilder. #974
  • Added error filter ServiceCollection extensions #973
  • Added schema validation rule that ensures that interfaces are implemented. #979

Changed

  • Subscription now uses pipeline API to abstract sockets. #807
  • Improved parser performance. #806
  • Roles collection on authorization directive is now interpreted as OR.
  • The type conversion API is now better integreated with dependency injection.
  • The server is now more modularized and the various server middlewares can be added separably.
  • context.Parent() converts now the result if the source object is not of the type of T
  • Update GraphQL-Voyager to 1.0.0-rc.27 #972

Fixed

  • The parent method on the resolver context now uses the converters if the source object type does not align with the requested type.
  • Aligned the deprecation handling with the GraphQL spec. #876
  • Fixed the StateAttribute for resolvers. #887
  • Order of types in a serialized schema is now consistent. #891
  • Respect UseXmlDocumentation with Schema.Create #897
  • Variables now work in lists and input objects #896
  • Fixed url scalar now correctly detects url strings.
  • Support directives declared stitched schemas #936
  • Fixed issues with filters and variables. #960
  • Fixed issues stitching lists. #946
  • Fixed source link support. #943
  • Fixed dead-lock issues with the DataLoader #942
  • Fixed UrlType IsInstanceOfType method to correctly return true for a Url StringValueNode.
  • Fixed Date and DateTime handling in the stitching layer.
  • Fixed subscriptions with InputObject arguments #975
  • Fixed Playground, GraphiQL and Voyager path logic in middleware options object. #984
  • Exceptions are now correctly removed from the remote error data structure so that no exception information leaks.
  • Fixed IResolverContext.CollectFields issue where the provided selection set was not passed to the underlying field collection algoritm. #994
  • Fixed variable coercion so that we are now throwing GraphQL errors if the wrong type is passed. #991
  • Fixed type rename issue in the stitching layer when types where nun-null types. #998

[9.0.4] - 2019-06-16

Fixed

  • Fixed paging flaws that in some cases lead to the connection type being registered twice. #842

[9.0.3] - 2019-06-13

Fixed

  • Fixed issues where the type initializer would swallow schema errors.

[9.0.2] - 2019-06-12

Fixed

  • Fixed issues with list input types.

[9.0.1] - 2019-06-09

Changed

  • Better error message when failing TypeConvertion enhancement #819

Fixed

  • Fixed list argument conversion issue. #823

[9.0.0] - 2019-06-04

Added

  • Added new SchemaBuilder. #369
  • Added code-first type extensions. #683
  • Added support for schema description. spec
  • Added resolver overloads to schema builder.
  • Added new UTF-8 parser
  • Added support for schema directives. spec
  • Added two phase argument coercion.
  • Added two phase field collection.
  • Added GraphQL attributes support on parameters. 726
  • Added support for directives on variable definitions spec
  • Added support for directives on enum values spec
  • Added support for directives on arguments spec
  • Added support for XML documentation 715
  • Added access to stitched http response headers (e.g. Set-Cookie) 679
  • Added helper to add delegation paths to a field.
  • It is now possible to bind .net types explicitly to schema types with SchemaBuilder.New().BindClrType<ClrType, SchemaType>(). 756
  • Added support for schema-first bindings on the SchemaBuilder API. 781

Changed

  • Replaced roslyn compiler with the expression compiler. This will reduce the memory footprint of the server.
  • Changed how the server caches queries.
  • DiagnosticNames is now public.
  • Reworked how input object arguments are cached #805

Removed

  • Removed obsolete QueryDocument from IResolverContext.
  • Removed obsolete CancellationToken from IResolverContext

Fixed

  • Includes directive definitions in serialized schema #717
  • Field types are now validated. #713
  • Variables in object values and lists are now correctly recognised #215 and #745.
  • Fixed issue with input type arguments on the stitching layer
  • Delegate Directive not being assigned correctly with ITypeRewriter. #766
  • Format Exception when registering types. #787
  • The schema factory does not throw an exception if an annotated directive is not correct. #619
  • Temprarily fixed issues with type system directives. We will add a final patch with the next release.
  • Fixed issues with external resolver overwrites.
  • Fixed authorization directive validation issues #804
  • Fixed schema initialization issues
  • Fixed paging extension overloads #811
  • Fixed null reference exception in Path.Equals #802

0.8.2 - 2019-04-10

Fixed

  • Some scalars did not work in stitched schemas and lead to a serialization exception.
  • IntValueNode IValueNode.Equals was not implemented correctly and lead always to false. #681

0.8.1 - 2019-03-29

Added

  • Added operation start/stop event.
  • Added error filter support for schema stitching.

Changed

  • Default complexity calculation functions are now public.
  • Diagnostic observers can now be defined as schema services.
  • auto-stitching diagnostic call is now implemented in two phases.

Fixed

  • Custom diagnostic observer registration issue #629.
  • Authorization argument coercion is now fixed. #624
  • The request path is now compared correctly.
  • IErrorFilter is not given the exception unless IncludeExceptionDetails is enabled. #637
  • Parse and validation event tracked wrong duration.
  • Schema-First descriptions are now correctly included into the schema. #647
  • __type argument was named type instead of name. spec
  • The server template is now working again. #657
  • Non-nullable types are now validated when query uses variables. #651
  • Variable handling im middleware does not convert the DateTime value anymore. #664
  • Directives are now correctly merged when declared in an extension file. #665
  • Subscription is now optional in the 2-phase introspection call #668

0.8.0 - 2019-03-03

Added

  • The stitching layer now batches requests to the remote schemas.
  • Introspection schema serializer.
  • Introduced auto-stitching capabilities with the new StitchingBuilder.
  • GraphQL Voyager. Special thanks to @drowhunter who contributed the middleware.

Changed

  • The authoization directive is now more aligned how the authorize attribute in ASP .Net works.

Fixed

0.7.0 - 2019-02-03

Added

  • Query Middleware #338.
  • Field Middleware #338.
  • Implemented the relay cursor connections specification.
  • Added another ReportError overload to IResolverContext that takes IError #359.
  • Added a schema endpoint that will let you download the server schema file #370.
  • Added SyntaxRewriter and SyntaxWalker classes to enable developers to extend the execution pipeline more easily.
  • Introduced a new execution builder which allows to fully customize the execution pipeline.
  • Introduced exception filter #317.
  • Integrated RequestTimeoutMiddleware into default pipeline #418.
  • Added support for repeatable directive. Spec.
  • Apollo Tracing Support #352.
  • Query complexity validation rules #80
  • Added support for relay global object identification specification specification.
  • Added Source Code Link for NuGet support.
  • Added support for a executor scoped field middleware #482.
  • Added schema stitching capabilities #341.
  • Added generic interface type #546.
  • Added directives support for input objects #548.
  • Added optional totalCount field to the connection type #558.
  • Added support for dynamic generated schema types #558.
  • Added generic union type #552.
  • Added options to AddStitchedSchema #556.
  • Added scoped context data to the resolver context #537.

Changed

  • Merged ASP.NET core and classic codebases #349.
  • Made the type conversion API extendable and added more default type converter #384.
  • Separated the schema config from the execution config #324
  • Changed how max query depth is validated and configured.
  • The DataLoader API is now offering a simpler interface.
  • Extended Scalar Types must now be explicitly registered during schema configuration. #433
  • Authorization directive is now repeatable and can use the default authorization policy #485
  • UsePaging can now be used without specifying the clr type #558.
  • The edge node type can now be any output type including list #558.

Fixed

  • Field merging of node fields did not work properly.
  • DateTime is now parsed independent of the current culture #547.

Deprecated

  • The Schema.Execute... extension methods are depricated and will be removed with the next version.

Removed

  • Execution options from the schema options. They can now be configured with the QueryExecutionBuilder.

0.6.11 - 2018-12-06

Added

  • GraphQL Playground #353. Special thanks to @akaSybe who contributed the playground middleware.

Changed

  • Improve IObjectTypeDescriptor interface #390.

0.6.10 - 2018-12-05

Added

  • Non-generic dataloader configration extensions.

0.6.9 - 2018-11-30

Added

  • Non-generic method to register a dataloader.

0.6.8 - 2018-11-29

Added

  • Non-generic register methods to schema configuration.

Fixed

  • Ignore on InputObjectType fields didn't work properly.

0.6.7 - 2018-11-25

Fixed

  • Non-nullable arguments are being inferred as nullable bug #360.

0.6.6 - 2018-11-23

Fixed

  • Middleware bug that prevented the result to be passed along the pipeline.

0.6.5 - 2018-11-20

Added

  • Support for GraphQLNonNullAttribute.
  • Support for Include on object type to merge a resolver type into the object type.
  • Support for GraphQLResolverAttribute and GraphQLResolverForAttribute.

0.6.4 - 2018-11-20

Fixed

  • The type discoverer ignored a type if it was already discovered in another context #350.

0.6.3 - 2018-11-19

Fixed

  • Validation issues with NameString.

0.6.2 - 2018-11-19

Fixed

  • Fixed: byte[] cannot be defined as a custom scalar #345.

0.6.1 - 2018-11-15

Changed

  • DateTimeType now serializes UTC DateTime to yyyy-MM-ddTHH\:mm\:ss.fffZ.

Fixed

  • List Variable Coercion Failed.
  • InputTypes are now discovered correctly.

0.6.0 - 2018-11-12

Added

  • Separate package providing a GraphiQL middleware. The middleware can serve all of GraphiQL without needing to refer to CDNs making it useful even in closed networks. Moreover, we have configured GraphiQL to work with the GraphQL-ws protocol which is supported by Hot Chocolate.
  • Initial Support for GraphQL subscriptions. We currently support the GraphQL-ws protocol over web sockets. There will be a lot of additional work in version 0.7.0 that will harden it.
  • Authorization package for ASP .Net core which supports policy-base authorization on fields.
  • Diagnostic source which can be used to track field execution times and other events.
  • Implementing a directive middleware has now become much easier with this release. We have built the authorize-directive with these new APIs.