All Versions
116
Latest Version
Avg Release Cycle
-
Latest Release
-

Changelog History
Page 4

  • v1.2.0 Changes

    • ๐Ÿ†• New option to disable introspection. Use introspectionEnabled parameter when creating SchemaProvider. Defaults to true.
  • v1.1.2 Changes

    • ๐Ÿ›  Fix #96 - processing int/long/short as list arguments in mutations - thanks @pierrebelin
  • v1.1.1 Changes

    • ๐Ÿ›  Fix #92 - error processing mutation arguments that are lists/arrays
  • v1.1.0 Changes

    • ๐Ÿ“ฆ Authorization now supports using ASP.NET policies from the EntityGraphQL.AspNet package
      • IAuthorizationService is resolved to check authorization and needs to be registered
      • [Authorize] attribute can be used instead of the [GraphQLAuthorize] attribute when using EntityGraphQL.AspNet
    • ๐Ÿ›  Fix - RequiredAttribute results in the field being not null in the generated GraphQL Schema
    • ๐Ÿ›  Fix - Schema introspection was incorrectly returning __typename for Enums
    • 0๏ธโƒฃ UseConnectionPagingAttribute takes optional arguments for default page size and max page size
    • 0๏ธโƒฃ UseOffsetPagingAttribute takes optional arguments for default page size and max page size
    • ๐Ÿ‘ EntityGraphQL.AspNet now uses System.Text.Json for de/serialization internally. It still supports JSON.NET objects in the variable object (as well as System.Text.Json types)
    • ๐Ÿ›  Fix #19 - you can mark fields (including mutations) as deprecated using the dotnet [Obsolete] attribute or the IField.Deprecate(reason) method in the schema building
    • ๐Ÿ›  Fix #88 - If an argument is marked as required and not provided in the query request an error is raised. Mark arguments optional via the API, or make it a nullable type or give it a default value
    • Query used in ConnectionPaging now resolves itself using .ToList()

    ๐Ÿšš Obsolete - will be removed 2.x

    • RequireAnyClaim() & RequireAllClaims(). Use RequireAnyRole() & RequireAllRoles() as the ClaimTypes.Role was used previously and this change makes it explicit
    • ๐Ÿ‘ schema.ExecuteQueryAsync/ExecuteQuery(QueryRequest, TContextType, IServiceProvider, ClaimsIdentity, ExecutionOptions). Use the ExecuteRequest/ExecuteRequestAsync methods that take the full ClaimsPrincipal as we now support authorization with policies
  • v1.0.3 Changes

    • ๐Ÿ›  Fix #86. Mutations not correctly checking required authorization on the mutation field directly
  • v1.0.2 Changes

    • ๐Ÿ›  Fix - RequiredAttribute results in the field being not null in the generated GraphQL Schema
    • ๐Ÿ›  Fix issue with expressions failing in a high throughput, threaded use case (heavily hit API)
  • v1.0.1 Changes

    • ๐Ÿ›  Fix issue passing optional enum arguments
  • v1.0.0 Changes

    • ๐Ÿ†• New extension methods to ease adding your schema to the service collection. See docs - services.AddGraphQLSchema<DemoContext>(options => {})
    • ๐Ÿ†• New package EntityGraphQL.AspNet with extensions to easily expose a graphql endpoint with MapGraphQL<T>().
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapGraphQL<DemoContext>();
    });
    
    • ๐Ÿ›  Fix issue reconnecting from a service field to the context
    • ๐Ÿ›  Fix issue when execution is split across non service fields and then with service fields and the first result is null
    • ๐Ÿ›  Fix issue using Connection/Offset paging on collection fields that were not on the query root
    • ๐Ÿ›  Fix issue using Connection/Offset paging on collection fields that have service fields
    • 0๏ธโƒฃ Option to add default sort when using UseSort() field extension
  • v0.70.0 Changes

    • โšก๏ธ Introduction of fields extensions to encapsulate common field logic and apply it to many fields. See update docs. New built in field extensions
      • UseConnectionPaging() which when applied to a collection field modifies the field to implement the GraphQL Connection spec for paging data with metadata
      • UseOffsetPaging() which when applied to a collection field modifies the field to implement an offset style paging structure
      • UseFilter() which when applied to a collection adds a filter argument that takes an expression
      • UseSort() which when applied to a collection adds a sort arguments that takes fields to sort the collection by
    • Replaced Antlr based GraphQL query lexer/parser with HotChocolate.Language Parser. Parsing of query documents is much faster!
    • You can now directly use lists ([12,32], etc) and objects ({name: "Frank"}) as arguments in the query document. Although it is still recommended to use the Variables in the query
    • โž• Added benchmarks to help explore performance issues in expression building (What we do with expressions is fast, but found the Antlr Parser was slow)
    • ๐Ÿ‘ Directives now supported on fragment spreads

    ๐Ÿ’ฅ Breaking changes

    • EntityGraphQL now targets netstandard2.1
    • ๐Ÿšš Some optional arguments in ExecuteQuery moved to an Options object
  • v0.69.0 Changes

    schema.Type<MyType>().AddField(...);
    schema.Type<MyType>().AddField(...);
    schema.Type<MyType>().AddField(...);
    

    we have

    schema.UpdateType<MyType>(t => {
      t.AddField(...);
      t.AddField(...);
      t.AddField(...);
    });
    

    โšก๏ธ Similar for SchemaProvider.AddType<T>(string name, string description, Action<SchemaType<T>> updateFunc)

    • You can pass a ILogger<SchemaProvider<T>> when creating a SchemaProvider. Exceptions etc. will be logged
    • โž• Added Take<TSource>(this IQueryable<TSource> source, int? count) that works on IQueryable<T> to support EF translation

    ๐Ÿ’ฅ Breaking changes

    • EntityGraphQL now targets netstandard2.0
    • ๐Ÿ”จ Big refactor/clean - hopefully easier to follow the post Antlr (compiled graphql) output - see GraphQL*Field classes
    • ๐Ÿ‘Œ Support for dotnet Entity Framework Core 3.1+ when using other services in the schema (WithService())
    • โœ‚ Removed the Where<TSource>(this IEnumerable<TSource> source, EntityQueryType<TSource> filter) helper. Use the WhereWhen methods that support EntityQueryType

    โšก๏ธ To support EF 3.x as a base schema context we now build and execute expressions in 2 stages. See the updated readme section How EntityGraphQL handles WithService().