Skip to content
KeystoneJS LogoKeystoneJS

Admin UI app

View changelog

A KeystoneJS app which provides an Admin UI for content management.


const { Keystone } = require('@keystonejs/keystone');
const { GraphQLApp } = require('@keystonejs/app-graphql');
const { AdminUIApp } = require('@keystonejs/app-admin-ui');

const authStrategy = keystone.createAuthStrategy({...});

module.exports = {
  keystone: new Keystone(),
  apps: [
    new GraphQLApp(),
    new AdminUIApp({
      adminPath: '/admin',


adminPathString/adminfalseThe path of the Admin UI.
apiPathString/admin/apifalseThe path of the API provided to the Admin UI.
graphiqlPathString/admin/apifalseThe path of the graphiql app, an in-browser IDE for exploring GraphQL.
authStrategyObjectnullfalseSee Authentication Guides
enableDefaultRouteBoolfalsefalseIf enabled, the path of the Admin UI app will be set to /.
isAccessAllowedFunctiontruefalseControls which users have access to the Admin UI.


This function takes the same arguments as a shorthand imperative boolean access control. It must return either true or false.

If omitted, all users with accounts will be able to access the Admin UI. The example below would restrict access to users with the isAdmin permission.


new AdminUIApp({
  /*...config */
  isAccessAllowed: ({ authentication: { item: user, listKey: list } }) => !!user && !!user.isAdmin,

On this page

  • Usage
  • Config
  • isAccessAllowed
Edit on GitHub