Minor Changes
-
#7171
37b3b7fb5
Thanks @glasser! - If a POST body contains a non-stringoperationName
or a non-objectvariables
orextensions
, fail with status code 400 instead of ignoring the field.In addition to being a reasonable idea, this provides more compliance with the "GraphQL over HTTP" spec.
This is a backwards incompatible change, but we are still early in the Apollo Server 4 adoption cycle and this is in line with the change already made in Apollo Server 4 to reject requests providing
variables
orextensions
as strings. If this causes major problems for users who have already upgraded to Apollo Server 4 in production, we can consider reverting or partially reverting this change. -
#7184
b1548c1d6
Thanks @glasser! - Don't automatically install the usage reporting plugin in servers that appear to be hosting a federated subgraph (based on the existence of a field_Service.sdl: String
). This is generally a misconfiguration. If an API key and graph ref are provided to the subgraph, log a warning and do not enable the usage reporting plugin. If the usage reporting plugin is explicitly installed in a subgraph, log a warning but keep it enabled.
Patch Changes
-
#7170
4ce738193
Thanks @trevor-scheer! - Update @apollo/utils packages to v2 (dropping node 12 support) -
#7172
7ff96f533
Thanks @trevor-scheer! - startStandaloneServer: Restore body-parser request limit to 50mb (as it was in theapollo-server
package in Apollo Server 3) -
#7183
46af8255c
Thanks @glasser! - Apollo Server tries to detect if execution errors are variable coercion errors in order to give them acode
extension ofBAD_USER_INPUT
rather thanINTERNAL_SERVER_ERROR
. Previously this would unconditionally set thecode
; now, it only sets thecode
if nocode
is already set, so that (for example) custom scalarparseValue
methods can throw errors with specificcode
s. (Note that a separate graphql-js bug can lead to these extensions being lost; see graphql/graphql-js#3785 for details.) -
Updated dependencies [
4ce738193
,45856e1dd
]:- @apollo/server-gateway-interface@1.0.6