Skip to content
KeystoneJS LogoKeystoneJS
👋🏻 We're working on the next generation of KeystoneJS! If you're using the @keystone-next packages, click here to learn more

App version plugin

This is the last active development release of this package as Keystone 5 is now in a 6 to 12 month active maintenance phase. For more information please read our Keystone 5 and beyond post.

This package provides support for including a version string both as an HTTP response header and as a graphQL query.

The function appVersionMiddleware(version) will return a piece of middleware which will set the X-Keystone-App-Version response header to version on all HTTP requests.

The graphQL provider AppVersionProvider will add an { appVersion } query to your graphQL API which returns version as a string.



This package is designed to be used indirectly via the conveniance API on the Keystone class:

const keystone = new Keystone({
  appVersion: {
    version: '1.0.0',
    addVersionToHttpHeaders: true,
    access: true,


It can also be used directly if you would like to manually manage your middleware stack of graphQL providers.

const { AppVersionProvider, appVersionMiddleware } = require('@keystonejs/app-version');

const version = '1.0.0';


  new AppVersionProvider({
    access: true,
    schemaNames: ['public'],

On this page

  • Usage
  • Indirectly
  • Directly
Edit on GitHub