Bypass the cache

If you want to bypass the Stellate Edge Cache for specific requests you need to define a set of Bypasse Cache Headers and then include them in your GraphQL request.

To configure those headers you can use the configuration file and the bypassCacheHeaders field that accepts a list of headers to look for.

import { Config } from 'stellate'

const config: Config = {
  config: {
    name: 'my-app',
    schema: 'https://api.my.app',
    originUrl: 'https://api.my.app',
    bypassCacheHeaders: [
      { name: 'x-preview-token' },
      { name: 'some-other-token' },
    ],
  },
}
export default config

Queries

A sample query using a Bypass Cache Header can be seen below

curl --request POST \
  --url https://spacex-api.stellate.sh/ \
  --header 'Content-Type: application/json' \
  --header 'x-preview-token: 1' \
  --data '{"query":"{ launchesPast(limit: 5) { mission_name launch_date_utc launch_site { site_id site_name site_name_long } } }"}'

If you then take a look at the response headers for that request you will find the following headers indicating the request was passed on to your origin service.

gcdn-cache: PASS
gcdn-passed-through-request: 'bypass-cache-header:x-preview-token'

The gcdn-passed-through-request response header will indicate which bypass header was used in the request.

Mutations

You can also use Bypass Cache Headers on your mutations. In that case, they will bypass the Automatic Cache Invalidation via Mutations, which can be helpful in certain situations.