The version headers in this history reflect the versions of Apollo Server itself. Versions of other packages (e.g. which are not actual HTTP integrations; packages not prefixed with apollo-server) may use different versions. For more details, check the publish commit for that version in the Git history.
The changes noted within this
vNEXTsection have not been released yet. New PRs and commits which introduce changes should include an entry in thisvNEXTsection as part of their development. When a release is being prepared, a new header will be (manually) created below and the the appropriate changes within that release will be moved into the new section.
- Nothing yet! Stay tuned!
apollo-server-express: Add direct dependency onexpressto allow for usage ofexpress.RouterforgetMiddlewarefunctionality (from #2435). Previously, unlike other server integration packages,apollo-server-expressdid not directly needexpressas a dependency since it only relied onexpressfor TypeScript typings. Issue #3238 PR #3239apollo-server-lambda: Add@types/aws-lambdaas a direct dependency toapollo-server-expressto allow usage of its typings without needing to separately install it. Issue #2351 PR #3242
apollo-server-koa: Drop support for Node.js v6 within the Apollo Server Koa integration in order to updatekoa-bodyparserdependency fromv3.0.0tov4.2.1. PR #TODO Issue #3050 PR #3229apollo-server-express: Use explicit return type for newgetMiddlewaremethod, in an effort to resolve Issue #3222 PR #3230
apollo-server-core: MakeformatErroravailable to subscriptions in the same spirit as the existingformatResponse. PR #2942apollo-engine-reporting: The behavior of theengine.maxAttemptsparameter previously did not match its documentation. It is documented as being the max number of attempts including the initial attempt, but until this release it was actually the number of retries excluding the initial attempt. The behavior has been changed to match the documentation (and the literal reading of the option name). PR #3218apollo-engine-reporting: When sending the report fails with a server-side 5xx error, include the full error from the server in the logs. PR #3218apollo-server-core: Fix regression which prevented the resizing of the schema panel in GraphQL Playground. PR #3224 and upstream
apollo-server-express,apollo-server-koa: A newgetMiddlewaremethod has been introduced, which accepts the same parameters asapplyMiddlewarewith the exception of theappproperty. This allows implementors to obtain the middleware directly and "use" it within an existingapp. In the near-term, this should ease some of the pain points with the previous technique. Longer-term, we are exploring what we consider to be a much more natural approach by introducing an "HTTP transport" in Apollo Server 3.x. See this proposal issue for more information. PR #2435@apollo/federation:buildFederatedSchema'stypeDefsparameter now accepts arrays ofDocumentNodes (i.e. type definitions wrapped ingql) andresolversto make the migration from a single service into a federated service easier for teams previously utilizing this pattern. PR #3188
apollo-server-koa: Update dependency koa to v2.8.1. PR #3175apollo-server-express: Update types exported by the ASE package. PR #3173 PR #3172
apollo-engine-reporting: Fix reporting errors which have non-arraypathfields (eg, non-GraphQLError errors). PR #3112apollo-engine-reporting: Add missingapollo-server-cachingdependency. PR #3054apollo-server-hapi: Revert switch fromacceptandboomwhich took place in v2.8.0. PR #3089@apollo/gateway: Change thesetIntervaltimer, which is used to continuously check for updates to a federated graph from the Apollo Graph Manager, to be anunref'd timer. Without this change, the server wouldn't terminate properly once polling had started since the event-loop would continue to have unprocessed events on it. PR #3105- Switch to using community
@types/graphql-uploadtypes. apollo-server-fastify: Change the typing of the HTTPresponsefromOutgoingMessagetoServerResponse. Commitapollo-server-hapi: Pass therawrequest and response objects tographql-uploadsprocessRequestmethod to align on the same TypeScript types. Commit
@apollo/federation: Add support for "value types", which are type definitions which live on multiple services' types, inputs, unions or interfaces. These common types must be identical by name, kind and field across all services. PR #3063apollo-server-express: Use the Expresssendmethod, rather than callingnet.Socket.prototype.end. PR #2842apollo-server-hapi: Update internal dependencies to use scoped packages@hapi/acceptand@hapi/boom, in place ofacceptandboomrespectively. PR #3089
apollo-engine-reporting: Fix reporting errors from backend. (The support for federated metrics introduced in v2.7.0 did not properly handle GraphQL errors from the backend; all users of federated metrics should upgrade to this version.) PR #3056 Issue #3052apollo-engine-reporting: Clean upSIGINTandSIGTERMhandlers whenEngineReportingAgentis stopped; fixes 'Possible EventEmitter memory leak detected' log. PR #3090
apollo-engine-reporting: If an error is thrown by a custom variable transform function passed into the reporting optionsendVariableValues: { transform: ... }, all variable values will be replaced with the string[PREDICATE_FUNCTION_ERROR].apollo-server-express: Typing fix for theconnectionproperty, which was missing from theExpressContextinterface. PR #2959@apollo/gateway: Ensure execution of correct document within multi-operation documents by including theoperationNamein the cache key used when caching query plans used in federated execution. PR #3084
-
apollo-engine-reporting: Behavior change: By default, send no GraphQL variable values to Apollo's servers instead of sending all variable values. Adding the new EngineReportingOptionsendVariableValuesto send some or all variable values, possibly after transforming them. This replaces theprivateVariablesoption, which is now deprecated. PR #2931To maintain the previous behavior of transmitting all GraphQL variable values, unfiltered, to Apollo Engine, configure
engine.sendVariableValuesas follows:engine: { sendVariableValues: { all: true } }
-
apollo-engine-reporting: Behavior change: By default, send no GraphQL request headers and values to Apollo's servers instead of sending all. Adding the new EngineReportingOptionsendHeadersto send some or all header values. This replaces theprivateHeadersoption, which is now deprecated. PR #2931To maintain the previous behavior of transmitting all GraphQL request headers and values, configure
engine.sendHeadersas following:engine: { sendHeaders: { all: true } }
-
apollo-engine-reporting: Behavior change: If the error returned from theengine.rewriteErrorhook has anextensionsproperty, that property will be used instead of the original error's extensions. Document that changes to most otherGraphQLErrorfields byengine.rewriteErrorare ignored. PR #2932 -
apollo-engine-reporting: Behavior change: Theengine.maskErrorDetailsoption, deprecated byengine.rewriteErrorin v2.5.0, now behaves a bit more like the new option: while all error messages will be redacted, they will still show up on the appropriate nodes in a trace. PR #2932 -
apollo-server-core,@apollo/gateway: Introduced managed federation support. For more information on managed federation, see the blog post or jump to the documentation for managed federation. -
@apollo/gateway@0.7.1: Don't print a warning about an unspecified "graph variant" (previously, and in many ways still, known as "schema tag") every few seconds. We do highly recommend specifying one when using the Apollo Platform features though! PR #3043 -
graphql-playground: Update to resolve incorrect background color on tabs when using thelighttheme. PR #2989 Issue #2979 -
graphql-playground: Fix "Query Planner" and "Tracing" panels which were off the edge of the viewport. -
apollo-server-plugin-base: FixGraphQLRequestListenertype definitions to allowreturn void. PR #2368
apollo-server-core: Guard against undefined property access inisDirectiveDefinedwhich resulted in "Cannot read property 'some' of undefined" error. PR #2924 Issue #2921
apollo-server-core: Avoid duplicatecacheControldirectives being added viaisDirectiveDefined, re-landing the implementation reverted in v2.6.1 which first surfaced in v2.6.0. PR #2762 Reversion PR #2754 Original PR #2428apollo-server-testing: Add TypeScript types forapollo-server-testingclient. PR #2871apollo-server-plugin-response-cache: Fix undefined property access attempt which occurred when an incomplete operation was received. PR #2792 Issue #2745
apollo-engine-reporting: Simplify the technique for capturingoperationName. PR #2899apollo-server-core: Fix regression in 2.6.0 which causedengine: falsenot to disable Engine when theENGINE_API_KEYenvironment variable was set. PR #2850@apollo/federation: Introduced aREADME.md. PR #2883@apollo/gateway: Introduced aREADME.md. PR #2883
@apollo/gateway: Passcontextthrough to thegraphqlcommand inLocalGraphQLDataSource'sprocessmethod. PR #2821@apollo/gateway: Fix gateway not sending needed variables for subqueries not at the root level. PR #2867@apollo/federation: Allow matching enums/scalars in separate services and validate that enums have matching values. PR #2829.@apollo/federation: Strip@externalfields from interface extensions. PR #2848@apollo/federation: Add support for list type keys in federation. PR #2841@apollo/federation: Deduplicate variable definitions for sub-queries. PR #2840
apollo-engine-reporting: SetforbiddenOperationandregisteredOperationlater in the request lifecycle. PR #2828apollo-server-core: AddqueryHashtoGraphQLExecutorfor federation. PR #2822@apollo/federation: Preserve descriptions from SDL of federated services. PR #2830
apollo-engine-reporting-protobuf: Update protobuf to includeforbiddenOperationsandregisteredOperations. PR #2768apollo-server-core: AddforbiddenOperationandregisteredOperationtoGraphQLRequestMetricstype. PR #2768apollo-engine-reporting: SetforbiddenOperationandregisteredOperationon trace if the field is true onrequestContext.metrics. PR #2768apollo-server-lambda: RemoveObject.fromEntriesusage. PR #2787
- Revert: Don't add
cacheControldirective if one has already been defined. Presently, although the TypeScript don't suggest it, passing aStringastypeDefstoApolloServeris supported and this would be a breaking change for non-TypeScript users. PR #2428
apollo-server-core: Introduce newdidEncounterErrorslife-cycle hook which has access to unformattederrorsproperty on therequestContext, which is the first positional parameter that this new request life-cycle receives. PR #2719apollo-server-core: Allow request pipeline life-cycle hooks (i.e. plugins) to modify the response'shttp.statuscode (an integer) in the event of an error. When combined with the newdidEncounterErrorslife-cycle hook (see above), this will allow modifying the HTTP status code in the event of an error. PR #2714apollo-server-lambda: SetcallbackWaitsForEmptyEventLooptofalseforOPTIONSrequests to return as soon as thecallbackis triggered instead of waiting for the event loop to empty. PR #2638apollo-server: SupportonHealthCheckin theApolloServerconstructor in the same way ascorsis supported. This contrasts with the-express,-hapi, etc. variations which accept this parameter via theirapplyMiddlewaremethods and will remain as-is. PR #2672- core: Expose SHA-512 hex hash digest of the Engine API key to plugins, when available, as
engine.apiKeyHash. PR #2685 PR #2736 apollo-datasource-rest: If anotherContent-typeis already set on the response, don't overwrite it withapplication/json, allowing the user's initialContent-typeto prevail. PR #2520- Don't add
cacheControldirective if one has already been defined. PR #2428 apollo-cache-control: Do not respond withCache-controlheaders if the HTTP response containserrors. PR #2715apollo-server-core: Skip loadingutil.promisifypolyfill in Node.js engines >= 8.0 PR #2278apollo-server-core: Lazy loadsubscriptions-transport-wsin core PR #2278apollo-server-cache-redis: BREAKING FOR USERS OFapollo-server-cache-redis(This is a package that must be updated separately but shares the sameCHANGELOG.mdwith Apollo Server itself.) A new major version of this package has been published and updated to support Redis Standalone, Cluster and Sentinel modes. This is a breaking change since it is now based onioredisinstead ofnode_redis. Although this update is compatible with the most common uses ofapollo-server-cache-redis, please check the options supported byiorediswhile updating to this version. The constructor options are passed directly fromRedisCacheto the new Redis adapter. The pre-1.0 versions should continue to work with Apollo Server without modification. PR #1770
- Upgrade GraphQL Playground to the latest upstream release. This release also includes a new "Query Plan" panel for displaying the query planning results when running the Apollo Gateway.
- New plugin package
apollo-server-plugin-response-cacheimplementing a full query response cache based onapollo-cache-controlhints. The implementation added a few hooks and context fields; see the PR for details. There is a slight change tocacheControlobject: previously,cacheControl.stripFormattedExtensionsdefaulted to false if you did not provide acacheControloption object, but defaulted to true if you provided (eg)cacheControl: {defaultMaxAge: 10}. NowstripFormattedExtensionsdefaults to false unless explicitly provided astrue, or if you use the legacy booleancacheControl: true. For more information, read the documentation. PR #2437 - Add
rewriteErroroption toEngineReportingOptions(i.e. theengineproperty of theApolloServerconstructor). When defined as afunction, it will receive anerrproperty as its first argument which can be used to manipulate (e.g. redaction) an error prior to sending it to Apollo Engine by modifying, e.g., itsmessageproperty. The error can also be suppressed from reporting entirely by returning an explicitnullvalue. For more information, read the documentation and theEngineReportingOptionsAPI reference.maskErrorDetailsis now deprecated. PR #1639 apollo-server-azure-functions: Support@azure/functionsto enable Apollo Server Typescript development in Azure Functions. PR #2487- Allow
GraphQLRequestListenercallbacks in plugins to depend onthis. PR #2470 apollo-server-testing: AddvariablesandoperationNametoQueryandMutationtypes. PR #2307 Issue #2172
- Add
cache-control: no-cacheheader to bothPersistedQueryNotSupportedErrorandPersistedQueryNotFoundErrorresponses as these should never be cached. PR #2452 apollo-datasource-rest: Don't attempt to parse "204 No Content" responses as JSON. PR #2446apollo-server-express: Fix Playground URL when Apollo Server is mounted inside of another Express app by utilizingreq.originalUrl. PR #2451apollo-datasource-rest: Correctly allow a TTL value of0to represent "not-cacheable". PR #2588apollo-datasource-rest: FixInvalid argumentin IE11, whenthis.headersisundefined. PR #2607
- No functional changes in this version. The patch version has been bumped to fix the
README.mddisplayed on the npm package forapollo-serveras a result of a broken publish. Apologies for the additional noise!
- Fix typings which incorrectly included
corsas part of the constructor options forapollo-server-express(it should be defined viaapplyMiddleware) but, conversely, inadvertently omitted the perfectly validcorsoption from theapollo-serverconstructor (whereapplyMiddlewareis not used/available). PR #2373 Issue #1882
- Allow Node.js-like runtimes to identify as Node.js as well. PR #2357 Issue #2356
apollo-server-express: ExportExpressContextPR #2352
- Fix typing for ContextFunction incorrectly requiring the context object the function produces to match the parameters of the function PR #2350
apollo-server-lambda: Fix typings which triggered "Module has no default export" errors. PR #2230apollo-server-koa: Support OPTIONS requests PR #2288- Add
reqandrestypings to theContextFunctionargument for apollo-server and apollo-server-express. UpdateContextFunctionreturn type to allow returning a value syncronously. PR #2330 - Type the
formatErrorfunction to accept an GraphQLError as an argument and return a GraphQLFormattedError PR #2343
apollo-server-fastifyis now on Apollo Server and lives within theapollo-serverrepository. This is being introduced in a patch version, however it's a major version bump from the last timeapollo-server-fastifywas published under1.0.2. PR #1971- Move
apollo-graphqlpackage to theapollo-toolingrepository PR #2316
- Fix inaccurate total duration in apollo-tracing PR #2298
- Avoid importing entire
cryptodependency tree if not in Node.js. PR #2304 - Allow passing
parseOptionstoApolloServerBaseconstructor. PR #2289 - Rename
azureFunctions.d.tstoazureFunctions.ts. PR #2287 - Require
apollo-engine-reportingonly ifEngineReportingAgentused. PR #2305
- Implement an in-memory cache store to save parsed and validated documents and provide performance benefits for repeat executions of the same document. PR #2111 (
>=2.4.0-alpha.0) - Fix: Serialize arrays as JSON on fetch in
RESTDataSource. PR #2219 - Fix: The
privateHeadersconfiguration forapollo-engine-reportingnow allows headers to be specified using any case and lower-cases them prior to comparison. PR #2276 - Fix broken
apollo-server-azure-functionsTypeScript definitions. PR #2287
apollo-server(only): Stop double-invocation ofserverWillStartlife-cycle event. (More specific integrations - e.g. Express, Koa, Hapi, etc. - were unaffected.) PR #2239- Avoid traversing
graphql-uploadmodule tree in run-time environments which aren't Node.js. PR #2235
-
Switch from
json-stable-stringifytofast-json-stable-stringify. PR #2065 -
Fix cache hints of
maxAge: 0to mean "uncachable". #2197 -
Apply
defaultMaxAgeto scalar fields on the root object. #2210 -
Don't write to the persisted query cache until execution will begin. PR #2227
-
apollo-server-azure-functions: Added Azure Functions documentation and deployment examples PR #2131, Issue #2092
- Provide types for
graphql-uploadin a location where they can be accessed by TypeScript consumers ofapollo-serverpackages. ccf935f9 Issue #2092
-
BREAKING FOR NODE.JS <= 8.5.0 ONLY: To continue using Apollo Server 2.x in versions of Node.js prior to v8.5.0, file uploads must be disabled by setting
uploads: falseon theApolloServerconstructor options. Without explicitly disabling file-uploads, the server willthrowat launch (with instructions and a link to our documentation).This early deprecation is due to changes in the third-party
graphql-uploadpackage which Apollo Server utilizes to implement out-of-the-box file upload functionality. While, in general, Apollo Server 2.x aims to support all Node.js versions which were under an LTS policy at the time of its release, we felt this required an exception. Bythrow-ing whenuploadsis not explicitly set tofalse, we aim to make it clear immediately (rather than surprisingly) that this deprecation has taken effect.While Node.js 6.x is covered by a Long Term Support agreement by the Node.js Foundation until April 2019, there are substantial performance (e.g. V8 improvements) and language changes (e.g. "modern" ECMAScript support) offered by newer Node.js engines (e.g. 8.x, 10.x). We encourage all users of Apollo Server to update to newer LTS versions of Node.js prior to the "end-of-life" dates for their current server version.
We intend to drop support for Node.js 6.x in the next major version of Apollo Server.
For more information, see PR #2054 and our documentation.
apollo-engine-reporting: When multiple instances ofapollo-engine-reportingare loaded (an uncommon edge case), ensure thatencodedTracesare handled only once rather than once per loaded instance. PR #2040
apollo-server-micro: Set theContent-typetotext/htmlfor GraphQL Playground. PR #2026
- Follow-up on the update to
graphql-playground-htmlin previous release by also bumping the minor version of thegraphql-playground-reactdependency to1.7.10— which is the version requested from the from the CDN bundle bygraphql-playground-html. PR #2037
- Fix GraphQL Playground documentation scrolling bug in Safari by updating to latest (rebased) fork of
graphql-playground-html. PR #2037
- When
generateClientInfois not used to define the client name, client version and client reference ID, Apollo Server will now default to the values present in the HTTP headers of the request (apollographql-client-name,apollographql-client-reference-idandapollographql-client-versionrespectively). As a last resort, when those headers are not set, the query extensions'clientInfovalues will be used. PR #1960
- Fixed TypeScript 2.2 compatibility via updated
apollo-toolingdependency. Issue #195126d6c739 - Throw a more specific error when asynchronous introspection query behavior is detected. PR #1955
- Added support for an array of
moduleson theApolloServerconstructor options. Each element of themodulescan point to a module which exportstypeDefsandresolvers. These modules can be used in lieu of, or in combination with, directly specifyingschemaortypeDefs/resolverson the constructor options. This provides greater modularity and improved organization for logic which might be limited to a specific service.8f6481e6. - Added
resolveObjectsupport to query execution.bb67584. - Fix broken
apollo-server-cloud-functionsin 2.2.0 caused by missing TypeScript project references which resulted in the package not being published to npm in compiled form. PR #1948
- New request pipeline, including support for plugins which can implement lifecycle hooks at various stages of a request. PR #1795.
- Introduce new
apollo-server-testingutilities. PR #1909 - Fix mocks configuration to allow disabling of mocks by using
mocks: false, even ifmockEntireSchemaistrue. PR #1835 - Update
graphql-playground-htmlto 1.7.8. PR #1855 - Bring back Azure functions support Issue #1752 PR #1753
- Allow an optional function to resolve the
rootValue, passing theDocumentNodeAST to determine the value. PR #1555 - Follow-up on the work in PR #1516 to also fix missing insertion cursor/caret when a custom GraphQL configuration is specified which doesn't specify its own
cursorShapeproperty. PR #1607 - Azure functions support Issue #1752 PR #1753 PR #1948
- Allow JSON parsing in
RESTDataSourceof Content Typeapplication/hal+json. PR #185 - Add support for a
requestAgentconfiguration parameter within theengineconfiguration. This can be utilized when a proxy is necessary to transmit tracing and metrics data to Apollo Engine. It accepts either anhttp.Agentorhttps.Agentand behaves the same as theagentparameter to Node.js'http.request. PR #1879 - Allow an optional parameter to the
RESTDataSourceconstructor which takes anode-fetch-compatiblefetchimplementation that will be used for HTTP calls instead of the default fetch. PR #1807
- Updated the google-cloud-functions package to handle null paths PR #1674
- Update link inside Authentication Docs PR #1682
- Fix making sure all headers are getting reported to Engine properly when using
privateHeadersPR #1689 - (experimental, subject to change/removal) Provide ability to specify client info in traces #1631
- Reporting: Catch Error if JSON.Stringify Fails for Engine Trace PR #1668
- Core: Allow context to be passed to all GraphQLExtension methods. PR #1547
- Fix #1581
apollo-server-microtop level error response #1619 - Switch
ApolloServerBase.schemafrom private access to protected access. #1610 - Add toggle for including error messages in reports #1615
- Fix
apollo-server-cloud-functionstests #1611
- Update
graphql-playground-htmlto 1.7.4 #1586 - Add support for
graphql-jsv14 by augmenting typeDefs with the@cacheControldirective so SDL validation doesn't fail #1595 - Add
node-fetchextensions typing toRequestInit#1602
- Google Cloud Function support #1402 #1446
- Switch to a fork of
apollo-upload-serverto fix missingcore-jsdependency. #1556
- apollo-server: Release due to failed build and install
- apollo-server: failed publish
- pass payload into context function for subscriptions #1513
- Add option to mock the entire schema(i.e. sets preserveResolvers) PR #1546
- Release with Lerna 3 due
- Hapi: Allow additional route options to be passed to Hapi.js plugin. PR #1384
- express, koa: remove next after playground #1436
- Hapi: Pass the response toolkit to the context function. #1407
- update apollo-engine-reporting-protobuf to non-beta #1429
- playground would use its own settings as default #1516
- Lambda: Look in event.path first when picking endpoint for GraphQL Playground #1527
- Fix to allow enabling GraphQL Playground in production with custom config #1495
- This version failed to publish fully/correctly and should not be used.
- This version failed to publish fully/correctly and should not be used.
- export GraphQLUpload from integrations #1322
- add
corsto vanilla #1335 - export
bodyParser.Optionsto koa #1334 - add and use playground in ApolloServer constructor #1297
- breaking: remove calculate headers as function #1337
- breaking: remove
formatParams#1331
- enable engine reporting from lambda #1313
- remove flattening of errors #1288
- dynamic url in datasourece (#1277)
- BREAKING: errors are passed to user extensions, then engine reporting, and finally
formatError(#1272) formatErroronly called once on validation errors (#1272)- BREAKING: apollo-server-env does place types in global namespace (#1259)
- export Request from apollo-datasource-rest and graphql-extensions (53d7a75 c525818)
- Use scoped graphql-playground and centralize version (8ea36d8, 84233d2)
- fix dependencies + exports (#1257)
- fix data source + context cloning (7e35305)
- use fetch instead of Node request for engine-reporting (#1274)
- fix formatError to keep prototype of Error (#1235)
- Add trailing slash to data source
- allow body passed to data source
- new apollo-engine-reporting agent
- Missing apollo-upload-server dependency (#1221)
- encode trace report over each request in apollo-engine-reporting
- BREAKING: remove logFunction (71a403d), see this commit for an implementation
- move upload option to constructor (#1204)
- fixed hapi gui bugs (#1211)
- remove requirement for exModuleInterop (#1210)
- change BadUserInputError to UserInputError (#1208)
- add cache-control headers for CDN integration (#1138)
- Lambda support (thanks to @adnsio, @bwlt, and @gragio #1138)
Data sources
- Breaking:
registerServerchanged toserver.applyMiddleware(3279991) - Breaking: subscriptions enabled with
installSubscriptionHandlers - Add Data Sources (#1163)
- Bug fix to allow async context (#1129)
- logFunction is now an extension (#1128)
- Allow user defined extensions and include engine reporting (#1105)
- remove registerServer configuration from
apollo-server's listen (#1090) - move healthcheck into variants (#1086)
- Add file uploads, breaking requires removing
scalar Uploadfrom the typeDefs (#1071) - Add reporting to Engine as apollo-engine-reporting (#1105)
- Allow users to define extensions (#1105)
ListenOptions:
-
engine->engineProxy -
port,host, and other http options moved underhttpkey (#1080) -
subscriptionsmoved toserver.listen(#1059) -
Add mocks to server constructor (#1017)
-
Add
bodyParserConfigparameter toregisterServerin apollo-server (#1059) commit -
Remove tests and guaranteed support for Node 4 PR #1024
-
Cleanup docs PR #1233
- [Issue #626] Integrate apollo-fastify plugin. PR #1013
- add hapi 16 next() invocation PR #743
- Add skipValidation option PR #839
apollo-server-module-graphiql: adds an option to the constructor to disable url rewriting when editing a query PR #1047- Upgrade
subscription-transport-wsto 0.9.9 for Graphiql
- Recognize requests with Apollo Persisted Queries and return
PersistedQueryNotSupportedto the client instead of a confusing error. PR #982
apollo-server-adonis: TheContent-typeof an operation response will now be correctly set toapplication/json. PR #842 PR #910apollo-server-azure-functions: Fix non-functional Azure Functions implementation and update examples in Azure Functions'README.md. PR #753 Issue #684- Fix
TypeErroron GET requests with missingqueryparameter. PR #964 - The typing on the context of
GraphQLServerOptionsnow matches the equivilent type used bygraphql-tools. PR #919 - Middleware handlers now used named (rather than anonymous) functions to enable easier identification during debugging/profiling. PR #827
- The
npm-check-updatespackage has been removed as a "dev dependency" which was resulting in an older version ofnpmbeing used during testing. PR #959 - The typing on
HttpQueryRequest'squeryattribute now enforces that its object properties' keys beStrings. PR #834 - TypeScript types have been updated via updates to
@types/node,@types/connect,@types/koaand@types/aws-lambda.
- Upgrade to
apollo-cache-control@0.1.0and allow you to specify options to it (such as the newdefaultMaxAge) by passingcacheControl: {defaultMaxAge: 5}instead ofcacheControl: true.
- Updated peer dependencies to support
graphql@0.13.x. apollo-server-express: TheGraphQLOptionstype is now exported fromapollo-server-expressin order to facilitate type checking when utilizinggraphqlExpress,graphiqlExpress,graphqlConnectandgraphiqlConnect. PR #871- Update GraphiQL version to 0.11.11. PR #914
- Updated peer dependencies and tests to support
graphql@0.12. - Fix issue where the core
runQuerymethod broke the ability to use the Nodeasync_hooksfeature's call stack. PR #733 - Hoist declarations of rarely used functions out of
doRunQueryto improve performance. PR# 821
- Fixed a fatal execution error with the new
graphql@0.12.
- Breaking:
apollo-server-hapi: now supports Hapi v17, and no longer supports Hapi v16. For information on running Apollo Server 1.x with Hapi v16, check this documentation. - New package:
apollo-server-adonissupporting the Adonis framework! - The
graphqlOptionsparameter to server GraphQL integration functions now accepts context as a function and as an object with a prototype. PR #679 apollo-server-express: Send Content-Length header.apollo-server-micro: Allow Micro 9 inpeerDependencies. PR #671- GraphiQL integration:
- Recognize Websocket endpoints with secure
wss://URLs. - Only include truthy values in GraphiQL URL.
- Recognize Websocket endpoints with secure
- New feature: Add support for Apollo Cache Control. Enable
apollo-cache-controlby passingcacheControl: trueto your server's GraphQL integration function. - Include README.md in published npm packages.
- Added support for the vhost option for Hapi PR #611
- Fix dependency on
apollo-tracingto be less strict.
(v1.1.4 had a major bug and was immediately unpublished. v1.1.5 was identical to v1.1.6.)
- GraphiQL integration: Fixes bug where CORS would not allow
Access-Control-Allow-Origin: *with credential 'include', changed to 'same-origin' Issue #514 - Updated peer dependencies to support
graphql@0.11.
- Fixed bug with no URL query params with GraphiQL on Lambda Issue #504 PR #512
- Added support for Azure Functions #503
- Added ability to provide custom default field resolvers #482
- Add
tracingoption to collect and expose trace data in the Apollo Tracing format - Add support for GraphiQL editor themes in #484 as requested in #444
- Add support for full websocket using GraphiQL #491
- Updated restify lib (@yucun) in #472
- Updated package apollo-server-micro, updated micro in devDependencies and peerDependencies to ^8.0.1
- Revert #463, because it's a breaking change that shouldn't have been a patch update.
- Rename packages from graphql-server- to apollo-server- #465. We'll continue to publish
graphql-server-packages that depend on the renamedapollo-server-packages for the time being, to ensure backwards compatibility.
- Add package readmes for Express, Hapi, Koa, Restify (@helfer) in #442
- Updated & fixed typescript typings (@helfer) in #440
- Fix: graphql-server-micro now properly returns response promises #401
- Fix issue with auto-updating dependencies that caused fibers to update accidentally (@helfer) on #425
- Persist
window.location.hashon URL updates #386 - Added support for
graphql-js> 0.10.0 #407 - Updated
subscriptions-transport-wsfor GraphiQL with subscriptions #407
- Fix include passHeader field that was accidentally removed
- Fix graphiql fetcher to use endpointURL parameter instead of hardcoded URI.#365
- Add Zeit Micro Integration #324
- add support for subscriptionURL to GraphiQL (@urigo on #320
- Restify: Fix for calling next() (@jadkap) on #285
- Breaking: Update all dependencies #329
- Add AWS Lambda Integration PR #247
- Update GraphiQL to version 0.9.1 (@ephemer) on #293
- Restify integration (@joelgriffith) on #189
- run batched requests in parallel (@DxCx) on #273
- Fix GraphiQL options variables. Issue #193. (@alanchristensen) on PR #255
- Allow graphql@0.9.0 as peerDependency (@Chris-R3) on PR #278
- Switch graphql typings for typescript to @types/graphql #260
- Restructure Apollo Server into 6 new packages, and rename to GraphQL Server (@DxCx) and (@stubailo) in #183 and #164.
- There are now 6 packages that make up the GraphQL server family:
graphql-server-coregraphql-module-graphiqlgraphql-module-operation-storegraphql-server-expressgraphql-server-hapigraphql-server-koa
- Exports have been renamed. Everything that used to export
apollo*now exportsgraphql*, for exampleapolloExpresshas becomegraphqlExpress. - The repository is now managed using Lerna.
- Fix passHeader option in GraphiQL (Both Hapi and Koa)
- Pass
ctxinstead ofctx.requestto options function in Koa integration (@HriBB) in PR #154 - Manage TypeScript declaration files using npm. (@od1k in #162)
- Fix connect example in readme. (@conrad-vanl in #165)
- Add try/catch to formatError. (@nicolaslopezj in #174)
- Clone context object for each query in a batch.
- Refactor Hapi integration to improve the API and make the plugins more idiomatic. (@nnance) in PR #127
- Fixed query batching with Hapi integration. Issue #123 (@nnance) in PR #127
- Add support for route options in Hapi integration. Issue #97. (@nnance) in PR #127
- Camelcase Hapi. Issue #129. (@nnance) in PR #132
- Fix error handling when parsing variables parameter. Issue #130. (@nnance) in PR #131
- Improve logging function. Issue #79. (@nnance) in PR #136
- Output stack trace for errors in debug mode. Issue #111. (@nnance) in PR #137
- Allow to pass custom headers in GraphiQL (@nicolaslopezj in #133).
- Expose the OperationStore as part of the public API. (@nnance)
- Support adding parsed operations to the OperationStore. (@nnance)
- Expose ApolloOptions as part of the public API.
- Complete refactor of Apollo Server using TypeScript. PR #41
- Added Hapi integration (@nnance in #46)
- Added Koa integration (@HriBB in #59)
- Changed express integration to support connect as well (@helfer in #58)
- Dropped express-graphql dependency
- Dropped support for GET requests, only POST requests are allowed now
- Split GraphiQL into a separate middleware
- Factored out core to support Hapi, Koa and connect implementations
- Added support for query batching
- Added support for query whitelisting / stored queries
- Removed body parsing from express integration. Body must be parsed outside of apollo now
- Added
formatRequestandformatResponsefunctions to apollo options. - Removed support for shorthand schema definitions, connectors and mocks (use
graphql-toolsinstead)
- BUG: Fixed a bug with tracer mocks that would throw a TypeError when using Ava #26
- Updated graphql dependency to 0.6.0