- Updated dependencies [
80a1a1a]:- @apollo/server@5.1.0-rc.0
-
Drop support for Node.JS v14, v16, and v20.
-
The integration test suite no longer uses
lib: ["dom"]to tell TypeScript to assume DOM-related symbols are in the global namespace. If your integration library's test suite relied on this behavior, you may need to addlib: ["dom"]to thecompilerOptionssection of your test suite'stsconfig.json.
-
#8078
dabe7baThanks @renovate! - Support Jest v30 as well as Jest v29. -
Updated dependencies [
5b26558,100233a,100233a,100233a,100233a]:- @apollo/server@5.0.0
-
#8070
0dee3c9Thanks @glasser! - Provide dual-build CJS and ESM for@apollo/server-integration-testsuite.We previously provided only a CJS build of this package, unlike
@apollo/serveritself and the other helper packages that come with it. We may make all of Apollo Server ESM-only in AS5; this is a step in that direction. Specifically, only providing this package for CJS makes it challenging to run the tests ints-jestin some ESM-only setups, because the copy of@apollo/serverfetched directly in your ESM-based test may differ from the copy fetched indirectly via@apollo/server-integration-testsuite, causing the "lockstep versioning" test to fail. -
Updated dependencies:
- @apollo/server@4.12.2
- Updated dependencies [
41f98d4]:- @apollo/server@4.12.1
-
#8010
f4228e8Thanks @glasser! - Compatibility with Next.js Turbopack. Fixes #8004. -
Updated dependencies [
f4228e8,70eecce]:- @apollo/server@4.11.3
-
#7879
b0fb33bThanks @renovate! - Update graphql-http dependency -
#7968
68977e2Thanks @glasser! - Upgrade supertest and superagent dependencies -
Updated dependencies []:
- @apollo/server@4.11.2
-
#7952
bb81b2cThanks @glasser! - Upgrade dependencies so that automated scans don't detect a vulnerability.@apollo/serverdepends onexpresswhich depends oncookie. Versions ofexpressolder than v4.21.1 depend on a version ofcookievulnerable to CVE-2024-47764. Users of olderexpressversions who callres.cookie()orres.clearCookie()may be vulnerable to this issue.However, Apollo Server does not call this function directly, and it does not expose any object to user code that allows TypeScript users to call this function without an unsafe cast.
The only way that this direct dependency can cause a vulnerability for users of Apollo Server is if you call
startStandaloneServerwith a context function that calls Express-specific methods such asres.cookie()orres.clearCookies()on the response object, which is a violation of the TypeScript types provided bystartStandaloneServer(which only promise that the response object is a core Node.jshttp.ServerResponserather than the Express-specific subclass). So this vulnerability can only affect Apollo Server users who use unsafe JavaScript or unsafeastypecasts in TypeScript.However, this upgrade will at least prevent vulnerability scanners from alerting you to this dependency, and we encourage all Express users to upgrade their project's own
expressdependency to v4.21.1 or newer. -
Updated dependencies [
bb81b2c]:- @apollo/server@4.11.1
- Updated dependencies [
4686454]:- @apollo/server@4.11.0
-
#7821
b2e15e7Thanks @renovate! - Non-major dependency updates -
#7900
86d7111Thanks @trevor-scheer! - Inline a small dependency that was causing build issues for ESM projects -
Updated dependencies [
b2e15e7,86d7111]:- @apollo/server@4.10.5
- Updated dependencies [
18a3827]:- @apollo/server@4.10.4
- Updated dependencies [
5f335a5]:- @apollo/server@4.10.3
- Updated dependencies [
c7e514c]:- @apollo/server@4.10.2
- Updated dependencies [
72f568e]:- @apollo/server@4.10.1
- #7786
869ec98Thanks @ganemone! - Restore missing v1skipValidationoption asdangerouslyDisableValidation. Note that enabling this option exposes your server to potential security and unexpected runtime issues. Apollo will not support issues that arise as a result of using this option.
-
#7740
fe68c1bThanks @barnisanov! - Uninstalledbody-parserand usedexpressbuilt-inbody-parserfunctionality instead(mainly the json middleware) -
Updated dependencies [
869ec98,9bd7748,63dc50f,fe68c1b,e9a0d6e]:- @apollo/server@4.10.0
-
#7717
681bdd0dcThanks @renovate! - Update graphql-http dependency -
Updated dependencies [
07585fe39,4fac1628c]:- @apollo/server@4.9.5
- Updated dependencies [
ddce036e1]:- @apollo/server@4.9.4
- Updated dependencies [
a1c725eaf]:- @apollo/server@4.9.3
- Updated dependencies [
62e7d940d]:- @apollo/server@4.9.2
- Updated dependencies [
ebfde0007]:- @apollo/server@4.9.1
-
#7659
4784f46fbThanks @renovate! - Update graphql-http dependency -
Updated dependencies [
4ff81ca50,4784f46fb]:- @apollo/server@4.9.0
-
#7636
42fc65cb2Thanks @trevor-scheer! - Update test suite for compatibility with Node v20 -
Updated dependencies [
42fc65cb2]:- @apollo/server@4.8.1
-
#7649
d33acdfddThanks @mastrzyz! - Add missingsupertestdependency -
#7632
64f8177abThanks @renovate! - Update graphql-http dependency -
Updated dependencies [
f8a8ea08f]:- @apollo/server@4.8.0
- Updated dependencies [
4fadf3ddc]:- @apollo/cache-control-types@1.0.3
- @apollo/server@4.7.5
- @apollo/usage-reporting-protobuf@4.1.1
-
#7604
aeb511c7dThanks @renovate! - Updategraphql-httpdependency -
0adaf80d1Thanks @trevor-scheer! - Address Content Security Policy issuesThe previous implementation of CSP nonces within the landing pages did not take full advantage of the security benefit of using them. Nonces should only be used once per request, whereas Apollo Server was generating one nonce and reusing it for the lifetime of the instance. The reuse of nonces degrades the security benefit of using them but does not pose a security risk on its own. The CSP provides a defense-in-depth measure against a potential XSS, so in the absence of a known XSS vulnerability there is likely no risk to the user.
The mentioned fix also coincidentally addresses an issue with using crypto functions on startup within Cloudflare Workers. Crypto functions are now called during requests only, which resolves the error that Cloudflare Workers were facing. A recent change introduced a
precomputedNonceconfiguration option to mitigate this issue, but it was an incorrect approach given the nature of CSP nonces. This configuration option is now deprecated and should not be used for any reason since it suffers from the previously mentioned issue of reusing nonces.Additionally, this change adds other applicable CSPs for the scripts, styles, images, manifest, and iframes that the landing pages load.
A final consequence of this change is an extension of the
renderLandingPageplugin hook. This hook can now return an object with anhtmlproperty which returns aPromise<string>in addition to astring(which was the only option before). -
Updated dependencies [
0adaf80d1]:- @apollo/server@4.7.4
- Updated dependencies [
75b668d9e]:- @apollo/server@4.7.3
- Updated dependencies [
c3f04d050]:- @apollo/server@4.7.2
- Updated dependencies [
5d3c45be9]:- @apollo/server@4.7.1
-
#7509
5c20aa02eThanks @renovate! - Updategraphql-httpdependency -
#7475
b9ac2d6b2Thanks @renovate! - Update graphql-http dependency -
Updated dependencies [
22a5be934]:- @apollo/server@4.7.0
-
#7454
f6e3ae021Thanks @trevor-scheer! - Start building packages with TS 5.x, which should have no effect for users -
Updated dependencies [
1e808146a,f6e3ae021,e0db95b96]:- @apollo/server@4.6.0
-
#7381
29038a4d3Thanks @renovate! - Update graphql-http dependency -
Updated dependencies [
021460e95]:- @apollo/usage-reporting-protobuf@4.1.0
- @apollo/server@4.4.1
- Updated dependencies [
f2d433b4f]:- @apollo/server@4.4.0
-
#7338
01bc39838Thanks @trevor-scheer! - Update graphql-http to 1.13.0 -
Updated dependencies [
9de18b34c,8c635d104]:- @apollo/server@4.3.3
-
#7316
37d884650Thanks @renovate! - Update graphql-http dependency -
Updated dependencies [
f246ddb71,e25cb58ff]:- @apollo/server@4.3.2
-
#7285
35fa72bddThanks @glasser! - Adds an integration test verifying that Rover's introspection query works. This should not break any integration that passes other tests. -
#7276
15c912f4cThanks @renovate! - Update graphql-http dependency -
Updated dependencies [
ec28b4b33,322b5ebbc,3b0ec8529]:- @apollo/server@4.3.1
-
#7228
f97e55304Thanks @dnalborczyk! - Improve compatibility with Cloudflare workers by avoiding the use of the Nodeurlpackage. This change is intended to be a no-op. -
Updated dependencies [
3a4823e0d,d057e2ffc,f97e55304,d7e9b9759,d7e9b9759]:- @apollo/server@4.3.0
-
#7203
2042ee761Thanks @glasser! - Fix v4.2.0 (#7171) regression where"operationName": null,"variables": null, and"extensions": nullin POST bodies were improperly rejected. -
Updated dependencies [
2042ee761]:- @apollo/server@4.2.2
-
#7187
3fd7b5f26Thanks @trevor-scheer! - Update@apollo/utils.keyvaluecachedependency to the latest patch which correctly specifies its version oflru-cache. -
Updated dependencies [
3fd7b5f26]:- @apollo/server@4.2.1
-
#7171
37b3b7fb5Thanks @glasser! - If a POST body contains a non-stringoperationNameor a non-objectvariablesorextensions, 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
variablesorextensionsas 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.
-
#7170
4ce738193Thanks @trevor-scheer! - Update @apollo/utils packages to v2 (dropping node 12 support) -
#7179
c8129c23fThanks @renovate! - Fix a few tests to support (but not require) TypeScript 4.9. -
#7171
37b3b7fb5Thanks @glasser! - The integration test suite now incorporates thegraphql-httppackage's audit suite for the "GraphQL over HTTP" specification. -
#7183
46af8255cThanks @glasser! - Apollo Server tries to detect if execution errors are variable coercion errors in order to give them acodeextension ofBAD_USER_INPUTrather thanINTERNAL_SERVER_ERROR. Previously this would unconditionally set thecode; now, it only sets thecodeif nocodeis already set, so that (for example) custom scalarparseValuemethods can throw errors with specificcodes. (Note that a separate graphql-js bug can lead to these extensions being lost; see graphql/graphql-js#3785 for details.) -
Updated dependencies [
4ce738193,37b3b7fb5,b1548c1d6,7ff96f533,46af8255c]:- @apollo/server@4.2.0
- Updated dependencies [
c835637be]:- @apollo/server@4.1.1
-
2a2d1e3b4Thanks @glasser! - Thecache-controlHTTP response header set by the cache control plugin now properly reflects the cache policy of all operations in a batched HTTP request. (If you write thecache-controlresponse header via a different mechanism to a format that the plugin would not produce, the plugin no longer writes the header.) For more information, see advisory GHSA-8r69-3cvp-wxc3. -
2a2d1e3b4Thanks @glasser! - Plugins processing multiple operations in a batched HTTP request now have a sharedrequestContext.request.httpobject. Changes to HTTP response headers and HTTP status code made by plugins operating on one operation can be immediately seen by plugins operating on other operations in the same HTTP request. -
2a2d1e3b4Thanks @glasser! - New fieldGraphQLRequestContext.requestIsBatchedavailable to plugins. -
#7114
c1651bfacThanks @trevor-scheer! - Directly depend on Apollo Server rather than as a peer
-
#7080
540f3d97cThanks @martinnabhan! - Recognize malformed JSON error messages from Next.js. -
Updated dependencies []:
- @apollo/server@4.0.4
-
#7073
e7f524eacThanks @glasser! - Never interpretGETrequests as batched. In previous versions of Apollo Server 4, aGETrequest whose body was a JSON array with N elements would be interpreted as a batch of the operation specified in the query string repeated N times. Now we just ignore the body forGETrequests (like in Apollo Server 3), and never treat them as batched. -
#7071
0ed389ce8Thanks @glasser! - Fix v4 regression: gateway implementations should be able to set HTTP response headers and the status code. -
Updated dependencies [
e7f524eac,0ed389ce8]:- @apollo/server@4.0.3
-
#7035
b3f400063Thanks @barryhagan! - Errors resulting from an attempt to use introspection when it is not enabled now have an additionalvalidationErrorCode: 'INTROSPECTION_DISABLED'extension; this value is part of a new enumApolloServerValidationErrorCodeexported from@apollo/server/errors. -
#7066
f11d55a83Thanks @trevor-scheer! - Add a test to validate error message and code for invalid operation names via GET -
#7055
d0d8f4be7Thanks @trevor-scheer! - Fix build configuration issue and align on CJS correctly -
Updated dependencies [
b3f400063]:- @apollo/server@4.0.2
-
#7049
3daee02c6Thanks @glasser! - Raise minimumenginesrequirement from Node.js v14.0.0 to v14.16.0. This is the minimum version of Node 14 supported by theenginesrequirement ofgraphql@16.6.0. -
Updated dependencies [
3daee02c6,3daee02c6]:- @apollo/server@4.0.1
Initial release of @apollo/server-integration-testsuite.