Header Propagation

Hive Gateway can forward headers from the incoming request to the outgoing request, also you can forward the headers from the upstream responses to the client.

From the client to the subgraphs

You can configure headers to be propagated from the incoming request to the outgoing request. You can do either per subgraph or globally.

gateway.config.ts
import { defineConfig } from '@graphql-hive/gateway'
 
export const gatewayConfig = defineConfig({
  propagateHeaders: {
    fromClientToSubgraphs({ request, subgraphName }) {
      if (subgraphName === 'subgraph1') {
        return {
          'x-custom-header': request.headers.get('x-custom-header')
        }
      }
    }
  }
})

From the subgraphs to the client

You can configure headers to be propagated from the upstream responses to the client.

gateway.config.ts
import { defineConfig } from '@graphql-hive/gateway'
 
export const gatewayConfig = defineConfig({
  propagateHeaders: {
    fromSubgraphsToClient({ response }) {
      return {
        'x-custom-header': response.headers.get('x-custom-header')
      }
    }
  }
})