- #6986
db5d715a3
Thanks @glasser! - The cache control plugin setscache-control: no-store
for uncacheable responses. PasscalculateHttpHeaders: 'if-cacheable'
to the cache control plugin to restore AS3 behavior.
-
#6897
e1455d583
Thanks @bonnici! - Usage reporting: always send traces over 10MB as stats. -
Updated dependencies [
d20842824
]:- @apollo/usage-reporting-protobuf@4.0.0-rc.2
-
#6961
a782c791f
Thanks @glasser! - Require graphql@16.6 as a peer dependency. -
#6960
d3ea2d4ef
Thanks @glasser! - Add generics for response data and variables to server.executeOperation; allow inference from TypedQueryDocumentNode.
-
#6936
a404bf17e
Thanks @trevor-scheer! - Update executeOperation second parameter to be an optional options object which includes an optionalcontextValue
. -
#6936
a404bf17e
Thanks @trevor-scheer! -HTTPGraphQLRequest
now uses a specificHeaderMap
class which we export instead of allowing a standardMap
. TheHeaderMap
downcases all incoming keys, as header names are not case-sensitive. -
#6936
a404bf17e
Thanks @trevor-scheer! - UpdatevalidationRules
typing for correctness. This is sort of a breaking change for TS users in that the types were more permissive than they should have been. AllvalidationRules
list items should conform to thegraphql-js
ValidationRule
type.
-
#6827
0c2909aa1
Thanks @glasser! - Experimental support for incremental delivery (@defer
/@stream
) when combined with a prerelease ofgraphql-js
. -
#6827
0c2909aa1
Thanks @glasser! - Support application/graphql-response+json content-type if requested via Accept header, as per graphql-over-http spec. Includecharset=utf-8
in content-type headers.
- #6857
15b1cb2e9
Thanks @glasser! - Errors thrown in resolvers and context functions can useextensions.http
to affect the response status code and headers. The default behavior when a context function throws is now to always use status code 500 rather than comparingextensions.code
toINTERNAL_SERVER_ERROR
.
- #6855
3e4ab3fca
Thanks @glasser! - New usage reporting optionsendTraces: false
to only send usage reports as aggregated statistics, not per-request traces.
- #6855
3e4ab3fca
Thanks @glasser! - Remove Apollo-internalinternal_includeTracesContributingToStats
. This should not have been used other than inside Apollo's own servers.
- #6855
3e4ab3fca
Thanks @glasser! - The usage reporting optiondebugPrintReports
now displays reports vialogger.info
rather thanlogger.warn
.
- #6855
3e4ab3fca
Thanks @glasser! - Rename usage reporting optionsendErrorsInTraces
(added in 4.0.0-alpha.4) tosendErrors
, as it also affects error statistics outside of traces.
- #6841
3320fee92
Thanks @glasser! - Upgrade @apollo/server-gateway-interface to have laxer definition of overallCachePolicy.
- #6731
9fc23f799
Thanks @trevor-scheer! - Use extensions for all imports to accommodate TS users using moduleResolution: "nodenext"
- #6846
2cab8f785
Thanks @trevor-scheer! - Ensure executionDidEnd hooks are only called once (when they throw)
-
#6814
cf0fcf49a
Thanks @glasser! - Several changes relating to plugins:-
Remove the
server
field onGraphQLRequestContext
andGraphQLServerContext
(ie, the arguments to most plugin hook methods). This was added during AS4 development and did not exist in AS3. -
Add
logger
andcache
fields toGraphQLRequestContext
andGraphQLServerContext
. Thelogger
fields andGraphQLRequestContext.cache
existed in AS3 and had been previously removed for redundancy with theserver
field. (Unlike in AS3,logger
is readonly.) -
ApolloServerPlugin
is now declared as<in TContext extends BaseContext = BaseContext>
rather than<in out TContext>
. This means that you can declare a plugin that doesn't care aboutcontextValue
to simply implementApolloServerPlugin
and it will work with anyApolloServer<NoMatterWhatContext>
. This should make it easy to write plugins that don't care about context. -
Remove the ability to specify a factory function as an element of the
plugins
list in theApolloServer
constructor. (Reducing the number of ways to specify constructor options helps keep type errors simpler.) As far as we know the main use case for this (referring to theApolloServer
itself when creating the plugin) can be handled with the new-in-AS4ApolloServer.addPlugin
method.
-
- #6806
bccc230f0
Thanks @glasser! - Rename response.http.statusCode back to status like it was in AS3.
- #6788
13f809ca6
Thanks @glasser! -parseOptions
is now only used for parsing operations, not for schemas too. Its TS type now only includes options recognized bygraphql-js
itself.
- #6785
96178c570
Thanks @renovate! - Update internal use of@graphql-tools/schema
from v8 to v9. This should be a no-op; we have already removed the feature that would have been affected by the API change in this upgrade (passingparseOptions
tomakeExecutableSchema
).
- #6792
400f7867b
Thanks @glasser! - Port GHSA-2fvv-qxrq-7jq6 fix from v3 (remove XSS from default landing page HTML)
- #6794
7445d3377
Thanks @glasser! - Usage reporting and inline trace plugins: replacerewriteError
withsendErrorsInTraces
/includeErrors
, and mask all errors by default.
- #6764
c4115e96a
Thanks @glasser! - Get cache-control types from @apollo/cache-control-types; no moredeclare module
for info.cacheControl
-
#6759
6ef6a090c
Thanks @glasser! - Refactor error formatting.Remove
error.extensions.exception
; you can add it back yourself withformatError
.error.extensions.exception.stacktrace
is now available onerror.extensions.stacktrace
.Provide
unwrapResolverError
function in@apollo/server/errors
; useful for yourformatError
hook.No more TS
declare module
describing theexception
extension (partially incorrectly).Rename the (new in v4) constructor option
includeStackTracesInErrorResponses
toincludeStacktraceInErrorResponses
.
- #6765
536e038a7
Thanks @glasser! - Port #6763 from AS3 (fix fieldLevelInstrumentation type declaration)
- #6357
f736b4980
Thanks @trevor-scheer! - Port #6709 from AS3 (improve an error message)
-
#6357
7c3c825d8
Thanks @trevor-scheer! - Export ApolloServerErrorCode enum instead of error classes. HTTPGraphQLRequest takes search params as raw string. -
Updated dependencies [
7c3c825d8
]:- @apollo/usage-reporting-protobuf@4.0.0-alpha.1
- Updated dependencies [
f39d9eec7
]:- @apollo/usage-reporting-protobuf@4.0.0-alpha.0