Strawberry GraphQL

@strawberry.rocks

Strawberry GraphQL Django 0.86.8 has been released! The built-in toolbar script is now compatible with django-debug-toolbar 7.0.0, which renders the toolbar inside a shadow DOM by default. Previously, all DOM queries targeted #djDebug directly on the document, which broke under shadow DOM...

Strawberry GraphQL Django 0.86.7 has been released! Honor the DEFAULT_PK_FIELD_NAME setting (and per-field key_attr) when resolving existing instances in mutation inputs. Previously _parse_pk read the input value under key_attr but always looked the instance up by pk=, so relation inputs and...

Strawberry GraphQL Django 0.86.6 has been released! Fix an N+1 on totalCount of nested connections optimized by prefetching: parents whose prefetched first-page partition came back empty issued one COUNT(*) query each, even though an empty first page already proves the total count is 0.

Strawberry GraphQL 0.323.2 has been released! This release fixes an issue where MaskErrors leaked parsing and validation error details during synchronous execution. Synchronous execution now masks pre-execution errors consistently with asynchronous execution, including when ValidationCache is...

Strawberry GraphQL 0.323.1 has been released! This release fixes type checking for FastAPI GraphQLRouter subclasses that provide a custom context getter without explicit generic parameters. Bare subclasses now default to the context types supported by the FastAPI integration, so valid context...

Strawberry GraphQL 0.323.0 has been released! This release adds an on_stream_result hook to SchemaExtension for extension authors who need to inspect or mutate GraphQL results before they reach a streaming transport. The hook wraps subscription events and queries or mutations sent over...

Strawberry GraphQL 0.322.2 has been released! This release fixes a bug in Relay connection pagination where combining first with before returned the wrong slice of items — walking backward from the before cursor instead of taking the first first items among those before it, per the Relay...

Strawberry GraphQL 0.322.1 has been released! This release fixes the built-in UUID, Date, DateTime, and Time scalars to reject non-string variable values with a standard coercion error instead of raising an unhandled AttributeError/TypeError inside the parser. Previously a value like {"id":...

Strawberry GraphQL 0.321.1 has been released! This release adds precise type annotations for custom scalars: serialize, parse_value and parse_literal are now typed with graphql-core's GraphQLScalarSerializer, GraphQLScalarValueParser and GraphQLScalarLiteralParser aliases instead of bare...

Strawberry GraphQL 0.321.0 has been released! This release adds configurable exception handlers that map Python exceptions to typed GraphQL union results. Most applications do not need to adopt this directly. It is primarily useful for integrations and framework-level helpers: for example,...

Strawberry GraphQL 0.320.4 has been released! This release fixes a PyCharm false positive where classes decorated with @strawberry.type and @strawberry.input reported "Unexpected argument" on their generated keyword constructors.

Strawberry GraphQL 0.320.3 has been released! This release fixes InputMutationExtension to unpack its generated input object into the resolver's individual keyword arguments before permission classes and other field extensions run. Previously, permission classes and field extensions on an...

Strawberry GraphQL 0.320.2 has been released! This release fixes a bug where print_schema would emit a type definition twice when the same type (for example an enum) was referenced both as a schema directive field and elsewhere in the schema. The duplicated definition produced invalid SDL that...

Strawberry GraphQL 0.320.1 has been released! This release fixes a bug in the Datadog extension where spans could be left open indefinitely when a GraphQL operation raised an exception. Strawberry now makes sure that the Datadog extension always closes spans, also in the case of exceptions.

Strawberry GraphQL Django 0.86.4 has been released! `@strawberry_django.type` types no longer overwrite `is_type_of` methods in superclasses. Instead, the superclass' result will be taken into account as well.

Strawberry GraphQL 0.318.1 has been released! This release fixes compatibility with graphql-core 3.3 release candidates. Strawberry now handles graphql-core's renamed custom executor hook and nullable AST argument and directive collections, so schemas using custom execution ...

Strawberry GraphQL 0.318.0 has been released! This release adds a shared internal HTTP stream transport for multipart subscription responses. Application behavior for multipart subscriptions is largely unchanged. The shared transport now owns multipart response headers, hear...

Strawberry GraphQL 0.317.2 has been released! This release fixes schema printing for input object defaults that explicitly set nullable fields to `null`. Strawberry now preserves explicit `None` values in printed nested input defaults, including fields set with `strawberry.S...

Strawberry GraphQL Django 0.86.3 has been released! Connection resolvers can now be annotated with a `QuerySet[Model]` return type instead of being forced to widen it to `Iterable[Model]`: ```python @strawberry_django.connection(DjangoCursorConnection[FruitType]) @staticmeth...

Strawberry GraphQL Django 0.86.2 has been released! Resolving a Relay node's `id` no longer goes through `sync_to_async` on every call. `resolve_id`/`resolve_id_attr` now read the primary key directly off the in-memory instance, removing an unnecessary thread hop (and context...

Strawberry GraphQL 0.317.1 has been released! Previously attributes which were not camelCase would be removed from field arguments for queries: ```python import strawberry @strawberry.input class Bar: a: str b: str some_values: list[str] | None = None @strawbe...

Strawberry GraphQL 0.317.0 has been released! `scalar_overrides` now matches generic `dict` annotations by their origin as a fallback, so registering a bare `dict` covers every `dict[K, V]` parameterization instead of needing one entry per variant. Before, registering only t...

Strawberry GraphQL Django 0.86.1 has been released! Fix `offset_paginated` fields applying the filter pipeline twice per resolution. `StrawberryOffsetPaginatedExtension.resolve` forwards `filters`/`order`/`pagination` to the inner resolver (so extensions and custom resolvers...

Strawberry GraphQL Django 0.86.0 has been released! `DateFilterLookup`, `TimeFilterLookup` and `DatetimeFilterLookup` no longer require a type parameter, matching `StrFilterLookup`. The generated GraphQL input names also lose their type prefix (e.g. `DateDateFilterLookup` bec...

Strawberry GraphQL Django 0.85.0 has been released! **Breaking change**: `PAGINATION_MAX_LIMIT` now defaults to `100` instead of `None`, so clients can no longer request more than 100 rows in a single page by default. Previously, the cap was off and `PAGINATION_DEFAULT_LIMIT...

Strawberry GraphQL 0.316.0 has been released! `Schema(extensions=...)` now accepts a class or a zero-arg factory and builds a fresh extension per request. This fixes a race where shared instances leaked `ExecutionContext` across concurrent requests, which also produced mixed ...