Releases: apollographql/apollo-server
@apollo/server@4.9.4
Patch Changes
-
#7747
ddce036e1
Thanks @trevor-scheer! - The minimum version ofgraphql
officially supported by Apollo Server 4 as a peer dependency, v16.6.0, contains a serious bug that can crash your Node server. This bug is fixed in the immediate next version,graphql@16.7.0
, and we strongly encourage you to upgrade your installation ofgraphql
to at least v16.7.0 to avoid this bug. (For backwards compatibility reasons, we cannot change Apollo Server 4's minimum peer dependency, but will change it when we release Apollo Server 5.)Apollo Server 4 contained a particular line of code that makes triggering this crashing bug much more likely. This line was already removed in Apollo Server v3.8.2 (see #6398) but the fix was accidentally not included in Apollo Server 4. We are now including this change in Apollo Server 4, which will reduce the likelihood of hitting this crashing bug for users of
graphql
v16.6.0. That said, taking this@apollo/server
upgrade does not prevent this bug from being triggered in other ways, and the real fix to this crashing bug is to upgradegraphql
.
@apollo/server-integration-testsuite@4.9.4
Patch Changes
- Updated dependencies [
ddce036e1
]:- @apollo/server@4.9.4
@apollo/server@4.9.3
Patch Changes
-
a1c725eaf
Thanks @trevor-scheer! - Ensure API keys are valid header values on startupApollo Server previously performed no sanitization or validation of API keys on startup. In the case that an API key was provided which contained characters that are invalid as header values, Apollo Server could inadvertently log the API key in cleartext.
This only affected users who:
- Provide an API key with characters that are invalid as header values
- Use either schema or usage reporting
- Use the default fetcher provided by Apollo Server or configure their own
node-fetch
fetcher
Apollo Server now trims whitespace from API keys and validates that they are valid header values. If an invalid API key is provided, Apollo Server will throw an error on startup.
For more details, see the security advisory:
GHSA-j5g3-5c8r-7qfx
@apollo/server-integration-testsuite@4.9.3
Patch Changes
- Updated dependencies [
a1c725eaf
]:- @apollo/server@4.9.3
@apollo/server@4.9.2
Patch Changes
-
#7699
62e7d940d
Thanks @trevor-scheer! - Fix error path attachment for list itemsPreviously, when errors occurred while resolving a list item, the trace builder would fail to place the error at the correct path and just default to the root node with a warning message:
Could not find node with path x.y.1, defaulting to put errors on root node.
This change places these errors at their correct paths and removes the log.
@apollo/server-integration-testsuite@4.9.2
Patch Changes
- Updated dependencies [
62e7d940d
]:- @apollo/server@4.9.2
@apollo/server@4.9.1
Patch Changes
- #7672
ebfde0007
Thanks @trevor-scheer! - Add missingnonce
onscript
tag for non-embedded landing page
@apollo/server-integration-testsuite@4.9.1
Patch Changes
- Updated dependencies [
ebfde0007
]:- @apollo/server@4.9.1
@apollo/server@4.9.0
Minor Changes
-
#7617
4ff81ca50
Thanks @trevor-scheer! - Introduce newApolloServerPluginSubscriptionCallback
plugin. This plugin implements the subscription callback protocol which is used by Apollo Router. This feature implements subscriptions over HTTP via a callback URL which Apollo Router registers with Apollo Server. This feature is currently in preview and is subject to change.You can enable callback subscriptions like so:
import { ApolloServerPluginSubscriptionCallback } from '@apollo/server/plugin/subscriptionCallback'; import { ApolloServer } from '@apollo/server'; const server = new ApolloServer({ // ... plugins: [ApolloServerPluginSubscriptionCallback()], });
Note that there is currently no tracing or metrics mechanism in place for callback subscriptions. Additionally, this plugin "intercepts" callback subscription requests and bypasses some of Apollo Server's internals. The result of this is that certain plugin hooks (notably
executionDidStart
andwillResolveField
) will not be called when handling callback subscription requests or when sending subscription events.For more information on the subscription callback protocol, visit the docs:
https://www.apollographql.com/docs/router/executing-operations/subscription-callback-protocol/