Commit graph

81 commits

Author SHA1 Message Date
Jesse Rosenberger
9c563fae50
Throw error at startup when file uploads are enabled on Node.js < 8.5.0.
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.
2018-11-30 15:59:57 +02:00
Peggy Rayzis
d19ec3ec65 Remove related guides and outdated redirects 2018-11-14 20:26:10 -05:00
Peggy Rayzis
0ec58323e0 Add auth guide, rename testing guide 2018-11-14 20:25:38 -05:00
Prosper Otemuyiwa
d278d35c32
Revert "Add Authentication and File Uploads as guides and feature (#1956)" (#1957)
This reverts commit 61f2e47108.
2018-11-13 12:22:55 +01:00
Prosper Otemuyiwa
61f2e47108
Add Authentication and File Uploads as guides and feature (#1956)
* Add File uploads as a feature

* Add authentication to server as access-control
2018-11-13 12:09:18 +01:00
Jake Dawkins
d07b4b7048 added apollo-server-testing docs (#1939)
These are docs to accompany the `apollo-server-testing` utils

<!--
  Thanks for filing a pull request on GraphQL Server!

  Please look at the following checklist to ensure that your PR
  can be accepted quickly:
-->

TODO:

* [ ] Update CHANGELOG.md with your change (include reference to issue & this PR)
* [ ] Make sure all of the significant new logic is covered by tests
* [ ] Rebase your changes on master so that they can be merged easily
* [ ] Make sure all tests and linter rules pass

<!--**Pull Request Labels**

While not necessary, you can help organize our pull requests by labeling this issue when you open it.  To add a label automatically, simply [x] mark the appropriate box below:

- [ ] feature
- [ ] blocking
- [x] docs

To add a label not listed above, simply place `/label another-label-name` on a line by itself.
-->
2018-11-09 17:30:15 -08:00
Prosper Otemuyiwa
e514cdfd4c
Cleanup subscriptions link (#1437)
* Remove graphql-subscriptions link from the sidebar

* Add graphql-subscriptions docs link under Subscriptions Feature
2018-07-27 16:47:34 +02:00
Jesse Rosenberger
c31b02972a
Revert "docs: Switch the order of versions back."
This reverts commit 5ae12be1fb.
2018-07-17 17:21:03 -07:00
Jesse Rosenberger
5ae12be1fb
docs: Switch the order of versions back. 2018-07-17 17:16:47 -07:00
Evans Hauser
967f4c8f3c
docs: switch config versions and remove version for master (#1370) 2018-07-17 16:35:43 -07:00
unicodeveloper
a31501ff66 DeleteD 2018-07-13 10:25:42 -07:00
Prosper Otemuyiwa
9034ac95af
Add redirect for file-uploads (#1328) 2018-07-10 14:02:01 -07:00
Jesse Rosenberger
075c0527df
Also rename playground to graphql-playground in _config.yml. 2018-07-09 10:08:05 -07:00
Evans Hauser
02d31559da
Add GraphQL Playground Documentation (#1270)
* add initial playground documentation

* link to playground in whats-new

* address feedback
2018-07-05 16:17:39 -07:00
Jake Dawkins
b812eec906
added related guides (#1286) 2018-07-02 14:40:12 -04:00
unicodeveloper
6c583d67fb Set up redirects 2018-07-02 08:15:29 +01:00
unicodeveloper
660c034dbf Remove APQ, CDN integration and file uplaods from side bar 2018-07-02 08:09:14 +01:00
unicodeveloper
01efbf07af link to now in the sidebar 2018-06-28 15:28:08 +01:00
Prosper Otemuyiwa
209764324f
Merge pull request #1207 from apollographql/add-file-uploadspage
File Uploads Section
2018-06-25 23:49:52 +01:00
Prosper Otemuyiwa
f3fd52da21 Add lambda to sidebar (#1240) 2018-06-25 11:04:10 -07:00
unicodeveloper
ef5e1e1758 Resolve comflicts 2018-06-25 07:48:14 +01:00
Evans Hauser
c8d747b021
Document Reporting to Engine and Add to migration guide (#1223)
* change logging to metrics and add section on Engine

* add to the migration guide

* address feedback and add clarity around logFunction

* address feedback for migration guide
2018-06-22 14:35:27 -07:00
unicodeveloper
5dfe2b5255 Add file upload section on sidebar 2018-06-22 19:04:53 +01:00
Evans Hauser
65d7b100e4
CDN cache-control headers (#1138)
* core: return response object from runHttpQuery

* core: change gqlResponse to graphqlResponse and add custom RequestInit type

* core: add cache-control headers based on the calcualted maxAge

* core: add extensions check during cache-control header creation

* core: create headers when cacheControl is not enabled otherwise pass through extensions

* express: initial tests of CDN cach-contol headers

* core: fixed tests with applyMiddleware and pass cacheControl config

* core: cache hint fixes, ignore when no maxAge, and check for rootKeys

* core: check for hints of length 0

* core: node 10 fails file upload test for some stream reason

* docs: add cdn caching section to features

* add space after // in comments

* fix feedback: proxy alignment and response creation

Adds cache-control toggles for http header calculation and stripping out
the cache control extensions from the respose.

Brings the default calculation of headers in line with the proxy.

* fix links in comments

* fix tests with null dereference

* update cdn docs and migration guide to include latest cdn configuration

* add not for engine migration to set engine to false

* add engine set to false in migration guide

* express: fixed tests

* address feedback to use omit and documentation

* docs: cdn caching is alternative to full response caching

* add back epipe check in upload tests
2018-06-21 13:29:14 -07:00
Jesse Rosenberger
f4bba1de1e
docs: Add version to _config.yml for "Edit on GitHub" on version branches. 2018-06-20 18:31:04 +03:00
Jesse Rosenberger
d28982bddc
docs: Add version "2" back, which was lost in a merge.
This was lost in 639b104232.
2018-06-15 17:37:15 +03:00
Evans Hauser
ff91ba93d4
docs: add subscriptions by @daniele-zurico into the index 2018-06-15 00:00:25 -07:00
Martijn Walraven
685d3399db Apollo Server 2.0 - Caching + RESTDataSource (#1163)
* Enable declarationMap in tsconfig.json

See http://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html

* Add apollo-server-caching package and improve typings

* Remove superfluous test steps

* Add .npmignore to apollo-server-caching

* Add apollo-server-env and apollo-datasource-rest packages

* Fix broken imports

* Use prepublish instead of prepare

* cache is now passed to data sources from ApolloServer constructor

* fix Object.values to use the object passed in rather than this

* add initial datasource test

* docs: initial data source documentation

* docs: initial data source documentation

* compiles and documentation now highlights code in data-sources.md

* Some changes to the data source docs
2018-06-14 23:13:33 -07:00
Evans Hauser
1f9f307d55
docs: initial engine migration guide 2018-06-14 13:24:56 -07:00
David Glasser
1fd3b216d0 Remove engineProxy support
We recommend the use of apollo-engine-reporting and the other built-in features
of AS 2.0 rather than engineProxy. You can still use the apollo-engine npm
module manually with AS 2.0, or stay on AS 1.0.
2018-06-13 12:32:05 -07:00
Evans Hauser
a7cd3a43e8 Apollo Server 2:Automatic Persisted Queries (#1149) 2018-06-11 15:44:20 -07:00
Evans Hauser
1bfead6586
docs: remove section on resolvers 2018-06-06 11:36:49 -07:00
Evans Hauser
3deceffe93
docs: add section on logging under features 2018-06-04 14:35:39 -07:00
Jesse Rosenberger
adaad08615
Temporarily remove version 2. 2018-05-11 15:53:06 -07:00
Evans Hauser
75239b06a9
docs: initial graphql-tools api reference and point engine api reference at node sidecar 2018-05-08 18:49:50 -07:00
unicodeveloper
9ab06f46c4 Fix links 2018-05-03 09:45:05 -07:00
unicodeveloper
173ac54cd0 Add links for graphql-subscriptions and apollo-engine 2018-05-03 09:38:09 -07:00
unicodeveloper
c141239b79 Add migration 2 guide 2018-05-03 09:36:23 -07:00
Jesse Rosenberger
9ab4f9d0f8
Merge pull request #942 from apollographql/docs-overhaul
[Work in Progress] 2.0 Documentation
2018-05-02 17:41:48 -07:00
Jesse Rosenberger
5c6dc4f93f
hide sidebar links, for now 2018-05-02 17:12:55 -07:00
PROSPER OTEMUYIWA
08879ff0a6 Add migration for 2.0 beta 2018-05-02 15:59:51 -07:00
Evans Hauser
32caf0aa10
docs: add error handling section 2018-05-02 11:19:14 -07:00
Jesse Rosenberger
b9d49ae723
Enable version support via Netlify redirects.
This uses `hexo-versioned-netlify-redirects`[0], a package I wrote just for
this purpose (on Meteor) a few months back.

With any luck, this will do the trick for Apollo too.

[0]: https://github.com/meteor/hexo-versioned-netlify-redirects
2018-05-01 21:37:16 -07:00
Jesse Rosenberger
b2691adaa4
docs: Add v2 to the versions property in _config.yml.
This should enable the dropdown box in the sidebar of the documentation.
Currently, that sidebar will be a terrible color, since it has never
appeared on Apollo documentation before and nobody has ever defined style on
it.  That'll have to be fixed in the theme itself[0].

[0]: https://github.com/meteor/meteor-theme-hexo
2018-05-01 21:37:16 -07:00
Sashko Stubailo
727d782f66 Organize into features section 2018-05-01 14:48:54 -07:00
Evans Hauser
72a59260d5 Schema Organization and Manage a Large Schema (#996)
* docs: simplify schema organization and add modularize schema advanced section

* docs: working around code snippets demonstating how to organize a large schema

* update headers to be h tags and capitalization

* docs: intro to each file in modularize schema and circular reference full type defs

* docs: schema modularization formatting

* docs: shorten wording around intros to code snippets

* Move modularization to organizaition

* docs: removed circular dependencies section from schema organization
2018-05-01 14:09:52 -07:00
Evans Hauser
de7f20990b Forklift Schema Stitching Docs from graphql-tools (#1008)
* docs: copy initial stitching sections from graphql-tools

* docs: convert schema stitching introduction to use apollo-server

* docs: remote-schema shortened to contain links only

* docs: schema delegation shortened to remove api reference

* docs: rename schema-stitching to features
2018-05-01 14:07:14 -07:00
Jesse Rosenberger
761ff92bb8
docs: Iteration from Docs workshop.
* Bury Best Practices, for the time being.
* Bury Schema, but leave it on disk.
* Introduce new Querying section.
* Move "Why Apollo Server?" into "Index".
   * ...to be refined.
* Remove no-longer-helpful "Getting Started" from "Index".

cc @stubailo @evans @peggyrayzis @JakeDawkins @unicodeveloper @jbaxleyiii
2018-04-30 15:36:08 -07:00
Jesse Rosenberger
c09b352c95
docs: Add v2 to the versions property in _config.yml.
This should enable the dropdown box in the sidebar of the documentation.
Currently, that sidebar will be a terrible color, since it has never
appeared on Apollo documentation before and nobody has ever defined style on
it.  That'll have to be fixed in the theme itself[0].

[0]: https://github.com/meteor/meteor-theme-hexo
2018-04-26 14:35:53 +03:00
Jesse Rosenberger
4ff36d8575
docs: Sidebar: "Schema Development" > "Schema". (To fit on a single line.) 2018-04-24 18:00:19 +03:00