Skip to content

Releases: apollographql/apollo-server

@apollo/server@4.7.4

15 Jun 23:42
4dd276a
Compare
Choose a tag to compare

Patch Changes

  • 0adaf80d1 Thanks @trevor-scheer! - Address Content Security Policy issues

    The previous implementation of CSP nonces within the landing pages did not take full advantage of the security benefit of using them. Nonces should only be used once per request, whereas Apollo Server was generating one nonce and reusing it for the lifetime of the instance. The reuse of nonces degrades the security benefit of using them but does not pose a security risk on its own. The CSP provides a defense-in-depth measure against a potential XSS, so in the absence of a known XSS vulnerability there is likely no risk to the user.

    The mentioned fix also coincidentally addresses an issue with using crypto functions on startup within Cloudflare Workers. Crypto functions are now called during requests only, which resolves the error that Cloudflare Workers were facing. A recent change introduced a precomputedNonce configuration option to mitigate this issue, but it was an incorrect approach given the nature of CSP nonces. This configuration option is now deprecated and should not be used for any reason since it suffers from the previously mentioned issue of reusing nonces.

    Additionally, this change adds other applicable CSPs for the scripts, styles, images, manifest, and iframes that the landing pages load.

    A final consequence of this change is an extension of the renderLandingPage plugin hook. This hook can now return an object with an html property which returns a Promise<string> in addition to a string (which was the only option before).

@apollo/server-integration-testsuite@4.7.4

15 Jun 23:42
4dd276a
Compare
Choose a tag to compare

Patch Changes

  • #7604 aeb511c7d Thanks @renovate! - Update graphql-http dependency

  • 0adaf80d1 Thanks @trevor-scheer! - Address Content Security Policy issues

    The previous implementation of CSP nonces within the landing pages did not take full advantage of the security benefit of using them. Nonces should only be used once per request, whereas Apollo Server was generating one nonce and reusing it for the lifetime of the instance. The reuse of nonces degrades the security benefit of using them but does not pose a security risk on its own. The CSP provides a defense-in-depth measure against a potential XSS, so in the absence of a known XSS vulnerability there is likely no risk to the user.

    The mentioned fix also coincidentally addresses an issue with using crypto functions on startup within Cloudflare Workers. Crypto functions are now called during requests only, which resolves the error that Cloudflare Workers were facing. A recent change introduced a precomputedNonce configuration option to mitigate this issue, but it was an incorrect approach given the nature of CSP nonces. This configuration option is now deprecated and should not be used for any reason since it suffers from the previously mentioned issue of reusing nonces.

    Additionally, this change adds other applicable CSPs for the scripts, styles, images, manifest, and iframes that the landing pages load.

    A final consequence of this change is an extension of the renderLandingPage plugin hook. This hook can now return an object with an html property which returns a Promise<string> in addition to a string (which was the only option before).

  • Updated dependencies [0adaf80d1]:

    • @apollo/server@4.7.4

@apollo/server@4.7.3

07 Jun 20:22
2f4b034
Compare
Choose a tag to compare

Patch Changes

  • #7601 75b668d9e Thanks @trevor-scheer! - Provide a new configuration option for landing page plugins precomputedNonce which allows users to provide a nonce and avoid calling into uuid functions on startup. This is useful for Cloudflare Workers where random number generation is not available on startup (only during requests). Unless you are using Cloudflare Workers, you can ignore this change.

    The example below assumes you've provided a PRECOMPUTED_NONCE variable in your wrangler.toml file.

    Example usage:

    const server = new ApolloServer({
      // ...
      plugins: [
        ApolloServerPluginLandingPageLocalDefault({
          precomputedNonce: PRECOMPUTED_NONCE,
        }),
      ],
    });

@apollo/server-integration-testsuite@4.7.3

07 Jun 20:22
2f4b034
Compare
Choose a tag to compare

Patch Changes

  • Updated dependencies [75b668d9e]:
    • @apollo/server@4.7.3

@apollo/server@4.7.2

05 Jun 21:31
51b79ac
Compare
Choose a tag to compare

Patch Changes

  • #7599 c3f04d050 Thanks @trevor-scheer! - Update @apollo/utils.usagereporting dependency. Previously, installing @apollo/gateway and @apollo/server could result in duplicate / differently versioned installs of @apollo/usage-reporting-protobuf. This is because the @apollo/server-gateway-interface package was updated to use the latest protobuf, but the @apollo/utils.usagereporting package was not. After this change, users should always end up with a single install of the protobuf package when installing both @apollo/server and @apollo/gateway latest versions.

@apollo/server-integration-testsuite@4.7.2

05 Jun 21:31
51b79ac
Compare
Choose a tag to compare

Patch Changes

  • Updated dependencies [c3f04d050]:
    • @apollo/server@4.7.2

@apollo/server-plugin-landing-page-graphql-playground@4.0.1

26 May 20:08
7eb9681
Compare
Choose a tag to compare

Patch Changes

@apollo/server@4.7.1

02 May 18:44
5ab08c1
Compare
Choose a tag to compare

Patch Changes

  • #7539 5d3c45be9 Thanks @mayakoneval! - 🐛 Bug Fix for Apollo Server Landing Pages on Safari. A Content Security Policy was added to our landing page html so that Safari can run the inline scripts we use to call the Embedded Sandbox & Explorer.

@apollo/server-integration-testsuite@4.7.1

02 May 18:44
5ab08c1
Compare
Choose a tag to compare

Patch Changes

  • Updated dependencies [5d3c45be9]:
    • @apollo/server@4.7.1

@apollo/server@4.7.0

20 Apr 20:41
b9c6f4c
Compare
Choose a tag to compare

Minor Changes

  • #7504 22a5be934 Thanks @mayakoneval! - In the Apollo Server Landing Page Local config, you can now opt out of the telemetry that Apollo Studio runs in the
    embedded Sandbox & Explorer landing pages. This telemetry includes Google Analytics for event tracking and
    Sentry for error tracking.

    Example of the new config option:

    const server = new ApolloServer({
      typeDefs,
      resolvers,
      plugins: [
        process.env.NODE_ENV === 'production'
          ? ApolloServerPluginLandingPageProductionDefault({
              graphRef: 'my-graph-id@my-graph-variant',
              embed: {
                runTelemetry: false
              },
            })
          : ApolloServerPluginLandingPageLocalDefault({
              embed: {
                runTelemetry: false
              },
            }),
      ],
    });