10.0.0-RC3
Pre-release
Pre-release
New changes in RC3
Warning
Please also read https://github.com/rebing/graphql-laravel/blob/master/UPGRADE.md#upgrading-from-9-to-10
Breaking changes
Privacy::validate()and closure signature changed #1251 / mfn
newmixed $rootfirst parameter, new optional?ResolveInfo $resolveInfofourth parameter,$queryContextnow typed asmixed- Remove
$getSelectFieldsparameter fromField::authorize()#1250 / mfn
it has been non-functional since half a decade
Fixed
- Fix
SelectFieldscrashing when field types use callable #1252 / mfn - Fix APQ middleware race condition (TOCTOU) #1253 / mfn
- Fix
OperationParamsnot copyingoriginalInput/readOnly, causing TypeError #1254 / mfn - Fix APQ config not using
config()inside config file #1255 / mfn
Changes in RC2
Breaking changes
Privacy::validate()first parameter renamed from$queryArgsto$fieldArgs— it now receives the field's own arguments instead of root query argumentsSelectFieldsnow identifies wrapper types via theRebing\GraphQL\Support\Contracts\WrapTypemarker interface. Custom pagination types and wrap types used withSelectFieldsmust implement this interface. #1228 / mfnAdded
- Add tracing support with OpenTelemetry driver #1220 / mfn
Rebing\GraphQL\Support\Contracts\WrapTypemarker interface for wrapper types (pagination types and custom wrap types) #1228 / mfnFixed
- Narrow
GraphQL::type()PHPStan return type to(NullableType&Type)|NonNullso consumers can pass it toType::nonNull()without static analysis errors #1221 / mfn- Fix
SelectFieldsforcingselect *for Interface return types instead of selecting only the requested columns #683 / mfn- Fix
SelectFieldsnot calling customquerycallbacks on relation fields insideUnionTypemembers #900 / mfn- Fix cross-field validation rules (
prohibits,required_without,required_if, etc.) not working in nested InputTypes #930 / mfn- Fix
privacyattribute ignored on nested/sub-types by moving enforcement fromSelectFieldsto field resolvers inType::getFields()#1161 / mfn- Fix
SelectFieldsproducing emptySELECTclause for custom wrap types created viaGraphQL::wrapType()#1228 / mfn
Changes in RC1
Breaking changes
- Security hardening: safer defaults for production deployments #1210 / mfn
- Default HTTP method changed from
GET/POSTtoPOSTonly- Batching disabled by default (
batching.default→false)- Introspection disabled by default (
GRAPHQL_DISABLE_INTROSPECTIONenv var)- Default
query_max_depthset to13(was unlimited)- Default
query_max_complexityset to500(was unlimited)- Authorization now runs before validation in field resolver
- Authorization uses strict
=== truecomparisonAdded
- Added `max_batch_size` config option to limit batch query operations
Full Changelog: 10.0.0-RC2...10.0.0-RC3