Skip to content
KeystoneJS LogoKeystoneJS
👋🏻 Keystone 5 has officially moved to maintenance only. For the latest release of Keystone please visit the Keystone website.

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