mirror of
https://github.com/vale981/apollo-server
synced 2025-03-04 17:21:42 -05:00

Due to changes in the third-party `graphql-upload` package which Apollo Server utilizes to implement out-of-the-box file upload functionality, we must drop support for file uploads in versions of the Node.js engine prior to v8.5.0. Since file uploads are supported by default in Apollo Server 2.x, and there is an explicit dependency on `graphql-upload`, we must prevent users who are affected by this mid-major-release deprecation by being surprised by the sudden lack of upload support. By `throw`-ing an error at server startup for affected users, we certainly are breaking a semantic versioning agreement for these users, however with a relatively simple ergonomic (setting `uploads: false`) we allow those users who are NOT utilizing file uploads (as we believe is the case with a majority) to continue using their version of Node.js until it reaches the end of its supported lifetime (as dictated by its Long Term Support agreement with the Node.js Foundation). If we did not `throw` the error at server start-up, those affected may not notice since they may update and start their updated server without noticing the impending chance of failure when someone tries updating! Apollo Server 2.x has attempted to maintain full compatibility with versions of Node.js which are still under Long Term Support agreements with the Node.js Foundation. While this continues to mostly be true, file uploads are an exception which we've now had to make. Third-party open-source projects must absolutely do what's best for their project. From an architecture standpoint, I suspect that we (the designers behind Apollo Server) are mostly to blame for this. Namely, it's unfortunate that we had made such an incredibly coupled integration with a third-party package that we restricted our users from incrementally adopting the changes (and new/improved functionality) of, in this particular case, the `graphql-upload` package. I hope we can take better care with decisions like this in the future! Lastly, this commit also adds documentation to help those affected.
61 lines
1.4 KiB
YAML
61 lines
1.4 KiB
YAML
title: Apollo Server
|
|
propertytitle: Using Apollo Server
|
|
subtitle: Apollo Server
|
|
description: A guide to using Apollo Server.
|
|
versions:
|
|
- '2'
|
|
- '1'
|
|
sidebar_categories:
|
|
null:
|
|
- index
|
|
- getting-started
|
|
- whats-new
|
|
Essentials:
|
|
- essentials/schema
|
|
- essentials/server
|
|
- essentials/data
|
|
Features:
|
|
- features/mocking
|
|
- features/errors
|
|
- features/data-sources
|
|
- features/subscriptions
|
|
- features/metrics
|
|
- features/graphql-playground
|
|
- features/scalars-enums
|
|
- features/unions-interfaces
|
|
- features/directives
|
|
- features/creating-directives
|
|
- features/authentication
|
|
- features/testing
|
|
# Schema stitching:
|
|
# - features/schema-stitching
|
|
# - features/remote-schemas
|
|
# - features/schema-delegation
|
|
# - features/schema-transforms
|
|
Deployment:
|
|
# - deployment/index
|
|
- deployment/heroku
|
|
- deployment/lambda
|
|
- deployment/now
|
|
|
|
API Reference:
|
|
- api/apollo-server
|
|
- api/graphql-tools
|
|
Migration:
|
|
- migration-two-dot
|
|
- migration-engine
|
|
- migration-file-uploads
|
|
|
|
github_repo: apollographql/apollo-server
|
|
content_root: docs/source
|
|
|
|
typescript_api_box:
|
|
data_file: docs.json
|
|
|
|
url: https://www.apollographql.com/docs/apollo-server/
|
|
root: /docs/apollo-server/
|
|
|
|
public_dir: public/docs/apollo-server
|
|
|
|
versioned-netlify-redirects:
|
|
netlify_site_id: apollo-server-docs
|