This repository has been archived by the owner on May 26, 2023. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #.
Changes proposed in this pull request:
Add a plugin feature to the graphql playground web ide.
At T-Mobile we are using Graphql apollo servers and wish to make use of the Graphiql IDE for testing and demonstration purposes. Our backend data servers use a security protocol known as POP signatures, RFC 7800. In order to use Graphiql we needed to add this token binding functionality. The best way was to extend the IDE to sign every request sent. For our solution we needed 2 plugins, one to initialize the security keys and pop token, and a second to sign each request as it was sent.
The changes to the graphql-playground enable a generic plugin structure that is passed in during instantiation of the server.
We have included a readme document on how to use the plugin feature, how to enable and configure the plugins when instantiating your apollo server. The actual functions used for the plugins are completely up to the user, given a simple api pattern to follow. These functions need to be hosted by a cdn or the apollo server as they will be downloaded to the browser when the playground is initialized in the window.
If you need more details, please let me know.
Thanks.