Skip to content

Commit 04fab28

Browse files
committed
Merge remote-tracking branch 'origin/master' into advisory-fix-1
2 parents 1a0d450 + 02f1fb6 commit 04fab28

File tree

79 files changed

+7496
-2289
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+7496
-2289
lines changed

CHANGELOG.md

+54
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,60 @@ The version headers in this history reflect the versions of Apollo Server itself
2121
2222
**To be clear, if subscriptions were disabled with `subscriptions: false`, the server is unaffected. In all other cases, introspection was unexpectedly enabled on the WebSocket endpoint provided by `SubscriptionServer` when it was meant to be disabled, either with `introspection: false` or when deployed to production. The risk is largely dependent on the data exposed in the schema itself.**
2323

24+
### v2.14.1
25+
26+
> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/2da65ef9204027e43baedf9ce385bb3794fd0c9b)
27+
28+
- `apollo-server-testing`: Ensure that user-provided context is cloned when using `createTestClient`, per the instructions in the [intergration testing]() section of the Apollo Server documentation. [Issue #4170](https://github.com/apollographql/apollo-server/issues/4170) [PR #4175](https://github.com/apollographql/apollo-server/pull/4175)
29+
30+
### v2.14.0
31+
32+
> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/d159e320879f594ba2d04036e3e1aa0653ff164d)
33+
34+
- `apollo-server-core` / `apollo-server-plugin-base`: Add support for `willResolveField` and corresponding end-handler within `executionDidStart`. This brings the remaining bit of functionality that was previously only available from `graphql-extensions` to the new plugin API. The `graphql-extensions` API (which was never documented) will be deprecated in Apollo Server 3.x. To see the documentation for the request pipeline API, see [its documentation](https://www.apollographql.com/docs/apollo-server/integrations/plugins/). For more details, see the attached PR. [PR #3988](https://github.com/apollographql/apollo-server/pull/3988)
35+
- `apollo-server-core`: Deprecate `graphql-extensions`. All internal usages of the `graphql-extensions` API have been migrated to the request pipeline plugin API. For any implementor-supplied `extensions`, a deprecation warning will be printed once per-extension, per-server-startup, notifying of the intention to deprecate. Extensions should migrate to the plugin API, which is outlined in [its documentation](https://www.apollographql.com/docs/apollo-server/integrations/plugins/). [PR #4135](https://github.com/apollographql/apollo-server/pull/4135)
36+
- `apollo-engine-reporting`: **Currently only for non-federated graphs.**
37+
Added an _experimental_ schema reporting option,
38+
`experimental_schemaReporting`, for Apollo Graph Manager users. **During
39+
this experiment, we'd appreciate testing and feedback from current and new
40+
users of the schema registry!**
41+
42+
Prior to the introduction of this feature, the only way to get schemas into
43+
the schema registry in Apollo Graph Manager was to use the CLI and run
44+
`apollo schema:push`. _Apollo schema reporting protocol_ is a *new*
45+
specification for GraphQL servers to automatically report schemas to the
46+
Apollo Graph Manager schema registry.
47+
48+
**To enable schema reporting,** provide a Graph Manager API key (available
49+
free from [Apollo Graph Manager](https://engine.apollographql.com/)) in the
50+
`APOLLO_KEY` environment variable *and* set the `experimental_schemaReporting`
51+
option to `true` in the Apollo Server constructor options, like so:
52+
53+
```js
54+
const server = new ApolloServer({
55+
typeDefs,
56+
resolvers,
57+
engine: {
58+
experimental_schemaReporting: true,
59+
/* Other existing options can remain the same. */
60+
},
61+
});
62+
```
63+
64+
> When enabled, a schema reporter is initiated by the `apollo-engine-reporting` agent. It will loop until the `ApolloServer` instance is stopped, periodically calling back to Apollo Graph Manager to send information. The life-cycle of this reporter is managed by the agent.
65+
66+
For more details on the implementation of this new protocol, see the PR which
67+
introduced it to Apollo Server and the [preview documentation](https://github.com/apollographql/apollo-schema-reporting-preview-docs).
68+
69+
[PR #4084](https://github.com/apollographql/apollo-server/pull/4084)
70+
- `apollo-engine-reporting`: The underlying integration of this plugin, which instruments and traces the graph's resolver performance and transmits these metrics to [Apollo Graph Manager](https://engine.apollographql.com/), has been changed from the (soon to be deprecated) `graphql-extensions` API to the new [request pipeline `plugins` API](https://www.apollographql.com/docs/apollo-server/integrations/plugins/). [PR #3998](https://github.com/apollographql/apollo-server/pull/3998)
71+
72+
_This change should be purely an implementation detail for a majority of users_. There are, however, some special considerations which are worth noting:
73+
74+
- The federated tracing plugin's `ftv1` response on `extensions` (which is present on the response from an implementing service to the gateway) is now placed on the `extensions` _after_ the `formatResponse` hook. Anyone leveraging the `extensions`.`ftv1` data from the `formatResponse` hook will find that it is no longer present at that phase.
75+
- `apollo-tracing`: This package's internal integration with Apollo Server has been switched from using the soon-to-be-deprecated `graphql-extensions` API to using [the request pipeline plugin API](https://www.apollographql.com/docs/apollo-server/integrations/plugins/). Behavior should remain otherwise the same. [PR #3991](https://github.com/apollographql/apollo-server/pull/3991)
76+
- `apollo-cache-control`: This package's internal integration with Apollo Server has been switched from using the soon-to-be-deprecated `graphql-extensions` API to using [the request pipeline plugin API](https://www.apollographql.com/docs/apollo-server/integrations/plugins/). Behavior should remain otherwise the same. [PR #3997](https://github.com/apollographql/apollo-server/pull/3997)
77+
2478
### v2.13.0
2579

2680
> [See complete versioning details.](https://github.com/apollographql/apollo-server/commit/e37384a49b2bf474eed0de3e9f4a1bebaeee64c7)

0 commit comments

Comments
 (0)