Merge branch 'master' into adam/19/4/client-id-ep

This commit is contained in:
Danielle Man
2019-04-16 14:48:44 -07:00
committed by GitHub
7 changed files with 22 additions and 25 deletions

View File

@@ -49,7 +49,8 @@ module.exports = {
References: [
'references/apollo-config',
'references/apollo-engine',
'references/engine-proxy'
'references/engine-proxy',
'references/engine-proxy-release-notes'
]
}
}

View File

@@ -1,5 +0,0 @@
/* global hexo */
hexo.extend.tag.register('proxyDockerVersion', function(args) {
return '1.1';
});

View File

@@ -132,7 +132,7 @@ The reference TypeScript implementation also includes several more advanced feat
For example, the option to send reports immediately may be particularly useful to GraphQL servers running in a serverless environment, like AWS Lambda or Google Cloud Functions.
Another important feature is the ability to limit information sent, particularly to avoid reporting [PII](https://en.wikipedia.org/wiki/Personally_identifiable_information). Because the most common place for PII to appear is in variables and headers, the TypeScript agent offers options for `privateVariables` and `privateHeaders`.
Another important feature is the ability to limit information sent, particularly to avoid reporting [personal data](https://en.wikipedia.org/wiki/Personal_data). Because the most common place for personal data to appear is in variables and headers, the TypeScript agent offers options for `privateVariables` and `privateHeaders`.
<h3 id="traces-report-example">Example FullTracesReport, represented as JSON</h3>
```json

View File

@@ -3,9 +3,9 @@ title: Apollo Engine guide
description: Account management, data privacy, GDPR compliance, and other information about Apollo Engine
---
[Apollo Engine](https://engine.apollographql.com/) is our cloud service for schema management and performance metrics monitoring. Its foundation is built on two types of data input from servers: publishing schema introspections and sending traces of request execution. From those two data inputs we can provide rich schema usage insights, schema history management, schema change valiation, query usage insights, and more.
[Apollo Engine](https://engine.apollographql.com/) is our cloud service for schema management and performance metrics monitoring. Its foundation is built on two types of data input from servers: publishing schema introspections and sending traces of request execution. From those two data inputs we can provide rich schema usage insights, schema history management, schema change validation, query usage insights, and more.
Engine's core schema management features are all availble in an unlimited capacity for free, and always will be. Engine's advanced features, like resolver-level query tracing, longer data retention, and third-party integrations are available with subscriptions to the Apollo Team plan.
Engine's core schema management features are all available in an unlimited capacity for free, and always will be. Engine's advanced features, like resolver-level query tracing, longer data retention, and third-party integrations are available with subscriptions to the Apollo Team plan.
More information on pricing and billing can be found [here](https://www.apollographql.com/plans/).
<!-- You can get started with Engine using any GraphQL server by visiting our setup guide [here](/docs/references/setup-analytics.html). -->
@@ -61,13 +61,13 @@ Services
<h2 id="services">Services</h2>
A service in Engine represents a "project" or "application". When you create a new service, we provision an API key for you that you can use to send performance metrics and schema versions to our cloud service. This information is then accessible to you through the Engine interface.
A service in Engine represents a "project" or "application". When you create a new service, we provide an API key used to send performance metrics and schema versions to our cloud service. This information is then accessible through the Engine interface.
<h3 id="creating-services">Creating a service</h3>
To create a service, you will need to select an account for that service to belong to. All members of the account will be able to see the services data and settings options. You can transfer services between any Engine account that youre a member of. To transfer a service, visit its Settings page and change the “Endpoint owner” to whichever account youd like.
To create a service, you will need to select an account for that service to belong to. All members of the account will be able to see the services data and settings options. You can transfer services between any of your Engine accounts. To transfer a service, visit its Settings page and change the “Endpoint owner” to whichever account youd like.
Services in Engine have globally unique IDs, so we recommend that you prefix your service ID with the name of your company or organization.
Services in Engine have globally unique IDs. We recommend that you prefix your service ID with the name of your company or organization.
<h3 id="environments">Managing environments</h3>
@@ -87,13 +87,13 @@ Data privacy
<h2 id="data-privacy">Data privacy</h2>
All data that is sent to Engine from your server can be configured and turned off to meet your PII/data privacy needs. This section will walk through what information Engine sees about your GraphQL services request, what Engines default behavior to handle request data is, and how you can configure Engine to the level of data privacy your team needs.
All data that is sent to Engine from your server can be configured and turned off to meet your data privacy needs. This section will walk through what information Engine sees about your GraphQL services request, what Engines default behavior to handle request data is, and how you can configure Engine to the level of data privacy your team needs.
<h3 id="architecture">Architecture</h3>
Engine is primarily a cloud service that ingests and stores performance metrics data from your server. There are two ways to get data into Engine:
1. Use **Apollo Server 2** (Node servers) and configure performance metrics reporting by providing an Engine API key in your serer configuration.
1. Use **Apollo Server 2** (Node servers) and configure performance metrics reporting by providing an Engine API key in your server configuration.
2. Run the **Engine proxy** (deprecated) in front of your server and install an Apollo tracing package in your server.
#### Apollo Server 2
@@ -104,11 +104,11 @@ Apollo Server will never forward the responses of your requests to Engine, but i
#### Engine Proxy (deprecated)
This configuration option is primarily used to forward metrics to the Engine ingress from non-Node servers. The proxy is installed and run in your own environment on-prem as a separately hosted process that you route your client requests through. Apollo Server 1 users and other Node users users also have the option to run the Engine proxy as a sidecar next to their Node server.
This configuration option is primarily used to forward metrics to the Engine ingress from non-Node servers. The proxy is installed and run in your own environment on-prem as a separately hosted process that you route your client requests through. Apollo Server 1 users and other Node users also have the option to run the Engine proxy as a sidecar next to their Node server.
As your clients make requests to your server, the proxy reads response extension data to make caching decisions and aggregates tracing and error information into reports that it sends to the Engine ingress.
While the Engine proxy sees your client request data and service response data, it only collects and forwards data that goes into the reports you see in the Engine dashboards. All information that is sent from your on-premise proxy to the out-of-band Engine cloud service is configurable and can be turned off through configuration options. Data is aggregated and sent approximately every 5 seconds.
While the Engine proxy sees your client request data and service response data, it only collects and forwards data that goes into the reports you see in the Engine dashboards. All information sent by your on-premise proxy to the out-of-band Engine cloud service is configurable, and can be turned off through configuration options. Data is aggregated and sent approximately every 5 seconds.
<h3 id="data-collection">Data collection</h3>
@@ -116,7 +116,7 @@ This section describes which parts of your GraphQL HTTP requests are seen and co
#### Query operation string
Both Apollo Server 2 and the Engine proxy report the full operation string of your request to the Engine cloud service. Because of this, you should be careful to put any sensitive data like passwords and PII in the GraphQL variables object rather than in the operation string itself.
Both Apollo Server 2 and the Engine proxy report the full operation string of your request to the Engine cloud service. Because of this, you should be careful to put any sensitive data like passwords and personal data in the GraphQL variables object rather than in the operation string itself.
#### Variables
@@ -127,7 +127,7 @@ Both Apollo Server 2 and the Engine proxy will report your the query variables f
#### Authorization & Cookie HTTP Headers
Engine will **never** collect your application's `Authorization`, `Cookie`, or `Set-Cookie` headers and ignores these if received. Engine will collect all other headers from your request to show in the trace inspector, unless turned off with these configurations:
Engine will **never** collect your application's `Authorization`, `Cookie`, or `Set-Cookie` headers and ignores these if received. Engine will collect all other headers from your request to show in the trace inspector unless turned off with these configurations:
- **Apollo Server 2** use the [`privateHeaders` option](https://www.apollographql.com/docs/apollo-server/api/apollo-server.html#EngineReportingOptions) in your Apollo Server configuration for Engine.
- **Engine Proxy** use the [`privateHeaders` option](./proxy-config.html#Reporting) in your proxy configuration.
@@ -212,7 +212,7 @@ The legal terms and policies that apply to Apollo's corporate websites and custo
#### Where can I get more help?
If you have any questions (including interest in a Data Processing Addendum (DPA)), or encounter any issues, please reach out to <a href="javascript:Intercom('showNewMessage');">support</a>.
If you have any questions (including interest in a Data Processing Addendum or DPA), or encounter any issues, please reach out to <a href="https://engine.apollographql.com/support">support</a>.
<!--
######################################################################

View File

@@ -23,7 +23,7 @@ Because this is a minor release, if you are using Engine via the Docker containe
<h3 id="v1.0.6" title="v1.0.6">1.0.6 - 2018-04-06</h3>
* New `reporting.noTraceErrors` option to disable sending error traces to Apollo servers. Use this if your error messages may contain [PII](https://en.wikipedia.org/wiki/Personally_identifiable_information). If you are interested in a more fine-grained way to configure this, contact <a href="javascript:void(0);" onclick="Intercom('showNewMessage')">Apollo support</a>.
* New `reporting.noTraceErrors` option to disable sending error traces to Apollo servers. Use this if your error messages may contain [personal data](https://en.wikipedia.org/wiki/Personal_data). If you are interested in a more fine-grained way to configure this, contact <a href="https://engine.apollographql.com/support">Apollo support</a>.
* Fix problems running `ApolloEngine` when a corporate HTTP proxy is configured with an environment variable such as `$HTTP_PROXY`. (Specifically, make the default [`innerHost` option to `engine.listen`](../setup-node.html#api-engine.listen) actually be `127.0.0.1` as documented rather than the unspecified interface; the previously implemented default was unintentional as well as the cause of the corporate proxy bug.)
<h3 id="v1.0.5" title="v1.0.5">1.0.5 - 2018-04-05</h3>

View File

@@ -21,6 +21,7 @@ That said, the proxy is still a good option for getting set up with Engine in a
## Setup
To get started with using Engine through the Engine proxy, you will need to:
1. [Install a package in your GraphQL server that adds `extension` data (in the Apollo Tracing format) to each request's response.](#Instrument-your-server)
1. [Get your Engine API key.](#Get-your-API-key)
1. [Configure and deploy the Engine proxy to run in front of your server using either Docker or npm.](#Run-the-proxy)
@@ -210,10 +211,10 @@ As it is JSON file, all object keys must be quoted, and trailing commas and comm
Next, make sure you have a working [Docker installation](https://docs.docker.com/engine/installation/) and type the following lines in your shell:
{% codeblock %}
```
$ ENGINE_PORT=3000
$ docker run --env "ENGINE_CONFIG=$(cat engine-config.json)" -p "${ENGINE_PORT}:${ENGINE_PORT}" gcr.io/mdg-public/engine:{% proxyDockerVersion %}
{% endcodeblock %}
$ docker run --env "ENGINE_CONFIG=$(cat engine-config.json)" -p "${ENGINE_PORT}:${ENGINE_PORT}" gcr.io/mdg-public/engine:1.1
```
> **Note:** We use [semver](https://semver.org/) to name Engine Proxy release versions, and we release version 1.2.3 under the tags `1.2.3`, `1.2`, and `1`. If you want to pin to a precise version, use the `1.2.3` tag. If you'd like to take patch upgrades but not minor upgrades, use the `1.2` tag. If you'd like to take minor upgrades, use the `1` tag.
@@ -779,7 +780,7 @@ View our [full proxy configuration doc](/docs/references/proxy-config.html) for
## Release notes
View our [proxy release notes doc](/docs/references/release-notes.html) for documentation on each proxy version that's been released and a changelog of what that version contained.
View our [proxy release notes doc](/docs/references/engine-proxy-release-notes) for documentation on each proxy version that's been released and a changelog of what that version contained.
## Troubleshooting

View File

@@ -318,7 +318,7 @@ The reporting configuration to use. Reports about the GraphQL queries and respon
<dt>noTraceVariables (bool)</dt>
<dd><p>Don't include variables in query traces.</p></dd>
<dt>noTraceErrors (bool)</dt>
<dd><p>Disable sending error traces to Apollo servers. Errors are still returned in responses, but not reported to Apollo Engine cloud storage. This is for special cases when errors contain [PII](https://en.wikipedia.org/wiki/Personally_identifiable_information).</p></dd>
<dd><p>Disable sending error traces to Apollo servers. Errors are still returned in responses, but not reported to Apollo Engine cloud storage. This is for special cases when errors contain [personal data](https://en.wikipedia.org/wiki/Personal_data).</p></dd>
<dt>privateHeaders (array of string)</dt>
<dd><p>Headers that should not be sent to Apollo servers. These are case-sensitive.</p></dd>
<dt>proxyUrl (string)</dt>